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.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 = [<class 'scapy.layers.dcerpc.CommonAuthVerifier'>, <class 'scapy.packet.Packet'>]
- fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ByteEnumField (CommonAuthVerifier).auth_type>, <ByteEnumField (CommonAuthVerifier).auth_level>, <ByteField (CommonAuthVerifier).auth_pad_length>, <ByteField (CommonAuthVerifier).auth_reserved>, <XLEIntField (CommonAuthVerifier).auth_context_id>, <scapy.fields.MultipleTypeField object>]
- class scapy.layers.dcerpc.DCERPC_Transport(*values)[source]
Bases:
IntEnumProtocols identifiers currently supported by Scapy
- NCACN_IP_TCP = 7
- NCACN_NP = 15
- scapy.layers.dcerpc.DCE_C_AUTHN_LEVEL[source]
alias of
RPC_C_AUTHN_LEVEL
- class scapy.layers.dcerpc.DceRpc(_pkt, /)[source]
Bases:
PacketDCE/RPC packet
- aliastypes = [<class 'scapy.layers.dcerpc.DceRpc'>, <class 'scapy.packet.Packet'>]
- 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:
DceRpcDCE/RPC v4 ‘connection-less’ packet
- aliastypes = [<class 'scapy.layers.dcerpc.DceRpc4'>, <class 'scapy.layers.dcerpc.DceRpc'>, <class 'scapy.packet.Packet'>]
- fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ByteEnumField (DceRpc4).rpc_vers>, <ByteEnumField (DceRpc4).ptype>, <FlagsField (DceRpc4).flags1>, <FlagsField (DceRpc4).flags2>, <BitEnumField (DceRpc4,DceRpc5).endian>, <BitEnumField (DceRpc4,DceRpc5).encoding>, <ByteEnumField (DceRpc4,DceRpc5).float>, <ByteField (DceRpc4,DceRpc5).reserved1>, <XByteField (DceRpc4).serial_hi>, <scapy.layers.dcerpc._EField object>, <scapy.layers.dcerpc._EField object>, <scapy.layers.dcerpc._EField object>, <scapy.layers.dcerpc._EField object>, <scapy.layers.dcerpc._EField object>, <scapy.layers.dcerpc._EField object>, <scapy.layers.dcerpc._EField object>, <scapy.layers.dcerpc._EField object>, <scapy.layers.dcerpc._EField object>, <scapy.layers.dcerpc._EField object>, <scapy.layers.dcerpc._EField object>, <ByteEnumField (DceRpc4).auth_proto>, <XByteField (DceRpc4).serial_lo>]
- class scapy.layers.dcerpc.DceRpc4Payload(_pkt, /)[source]
Bases:
PacketDummy class which use the dispatch_hook to find the payload class
- aliastypes = [<class 'scapy.layers.dcerpc.DceRpc4Payload'>, <class 'scapy.packet.Packet'>]
- 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:
DceRpcDCE/RPC v5 ‘connection-oriented’ packet
- aliastypes = [<class 'scapy.layers.dcerpc.DceRpc5'>, <class 'scapy.layers.dcerpc.DceRpc'>, <class 'scapy.packet.Packet'>]
- fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ByteEnumField (DceRpc5).rpc_vers>, <ByteField (DceRpc5).rpc_vers_minor>, <ByteEnumField (DceRpc5).ptype>, <scapy.fields.MultipleTypeField object>, <BitEnumField (DceRpc4,DceRpc5).endian>, <BitEnumField (DceRpc4,DceRpc5).encoding>, <ByteEnumField (DceRpc4,DceRpc5).float>, <ByteField (DceRpc4,DceRpc5).reserved1>, <ByteField (DceRpc5).reserved2>, <scapy.layers.dcerpc._EField object>, <scapy.layers.dcerpc._EField object>, <scapy.layers.dcerpc._EField object>, <scapy.fields.ConditionalField object>, <scapy.fields.ConditionalField object>, <scapy.fields.TrailerField object>]
- payload_guess: List[Tuple[Dict[str, Any], Type[Packet]]] = [({'ptype': 11}, <class 'scapy.layers.dcerpc.DceRpc5Bind'>), ({'ptype': 12}, <class 'scapy.layers.dcerpc.DceRpc5BindAck'>), ({'ptype': 13}, <class 'scapy.layers.dcerpc.DceRpc5BindNak'>), ({'ptype': 14}, <class 'scapy.layers.dcerpc.DceRpc5AlterContext'>), ({'ptype': 15}, <class 'scapy.layers.dcerpc.DceRpc5AlterContextResp'>), ({'ptype': 16}, <class 'scapy.layers.dcerpc.DceRpc5Auth3'>), ({'ptype': 3}, <class 'scapy.layers.dcerpc.DceRpc5Fault'>), ({'ptype': 0}, <class 'scapy.layers.dcerpc.DceRpc5Request'>), ({'ptype': 2}, <class 'scapy.layers.dcerpc.DceRpc5Response'>)]
- class scapy.layers.dcerpc.DceRpc5AbstractSyntax(_pkt, /, *, if_uuid=None, if_version=3)[source]
Bases:
EPacket- aliastypes = [<class 'scapy.layers.dcerpc.DceRpc5AbstractSyntax'>, <class 'scapy.contrib.rtps.common_types.EPacket'>, <class 'scapy.packet.Packet'>]
- 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 = [<class 'scapy.layers.dcerpc.DceRpc5AlterContext'>, <class 'scapy.layers.dcerpc._DceRpcPayload'>, <class 'scapy.packet.Packet'>]
- fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<scapy.layers.dcerpc._EField object>, <scapy.layers.dcerpc._EField object>, <scapy.layers.dcerpc._EField object>, <scapy.layers.dcerpc._EField object>, <StrFixedLenField (DceRpc5Bind,DceRpc5AlterContext).reserved>, <EPacketListField (DceRpc5Bind,DceRpc5AlterContext).context_elem>]
- 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 = [<class 'scapy.layers.dcerpc.DceRpc5AlterContextResp'>, <class 'scapy.layers.dcerpc._DceRpcPayload'>, <class 'scapy.packet.Packet'>]
- fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<scapy.layers.dcerpc._EField object>, <scapy.layers.dcerpc._EField object>, <scapy.layers.dcerpc._EField object>, <scapy.fields.PadField object>, <scapy.layers.dcerpc._EField object>, <StrFixedLenField (DceRpc5BindAck,DceRpc5AlterContextResp).reserved>, <EPacketListField (DceRpc5BindAck,DceRpc5AlterContextResp).results>]
- class scapy.layers.dcerpc.DceRpc5Auth3(_pkt, /, *, pad=b'')[source]
Bases:
Packet- aliastypes = [<class 'scapy.layers.dcerpc.DceRpc5Auth3'>, <class 'scapy.packet.Packet'>]
- 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 = [<class 'scapy.layers.dcerpc.DceRpc5Bind'>, <class 'scapy.layers.dcerpc._DceRpcPayload'>, <class 'scapy.packet.Packet'>]
- fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<scapy.layers.dcerpc._EField object>, <scapy.layers.dcerpc._EField object>, <scapy.layers.dcerpc._EField object>, <scapy.layers.dcerpc._EField object>, <StrFixedLenField (DceRpc5Bind,DceRpc5AlterContext).reserved>, <EPacketListField (DceRpc5Bind,DceRpc5AlterContext).context_elem>]
- 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 = [<class 'scapy.layers.dcerpc.DceRpc5BindAck'>, <class 'scapy.layers.dcerpc._DceRpcPayload'>, <class 'scapy.packet.Packet'>]
- fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<scapy.layers.dcerpc._EField object>, <scapy.layers.dcerpc._EField object>, <scapy.layers.dcerpc._EField object>, <scapy.fields.PadField object>, <scapy.layers.dcerpc._EField object>, <StrFixedLenField (DceRpc5BindAck,DceRpc5AlterContextResp).reserved>, <EPacketListField (DceRpc5BindAck,DceRpc5AlterContextResp).results>]
- class scapy.layers.dcerpc.DceRpc5BindNak(_pkt, /, *, provider_reject_reason=0, n_protocols=None, protocols=[], signature=None)[source]
Bases:
_DceRpcPayload- aliastypes = [<class 'scapy.layers.dcerpc.DceRpc5BindNak'>, <class 'scapy.layers.dcerpc._DceRpcPayload'>, <class 'scapy.packet.Packet'>]
- class scapy.layers.dcerpc.DceRpc5Context(_pkt, /, *, cont_id=0, n_transfer_syn=None, reserved=0, abstract_syntax=None, transfer_syntaxes=[])[source]
Bases:
EPacket- aliastypes = [<class 'scapy.layers.dcerpc.DceRpc5Context'>, <class 'scapy.contrib.rtps.common_types.EPacket'>, <class 'scapy.packet.Packet'>]
- 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 = [<class 'scapy.layers.dcerpc.DceRpc5Fault'>, <class 'scapy.layers.dcerpc._DceRpcPayload'>, <class 'scapy.packet.Packet'>]
- class scapy.layers.dcerpc.DceRpc5PortAny(_pkt, /, *, length=None, port_spec=b'')[source]
Bases:
EPacket- aliastypes = [<class 'scapy.layers.dcerpc.DceRpc5PortAny'>, <class 'scapy.contrib.rtps.common_types.EPacket'>, <class 'scapy.packet.Packet'>]
- class scapy.layers.dcerpc.DceRpc5Request(_pkt, /, *, alloc_hint=0, cont_id=0, opnum=0, object=None)[source]
Bases:
_DceRpcPayload- aliastypes = [<class 'scapy.layers.dcerpc.DceRpc5Request'>, <class 'scapy.layers.dcerpc._DceRpcPayload'>, <class 'scapy.packet.Packet'>]
- class scapy.layers.dcerpc.DceRpc5Response(_pkt, /, *, alloc_hint=0, cont_id=0, cancel_count=0, reserved=0)[source]
Bases:
_DceRpcPayload- aliastypes = [<class 'scapy.layers.dcerpc.DceRpc5Response'>, <class 'scapy.layers.dcerpc._DceRpcPayload'>, <class 'scapy.packet.Packet'>]
- class scapy.layers.dcerpc.DceRpc5Result(_pkt, /, *, result=0, reason=0, transfer_syntax=None)[source]
Bases:
EPacket- aliastypes = [<class 'scapy.layers.dcerpc.DceRpc5Result'>, <class 'scapy.contrib.rtps.common_types.EPacket'>, <class 'scapy.packet.Packet'>]
- class scapy.layers.dcerpc.DceRpc5TransferSyntax(_pkt, /, *, if_uuid=None, if_version=3)[source]
Bases:
EPacket- aliastypes = [<class 'scapy.layers.dcerpc.DceRpc5TransferSyntax'>, <class 'scapy.contrib.rtps.common_types.EPacket'>, <class 'scapy.packet.Packet'>]
- class scapy.layers.dcerpc.DceRpc5Version(_pkt, /, *, major=0, minor=0)[source]
Bases:
EPacket- aliastypes = [<class 'scapy.layers.dcerpc.DceRpc5Version'>, <class 'scapy.contrib.rtps.common_types.EPacket'>, <class 'scapy.packet.Packet'>]
- 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 = [<class 'scapy.layers.dcerpc.DceRpcSecVT'>, <class 'scapy.packet.Packet'>]
- class scapy.layers.dcerpc.DceRpcSecVTBitmask(_pkt, /, *, bits=1)[source]
Bases:
Packet- aliastypes = [<class 'scapy.layers.dcerpc.DceRpcSecVTBitmask'>, <class 'scapy.packet.Packet'>]
- 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 = [<class 'scapy.layers.dcerpc.DceRpcSecVTCommand'>, <class 'scapy.packet.Packet'>]
- 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 = [<class 'scapy.layers.dcerpc.DceRpcSecVTHeader2'>, <class 'scapy.packet.Packet'>]
- fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<ByteField (DceRpcSecVTHeader2).PTYPE>, <ByteField (DceRpcSecVTHeader2).Reserved1>, <LEShortField (DceRpcSecVTHeader2).Reserved2>, <LEIntField (DceRpcSecVTHeader2).drep>, <LEIntField (DceRpcSecVTHeader2).call_id>, <LEShortField (DceRpcSecVTHeader2).p_cont_id>, <LEShortField (DceRpcSecVTHeader2).opnum>]
- class scapy.layers.dcerpc.DceRpcSecVTPcontext(_pkt, /, *, InterfaceId=None, Version=0, TransferSyntax=None, TransferVersion=0)[source]
Bases:
Packet- aliastypes = [<class 'scapy.layers.dcerpc.DceRpcSecVTPcontext'>, <class 'scapy.packet.Packet'>]
- class scapy.layers.dcerpc.DceRpcSession(*args, **kwargs)[source]
Bases:
DefaultSessionA DCE/RPC session within a TCP socket.
- MAX_PDU_BODY_SIZE = 4176
- rpc_bind_interface: DceRpcInterface | ComInterface
- rpc_bind_is_com: bool
- class scapy.layers.dcerpc.DceRpcSocket(*args, **kwargs)[source]
Bases:
StreamSocketA Wrapper around StreamSocket that uses a DceRpcSession
- class scapy.layers.dcerpc.NDRAlign(fld, align, padwith=None)[source]
Bases:
_NDRAlign,ReversePadFieldReversePadField 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.NDRConfFieldListField(*args, **kwargs)[source]
Bases:
_NDRConfField,NDRFieldListFieldNDR Conformant FieldListField
- COUNT_FROM = True
- class scapy.layers.dcerpc.NDRConfPacketListField(*args, **kwargs)[source]
Bases:
_NDRConfField,_NDRPacketListFieldNDR Conformant PacketListField
- COUNT_FROM = True
- class scapy.layers.dcerpc.NDRConfStrLenField(*args, **kwargs)[source]
Bases:
_NDRConfField,_NDRValueOf,StrLenFieldNDR Conformant StrLenField.
This is not a “string” per NDR, but an a conformant byte array (e.g. tower_octet_string). For ease of use, we implicitly convert it in specific cases.
- CONFORMANT_STRING = True
- LENGTH_FROM = True
- class scapy.layers.dcerpc.NDRConfStrLenFieldUtf16(*args, **kwargs)[source]
Bases:
_NDRConfField,_NDRValueOf,StrLenFieldUtf16,_NDRUtf16NDR Conformant StrLenFieldUtf16.
See NDRConfStrLenField for comment.
- CONFORMANT_STRING = True
- LENGTH_FROM = True
- ON_WIRE_SIZE_UTF16 = False
- class scapy.layers.dcerpc.NDRConfVarFieldListField(*args, **kwargs)[source]
Bases:
_NDRConfField,_NDRVarField,NDRFieldListFieldNDR Conformant Varying FieldListField
- COUNT_FROM = True
- class scapy.layers.dcerpc.NDRConfVarPacketListField(*args, **kwargs)[source]
Bases:
_NDRConfField,_NDRVarField,_NDRPacketListFieldNDR Conformant Varying PacketListField
- COUNT_FROM = True
- class scapy.layers.dcerpc.NDRConfVarStrLenField(*args, **kwargs)[source]
Bases:
_NDRConfField,_NDRVarField,_NDRValueOf,StrLenFieldNDR Conformant Varying StrLenField
- LENGTH_FROM = True
- class scapy.layers.dcerpc.NDRConfVarStrLenFieldUtf16(*args, **kwargs)[source]
Bases:
_NDRConfField,_NDRVarField,_NDRValueOf,StrLenFieldUtf16,_NDRUtf16NDR Conformant Varying StrLenFieldUtf16
- LENGTH_FROM = True
- ON_WIRE_SIZE_UTF16 = False
- class scapy.layers.dcerpc.NDRConfVarStrNullField(*args, **kwargs)[source]
Bases:
_NDRConfField,_NDRVarField,_NDRValueOf,StrNullFieldNDR Conformant Varying StrNullField
- NULLFIELD = True
- class scapy.layers.dcerpc.NDRConfVarStrNullFieldUtf16(*args, **kwargs)[source]
Bases:
_NDRConfField,_NDRVarField,_NDRValueOf,StrNullFieldUtf16,_NDRUtf16NDR 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 = [<class 'scapy.layers.dcerpc.NDRConformantArray'>, <class 'scapy.layers.dcerpc._NDRPacket'>, <class 'scapy.packet.Packet'>]
- class scapy.layers.dcerpc.NDRConformantString(_pkt, /, *, max_count=None, value=b'')[source]
Bases:
_NDRPacket- aliastypes = [<class 'scapy.layers.dcerpc.NDRConformantString'>, <class 'scapy.layers.dcerpc._NDRPacket'>, <class 'scapy.packet.Packet'>]
- class scapy.layers.dcerpc.NDRContextHandle(_pkt, /, *, attributes=0, uuid=b'')[source]
Bases:
NDRPacket- ALIGNMENT = (4, 4)
- aliastypes = [<class 'scapy.layers.dcerpc.NDRContextHandle'>, <class 'scapy.layers.dcerpc.NDRPacket'>, <class 'scapy.layers.dcerpc._NDRPacket'>, <class 'scapy.packet.Packet'>]
- class scapy.layers.dcerpc.NDRFieldListField(*args, **kwargs)[source]
Bases:
NDRConstructedType,FieldListFieldA FieldListField for NDR
- islist = 1
- class scapy.layers.dcerpc.NDRFullEmbPointerField(fld, ref=False, fmt='I')[source]
Bases:
NDRFullPointerFieldA NDR Embedded Full pointer.
Same as NDRFullPointerField with EMBEDDED = True.
- EMBEDDED = True
- fld
- class scapy.layers.dcerpc.NDRFullPointerField(fld, ref=False, fmt='I')[source]
Bases:
_FieldContainerA NDR Full/Unique pointer field encapsulation.
- Parameters:
EMBEDDED – This pointer is embedded. This means that it’s representation will not appear after the pointer (pointer deferral applies). See [C706] 14.3.12.3 - Algorithm for Deferral of Referents
- EMBEDDED = False
- EMBEDDED_REF = False
- fld
- 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.NDRInt3264Field(*args, **kwargs)[source]
Bases:
_NDRLenField- FMTS = ['I', 'Q']
- 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.NDRNone(_pkt, /, *, ptr=0)[source]
Bases:
NDRPacket- ALIGNMENT = (4, 8)
- aliastypes = [<class 'scapy.layers.dcerpc.NDRNone'>, <class 'scapy.layers.dcerpc.NDRPacket'>, <class 'scapy.layers.dcerpc._NDRPacket'>, <class 'scapy.packet.Packet'>]
- class scapy.layers.dcerpc.NDRPacket(_pkt, /)[source]
Bases:
_NDRPacketA NDR Packet. Handles pointer size & endianness
- ALIGNMENT = (1, 1)
- DEPORTED_CONFORMANTS = []
- aliastypes = [<class 'scapy.layers.dcerpc.NDRPacket'>, <class 'scapy.layers.dcerpc._NDRPacket'>, <class 'scapy.packet.Packet'>]
- class scapy.layers.dcerpc.NDRPacketField(name, default, pkt_cls, **kwargs)[source]
Bases:
NDRConstructedType,NDRAlign- fld
- class scapy.layers.dcerpc.NDRPointer(_pkt, /, *, referent_id=None, value=None)[source]
Bases:
_NDRPacket- aliastypes = [<class 'scapy.layers.dcerpc.NDRPointer'>, <class 'scapy.layers.dcerpc._NDRPacket'>, <class 'scapy.packet.Packet'>]
- scapy.layers.dcerpc.NDRRecursiveClass(clsname)[source]
Return a special class that is used for pointer recursion
- class scapy.layers.dcerpc.NDRRefEmbPointerField(fld, ref=False, fmt='I')[source]
Bases:
NDRFullPointerFieldA NDR Embedded Reference pointer.
Same as NDRFullPointerField with EMBEDDED = True and EMBEDDED_REF = True.
- EMBEDDED = True
- EMBEDDED_REF = True
- fld
- class scapy.layers.dcerpc.NDRSerialization1Header(_pkt, /, *, Version=1, Endianness=16, CommonHeaderLength=8, Filler=3435973836)[source]
Bases:
Packet- aliastypes = [<class 'scapy.layers.dcerpc.NDRSerialization1Header'>, <class 'scapy.packet.Packet'>]
- class scapy.layers.dcerpc.NDRSerialization1PrivateHeader(_pkt, /, *, ObjectBufferLength=0, Filler=0)[source]
Bases:
Packet- aliastypes = [<class 'scapy.layers.dcerpc.NDRSerialization1PrivateHeader'>, <class 'scapy.packet.Packet'>]
- class scapy.layers.dcerpc.NDRSerializeType1PacketField(*args, **kwargs)[source]
Bases:
_NDRSerializeType1,PacketField- ptr_pack
- class scapy.layers.dcerpc.NDRSerializeType1PacketLenField(*args, **kwargs)[source]
Bases:
_NDRSerializeType1,PacketLenField- ptr_pack
- class scapy.layers.dcerpc.NDRSerializeType1PacketListField(*args, **kwargs)[source]
Bases:
_NDRSerializeType1,PacketListField- ptr_pack
- 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 = [<class 'scapy.layers.dcerpc.NDRUnion'>, <class 'scapy.layers.dcerpc._NDRPacket'>, <class 'scapy.packet.Packet'>]
- class scapy.layers.dcerpc.NDRUnionField(flds, dflt, align, switch_fmt)[source]
Bases:
NDRConstructedType,_NDRUnionField- align
- switch_fmt
- class scapy.layers.dcerpc.NDRVarPacketListField(*args, **kwargs)[source]
Bases:
_NDRVarField,_NDRPacketListFieldNDR Varying PacketListField. Unused
- COUNT_FROM = True
- class scapy.layers.dcerpc.NDRVarStrLenField(*args, **kwargs)[source]
Bases:
_NDRVarField,StrLenFieldNDR Varying StrLenField
- LENGTH_FROM = True
- class scapy.layers.dcerpc.NDRVarStrLenFieldUtf16(*args, **kwargs)[source]
Bases:
_NDRVarField,_NDRValueOf,StrLenFieldUtf16,_NDRUtf16NDR Varying StrLenFieldUtf16
- LENGTH_FROM = True
- ON_WIRE_SIZE_UTF16 = False
- class scapy.layers.dcerpc.NDRVarStrNullField(*args, **kwargs)[source]
Bases:
_NDRVarField,_NDRValueOf,StrNullFieldNDR Varying StrNullField
- NULLFIELD = True
- class scapy.layers.dcerpc.NDRVarStrNullFieldUtf16(*args, **kwargs)[source]
Bases:
_NDRVarField,_NDRValueOf,StrNullFieldUtf16,_NDRUtf16NDR Varying StrNullFieldUtf16
- NULLFIELD = True
- class scapy.layers.dcerpc.NDRVaryingArray(_pkt, /, *, offset=None, actual_count=None, value=None)[source]
Bases:
_NDRPacket- aliastypes = [<class 'scapy.layers.dcerpc.NDRVaryingArray'>, <class 'scapy.layers.dcerpc._NDRPacket'>, <class 'scapy.packet.Packet'>]
- 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 = [<class 'scapy.layers.dcerpc.NL_AUTH_MESSAGE'>, <class 'scapy.packet.Packet'>]
- fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<LEIntEnumField (NL_AUTH_MESSAGE).MessageType>, <FlagsField (NL_AUTH_MESSAGE).Flags>, <scapy.fields.ConditionalField object>, <scapy.fields.ConditionalField object>, <scapy.fields.ConditionalField object>, <scapy.fields.ConditionalField object>, <scapy.fields.ConditionalField object>]
- 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 = [<class 'scapy.layers.dcerpc.NL_AUTH_SIGNATURE'>, <class 'scapy.packet.Packet'>]
- fields_desc: ClassVar[List[Field[Any, Any] | _FieldContainer]] = [<LEShortEnumField (NL_AUTH_SIGNATURE).SignatureAlgorithm>, <LEShortEnumField (NL_AUTH_SIGNATURE).SealAlgorithm>, <XLEShortField (NL_AUTH_SIGNATURE).Pad>, <ShortField (NL_AUTH_SIGNATURE).Flags>, <XStrFixedLenField (NL_AUTH_SIGNATURE).SequenceNumber>, <XStrFixedLenField (NL_AUTH_SIGNATURE).Checksum>, <scapy.fields.ConditionalField object>, <scapy.fields.MultipleTypeField object>]
- class scapy.layers.dcerpc.RPC_C_AUTHN(*values)[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(*values)[source]
Bases:
IntEnum- CALL = 3
- CONNECT = 2
- DEFAULT = 0
- NONE = 1
- PKT = 4
- PKT_INTEGRITY = 5
- PKT_PRIVACY = 6
- class scapy.layers.dcerpc.RPC_C_IMP_LEVEL(*values)[source]
Bases:
IntEnum- ANONYMOUS = 1
- DEFAULT = 0
- DELEGATE = 4
- IDENTIFY = 2
- IMPERSONATE = 3
- scapy.layers.dcerpc.find_com_interface(name) ComInterface[source]
Find an interface object through the name in the IDL
- scapy.layers.dcerpc.find_dcerpc_interface(name) DceRpcInterface[source]
Find an interface object through the name in the IDL
- scapy.layers.dcerpc.ndr_deserialize1(b, cls, ptr_pack=False)[source]
Deserialize Type Serialization Version 1 [MS-RPCE] sect 2.2.6
- Parameters:
ptr_pack – pack in a pointer to the structure.