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)[源代码]

基类:Packet

aliastypes
default_payload_class(payload)[源代码]
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.HMAC_MD5(key, data)[源代码]
scapy.layers.ntlm.HTTP_ntlm_negotiate(ntlm_negotiate)[源代码]

Create an HTTP NTLM negotiate packet from an NTLM_NEGOTIATE message

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

基类: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'')[源代码]

基类: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''

scapy.layers.ntlm.MAC(Handle, SigningKey, SeqNum, Message)[源代码]
scapy.layers.ntlm.MD4(x)[源代码]
class scapy.layers.ntlm.NEGOEX_EXCHANGE_NTLM(_pkt, /, *, items=[])[源代码]

基类:ASN1_Packet

GSSAPI NegoEX Exchange metadata blob This was reversed and may be meaningless

ASN1_codec = <ASN1Codec BER[1]>
ASN1_root = <ASN1F_SEQUENCE(<ASN1F_SEQUENCE(<ASN1F_SEQUENCE_OF items>,)>,)>
aliastypes
fields_desc
NEGOEX_EXCHANGE_NTLM fields

items

ASN1F_SEQUENCE_OF

[]

class scapy.layers.ntlm.NEGOEX_EXCHANGE_NTLM_ITEM(_pkt, /, *, oid=<ASN1_OID['.']>, token=<ASN1_PRINTABLE_STRING['']>)[源代码]

基类:ASN1_Packet

ASN1_codec = <ASN1Codec BER[1]>
ASN1_root = <ASN1F_SEQUENCE(<ASN1F_SEQUENCE(<ASN1F_SEQUENCE(<scapy.asn1fields.ASN1F_OID object>, <scapy.asn1fields.ASN1F_PRINTABLE_STRING object>)>,)>,)>
aliastypes
fields_desc
NEGOEX_EXCHANGE_NTLM_ITEM fields

oid

ASN1F_OID

<ASN1_OID['.']>

token

ASN1F_PRINTABLE_STRING

<ASN1_PRINTABLE_STRING['']>

class scapy.layers.ntlm.NTLMSSP_MESSAGE_SIGNATURE(_pkt, /, *, Version=1, Checksum=b'', SeqNum=0)[源代码]

基类: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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                            VERSION                            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                            CHECKSUM                           |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                             SEQNUM                            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                  Fig. NTLMSSP_MESSAGE_SIGNATURE                  
NTLMSSP_MESSAGE_SIGNATURE fields

Version

LEIntField

1

Checksum

StrFixedLenField

b''

SeqNum

LEIntField

0

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=[])[源代码]

基类:_NTLMPayloadPacket

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|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             ENCRYPTEDRANDOMSESSIONKEYBUFFEROFFSET             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                         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 (Cond)

b''

Payload

_NTLMPayloadField

[]

messageType = 3
post_build(pkt: bytes, pay: bytes) bytes[源代码]
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=[])[源代码]

基类: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|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             ENCRYPTEDRANDOMSESSIONKEYBUFFEROFFSET             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                         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 (Cond)

b''

Payload

_NTLMPayloadField

[]

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=[])[源代码]

基类:_NTLMPayloadPacket

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

[]

messageType = 2
post_build(pkt: bytes, pay: bytes) bytes[源代码]
class scapy.layers.ntlm.NTLM_Client(self, debug: int = 0, store: int = 1, **kargs: Any)[源代码]

基类:_NTLM_Automaton

A class to overload to create a client automaton when using NTLM.

actions: Dict[str, List[_StateWrapper]] = {}
bind(srv_atmt: NTLM_Server) None[源代码]
breakpoints: Set[_StateWrapper]
cls[源代码]

Raw 的别名

conditions: Dict[str, List[_StateWrapper]] = {}
echo(pkt)[源代码]
get_token()[源代码]
initial_states: List[_StateWrapper] = []
intercepted_packet: None | Packet
interception_points: Set[_StateWrapper]
ioevents: Dict[str, List[_StateWrapper]] = {}
ionames: List[str] = []
iosupersockets: List[SuperSocket] = []
kwargs_cls = {}
packets: PacketList
port = 445
recv_conditions: Dict[str, List[_StateWrapper]] = {}
set_srv(attr, value)[源代码]
ssl = False
states: Dict[str, _StateWrapper] = {}
stop_states: List[_StateWrapper] = []
threadid: int | None
timeout: Dict[str, _TimerList] = {}
wait_server()[源代码]
class scapy.layers.ntlm.NTLM_Header(_pkt, /, *, Signature=b'NTLMSSP\x00', MessageType=3)[源代码]

基类:Packet

aliastypes
classmethod dispatch_hook(_pkt=None, *args, **kargs)[源代码]
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=[])[源代码]

基类:_NTLMPayloadPacket

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

[]

messageType = 1
post_build(pkt: bytes, pay: bytes) bytes[源代码]
class scapy.layers.ntlm.NTLM_RESPONSE(_pkt, /, *, Response=b'')[源代码]

