C:\>socat TCP-CONNECT:localhost:8888 -
CONNECT 127.0.0.1:21 HTTP/1.1
Host: 127.0.0.1:21
User-Agent: socat
Connection: Keep-Alive
HTTP/1.1 200 Connection Established
FiddlerGateway: Direct
StartTime: 01:11:48.233
Connection: close
You can manually resolve this problem by doing something like: Rules > Customize Rules > OnBeforeRequest
if ((oSession.HTTPMethodIs("CONNECT") && oSession.host.Contains(":21"))
{
oSession["x-no-decrypt"] = "FTP traffic smuggled via connect tunnel";
}
CONNECT mirrors.rit.edu:21 HTTP/1.1
Host: mirrors.rit.edu:21
Connection: Keep-Alive
== FLAGS ==================
BitFlags: [ResponseGeneratedByFiddler] 0x100
X-ABORTED-WHEN: SendingResponse
X-CLIENTIP: ::ffff:127.0.0.1
X-CLIENTPORT: 54959
X-EGRESSPORT: 54960
X-HOSTIP: 129.21.171.72
X-NO-DECRYPT: FTP traffic smuggled via connect tunnel
X-PROCESSINFO: proxytest:1344
X-RESPONSEBODYTRANSFERLENGTH: 0
if ((oSession.HTTPMethodIs("CONNECT") &&
// Can't filter just on port because FTP uses multiple ports.
// Could filter based on client's process name or whatever.
oSession.host.Contains("rit.edu"))
{
oSession["x-no-decrypt"] = "FTP traffic smuggled via connect tunnel";
oSession["x-no-parse"] = "FTP traffic smuggled via connect tunnel";
}
Alternatively, you can call .Ignore() on the Session to make it disappear and that will set these flags automatically.
if (oSession.HTTPMethodIs("CONNECT") && oSession.LocalProcess.StartsWith("curl:", StringComparison.OrdinalIgnoreCase)) {