如何从数据包中获取 SSID

How can I get SSID from packet

我有这个代码:

from scapy.all import *
packet = rdpcap("hand.pcap")[0]

现在,当我使用 print(packet) 时,我得到正常的字节数

b"\x00\x00\x18\x00+\x00\x00\x00\x19\x81\xea\x02\x00\x00\x00\x00\x10\x00l\t\x00\x00\xdb\x00\x80\x00\x00\x00\xff\xff\xff\xff\xff\xff\x06\xd6\xaa\xb0x\xe9\x06\xd6\xaa\xb0x\xe9\x80V\x8cAn\xa0\x01\x00\x00\x00d\x00\x11\x15\x00\nHuawei281s\x01\x08\x82\x84\x8b\x96[=11=]Hl\x03\x01\x01\x05\x04\x00\x02\x00\x00\x07\x06HR \x01\r\x14 \x01\x00#\x02\x13\x00*\x01\x022\x04\x0c\x12\x18`0\x14\x01\x00\x00\x0f\xac\x04\x01\x00\x00\x0f\xac\x04\x01\x00\x00\x0f\xac\x02\x0c\x00-\x1a\xad\x01\x1b\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00=\x16\x01\x00\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\x08\x04\x00\x08\x00\x00\x00\x00@\xdd\x05\x00\x162\x80\x00\xdd\x08\x00P\xf2\x11\x02\x00\x00\x00\xdd\x1e\x00\x90L\x04\x08\xbf\x0c\xb2y\x81\x0f\xfa\xff\x00\x00\xfa\xff\x00\x00\xc0\x05\x00\x01\x00\x00\x00\xc3\x02\x00\x02\xdd\t\x00\x10\x18\x02\x01\x00\x1c\x00\x00\xdd\x18\x00P\xf2\x02\x01\x01\x00\x00\x03\xa4\x00\x00'\xa4\x00\x00BC^\x00b2/\x00\xdd\x1d\x00\x90L\\x02\x01\n\x00\x08\x07\x01\x0f\x00\x00\x00\x00\x00\x01\n\x01\x01\x01\x01\x0f\x00\x00\x00\x00\x00d\x08\x06~"

当我使用 hexdump(packet) 我得到这个

