scapy.layers.dcerpc

DCE/RPC Distributed Computing Environment / Remote Procedure Calls

Based on [C706] - aka DCE/RPC 1.1 https://pubs.opengroup.org/onlinepubs/9629399/toc.pdf

And on [MS-RPCE] https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-rpce/290c38b1-92fe-4229-91e6-4fc376610c15

Note

Please read the documentation over DCE/RPC

class scapy.layers.dcerpc.ComInterface(name, uuid, opnums)[source]

Bases: object

class scapy.layers.dcerpc.CommonAuthVerifier(_pkt, /, *, auth_type=0, auth_level=0, auth_pad_length=None, auth_reserved=0, auth_context_id=0, auth_value=None)[source]

Bases: Packet

aliastypes
default_payload_class(pkt)[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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|   AUTH TYPE   |   AUTH LEVEL  |AUTH PAD LENGTH| AUTH RESERVED |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                        AUTH CONTEXT ID                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           AUTH VALUE          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                     Fig. CommonAuthVerifier                      
CommonAuthVerifier fields

auth_type

ByteEnumField

0

auth_level

ByteEnumField

0

auth_pad_length

ByteField

None

auth_reserved

ByteField

0

auth_context_id

XLEIntField

0

auth_value

MultipleTypeField (PacketLenField, PacketLenField, PacketLenField, PacketLenField, PacketLenField, PacketLenField, PacketLenField, PacketLenField, PacketLenField)

None

is_protected()[source]
is_ssp()[source]
class scapy.layers.dcerpc.DCERPC_Transport(value, names=None, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source]

Bases: IntEnum

NCACN_IP_TCP = 1
NCACN_NP = 2
scapy.layers.dcerpc.DCE_C_AUTHN_LEVEL[source]

alias of RPC_C_AUTHN_LEVEL

class scapy.layers.dcerpc.DceRpc(_pkt, /)[source]

Bases: Packet

DCE/RPC packet

aliastypes
classmethod dispatch_hook(_pkt=None, *args, **kargs)[source]
class scapy.layers.dcerpc.DceRpc4(_pkt, /, *, rpc_vers=4, ptype=0, flags1=<Flag 0 ()>, flags2=<Flag 0 ()>, endian=1, encoding=0, float=0, reserved1=0, serial_hi=0, object=None, if_id=None, act_id=None, server_boot=0, if_vers=1, seqnum=0, opnum=0, ihint=65535, ahint=65535, len=None, fragnum=0, auth_proto=0, serial_lo=0)[source]

Bases: DceRpc

DCE/RPC v4 ‘connection-less’ 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    RPC VERS   |     PTYPE     |     FLAGS1    |     FLAGS2    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ENDIAN|ENCODIN|     FLOAT     |   RESERVED1   |   SERIAL HI   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                             OBJECT                            |
+                                                               +
|                                                               |
+                                                               +
|                                                               |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                             IF ID                             |
+                                                               +
|                                                               |
+                                                               +
|                                                               |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                             ACT ID                            |
+                                                               +
|                                                               |
+                                                               +
|                                                               |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                          SERVER BOOT                          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                            IF VERS                            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                             SEQNUM                            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             OPNUM             |             IHINT             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             AHINT             |              LEN              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            FRAGNUM            |   AUTH PROTO  |   SERIAL LO   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                           Fig. DceRpc4                           
DceRpc4 fields

rpc_vers

ByteEnumField

4

ptype

ByteEnumField

0

flags1

FlagsField

<Flag 0 ()>

flags2

FlagsField

<Flag 0 ()>

endian

BitEnumField

1

encoding

BitEnumField

0

float

ByteEnumField

0

reserved1

ByteField

0

serial_hi

XByteField

0

object

_EField

None

if_id

_EField

None

act_id

_EField

None

server_boot

_EField

0

if_vers

_EField

1

seqnum

_EField

0

opnum

_EField

0

ihint

_EField

65535

ahint

_EField

65535

len

_EField

None

fragnum

_EField

0

auth_proto

ByteEnumField

0

serial_lo

XByteField

0

payload_guess

Possible sublayers: DceRpc4Payload

class scapy.layers.dcerpc.DceRpc4Payload(_pkt, /)[source]

Bases: Packet

Dummy class which use the dispatch_hook to find the payload class

aliastypes
classmethod dispatch_hook(_pkt, _underlayer=None, *args, **kargs)[source]

dispatch_hook to choose among different registered payloads

classmethod register_possible_payload(pay)[source]

Method to call from possible DCE/RPC endpoint to register it as possible payload

class scapy.layers.dcerpc.DceRpc5(_pkt, /, *, rpc_vers=5, rpc_vers_minor=0, ptype=0, pfc_flags=None, endian=1, encoding=0, float=0, reserved1=0, reserved2=0, frag_len=None, auth_len=None, call_id=None, auth_verifier=None, auth_padding=None, vt_trailer=None)[source]

Bases: DceRpc

DCE/RPC v5 ‘connection-oriented’ packet

aliastypes
answers(pkt)[source]
do_dissect(s)[source]
extract_padding(s)[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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    RPC VERS   | RPC VERS MINOR|     PTYPE     |   PFC FLAGS   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ENDIAN|ENCODIN|     FLOAT     |   RESERVED1   |   RESERVED2   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            FRAG LEN           |            AUTH LEN           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                            CALL ID                            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         AUTH VERIFIER         |          AUTH PADDING         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           VT TRAILER          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                           Fig. DceRpc5                           
DceRpc5 fields

rpc_vers

ByteEnumField

5

rpc_vers_minor

ByteField

0

ptype

ByteEnumField

0

pfc_flags

MultipleTypeField (FlagsField, FlagsField)

<Flag 3 (PFC_FIRST_FRAG+PFC_LAST_FRAG)>

endian

BitEnumField

1

encoding

BitEnumField

0

float

ByteEnumField

0

reserved1

ByteField

0

reserved2

ByteField

0

frag_len

_EField

None

auth_len

_EField

None

call_id

_EField

None

auth_verifier

TrailerField (Cond)

None

auth_padding

TrailerField (Cond)

None

vt_trailer

TrailerField

None

payload_guess

Possible sublayers: DceRpc5AlterContextResp, DceRpc5AlterContext, DceRpc5Auth3, DceRpc5BindAck, DceRpc5BindNak, DceRpc5Bind, DceRpc5Fault, DceRpc5Request, DceRpc5Response

post_build(pkt, pay)[source]
classmethod tcp_reassemble(data, _, session)[source]
class scapy.layers.dcerpc.DceRpc5AbstractSyntax(_pkt, /, *, if_uuid=None, if_version=3)[source]

Bases: EPacket

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                            IF UUID                            |
+                                                               +
|                                                               |
+                                                               +
|                                                               |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           IF VERSION                          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                    Fig. DceRpc5AbstractSyntax                    
DceRpc5AbstractSyntax fields

if_uuid

_EField

None

if_version

_EField

3

class scapy.layers.dcerpc.DceRpc5AlterContext(_pkt, /, *, max_xmit_frag=5840, max_recv_frag=8192, assoc_group_id=0, n_context_elem=None, reserved=0, context_elem=[])[source]

Bases: _DceRpcPayload

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         MAX XMIT FRAG         |         MAX RECV FRAG         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                         ASSOC GROUP ID                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| N CONTEXT ELEM|                    RESERVED                   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|          CONTEXT ELEM         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                     Fig. DceRpc5AlterContext                     
DceRpc5AlterContext fields

max_xmit_frag

_EField

5840

max_recv_frag

_EField

8192

assoc_group_id

_EField

0

n_context_elem

_EField

None

reserved

StrFixedLenField

0

context_elem

EPacketListField

[]

class scapy.layers.dcerpc.DceRpc5AlterContextResp(_pkt, /, *, max_xmit_frag=5840, max_recv_frag=8192, assoc_group_id=0, sec_addr=None, n_results=None, reserved=0, results=[])[source]

Bases: _DceRpcPayload

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         MAX XMIT FRAG         |         MAX RECV FRAG         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                         ASSOC GROUP ID                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            SEC ADDR           |   N RESULTS   |    RESERVED   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |            RESULTS            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                   Fig. DceRpc5AlterContextResp                   
DceRpc5AlterContextResp fields

max_xmit_frag

_EField

5840

max_recv_frag

_EField

8192

assoc_group_id

_EField

0

sec_addr

PadField

None

n_results

_EField

None

reserved

StrFixedLenField

0

results

EPacketListField

[]

class scapy.layers.dcerpc.DceRpc5Auth3(_pkt, /, *, pad=b'')[source]

Bases: 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                              PAD                              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                        Fig. DceRpc5Auth3                         
DceRpc5Auth3 fields

pad

StrFixedLenField

b''

class scapy.layers.dcerpc.DceRpc5Bind(_pkt, /, *, max_xmit_frag=5840, max_recv_frag=8192, assoc_group_id=0, n_context_elem=None, reserved=0, context_elem=[])[source]

Bases: _DceRpcPayload

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         MAX XMIT FRAG         |         MAX RECV FRAG         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                         ASSOC GROUP ID                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| N CONTEXT ELEM|                    RESERVED                   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|          CONTEXT ELEM         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                         Fig. DceRpc5Bind                         
DceRpc5Bind fields

max_xmit_frag

_EField

5840

max_recv_frag

_EField

8192

assoc_group_id

_EField

0

n_context_elem

_EField

None

reserved

StrFixedLenField

0

context_elem

EPacketListField

[]

class scapy.layers.dcerpc.DceRpc5BindAck(_pkt, /, *, max_xmit_frag=5840, max_recv_frag=8192, assoc_group_id=0, sec_addr=None, n_results=None, reserved=0, results=[])[source]

Bases: _DceRpcPayload

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         MAX XMIT FRAG         |         MAX RECV FRAG         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                         ASSOC GROUP ID                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            SEC ADDR           |   N RESULTS   |    RESERVED   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                               |            RESULTS            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                       Fig. DceRpc5BindAck                        
DceRpc5BindAck fields

max_xmit_frag

_EField

5840

max_recv_frag

_EField

8192

assoc_group_id

_EField

0

sec_addr

PadField

None

n_results

_EField

None

reserved

StrFixedLenField

0

results

EPacketListField

[]

class scapy.layers.dcerpc.DceRpc5BindNak(_pkt, /, *, provider_reject_reason=0, n_protocols=None, protocols=[], signature=None)[source]

Bases: _DceRpcPayload

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     PROVIDER REJECT REASON    |  N PROTOCOLS  |   PROTOCOLS   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |                   SIGNATURE                   |
+-+-+-+-+-+-+-+-+                                               +
|                                                               |
+                                                               +
|                                                               |
+                                                               +
|                                                               |
+               +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|               |
+-+-+-+-+-+-+-+-+

                       Fig. DceRpc5BindNak                        
DceRpc5BindNak fields

provider_reject_reason

_EField

0

n_protocols

_EField

None

protocols

EPacketListField

[]

signature

ReversePadField (Cond)

None

class scapy.layers.dcerpc.DceRpc5Context(_pkt, /, *, cont_id=0, n_transfer_syn=None, reserved=0, abstract_syntax=None, transfer_syntaxes=[])[source]

Bases: EPacket

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            CONT ID            | N TRANSFER SYN|    RESERVED   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|        ABSTRACT SYNTAX        |       TRANSFER SYNTAXES       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                       Fig. DceRpc5Context                        
DceRpc5Context fields

cont_id

_EField

0

n_transfer_syn

FieldLenField

None

reserved

ByteField

0

abstract_syntax

EPacketField

None

transfer_syntaxes

EPacketListField

[]

class scapy.layers.dcerpc.DceRpc5Fault(_pkt, /, *, alloc_hint=0, cont_id=0, cancel_count=0, reserved=<Flag 0 ()>, status=0, reserved2=0)[source]

Bases: _DceRpcPayload

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           ALLOC HINT                          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            CONT ID            |  CANCEL COUNT |    RESERVED   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                             STATUS                            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           RESERVED2                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                        Fig. DceRpc5Fault                         
DceRpc5Fault fields

alloc_hint

_EField

0

cont_id

_EField

0

cancel_count

ByteField

0

reserved

FlagsField

<Flag 0 ()>

status

_EField

0

reserved2

IntField

0

class scapy.layers.dcerpc.DceRpc5PortAny(_pkt, /, *, length=None, port_spec=b'')[source]

Bases: EPacket

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             LENGTH            |           PORT SPEC           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                       Fig. DceRpc5PortAny                        
DceRpc5PortAny fields

length

_EField

None

port_spec

_EField

b''

class scapy.layers.dcerpc.DceRpc5Request(_pkt, /, *, alloc_hint=0, cont_id=0, opnum=0, object=None)[source]

Bases: _DceRpcPayload

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           ALLOC HINT                          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            CONT ID            |             OPNUM             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                             OBJECT                            |
+                                                               +
|                                                               |
+                                                               +
|                                                               |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                       Fig. DceRpc5Request                        
DceRpc5Request fields

alloc_hint

_EField

0

cont_id

_EField

0

opnum

_EField

0

object

PadField (Cond)

None

class scapy.layers.dcerpc.DceRpc5Response(_pkt, /, *, alloc_hint=0, cont_id=0, cancel_count=0, reserved=0)[source]

Bases: _DceRpcPayload

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           ALLOC HINT                          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            CONT ID            |  CANCEL COUNT |    RESERVED   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                       Fig. DceRpc5Response                       
DceRpc5Response fields

alloc_hint

_EField

0

cont_id

_EField

0

cancel_count

ByteField

0

reserved

ByteField

0

class scapy.layers.dcerpc.DceRpc5Result(_pkt, /, *, result=0, reason=0, transfer_syntax=None)[source]

Bases: EPacket

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             RESULT            |             REASON            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|        TRANSFER SYNTAX        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                        Fig. DceRpc5Result                        
DceRpc5Result fields

result

_EField

0

reason

_EField

0

transfer_syntax

EPacketField

None

class scapy.layers.dcerpc.DceRpc5TransferSyntax(_pkt, /, *, if_uuid=None, if_version=3)[source]

Bases: EPacket

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                            IF UUID                            |
+                                                               +
|                                                               |
+                                                               +
|                                                               |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           IF VERSION                          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                    Fig. DceRpc5TransferSyntax                    
DceRpc5TransferSyntax fields

if_uuid

_EField

None

if_version

_EField

3

class scapy.layers.dcerpc.DceRpc5Version(_pkt, /, *, major=0, minor=0)[source]

Bases: EPacket

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     MAJOR     |     MINOR     |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                       Fig. DceRpc5Version                        
DceRpc5Version fields

major

ByteField

0

minor

ByteField

0

class scapy.layers.dcerpc.DceRpcInterface(name, uuid, version_tuple, if_version, opnums)[source]

Bases: object

class scapy.layers.dcerpc.DceRpcOp(request, response)[source]

Bases: tuple

request

Alias for field number 0

response

Alias for field number 1

class scapy.layers.dcerpc.DceRpcSecVT(_pkt, /, *, rpc_sec_verification_trailer=b'\x8a\xe3\x13q\x02\xf46q', commands=[])[source]

Bases: 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                  RPC SEC VERIFICATION TRAILER                 |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            COMMANDS           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                         Fig. DceRpcSecVT                         
DceRpcSecVT fields

rpc_sec_verification_trailer

XStrFixedLenField

b'\x8a\xe3\x13q\x02\xf46q'

commands

PacketListField

[]

class scapy.layers.dcerpc.DceRpcSecVTBitmask(_pkt, /, *, bits=1)[source]

Bases: Packet

aliastypes
default_payload_class(pkt)[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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                              BITS                             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                     Fig. DceRpcSecVTBitmask                      
DceRpcSecVTBitmask fields

bits

LEIntField

1

class scapy.layers.dcerpc.DceRpcSecVTCommand(_pkt, /, *, SEC_VT_MUST_PROCESS_COMMAND=0, SEC_VT_COMMAND_END=0, Command=0, Length=None)[source]

Bases: 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|S|S|          COMMAND          |             LENGTH            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                     Fig. DceRpcSecVTCommand                      
DceRpcSecVTCommand fields

SEC_VT_MUST_PROCESS_COMMAND

BitField (1 bit)

0

SEC_VT_COMMAND_END

BitField (1 bit)

0

Command

BitEnumField

0

Length

LEShortField

None

guess_payload_class(payload)[source]
class scapy.layers.dcerpc.DceRpcSecVTHeader2(_pkt, /, *, PTYPE=0, Reserved1=0, Reserved2=0, drep=0, call_id=0, p_cont_id=0, opnum=0)[source]

Bases: Packet

aliastypes
default_payload_class(pkt)[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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|     PTYPE     |   RESERVED1   |           RESERVED2           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                              DREP                             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                            CALL ID                            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           P CONT ID           |             OPNUM             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                     Fig. DceRpcSecVTHeader2                      
DceRpcSecVTHeader2 fields

PTYPE

ByteField

0

Reserved1

ByteField

0

Reserved2

LEShortField

0

drep

LEIntField

0

call_id

LEIntField

0

p_cont_id

LEShortField

0

opnum

LEShortField

0

class scapy.layers.dcerpc.DceRpcSecVTPcontext(_pkt, /, *, InterfaceId=None, Version=0, TransferSyntax=None, TransferVersion=0)[source]

Bases: Packet

aliastypes
default_payload_class(pkt)[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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                          INTERFACEID                          |
+                                                               +
|                                                               |
+                                                               +
|                                                               |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                            VERSION                            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                         TRANSFERSYNTAX                        |
+                                                               +
|                                                               |
+                                                               +
|                                                               |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                        TRANSFERVERSION                        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                     Fig. DceRpcSecVTPcontext                     
DceRpcSecVTPcontext fields

InterfaceId

UUIDEnumField

None

Version

LEIntField

0

TransferSyntax

UUIDEnumField

None

TransferVersion

LEIntField

0

class scapy.layers.dcerpc.DceRpcSession(*args, **kwargs)[source]

Bases: DefaultSession

A DCE/RPC session within a TCP socket.

in_pkt(pkt)[source]
out_pkt(pkt)[source]
process(pkt: Packet) Packet | None[source]
class scapy.layers.dcerpc.DceRpcSocket(*args, **kwargs)[source]

Bases: StreamSocket

A Wrapper around StreamSocket that uses a DceRpcSession

recv(x=None)[source]
send(x, **kwargs)[source]
class scapy.layers.dcerpc.NDRAlign(fld, align, padwith=None)[source]

Bases: _NDRAlign, ReversePadField

ReversePadField modified to fit NDR.

  • If no align size is specified, use the one from the inner field

  • Size is calculated from the beginning of the NDR stream

fld
class scapy.layers.dcerpc.NDRByteField(*args, **kwargs)[source]

Bases: _NDRLenField, ByteField

class scapy.layers.dcerpc.NDRConfFieldListField(*args, **kwargs)[source]

Bases: _NDRConfField, NDRFieldListField

NDR Conformant FieldListField

COUNT_FROM = True
class scapy.layers.dcerpc.NDRConfPacketListField(*args, **kwargs)[source]

Bases: _NDRConfField, _NDRPacketListField

NDR Conformant PacketListField

COUNT_FROM = True
class scapy.layers.dcerpc.NDRConfStrLenField(*args, **kwargs)[source]

Bases: _NDRConfField, _NDRValueOf, StrLenField

NDR Conformant StrLenField.

This is not a “string” per NDR, but an a conformant byte array (e.g. tower_octet_string)

CONFORMANT_STRING = True
LENGTH_FROM = True
class scapy.layers.dcerpc.NDRConfStrLenFieldUtf16(*args, **kwargs)[source]

Bases: _NDRConfField, _NDRValueOf, StrLenFieldUtf16, _NDRUtf16

NDR Conformant StrLenField.

See NDRConfLenStrField for comment.

CONFORMANT_STRING = True
LENGTH_FROM = True
ON_WIRE_SIZE_UTF16 = False
class scapy.layers.dcerpc.NDRConfVarFieldListField(*args, **kwargs)[source]

Bases: _NDRConfField, _NDRVarField, NDRFieldListField

NDR Conformant Varying FieldListField

COUNT_FROM = True
class scapy.layers.dcerpc.NDRConfVarPacketListField(*args, **kwargs)[source]

Bases: _NDRConfField, _NDRVarField, _NDRPacketListField

NDR Conformant Varying PacketListField

COUNT_FROM = True
class scapy.layers.dcerpc.NDRConfVarStrLenField(*args, **kwargs)[source]

Bases: _NDRConfField, _NDRVarField, _NDRValueOf, StrLenField

NDR Conformant Varying StrLenField

LENGTH_FROM = True
class scapy.layers.dcerpc.NDRConfVarStrLenFieldUtf16(*args, **kwargs)[source]

Bases: _NDRConfField, _NDRVarField, _NDRValueOf, StrLenFieldUtf16, _NDRUtf16

NDR Conformant Varying StrLenField

LENGTH_FROM = True
ON_WIRE_SIZE_UTF16 = False
class scapy.layers.dcerpc.NDRConfVarStrNullField(*args, **kwargs)[source]

Bases: _NDRConfField, _NDRVarField, _NDRValueOf, StrNullField

NDR Conformant Varying StrNullField

NULLFIELD = True
class scapy.layers.dcerpc.NDRConfVarStrNullFieldUtf16(*args, **kwargs)[source]

Bases: _NDRConfField, _NDRVarField, _NDRValueOf, StrNullFieldUtf16, _NDRUtf16

NDR Conformant Varying StrNullFieldUtf16

NULLFIELD = True
ON_WIRE_SIZE_UTF16 = False
class scapy.layers.dcerpc.NDRConformantArray(_pkt, /, *, max_count=None, value=None)[source]

Bases: _NDRPacket

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           MAX COUNT                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             VALUE             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                     Fig. NDRConformantArray                      
NDRConformantArray fields

max_count

MultipleTypeField (LELongField, LEIntField)

None

value

MultipleTypeField (PacketListField, FieldListField)

[]

class scapy.layers.dcerpc.NDRConformantString(_pkt, /, *, max_count=None, value=b'')[source]

Bases: _NDRPacket

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           MAX COUNT                           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             VALUE             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                     Fig. NDRConformantString                     
NDRConformantString fields

max_count

MultipleTypeField (LELongField, LEIntField)

None

value

StrField

b''

class scapy.layers.dcerpc.NDRConstructedType(fields)[source]

Bases: object

add_deferred_pointers(pkt, s)[source]
addfield(pkt, s, val)[source]
getfield(pkt, s)[source]
read_deferred_pointers(pkt, s)[source]
rec_check_deferral()[source]
class scapy.layers.dcerpc.NDRContextHandle(_pkt, /, *, attributes=0, uuid=b'')[source]

Bases: NDRPacket

ALIGNMENT = (4, 4)
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           ATTRIBUTES                          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                              UUID                             |
+                                                               +
|                                                               |
+                                                               +
|                                                               |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                      Fig. NDRContextHandle                       
NDRContextHandle fields

attributes

LEIntField

0

uuid

StrFixedLenField

b''

guess_payload_class(payload)[source]
class scapy.layers.dcerpc.NDRFieldListField(*args, **kwargs)[source]

Bases: NDRConstructedType, FieldListField

A FieldListField for NDR

i2len(pkt, x)[source]
islist = 1
valueof(pkt, x)[source]
class scapy.layers.dcerpc.NDRFullPointerField(fld, deferred=False, fmt='I')[source]

Bases: _FieldContainer

A NDR Full/Unique pointer field encapsulation.

Parameters:

deferred – This pointer is deferred. This means that it’s representation will not appear after the pointer. See [C706] 14.3.12.3 - Algorithm for Deferral of Referents

EMBEDDED = False
addfield(pkt, s, val)[source]
any2i(pkt, x)[source]
fld
getfield(pkt, s)[source]
h2i(pkt, x)[source]
i2h(pkt, x)[source]
i2len(pkt, x)[source]
i2repr(pkt, val)[source]
valueof(pkt, x)[source]
class scapy.layers.dcerpc.NDRIEEEDoubleField(*args, **kwargs)[source]

Bases: _NDRField

ALIGN = (8, 8)
FMT = 'd'
class scapy.layers.dcerpc.NDRIEEEFloatField(*args, **kwargs)[source]

Bases: _NDRField

ALIGN = (4, 4)
FMT = 'f'
class scapy.layers.dcerpc.NDRInt3264EnumField(*args, **kwargs)[source]

Bases: NDRAlign

fld
class scapy.layers.dcerpc.NDRInt3264Field(*args, **kwargs)[source]

Bases: _NDRLenField

FMTS = ['I', 'Q']
addfield(pkt, s, val)[source]
getfield(pkt, s)[source]
class scapy.layers.dcerpc.NDRIntEnumField(*args, **kwargs)[source]

Bases: _NDRValueOf, NDRAlign

fld
class scapy.layers.dcerpc.NDRIntField(*args, **kwargs)[source]

Bases: _NDRField

ALIGN = (4, 4)
FMT = 'I'
class scapy.layers.dcerpc.NDRLongField(*args, **kwargs)[source]

Bases: _NDRField

ALIGN = (8, 8)
FMT = 'Q'
class scapy.layers.dcerpc.NDRPacket(_pkt, /)[source]

Bases: _NDRPacket

A NDR Packet. Handles pointer size & endianness

ALIGNMENT = (1, 1)
DEPORTED_CONFORMANTS = []
aliastypes
class scapy.layers.dcerpc.NDRPacketField(name, default, pkt_cls, **kwargs)[source]

Bases: NDRConstructedType, NDRAlign

addfield(pkt, s, x)[source]
fld
getfield(pkt, x)[source]
class scapy.layers.dcerpc.NDRPointer(_pkt, /, *, referent_id=None, value=None)[source]

Bases: _NDRPacket

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                          REFERENT ID                          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             VALUE             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                         Fig. NDRPointer                          
NDRPointer fields

referent_id

MultipleTypeField (XLELongField, XLEIntField)

1

value

PacketField

None

class scapy.layers.dcerpc.NDRRecursiveField(name, fmt='I')[source]

Bases: Field

A special Field that is used for pointer recursion

addfield(pkt, s, val)[source]
getfield(pkt, s)[source]
class scapy.layers.dcerpc.NDRRefEmbPointerField(fld, deferred=False, fmt='I')[source]

Bases: NDRFullPointerField

A NDR Embedded Reference pointer

EMBEDDED = True
fld
class scapy.layers.dcerpc.NDRSerialization1Header(_pkt, /, *, Version=1, Endianness=16, CommonHeaderLength=8, Filler=3435973836)[source]

Bases: 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    |   ENDIANNESS  |       COMMONHEADERLENGTH      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                             FILLER                            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                   Fig. NDRSerialization1Header                   
NDRSerialization1Header fields

Version

ByteField

1

Endianness

ByteEnumField

16

CommonHeaderLength

LEShortField

8

Filler

XLEIntField

3435973836

class scapy.layers.dcerpc.NDRSerialization1PrivateHeader(_pkt, /, *, ObjectBufferLength=0, Filler=0)[source]

Bases: 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                       OBJECTBUFFERLENGTH                      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                             FILLER                            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

               Fig. NDRSerialization1PrivateHeader                
NDRSerialization1PrivateHeader fields

ObjectBufferLength

EField

0

Filler

XLEIntField

0

class scapy.layers.dcerpc.NDRSerializeType1PacketField(*args, **kwargs)[source]

Bases: _NDRSerializeType1, PacketField

ptr
class scapy.layers.dcerpc.NDRSerializeType1PacketLenField(*args, **kwargs)[source]

Bases: _NDRSerializeType1, PacketLenField

ptr
class scapy.layers.dcerpc.NDRSerializeType1PacketListField(*args, **kwargs)[source]

Bases: _NDRSerializeType1, PacketListField

ptr
class scapy.layers.dcerpc.NDRShortField(*args, **kwargs)[source]

Bases: _NDRField

ALIGN = (2, 2)
FMT = 'H'
class scapy.layers.dcerpc.NDRSignedByteField(*args, **kwargs)[source]

Bases: _NDRLenField, SignedByteField

class scapy.layers.dcerpc.NDRSignedInt3264Field(*args, **kwargs)[source]

Bases: NDRInt3264Field

FMTS = ['i', 'q']
class scapy.layers.dcerpc.NDRSignedIntField(*args, **kwargs)[source]

Bases: _NDRField

ALIGN = (4, 4)
FMT = 'i'
class scapy.layers.dcerpc.NDRSignedLongField(*args, **kwargs)[source]

Bases: _NDRField

ALIGN = (8, 8)
FMT = 'q'
class scapy.layers.dcerpc.NDRSignedShortField(*args, **kwargs)[source]

Bases: _NDRField

ALIGN = (2, 2)
FMT = 'h'
class scapy.layers.dcerpc.NDRUnion(_pkt, /, *, tag=0, value=None)[source]

Bases: _NDRPacket

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                              TAG                              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             VALUE             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                          Fig. NDRUnion                           
NDRUnion fields

tag

IntField

0

value

PacketField

None

class scapy.layers.dcerpc.NDRUnionField(flds, dflt, align, switch_fmt)[source]

Bases: NDRConstructedType, _NDRUnionField

align
any2i(pkt, x)[source]
switch_fmt
class scapy.layers.dcerpc.NDRVarPacketListField(*args, **kwargs)[source]

Bases: _NDRVarField, _NDRPacketListField

NDR Varying PacketListField. Unused

COUNT_FROM = True
class scapy.layers.dcerpc.NDRVarStrLenField(*args, **kwargs)[source]

Bases: _NDRVarField, StrLenField

NDR Varying StrLenField

LENGTH_FROM = True
class scapy.layers.dcerpc.NDRVarStrLenFieldUtf16(*args, **kwargs)[source]

Bases: _NDRVarField, _NDRValueOf, StrLenFieldUtf16, _NDRUtf16

NDR Varying StrLenField

LENGTH_FROM = True
ON_WIRE_SIZE_UTF16 = False
class scapy.layers.dcerpc.NDRVaryingArray(_pkt, /, *, offset=None, actual_count=None, value=None)[source]

Bases: _NDRPacket

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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                             OFFSET                            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                          ACTUAL COUNT                         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             VALUE             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                       Fig. NDRVaryingArray                       
NDRVaryingArray fields

offset

MultipleTypeField (LELongField, LEIntField)

0

actual_count

MultipleTypeField (LELongField, LEIntField)

None

value

PacketField

None

class scapy.layers.dcerpc.NL_AUTH_MESSAGE(_pkt, /, *, MessageType=0, Flags=<Flag 0 ()>, NetbiosDomainName=b'', NetbiosComputerName=b'', DnsDomainName=b'.', DnsHostName=b'.', NetbiosComputerNameUtf8=b'.')[source]

Bases: 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                          MESSAGETYPE                          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                             FLAGS                             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|       NETBIOSDOMAINNAME       |      NETBIOSCOMPUTERNAME      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|         DNSDOMAINNAME         |          DNSHOSTNAME          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    NETBIOSCOMPUTERNAMEUTF8    |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                       Fig. NL_AUTH_MESSAGE                       
NL_AUTH_MESSAGE fields

MessageType

LEIntEnumField

0

Flags

FlagsField

<Flag 0 ()>

NetbiosDomainName

StrNullField (Cond)

b''

NetbiosComputerName

StrNullField (Cond)

b''

DnsDomainName

DNSStrField (Cond)

b'.'

DnsHostName

DNSStrField (Cond)

b'.'

NetbiosComputerNameUtf8

DNSStrField (Cond)

b'.'

class scapy.layers.dcerpc.NL_AUTH_SIGNATURE(_pkt, /, *, SignatureAlgorithm=119, SealAlgorithm=65535, Pad=65535, Flags=0, SequenceNumber=b'', Checksum=b'', Confounder=b'', Reserved2=None)[source]

Bases: 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|       SIGNATUREALGORITHM      |         SEALALGORITHM         |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|              PAD              |             FLAGS             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                         SEQUENCENUMBER                        |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                            CHECKSUM                           |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           CONFOUNDER                          |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           RESERVED2           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                      Fig. NL_AUTH_SIGNATURE                      
NL_AUTH_SIGNATURE fields

SignatureAlgorithm

LEShortEnumField

119

SealAlgorithm

LEShortEnumField

65535

Pad

XLEShortField

65535

Flags

ShortField

0

SequenceNumber

XStrFixedLenField

b''

Checksum

XStrFixedLenField

b''

Confounder

XStrFixedLenField (Cond)

b''

Reserved2

MultipleTypeField (StrFixedLenField, StrField)

b''

class scapy.layers.dcerpc.RPC_C_AUTHN(value, names=None, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source]

Bases: IntEnum

CLOUD_AP = 36
DCE_PRIVATE = 1
DCE_PUBLIC = 2
DEC_PUBLIC = 4
DEFAULT = 4294967295
DIGEST = 21
DPA = 17
GSS_KERBEROS = 16
GSS_NEGOTIATE = 9
GSS_SCHANNEL = 14
KERNEL = 20
LIVEXP_SSP = 35
LIVE_SSP = 32
MQ = 100
MSN = 18
MSONLINE = 82
NEGO_EXTENDED = 30
NETLOGON = 68
NONE = 0
PKU2U = 31
WINNT = 10
class scapy.layers.dcerpc.RPC_C_AUTHN_LEVEL(value, names=None, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source]

Bases: IntEnum

CALL = 3
CONNECT = 2
DEFAULT = 0
NONE = 1
PKT = 4
PKT_INTEGRITY = 5
PKT_PRIVACY = 6
scapy.layers.dcerpc.find_dcerpc_interface(name)[source]

Find an interface object through the name in the IDL

scapy.layers.dcerpc.ndr_deserialize1(b, cls, ndr64=False)[source]

Deserialize Type Serialization Version 1 according to [MS-RPCE] sect 2.2.6

scapy.layers.dcerpc.ndr_serialize1(pkt)[source]

Serialize Type Serialization Version 1

scapy.layers.dcerpc.register_com_interface(name, uuid, opnums)[source]

Register a COM interface

scapy.layers.dcerpc.register_dcerpc_interface(name, uuid, version, opnums)[source]

Register a DCE/RPC interface