scapy.contrib.mqtt

class scapy.contrib.mqtt.MQTT(*args, **kargs)

Bases: scapy.packet.Packet

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|  TYPE |D|QOS|R|              LEN              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                            Fig. MQTT                             
MQTT fields

type

BitEnumField (4 bits)

1

DUP

BitEnumField (1 bit)

0

QOS

BitEnumField (2 bits)

0

RETAIN

BitEnumField (1 bit)

0

len

VariableFieldLenField

None

payload_guess

Possible sublayers: MQTTConnack, MQTTConnect, MQTTPuback, MQTTPubcomp, MQTTPublish, MQTTPubrec, MQTTPubrel, MQTTSuback, MQTTSubscribe, MQTTUnsuback, MQTTUnsubscribe

class scapy.contrib.mqtt.MQTTConnack(*args, **kargs)

Bases: scapy.packet.Packet

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

                         Fig. MQTTConnack                         
MQTTConnack fields

sessPresentFlag

ByteField

0

retcode

ByteEnumField

0

payload_guess

Possible sublayers: MQTT

class scapy.contrib.mqtt.MQTTConnect(*args, **kargs)

Bases: scapy.packet.Packet

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             LENGTH            |           PROTONAME           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|   PROTOLEVEL  |U|P|W|WIL|W|C|R|             KLIVE             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|          CLIENTIDLEN          |            CLIENTID           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            WTOPLEN            |           WILLTOPIC           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            WMSGLEN            |            WILLMSG            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            USERLEN            |            USERNAME           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            PASSLEN            |            PASSWORD           |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                         Fig. MQTTConnect                         
MQTTConnect fields

length

FieldLenField

None

protoname

StrLenField

b''

protolevel

ByteEnumField

5

usernameflag

BitEnumField (1 bit)

0

passwordflag

BitEnumField (1 bit)

0

willretainflag

BitEnumField (1 bit)

0

willQOSflag

BitEnumField (2 bits)

0

willflag

BitEnumField (1 bit)

0

cleansess

BitEnumField (1 bit)

0

reserved

BitEnumField (1 bit)

0

klive

ShortField

0

clientIdlen

FieldLenField

None

clientId

StrLenField

b''

wtoplen

FieldLenField (Cond)

None

willtopic

StrLenField (Cond)

b''

wmsglen

FieldLenField (Cond)

None

willmsg

StrLenField (Cond)

b''

userlen

FieldLenField (Cond)

None

username

StrLenField (Cond)

b''

passlen

FieldLenField (Cond)

None

password

StrLenField (Cond)

b''

payload_guess

Possible sublayers: MQTT

class scapy.contrib.mqtt.MQTTPuback(*args, **kargs)

Bases: scapy.packet.Packet

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

                         Fig. MQTTPuback                          
MQTTPuback fields

msgid

ShortField

None

payload_guess

Possible sublayers: MQTT

class scapy.contrib.mqtt.MQTTPubcomp(*args, **kargs)

Bases: scapy.packet.Packet

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

                         Fig. MQTTPubcomp                         
MQTTPubcomp fields

msgid

ShortField

None

payload_guess

Possible sublayers: MQTT

class scapy.contrib.mqtt.MQTTPublish(*args, **kargs)

Bases: scapy.packet.Packet

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             LENGTH            |             TOPIC             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             MSGID             |             VALUE             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                         Fig. MQTTPublish                         
MQTTPublish fields

length

FieldLenField

None

topic

StrLenField

b''

msgid

ShortField (Cond)

None

value

StrLenField

b''

payload_guess

Possible sublayers: MQTT

class scapy.contrib.mqtt.MQTTPubrec(*args, **kargs)

Bases: scapy.packet.Packet

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

                         Fig. MQTTPubrec                          
MQTTPubrec fields

msgid

ShortField

None

payload_guess

Possible sublayers: MQTT

class scapy.contrib.mqtt.MQTTPubrel(*args, **kargs)

Bases: scapy.packet.Packet

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

                         Fig. MQTTPubrel                          
MQTTPubrel fields

msgid

ShortField

None

payload_guess

Possible sublayers: MQTT

class scapy.contrib.mqtt.MQTTSuback(*args, **kargs)

Bases: scapy.packet.Packet

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

                         Fig. MQTTSuback                          
MQTTSuback fields

msgid

ShortField

None

retcode

ByteEnumField

None

payload_guess

Possible sublayers: MQTT

class scapy.contrib.mqtt.MQTTSubscribe(*args, **kargs)

Bases: scapy.packet.Packet

aliastypes
fields_desc
Display RFC-like schema
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             MSGID             |             LENGTH            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             TOPIC             |      QOS      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                        Fig. MQTTSubscribe                        
MQTTSubscribe fields

msgid

ShortField

None

length

FieldLenField

None

topic

StrLenField

b''

QOS

ByteEnumField

0

payload_guess

Possible sublayers: MQTT

class scapy.contrib.mqtt.MQTTTopic(*args, **kargs)

Bases: scapy.packet.Packet

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

                          Fig. MQTTTopic                          
MQTTTopic fields

len

FieldLenField

None

topic

StrLenField

b''

guess_payload_class(payload)
class scapy.contrib.mqtt.MQTTUnsuback(*args, **kargs)

Bases: scapy.packet.Packet

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

                        Fig. MQTTUnsuback                         
MQTTUnsuback fields

msgid

ShortField

None

payload_guess

Possible sublayers: MQTT

class scapy.contrib.mqtt.MQTTUnsubscribe(*args, **kargs)

Bases: scapy.packet.Packet

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

                       Fig. MQTTUnsubscribe                       
MQTTUnsubscribe fields

msgid

ShortField

None

topics

PacketListField

[]

payload_guess

Possible sublayers: MQTT

class scapy.contrib.mqtt.RandVariableFieldLen

Bases: scapy.volatile.RandNum

class scapy.contrib.mqtt.VariableFieldLenField(name, default, length_of=None, fmt='H', count_of=None, adjust=<function FieldLenField.<lambda>>, fld=None)

Bases: scapy.fields.FieldLenField

addfield(pkt, s, val)
getfield(pkt, s)
randval()
scapy.contrib.mqtt.cb_topic(pkt, lst, cur, remain)

Decode the remaining bytes as a MQTT topic