ошибка ключа scapy: RSNinfo

#python #scapy

Вопрос:

поэтому я пытался запустить следующий пример кода для подделки подключения wlan:

     from scapy.all import Dot11,Dot11Beacon,Dot11Elt,RadioTap,sendp,hexdump
    
    netSSID = 'testSSID'       #Network name here
    iface = 'wlan0mon'         #Interface name here
    
    dot11 = Dot11(type=0, subtype=8, addr1='ff:ff:ff:ff:ff:ff',
    addr2='22:22:22:22:22:22', addr3='33:33:33:33:33:33')
    beacon = Dot11Beacon(cap='ESS privacy')
    essid = Dot11Elt(ID='SSID',info=netSSID, len=len(netSSID))
    rsn = Dot11Elt(ID='RSNinfo', info=(
    'x01x00'                 #RSN Version 1
    'x00x0fxacx02'         #Group Cipher Suite : 00-0f-ac TKIP
    'x02x00'                 #2 Pairwise Cipher Suites (next two lines)
    'x00x0fxacx04'         #AES Cipher
    'x00x0fxacx02'         #TKIP Cipher
    'x01x00'                 #1 Authentication Key Managment Suite (line below)
    'x00x0fxacx02'         #Pre-Shared Key
    'x00x00'))               #RSN Capabilities (no extra capabilities)
    
    frame = RadioTap()/dot11/beacon/essid/rsn
    
    frame.show()
    print("nHexdump of frame:")
    hexdump(frame)
    raw_input("nPress enter to startn")
    
    sendp(frame, iface=iface, inter=0.100, loop=1)
 

и я получил следующую ошибку.

     Traceback (most recent call last):
      File "test.py", line 11, in <module>
        rsn = Dot11Elt(ID='RSNinfo', info=(
      File "/home/dani/Desktop/scapy/scapy/base_classes.py", line 266, in __call__
        i.__init__(*args, **kargs)
      File "/home/dani/Desktop/scapy/scapy/packet.py", line 164, in __init__
        self.fields[fname] = self.get_field(fname).any2i(self, value)
      File "/home/dani/Desktop/scapy/scapy/fields.py", line 1808, in any2i
        return self.any2i_one(pkt, x)
      File "/home/dani/Desktop/scapy/scapy/fields.py", line 1787, in any2i_one
        x = self.s2i[x]
    KeyError: 'RSNinfo'
 

Во всех примерах кодов я вижу, что используется «RSNinfo», так почему же он здесь не распознается?
Если это что-то изменит, я использую ubuntu 20.4 и пробовал работать как с python 2, так и с 3.

Ответ №1:

Теперь он называется «RSN» вместо «RSNinfo»: https://github.com/secdev/scapy/blob/c731e1f7fe52d9448e1c6333d098cadc339bc131/scapy/layers/dot11.py#L836