scapy.layers.ntlm

NTLM

https://winprotocoldoc.blob.core.windows.net/productionwindowsarchives/MS-NLMP/%5bMS-NLMP%5d.pdf

class scapy.layers.ntlm.AV_PAIR(_pkt, /, *, AvId=0, AvLen=None, Value=None)[source]

Bases: scapy.packet.Packet

aliastypes
default_payload_class(payload)[source]
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              AVID             |             AVLEN             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             VALUE             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                           Fig. AV_PAIR                           
AV_PAIR fields

AvId

LEShortEnumField

0

AvLen

FieldLenField

None

Value

MultipleTypeField (LEIntEnumField, UTCTimeField, PacketField, XStrLenField, StrLenFieldUtf16)

b''

scapy.layers.ntlm.HTTP_ntlm_negotiate(ntlm_negotiate)[source]

Create an HTTP NTLM negotiate packet from an NTLM_NEGOTIATE message

class scapy.layers.ntlm.LM_RESPONSE(_pkt, /, *, Response=b'')[source]

Bases: scapy.packet.Packet

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            RESPONSE           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                         Fig. LM_RESPONSE                         
LM_RESPONSE fields

Response

StrFixedLenField

b''

class scapy.layers.ntlm.LMv2_RESPONSE(_pkt, /, *, Response=b'', ChallengeFromClient=b'')[source]

Bases: scapy.packet.Packet

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            RESPONSE           |      CHALLENGEFROMCLIENT      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                        Fig. LMv2_RESPONSE                        
LMv2_RESPONSE fields

Response

StrFixedLenField

b''

ChallengeFromClient

StrFixedLenField

b''

class scapy.layers.ntlm.NTLM_AUTHENTICATE(_pkt, /, *, Signature=b'NTLMSSP\x00', MessageType=3, LmChallengeResponseLen=None, LmChallengeResponseMaxLen=None, LmChallengeResponseBufferOffset=None, NtChallengeResponseLen=None, NtChallengeResponseMaxLen=None, NtChallengeResponseBufferOffset=None, DomainNameLen=None, DomainNameMaxLen=None, DomainNameBufferOffset=None, UserNameLen=None, UserNameMaxLen=None, UserNameBufferOffset=None, WorkstationLen=None, WorkstationMaxLen=None, WorkstationBufferOffset=None, EncryptedRandomSessionKeyLen=None, EncryptedRandomSessionKeyMaxLen=None, EncryptedRandomSessionKeyBufferOffset=None, NegotiateFlags=<Flag 0 ()>, ProductMajorVersion=0, ProductMinorVersion=0, ProductBuild=0, res_ver=0, NTLMRevisionCurrent=15, MIC=b'', Payload=[('LmChallengeResponse', None), ('NtChallengeResponse', None), ('DomainName', None), ('UserName', None), ('Workstation', None), ('EncryptedRandomSessionKey', b'')])[source]

Bases: scapy.packet.Packet

NTLM_VERSION = 1
OFFSET = 88
aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           SIGNATURE           |          MESSAGETYPE          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |     LMCHALLENGERESPONSELEN    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|   LMCHALLENGERESPONSEMAXLEN   |LMCHALLENGERESPONSEBUFFEROFFSET|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |     NTCHALLENGERESPONSELEN    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|   NTCHALLENGERESPONSEMAXLEN   |NTCHALLENGERESPONSEBUFFEROFFSET|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |         DOMAINNAMELEN         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|        DOMAINNAMEMAXLEN       |     DOMAINNAMEBUFFEROFFSET    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |          USERNAMELEN          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         USERNAMEMAXLEN        |      USERNAMEBUFFEROFFSET     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |         WORKSTATIONLEN        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|       WORKSTATIONMAXLEN       |    WORKSTATIONBUFFEROFFSET    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |  ENCRYPTEDRANDOMSESSIONKEYLEN |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|ENCRYPTEDRANDOMSESSIONKEYMAXLEN|ENCRYPTEDRANDOMSESSIONKEYBUFFER|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |         NEGOTIATEFLAGS        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |PRODUCTMAJORVER|PRODUCTMINORVER|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|          PRODUCTBUILD         |            RES VER            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |NTLMREVISIONCUR|      MIC      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |            PAYLOAD            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                      Fig. NTLM_AUTHENTICATE                      
NTLM_AUTHENTICATE fields

Signature

StrFixedLenField

b'NTLMSSP\x00'

MessageType

LEIntEnumField

3

LmChallengeResponseLen

LEShortField

None

LmChallengeResponseMaxLen

LEShortField

None

LmChallengeResponseBufferOffset

LEIntField

None

NtChallengeResponseLen

