go to  ForumEasy.com   
JavaPro
Home » Archive » Message


[Email To Friend][View in Live Context][prev topic « prev post | next post » next topic]
  NTLM HTTP Authentication
 
Subject: NTLM HTTP Authentication
Author: authen
Posted on: 06/08/2006 01:14:44 AM

Here is a practical NTLM authentication example via HTTP

Client: MS Internet Explorer 6.0
Server: MS IIS v6

1. Client --> Server

             GET / HTTP/1.1



2. Client <-- Server
          HTTP/1.1 401 Unauthorized
          WWW-Authenticate: Negotiate
          WWW-Authenticate: NTLM
          WWW-Authenticate: Basic realm="mydomain.com"



3. Client --> Server

          GET / HTTP/1.1
          Authorization: Negotiate TlRMTVNTUAABAAAAB4IAoAAAAAAAAAAAAAAAAAAAAAA=


TYPE 1 NTLM Message:
0x4e 0x54 0x4c 0x4d 0x53 0x53 0x50 0x00 --- NTLMSSP
0x01 0x00 0x00 0x00 --- Type 1
0x07 0x82 0x00 0xa0 --- Flags
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 --- workstation domain
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 --- workstation name
0x00 --- data block
            Flags: 0xa0008207
                1... .... .... .... .... .... .... .... = Negotiate 56: Set
                .0.. .... .... .... .... .... .... .... = Negotiate Key Exchange: Not set
                ..1. .... .... .... .... .... .... .... = Negotiate 128: Set
                ...0 .... .... .... .... .... .... .... = Negotiate 0x10000000: Not set
                .... 0... .... .... .... .... .... .... = Negotiate 0x08000000: Not set
                .... .0.. .... .... .... .... .... .... = Negotiate 0x04000000: Not set
                .... ..0. .... .... .... .... .... .... = Negotiate 0x02000000: Not set
                .... ...0 .... .... .... .... .... .... = Negotiate 0x01000000: Not set
                .... .... 0... .... .... .... .... .... = Negotiate Target Info: Not set
                .... .... .0.. .... .... .... .... .... = Negotiate 0x00400000: Not set
                .... .... ..0. .... .... .... .... .... = Negotiate 0x00200000: Not set
                .... .... ...0 .... .... .... .... .... = Negotiate 0x00100000: Not set
                .... .... .... 0... .... .... .... .... = Negotiate NTLM2 key: Not set
                .... .... .... .0.. .... .... .... .... = Negotiate Challenge Non NT Session Key: Not set
                .... .... .... ..0. .... .... .... .... = Negotiate Challenge Accept Response: Not set
                .... .... .... ...0 .... .... .... .... = Negotiate Challenge Init Response: Not set
                .... .... .... .... 1... .... .... .... = Negotiate Always Sign: Set
                .... .... .... .... .0.. .... .... .... = Negotiate This is Local Call: Not set
                .... .... .... .... ..0. .... .... .... = Negotiate Workstation Supplied: Not set
                .... .... .... .... ...0 .... .... .... = Negotiate Domain Supplied: Not set
                .... .... .... .... .... 0... .... .... = Negotiate 0x00000800: Not set
                .... .... .... .... .... .0.. .... .... = Negotiate 0x00000400: Not set
                .... .... .... .... .... ..1. .... .... = Negotiate NTLM key: Set
                .... .... .... .... .... ...0 .... .... = Negotiate Netware: Not set
                .... .... .... .... .... .... 0... .... = Negotiate Lan Manager Key: Not set
                .... .... .... .... .... .... .0.. .... = Negotiate Datagram Style: Not set
                .... .... .... .... .... .... ..0. .... = Negotiate Seal: Not set
                .... .... .... .... .... .... ...0 .... = Negotiate Sign: Not set
                .... .... .... .... .... .... .... 0... = Request 0x00000008: Not set
                .... .... .... .... .... .... .... .1.. = Request Target: Set
                .... .... .... .... .... .... .... ..1. = Negotiate OEM: Set
                .... .... .... .... .... .... .... ...1 = Negotiate UNICODE: Set



4. Client <-- Server
          HTTP/1.1 401 Unauthorized
          Content-Length: 1539
          Content-Type: text/html
          WWW-Authenticate: Negotiate TlRMTVNTUAACAAAABAAE...


