scapy.contrib.vtp

VTP Scapy Extension

version

2009-02-15

copyright

2009 by Jochen Bartl

e-mail

lobo@c3a.de / jochen.bartl@gmail.com

license

GPL v2

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

TODO
  • Join messages

  • RE MD5 hash calculation

  • Have a closer look at 8 byte padding in summary adv:

    “debug sw-vlan vtp packets” says the TLV length is invalid, when I change the values:

    b'\x00\x00\x00\x01\x06\x01\x00\x02'

    • x00x00 ?

    • x00x01 tlvtype?

    • x06 length?

    • x00x02 value?

  • h2i function for VTPTimeStampField

References
class scapy.contrib.vtp.VTP(*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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|      VER      |      CODE     |   FOLLOWERS   |      SEQ      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|    RESERVED   |   DOMNAMELEN  |            DOMNAME            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                              REV                              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                              UID                              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|           TIMESTAMP           |              MD5              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            VLANINFO           |           STARTVALUE          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                             Fig. VTP                             
VTP fields

ver

ByteField

'2'

code

ByteEnumField

'1'

followers

ByteField (Cond)

'1'

seq

ByteField (Cond)

'1'

reserved

ByteField (Cond)

'0'

domnamelen

ByteField

'None'

domname

StrFixedLenField

"b'manbearpig'"

rev

SignedIntField (Cond)

'0'

uid

IPField (Cond)

"'192.168.0.1'"

timestamp

VTPTimeStampField (Cond)

"b'930301000000'"

md5

StrFixedLenField (Cond)

"b'\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00'"

vlaninfo

PacketListField (Cond)

'[]'

startvalue

ShortField (Cond)

'0'

post_build(p, pay)
class scapy.contrib.vtp.VTPTimeStampField(*args, **kwds)

Bases: scapy.fields.StrFixedLenField

i2repr(pkt, x)
class scapy.contrib.vtp.VTPVlanInfo(*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      |     STATUS    |      TYPE     |  VLANNAMELEN  |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|             VLANID            |              MTU              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                           DOT10INDEX                          |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|            VLANNAME           |            TLVLIST            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                         Fig. VTPVlanInfo                         
VTPVlanInfo fields

len

ByteField

'None'

status

ByteEnumField

'0'

type

ByteEnumField

'1'

vlannamelen

FieldLenField

'None'

vlanid

ShortField

'1'

mtu

ShortField

'1500'

dot10index

XIntField

'None'

vlanname

StrLenField

"b'default'"

tlvlist

PacketListField (Cond)

'[]'

guess_payload_class(p)
post_build(p, pay)
class scapy.contrib.vtp.VTPVlanInfoTlv(*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     |     LENGTH    |             VALUE             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                       Fig. VTPVlanInfoTlv                        
VTPVlanInfoTlv fields

type

ByteEnumField

'0'

length

ByteField

'0'

value

StrLenField

'None'

guess_payload_class(p)