LEShortField

None

NtChallengeResponseMaxLen

LEShortField

None

NtChallengeResponseBufferOffset

LEIntField

None

DomainNameLen

LEShortField

None

DomainNameMaxLen

LEShortField

None

DomainNameBufferOffset

LEIntField

None

UserNameLen

LEShortField

None

UserNameMaxLen

LEShortField

None

UserNameBufferOffset

LEIntField

None

WorkstationLen

LEShortField

None

WorkstationMaxLen

LEShortField

None

WorkstationBufferOffset

LEIntField

None

EncryptedRandomSessionKeyLen

LEShortField

None

EncryptedRandomSessionKeyMaxLen

LEShortField

None

EncryptedRandomSessionKeyBufferOffset

LEIntField

None

NegotiateFlags

FlagsField

<Flag 0 ()>

ProductMajorVersion

ByteField

0

ProductMinorVersion

ByteField

0

ProductBuild

LEShortField

0

res_ver

LEThreeBytesField

0

NTLMRevisionCurrent

ByteEnumField

15

MIC

XStrFixedLenField

b''

Payload

_NTLMPayloadField

[('LmChallengeResponse', None), ('NtChallengeResponse', None), ('DomainName', None), ('UserName', None), ('Workstation', None), ('EncryptedRandomSessionKey', b'')]

messageType = 3
post_build(pkt, pay)[source]
class scapy.layers.ntlm.NTLM_AUTHENTICATE_V2(_pkt, /, *, Signature=b'NTLMSSP\x00', MessageType=3, LmChallengeResponseLen=None, LmChallengeResponseMaxLen=None, LmChallengeResponseBufferOffset=None, NtChallengeResponseLen=None, NtChallengeResponseMaxLen=None, NtChallengeResponseBufferOffset=None, DomainNameLen=None, DomainNameMaxLen=None, DomainNameBufferOffset=None, UserNameLen=None, UserNameMaxLen=None, UserNameBufferOffset=None, WorkstationLen=None, WorkstationMaxLen=None, WorkstationBufferOffset=None, EncryptedRandomSessionKeyLen=None, EncryptedRandomSessionKeyMaxLen=None, EncryptedRandomSessionKeyBufferOffset=None, NegotiateFlags=<Flag 0 ()>, ProductMajorVersion=0, ProductMinorVersion=0, ProductBuild=0, res_ver=0, NTLMRevisionCurrent=15, MIC=b'', Payload=[('LmChallengeResponse', None), ('NtChallengeResponse', None), ('DomainName', None), ('UserName', None), ('Workstation', None), ('EncryptedRandomSessionKey', b'')])[source]

Bases: scapy.layers.ntlm.NTLM_AUTHENTICATE

NTLM_VERSION = 2
aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           SIGNATURE           |          MESSAGETYPE          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |     LMCHALLENGERESPONSELEN    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|   LMCHALLENGERESPONSEMAXLEN   |LMCHALLENGERESPONSEBUFFEROFFSET|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |     NTCHALLENGERESPONSELEN    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|   NTCHALLENGERESPONSEMAXLEN   |NTCHALLENGERESPONSEBUFFEROFFSET|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |         DOMAINNAMELEN         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|        DOMAINNAMEMAXLEN       |     DOMAINNAMEBUFFEROFFSET    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |          USERNAMELEN          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         USERNAMEMAXLEN        |      USERNAMEBUFFEROFFSET     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |         WORKSTATIONLEN        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|       WORKSTATIONMAXLEN       |    WORKSTATIONBUFFEROFFSET    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |  ENCRYPTEDRANDOMSESSIONKEYLEN |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|ENCRYPTEDRANDOMSESSIONKEYMAXLEN|ENCRYPTEDRANDOMSESSIONKEYBUFFER|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |         NEGOTIATEFLAGS        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |PRODUCTMAJORVER|PRODUCTMINORVER|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|          PRODUCTBUILD         |            RES VER            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |NTLMREVISIONCUR|      MIC      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |            PAYLOAD            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                    Fig. NTLM_AUTHENTICATE_V2                     
NTLM_AUTHENTICATE_V2 fields

Signature

StrFixedLenField

b'NTLMSSP\x00'

MessageType

LEIntEnumField

3

LmChallengeResponseLen

LEShortField

None

LmChallengeResponseMaxLen

LEShortField

None

LmChallengeResponseBufferOffset

LEIntField

None

NtChallengeResponseLen

LEShortField

None

NtChallengeResponseMaxLen

LEShortField

None

NtChallengeResponseBufferOffset

LEIntField

None

DomainNameLen

LEShortField

None

DomainNameMaxLen

LEShortField

None