TYPE 2 NTLM Message:
0x4e 0x54 0x4c 0x4d 0x53 0x53 0x50 0x00 --- NTLMSSP
0x02 0x00 0x00 0x00 --- Type 2
0x04 0x00 0x04 0x00 0x38 0x00 0x00 0x00 --- Target Name
-- Length: 4
-- Maxlen: 4
-- Offset: 56
0x05 0x82 0x81 0xa2 --- Flags
0xd9 0x3f 0xf5 0x0e 0x0d 0x82 0x93 0x1a --- NTLM Challenge
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 --- Context (Reserved)
0xcc 0x00 0xcc 0x00 0x3c 0x00 0x00 0x00 --- Target Information
-- Length: 204
-- Maxlen: 204
-- Offset: 60
0x05 0x02 0xce 0x0e 0x00 0x00 0x00 0x0f --- start of data block
(Target Domain NetBIOS Name)
(Target Information Address List:
Domain NetBIOS Name: SALES
Server NetBIOS Name: MY_IIS_SEREVR
Domain DNS Name: sales.mycompany.com
Server DNS Name: my_iis_server.sales.mycompany.com
0x00 0x00 0x00 0x00 --- List Terminator
)

            Flags: 0xa2818205
                1... .... .... .... .... .... .... .... = Negotiate 56: Set
                .0.. .... .... .... .... .... .... .... = Negotiate Key Exchange: Not set
                ..1. .... .... .... .... .... .... .... = Negotiate 128: Set
                ...0 .... .... .... .... .... .... .... = Negotiate 0x10000000: Not set
                .... 0... .... .... .... .... .... .... = Negotiate 0x08000000: Not set
                .... .0.. .... .... .... .... .... .... = Negotiate 0x04000000: Not set
                .... ..1. .... .... .... .... .... .... = Negotiate 0x02000000: Set
                .... ...0 .... .... .... .... .... .... = Negotiate 0x01000000: Not set
                .... .... 1... .... .... .... .... .... = Negotiate Target Info: Set
                .... .... .0.. .... .... .... .... .... = Negotiate 0x00400000: Not set
                .... .... ..0. .... .... .... .... .... = Negotiate 0x00200000: Not set
                .... .... ...0 .... .... .... .... .... = Negotiate 0x00100000: Not set
                .... .... .... 0... .... .... .... .... = Negotiate NTLM2 key: Not set
                .... .... .... .0.. .... .... .... .... = Negotiate Challenge Non NT Session Key: Not set
                .... .... .... ..0. .... .... .... .... = Negotiate Challenge Accept Response: Not set
                .... .... .... ...1 .... .... .... .... = Negotiate Challenge Init Response: Set
                .... .... .... .... 1... .... .... .... = Negotiate Always Sign: Set
                .... .... .... .... .0.. .... .... .... = Negotiate This is Local Call: Not set
                .... .... .... .... ..0. .... .... .... = Negotiate Workstation Supplied: Not set
                .... .... .... .... ...0 .... .... .... = Negotiate Domain Supplied: Not set
                .... .... .... .... .... 0... .... .... = Negotiate 0x00000800: Not set
                .... .... .... .... .... .0.. .... .... = Negotiate 0x00000400: Not set
                .... .... .... .... .... ..1. .... .... = Negotiate NTLM key: Set
                .... .... .... .... .... ...0 .... .... = Negotiate Netware: Not set
                .... .... .... .... .... .... 0... .... = Negotiate Lan Manager Key: Not set
                .... .... .... .... .... .... .0.. .... = Negotiate Datagram Style: Not set
                .... .... .... .... .... .... ..0. .... = Negotiate Seal: Not set
                .... .... .... .... .... .... ...0 .... = Negotiate Sign: Not set
                .... .... .... .... .... .... .... 0... = Request 0x00000008: Not set
                .... .... .... .... .... .... .... .1.. = Request Target: Set
                .... .... .... .... .... .... .... ..0. = Negotiate OEM: Not set
                .... .... .... .... .... .... .... ...1 = Negotiate UNICODE: Set



5. Client --> Server
          GET / HTTP/1.1
          Authorization: Negotiate TlRMTVNTUAADAAAAGAAYA...


TYPE 3 NTLM Message:
0x4e 0x54 0x4c 0x4d 0x53 0x53 0x50 0x00 --- NTLMSSP
0x03 0x00 0x00 0x00 --- Type 3
0x18 0x00 0x18 0x00 0x84 0x00 0x00 0x00 --- LM Response
-- Length: 24
-- Maxlen: 24
-- Offset: 132
0x18 0x00 0x18 0x00 0x9c 0x00 0x00 0x00 --- NTLM Response
-- Length: 24
-- Maxlen: 24
-- Offset: 156
0x2e 0x00 0x2e 0x00 0x40 0x00 0x00 0x00 --- Domain Name
-- Length: 46
-- Maxlen: 46
-- Offset: 64
0x0a 0x00 0x0a 0x00 0x6e 0x00 0x00 0x00 --- User Name
-- Length: 10
-- Maxlen: 10
-- Offset: 110
0x0c 0x00 0x0c 0x00 0x78 0x00 0x00 0x00 --- Workstation/Host Name
-- Length: 12
-- Maxlen: 12
-- Offset: 120
0x00 0x00 0x00 0x00 0xb4 0x00 0x00 0x00 --- Session Key
-- Length: 0
-- Maxlen: 0
-- Offset: 180
0x05 0x82 0x80 0xa0 --- Flags
( --- start of data block
Domain Name: develop.mycompany.com
User Name: james
Host Name: HOST01
LM Response: 0x6F3033F7D69A37F62FC5C91A0D2DAC34366E8D213A6E705D
NTLM Response: 0x2AA9839F594E32381BBEA990920E441FBA30946EF3B7DFDE
)


6. Client <-- Server
          HTTP/1.1 200 OK


or, if failed,
          HTTP/1.1 401 Unauthorized
          WWW-Authenticate: Negotiate
          WWW-Authenticate: NTLM
          WWW-Authenticate: Basic realm="mydomain.com"



Replies:


References:

 


 
Powered by ForumEasy © 2002-2022, All Rights Reserved. | Privacy Policy | Terms of Use
 
Get your own forum today. It's easy and free.