scapy.contrib.enipTCP
EtherNet/IP (Industrial Protocol)
Based on https://github.com/scy-phy/scapy-cip-enip EtherNet/IP Home: www.odva.org
- class scapy.contrib.enipTCP.BaseSendPacket(*args: Any, **kargs: Any)[source]
Bases:
scapy.packet.Packet
Abstract Class
- 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | INTERFACEHANDLE | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TIMEOUT | ENCAPSULATEDPACKET | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. BaseSendPacket
BaseSendPacket fields interfaceHandle
0
timeout
0
encapsulatedPacket
None
- class scapy.contrib.enipTCP.CommandSpecificData(*args: Any, **kargs: Any)[source]
Bases:
scapy.packet.Packet
Command Specific Data Field Default
- aliastypes
- class scapy.contrib.enipTCP.ENIPListIdentityReply(*args: Any, **kargs: Any)[source]
Bases:
scapy.packet.Packet
List Identity Command Field
- 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ITEMCOUNT | IDENTITYITEMS | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. ENIPListIdentityReply
ENIPListIdentityReply fields itemCount
0
identityItems
None
- class scapy.contrib.enipTCP.ENIPListIdentityReplyItems(*args: Any, **kargs: Any)[source]
Bases:
scapy.packet.Packet
List Identity Items Field
- 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ITEMTYPECODE | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ITEMLENGTH | ITEMDATA | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. ENIPListIdentityReplyItems
ENIPListIdentityReplyItems fields itemTypeCode
0
itemLength
0
itemData
b''
- class scapy.contrib.enipTCP.ENIPListInterfacesReply(*args: Any, **kargs: Any)[source]
Bases:
scapy.packet.Packet
List Interfaces Command Field
- 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ITEMCOUNT | IDENTITYITEMS | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. ENIPListInterfacesReply
ENIPListInterfacesReply fields itemCount
0
identityItems
0
- class scapy.contrib.enipTCP.ENIPListInterfacesReplyItems(*args: Any, **kargs: Any)[source]
Bases:
scapy.packet.Packet
List Interfaces Items Field
- 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ITEMTYPECODE | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ITEMLENGTH | ITEMDATA | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. ENIPListInterfacesReplyItems
ENIPListInterfacesReplyItems fields itemTypeCode
0
itemLength
0
itemData
b''
- class scapy.contrib.enipTCP.ENIPListServicesReply(*args: Any, **kargs: Any)[source]
Bases:
scapy.packet.Packet
List Services Command Field
- 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ITEMCOUNT | TARGETITEMS | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. ENIPListServicesReply
ENIPListServicesReply fields itemCount
0
targetItems
None
- class scapy.contrib.enipTCP.ENIPListServicesReplyItems(*args: Any, **kargs: Any)[source]
Bases:
scapy.packet.Packet
List Services Items Field
- 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ITEMTYPECODE | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ITEMLENGTH | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | VERSION | FLAG | SERVICENAME | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. ENIPListServicesReplyItems
ENIPListServicesReplyItems fields itemTypeCode
0
itemLength
0
version
1
flag
0
serviceName
None
- class scapy.contrib.enipTCP.ENIPRegisterSession(*args: Any, **kargs: Any)[source]
Bases:
scapy.contrib.enipTCP.CommandSpecificData
Register Session Command Field
- 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | PROTOCOLVERSION | OPTIONS | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. ENIPRegisterSession
ENIPRegisterSession fields protocolVersion
1
options
0
- class scapy.contrib.enipTCP.ENIPSendRRData(*args: Any, **kargs: Any)[source]
Bases:
scapy.contrib.enipTCP.BaseSendPacket
Send RR Data Command Field
- 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | INTERFACEHANDLE | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TIMEOUT | ENCAPSULATEDPACKET | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. ENIPSendRRData
ENIPSendRRData fields interfaceHandle
0
timeout
0
encapsulatedPacket
None
- class scapy.contrib.enipTCP.ENIPSendUnitData(*args: Any, **kargs: Any)[source]
Bases:
scapy.contrib.enipTCP.BaseSendPacket
Send Unit Data Command Field
- 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | INTERFACEHANDLE | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TIMEOUT | ENCAPSULATEDPACKET | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. ENIPSendUnitData
ENIPSendUnitData fields interfaceHandle
0
timeout
0
encapsulatedPacket
None
- class scapy.contrib.enipTCP.ENIPTCP(*args: Any, **kargs: Any)[source]
Bases:
scapy.packet.Packet
Ethernet/IP packet over TCP
- 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | COMMANDID | LENGTH | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SESSION | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | STATUS | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SENDERCONTEXT | + + | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | OPTIONS | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | COMMANDSPECIFICDATA | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. ENIPTCP
ENIPTCP fields commandId
None
length
0
session
0
status
None
senderContext
0
options
0
commandSpecificData
MultipleTypeField
(PacketField, PacketField, PacketField, PacketField, PacketField, PacketField, PacketField)None
- class scapy.contrib.enipTCP.EncapsulatedPacket(*args: Any, **kargs: Any)[source]
Bases:
scapy.packet.Packet
Encapsulated 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ITEMCOUNT | ITEM | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. EncapsulatedPacket
EncapsulatedPacket fields itemCount
2
item
[]
- class scapy.contrib.enipTCP.ItemData(*args: Any, **kargs: Any)[source]
Bases:
scapy.packet.Packet
Common Packet Format
- 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TYPEID | LENGTH | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | DATA | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Fig. ItemData
ItemData fields typeId
0
length
0
data
b''