DomainNameBufferOffset

LEIntField

None

UserNameLen

LEShortField

None

UserNameMaxLen

LEShortField

None

UserNameBufferOffset

LEIntField

None

WorkstationLen

LEShortField

None

WorkstationMaxLen

LEShortField

None

WorkstationBufferOffset

LEIntField

None

EncryptedRandomSessionKeyLen

LEShortField

None

EncryptedRandomSessionKeyMaxLen

LEShortField

None

EncryptedRandomSessionKeyBufferOffset

LEIntField

None

NegotiateFlags

FlagsField

<Flag 0 ()>

ProductMajorVersion

ByteField

0

ProductMinorVersion

ByteField

0

ProductBuild

LEShortField

0

res_ver

LEThreeBytesField

0

NTLMRevisionCurrent

ByteEnumField

15

MIC

XStrFixedLenField

b''

Payload

_NTLMPayloadField

[('LmChallengeResponse', None), ('NtChallengeResponse', None), ('DomainName', None), ('UserName', None), ('Workstation', None), ('EncryptedRandomSessionKey', b'')]

class scapy.layers.ntlm.NTLM_CHALLENGE(_pkt, /, *, Signature=b'NTLMSSP\x00', MessageType=3, TargetNameLen=None, TargetNameMaxLen=None, TargetNameBufferOffset=None, NegotiateFlags=<Flag 0 ()>, ServerChallenge=None, Reserved=None, TargetInfoLen=None, TargetInfoMaxLen=None, TargetInfoBufferOffset=None, ProductMajorVersion=0, ProductMinorVersion=0, ProductBuild=0, res_ver=0, NTLMRevisionCurrent=15, Payload=[('TargetName', None), ('TargetInfo'[, <AV_PAIR  |>])])[source]

Bases: scapy.packet.Packet

OFFSET = 56
aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           SIGNATURE           |          MESSAGETYPE          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |         TARGETNAMELEN         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|        TARGETNAMEMAXLEN       |     TARGETNAMEBUFFEROFFSET    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |         NEGOTIATEFLAGS        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |        SERVERCHALLENGE        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            RESERVED           |         TARGETINFOLEN         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|        TARGETINFOMAXLEN       |     TARGETINFOBUFFEROFFSET    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |PRODUCTMAJORVER|PRODUCTMINORVER|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|          PRODUCTBUILD         |            RES VER            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |NTLMREVISIONCUR|    PAYLOAD    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |
+-+-+-+-+-+-+-+-+

                       Fig. NTLM_CHALLENGE                        
NTLM_CHALLENGE fields

Signature

StrFixedLenField

b'NTLMSSP\x00'

MessageType

LEIntEnumField

3

TargetNameLen

LEShortField

None

TargetNameMaxLen

LEShortField

None

TargetNameBufferOffset

LEIntField

None

NegotiateFlags

FlagsField

<Flag 0 ()>

ServerChallenge

XStrFixedLenField

None

Reserved

XStrFixedLenField

None

TargetInfoLen

LEShortField

None

TargetInfoMaxLen

LEShortField

None

TargetInfoBufferOffset

LEIntField

None

ProductMajorVersion

ByteField

0

ProductMinorVersion

ByteField

0

ProductBuild

LEShortField

0

res_ver

LEThreeBytesField

0

NTLMRevisionCurrent

ByteEnumField

15

Payload

_NTLMPayloadField

[('TargetName', None), ('TargetInfo', [<AV_PAIR  |>])]

messageType = 2
post_build(pkt, pay)[source]
class scapy.layers.ntlm.NTLM_Header(_pkt, /, *, Signature=b'NTLMSSP\x00', MessageType=3)[source]

Bases: scapy.packet.Packet

aliastypes
classmethod dispatch_hook(_pkt=None, *args, **kargs)[source]
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           SIGNATURE           |          MESSAGETYPE          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                         Fig. NTLM_Header                         
NTLM_Header fields

Signature

StrFixedLenField

b'NTLMSSP\x00'

MessageType

LEIntEnumField

3

class scapy.layers.ntlm.NTLM_NEGOTIATE(_pkt, /, *, Signature=b'NTLMSSP\x00', MessageType=3, NegotiateFlags=<Flag 0 ()>, DomainNameLen=None, DomainNameMaxLen=None, DomainNameBufferOffset=None, WorkstationNameLen=None, WorkstationNameMaxLen=None, WorkstationNameBufferOffset=None, ProductMajorVersion=0, ProductMinorVersion=0, ProductBuild=0, res_ver=0, NTLMRevisionCurrent=15, Payload=[('DomainName', None), ('WorkstationName', None)])[source]