基类: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.NTLM_Server(self, debug: int = 0, store: int = 1, **kargs: Any)[源代码]

基类:_NTLM_Automaton

A class to overload to create a server automaton when using NTLM.

参数:
  • NTLM_VALUES -- a dict whose keys are - "NetbiosDomainName" - "NetbiosComputerName" - "DnsDomainName" - "DnsComputerName" - "DnsTreeName" - "Flags" - "Timestamp"

  • IDENTITIES -- a dict {"username": NTOWFv2("password", "username", "domain")} (this is the KeyResponseNT). Setting this value enables signature computation and authenticates inbound users.

  • DOMAIN_AUTH -- a tuple ("<DC IP>", "machineName", b"machinePassword") to use for domain authentication, used to establish the netlogon session. (UNIMPLEMENTED)

actions: Dict[str, List[_StateWrapper]] = {}
bind(cli_atmt: NTLM_Client) None[源代码]
breakpoints: Set[_StateWrapper]
cls[源代码]

Raw 的别名

conditions: Dict[str, List[_StateWrapper]] = {}
echo(pkt)[源代码]
get_SessionBaseKey(ntlm)[源代码]
get_token(negoex=False)[源代码]
initial_states: List[_StateWrapper] = []
intercepted_packet: None | Packet
interception_points: Set[_StateWrapper]
ioevents: Dict[str, List[_StateWrapper]] = {}
ionames: List[str] = []
iosupersockets: List[SuperSocket] = []
packets: PacketList
port = 445
received_ntlm_token(ntlm_tuple)[源代码]
recv_conditions: Dict[str, List[_StateWrapper]] = {}
set_cli(attr, value)[源代码]
start_client(**kwargs)[源代码]
states: Dict[str, _StateWrapper] = {}
stop_states: List[_StateWrapper] = []
threadid: int | None
timeout: Dict[str, _TimerList] = {}
class scapy.layers.ntlm.NTLMv2_CLIENT_CHALLENGE(_pkt, /, *, RespType=0, HiRespType=0, Reserved1=0, Reserved2=0, TimeStamp=None, ChallengeFromClient=b'12345678', Reserved3=0, AvPairs=[<AV_PAIR  |>])[源代码]

基类: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'12345678'

Reserved3

LEIntField

0

AvPairs

PacketListField

[<AV_PAIR  |>]

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

基类:Packet

aliastypes
computeNTProofStr(ResponseKeyNT, ServerChallenge)[源代码]
Set temp to ConcatenationOf(Responserversion, HiResponserversion,

Z(6), Time, ClientChallenge, Z(4), ServerName, Z(4))

Set NTProofStr to HMAC_MD5(ResponseKeyNT,

ConcatenationOf(CHALLENGE_MESSAGE.ServerChallenge,temp))

Remember ServerName = AvPairs

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'12345678'

Reserved3

LEIntField

0

AvPairs

PacketListField

[<AV_PAIR  |>]

scapy.layers.ntlm.NTOWFv2(Passwd, User, UserDom)[源代码]

Computes the ResponseKeyNT

scapy.layers.ntlm.RC4(handle, data)[源代码]

The RC4 Encryption Algorithm

scapy.layers.ntlm.RC4Init(key)[源代码]

Alleged RC4

scapy.layers.ntlm.RC4K(key, data)[源代码]

Indicates the encryption of data item D with the key K using the RC4 algorithm.

scapy.layers.ntlm.SEAL(Handle, SigningKey, SeqNum, Message)[源代码]
scapy.layers.ntlm.SEALKEY(NegFlg, ExportedSessionKey, Mode)[源代码]
scapy.layers.ntlm.SIGNKEY(NegFlg, ExportedSessionKey, Mode)[源代码]
class scapy.layers.ntlm.Single_Host_Data(_pkt, /, *, Size=0, Z4=0, CustomData=b'', MachineID=b'')[源代码]

基类:Packet

aliastypes
default_payload_class(payload)[源代码]
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''

scapy.layers.ntlm.ntlm_relay(serverCls, remoteIP, remoteClientCls, DROP_MIC_v1=False, DROP_MIC_v2=False, DROP_EXTENDED_SECURITY=False, ALLOW_SMB2=None, server_kwargs=None, client_kwargs=None, iface=None, debug=2)[源代码]

NTLM Relay

This class aims at implementing a simple pass-the-hash attack across various protocols.

Usage example:
ntlm_relay(port=445,

remoteIP="192.168.122.65", remotePort=445, iface="eth0")

参数:
  • port -- the port to open the relay on

  • remoteIP -- the address IP of the server to connect to for auth

  • remotePort -- the proto to connect to the server into

scapy.layers.ntlm.ntlm_server(serverCls, server_kwargs=None, iface=None, debug=2)[源代码]

Starts a standalone NTLM server class