HTTP HTTP GET HTTP CONNECT HTTP proxy HTTP proxy NTLM auth --proxy-anyauth NTLM # Server-side HTTP/1.1 407 Authorization Required to proxy me my dear swsclose Proxy-Authenticate: NTLM Content-Length: 16 Connection: close data to discard # this is returned first since we get no proxy-auth HTTP/1.1 407 Authorization Required to proxy me my dear Proxy-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAACGggEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA== Content-Length: 28 27 bytes and newline to ign # This is supposed to be returned when the server gets the second # Authorization: NTLM line passed-in from the client HTTP/1.1 200 Things are fine in proxy land Server: Microsoft-IIS/5.0 Content-Type: text/html; charset=iso-8859-1 # this is returned when we get a GET! HTTP/1.1 200 OK Date: Tue, 09 Nov 2010 14:49:00 GMT Content-Length: 7 Connection: close Content-Type: text/html Funny-head: yesyes daniel # then this is returned when we get proxy-auth HTTP/1.1 200 OK swsbounce Server: no Nice proxy auth sir! HTTP/1.1 407 Authorization Required to proxy me my dear swsclose Proxy-Authenticate: NTLM Content-Length: 16 Connection: close HTTP/1.1 407 Authorization Required to proxy me my dear Proxy-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAACGggEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA== Content-Length: 28 HTTP/1.1 200 Things are fine in proxy land Server: Microsoft-IIS/5.0 Content-Type: text/html; charset=iso-8859-1 HTTP/1.1 200 OK Date: Tue, 09 Nov 2010 14:49:00 GMT Content-Length: 7 Connection: close Content-Type: text/html Funny-head: yesyes daniel # Client-side http NTLM SSL !SSPI proxy HTTP proxy CONNECT with any proxyauth and proxy offers NTLM and close http://test.remote.example.com.%TESTNUMBER:%HTTPPORT/path/%TESTNUMBER0002 --proxy http://%HOSTIP:%HTTPPORT --proxy-user testuser:testpass --proxy-anyauth --proxytunnel # Verify data after the test has been "shot" CONNECT test.remote.example.com.%TESTNUMBER:%HTTPPORT HTTP/1.1 Host: test.remote.example.com.%TESTNUMBER:%HTTPPORT User-Agent: curl/%VERSION Proxy-Connection: Keep-Alive CONNECT test.remote.example.com.%TESTNUMBER:%HTTPPORT HTTP/1.1 Host: test.remote.example.com.%TESTNUMBER:%HTTPPORT Proxy-Authorization: NTLM TlRMTVNTUAABAAAABoIIAAAAAAAAAAAAAAAAAAAAAAA= User-Agent: curl/%VERSION Proxy-Connection: Keep-Alive CONNECT test.remote.example.com.%TESTNUMBER:%HTTPPORT HTTP/1.1 Host: test.remote.example.com.%TESTNUMBER:%HTTPPORT Proxy-Authorization: NTLM TlRMTVNTUAADAAAAGAAYAEAAAAAYABgAWAAAAAAAAABwAAAACAAIAHAAAAALAAsAeAAAAAAAAAAAAAAAhoIBAFpkQwKRCZFMhjj0tw47wEjKHRHlvzfxQamFcheMuv8v+xeqphEO5V41xRd7R9deOXRlc3R1c2VyV09SS1NUQVRJT04= User-Agent: curl/%VERSION Proxy-Connection: Keep-Alive GET /path/%TESTNUMBER0002 HTTP/1.1 Host: test.remote.example.com.%TESTNUMBER:%HTTPPORT User-Agent: curl/%VERSION Accept: */*