0000  00 00 18 00 2B 00 00 00 19 81 EA 02 00 00 00 00  ....+...........
0010  10 00 6C 09 00 00 DB 00 80 00 00 00 FF FF FF FF  ..l.............
0020  FF FF 06 D6 AA B0 78 E9 06 D6 AA B0 78 E9 80 56  ......x.....x..V
0030  8C 41 6E A0 01 00 00 00 64 00 11 15 00 0A 48 75  .An.....d.....Hu
0040  61 77 65 69 32 38 31 73 01 08 82 84 8B 96 24 30  awei281s......[=12=]
0050  48 6C 03 01 01 05 04 00 02 00 00 07 06 48 52 20  Hl...........HR 
0060  01 0D 14 20 01 00 23 02 13 00 2A 01 02 32 04 0C  ... ..#...*..2..
0070  12 18 60 30 14 01 00 00 0F AC 04 01 00 00 0F AC  ..`0............
0080  04 01 00 00 0F AC 02 0C 00 2D 1A AD 01 1B FF FF  .........-......
0090  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................
00a0  00 00 00 00 00 3D 16 01 00 17 00 00 00 00 00 00  .....=..........
00b0  00 00 00 00 00 00 00 00 00 00 00 00 00 7F 08 04  ................
00c0  00 08 00 00 00 00 40 DD 05 00 16 32 80 00 DD 08  ......@....2....
00d0  00 50 F2 11 02 00 00 00 DD 1E 00 90 4C 04 08 BF  .P..........L...
00e0  0C B2 79 81 0F FA FF 00 00 FA FF 00 00 C0 05 00  ..y.............
00f0  01 00 00 00 C3 02 00 02 DD 09 00 10 18 02 01 00  ................
0100  1C 00 00 DD 18 00 50 F2 02 01 01 00 00 03 A4 00  ......P.........
0110  00 27 A4 00 00 42 43 5E 00 62 32 2F 00 DD 1D 00  .'...BC^.b2/....
0120  90 4C 5C 02 01 0A 00 08 07 01 0F 00 00 00 00 00  .L\.............
0130  01 0A 01 01 01 01 0F 00 00 00 00 00 64 08 06 7E  ............d..~

里面是我的SSID,名称为Huawei281s,被盗

当我使用print(packet.show) 我明白了

<bound method Packet.show of <RadioTap  version=0 pad=0 len=24 present=TSFT+Flags+Channel+dBm_AntSignal mac_timestamp=48922905 Flags=FCS ChannelFrequency=2412 ChannelFlags= dBm_AntSignal=-37dBm notdecoded='\x00' |<Dot11FCS  subtype=8 type=Management proto=0 FCfield= ID=0 addr1=ff:ff:ff:ff:ff:ff addr2=06:d6:aa:b0:78:e9 addr3=06:d6:aa:b0:78:e9 SC=22144 fcs=0x7e060864 |<Dot11Beacon  timestamp=6986547596 beacon_interval=100 cap=res8+short-slot+res12+ESS+privacy |<Dot11Elt  ID=SSID len=10 info='Huawei281s' |<Dot11EltRates  ID=1 len=8 rates=[0x82, 0x84, 0x8b, 0x96, 0x24, 0x30, 0x48, 0x6c] |<Dot11Elt  ID=DSset len=1 info='\x01' |<Dot11Elt  ID=TIM len=4 info='\x00\x02\x00\x00' |<Dot11EltCountry  ID=7 len=6 country_string='HR ' descriptors=[<Dot11EltCountryConstraintTriplet  first_channel_number=1 num_channels=13 mtp=20 |>] pad=32 |<Dot11EltRates  ID=1 len=0 |<Dot11Elt  ID=35 len=2 info='\x13\x00' |<Dot11Elt  ID=ERPinfo len=1 info='\x02' |<Dot11Elt  ID=ESRates len=4 info='\x0c\x12\x18`' |<Dot11EltRSN  ID=48 len=20 version=1 group_cipher_suite=<RSNCipherSuite  oui=0xfac cipher=CCMP |> nb_pairwise_cipher_suites=1 pairwise_cipher_suites=[<RSNCipherSuite  oui=0xfac cipher=CCMP |>] nb_akm_suites=1 akm_suites=[<AKMSuite  oui=0xfac suite=PSK |>] mfp_capable=0 mfp_required=0 gtksa_replay_counter=0 ptksa_replay_counter=3 no_pairwise=0 pre_auth=0 reserved=0 |<Dot11Elt  ID=HTCapabilities len=26 info='\xad\x01\x1b\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' |<Dot11Elt  ID=HTinfo len=22 info='\x01\x00\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00' |<Dot11Elt  ID=ExtendendCapatibilities len=8 info='\x04\x00\x08\x00\x00\x00\x00@' |<Dot11EltVendorSpecific  ID=221 len=5 oui=0x1632 info='\x80\x00' |<Dot11EltVendorSpecific  ID=221 len=8 oui=0x50f2 info='\x11\x02\x00\x00\x00' |<Dot11EltVendorSpecific  ID=221 len=30 oui=0x904c info='\x04\x08\xbf\x0c\xb2y\x81\x0f\xfa\xff\x00\x00\xfa\xff\x00\x00\xc0\x05\x00\x01\x00\x00\x00\xc3\x02\x00\x02' |<Dot11EltVendorSpecific  ID=221 len=9 oui=0x1018 info='\x02\x01\x00\x1c\x00\x00' |<Dot11EltVendorSpecific  ID=221 len=24 oui=0x50f2 info="\x02\x01\x01\x00\x00\x03\xa4\x00\x00'\xa4\x00\x00BC^\x00b2/\x00" |<Dot11EltVendorSpecific  ID=221 len=29 oui=0x904c info='\\x02\x01\n\x00\x08\x07\x01\x0f\x00\x00\x00\x00\x00\x01\n\x01\x01\x01\x01\x0f\x00\x00\x00\x00\x00' |>>>>>>>>>>>>>>>>>>>>>>>

信息下有我的SSID print(type(packet.show)) 我得到

<class 'method'>

当我使用 packet.show() 时,我得到了一堆数据

###[ 802.11 Information Element ]### 
           ID        = SSID
           len       = 10
           info      = 'Huawei281s'

所以我想知道如何从数据包中提取我的 SSID

在这种特定情况下,您可以使用

packet[Dot11Beacon].network_stats()

但请查看 the doc 以获得更深入的教程。看来你还没有真正研究过 Scapy 的语法 :)