Bases: scapy.packet.Packet

OFFSET = 40
aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           SIGNATURE           |          MESSAGETYPE          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |         NEGOTIATEFLAGS        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |         DOMAINNAMELEN         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|        DOMAINNAMEMAXLEN       |     DOMAINNAMEBUFFEROFFSET    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |       WORKSTATIONNAMELEN      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     WORKSTATIONNAMEMAXLEN     |  WORKSTATIONNAMEBUFFEROFFSET  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |PRODUCTMAJORVER|PRODUCTMINORVER|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|          PRODUCTBUILD         |            RES VER            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |NTLMREVISIONCUR|    PAYLOAD    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |
+-+-+-+-+-+-+-+-+

                       Fig. NTLM_NEGOTIATE                        
NTLM_NEGOTIATE fields

Signature

StrFixedLenField

b'NTLMSSP\x00'

MessageType

LEIntEnumField

3

NegotiateFlags

FlagsField

<Flag 0 ()>

DomainNameLen

LEShortField

None

DomainNameMaxLen

LEShortField

None

DomainNameBufferOffset

LEIntField

None

WorkstationNameLen

LEShortField

None

WorkstationNameMaxLen

LEShortField

None

WorkstationNameBufferOffset

LEIntField

None

ProductMajorVersion

ByteField

0

ProductMinorVersion

ByteField

0

ProductBuild

LEShortField

0

res_ver

LEThreeBytesField

0

NTLMRevisionCurrent

ByteEnumField

15

Payload

_NTLMPayloadField

[('DomainName', None), ('WorkstationName', None)]

messageType = 1
post_build(pkt, pay)[source]
class scapy.layers.ntlm.NTLM_RESPONSE(_pkt, /, *, Response=b'')[source]

Bases: scapy.packet.Packet

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            RESPONSE           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                        Fig. NTLM_RESPONSE                        
NTLM_RESPONSE fields

Response

StrFixedLenField

b''

class scapy.layers.ntlm.NTLMv2_CLIENT_CHALLENGE(_pkt, /, *, RespType=0, HiRespType=0, Reserved1=0, Reserved2=0, TimeStamp=None, ChallengeFromClient=b'', Reserved3=0, AvPairs=[<AV_PAIR  |>])[source]

Bases: scapy.packet.Packet

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    RESPTYPE   |   HIRESPTYPE  |           RESERVED1           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           RESERVED2                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           TIMESTAMP                           |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|      CHALLENGEFROMCLIENT      |           RESERVED3           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |            AVPAIRS            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                   Fig. NTLMv2_CLIENT_CHALLENGE                   
NTLMv2_CLIENT_CHALLENGE fields

RespType

ByteField

0

HiRespType

ByteField

0

Reserved1

LEShortField

0

Reserved2

LEIntField

0

TimeStamp

UTCTimeField

None

ChallengeFromClient

StrFixedLenField

b''

Reserved3

LEIntField

0

AvPairs

PacketListField

[<AV_PAIR  |>]

class scapy.layers.ntlm.NTLMv2_RESPONSE(_pkt, /, *, NTProofStr=b'', RespType=0, HiRespType=0, Reserved1=0, Reserved2=0, TimeStamp=None, ChallengeFromClient=b'', Reserved3=0, AvPairs=[<AV_PAIR  |>])[source]

Bases: scapy.packet.Packet

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           NTPROOFSTR          |    RESPTYPE   |   HIRESPTYPE  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           RESERVED1           |           RESERVED2           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |           TIMESTAMP           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+                               +
|                                                               |
+                               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |      CHALLENGEFROMCLIENT      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           RESERVED3                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            AVPAIRS            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                       Fig. NTLMv2_RESPONSE                       
NTLMv2_RESPONSE fields

NTProofStr

XStrFixedLenField

b''

RespType

ByteField

0

HiRespType

ByteField

0

Reserved1

LEShortField

0

Reserved2

LEIntField

0

TimeStamp

UTCTimeField

None

ChallengeFromClient

StrFixedLenField

b''

Reserved3

LEIntField

0

AvPairs

PacketListField

[<AV_PAIR  |>]

class scapy.layers.ntlm.Single_Host_Data(_pkt, /, *, Size=0, Z4=0, CustomData=b'', MachineID=b'')[source]

Bases: scapy.packet.Packet

aliastypes
default_payload_class(payload)[source]
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                              SIZE                             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               Z4                              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           CUSTOMDATA          |           MACHINEID           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                      Fig. Single_Host_Data                       
Single_Host_Data fields

Size

LEIntField

0

Z4

LEIntField

0

CustomData

XStrFixedLenField

b''

MachineID

XStrFixedLenField

b''