#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