Merge pull request 'classified' (#3) from classified into master
Reviewed-on: #3
This commit is contained in:
commit
34d3fbb350
3 changed files with 77 additions and 14 deletions
12
.gitignore
vendored
12
.gitignore
vendored
|
@ -6,21 +6,9 @@ crda-*
|
|||
*.puml
|
||||
*.txt
|
||||
*.csv
|
||||
clients.txt
|
||||
clients.csv
|
||||
essid.txt
|
||||
ssids.txt
|
||||
ssid.txt
|
||||
key2pub.py
|
||||
db.txt
|
||||
wireless-regdb*
|
||||
example.ipynb
|
||||
aps.txt
|
||||
APs.txt
|
||||
APS.txt
|
||||
db.txt
|
||||
ct_results.csv
|
||||
ct_aps.csv
|
||||
config.ini
|
||||
share/*
|
||||
### Generated by gibo (https://github.com/simonwhitaker/gibo)
|
||||
|
|
14
ctiger.py
14
ctiger.py
|
@ -14,7 +14,7 @@ import argparse
|
|||
from scapy.sendrecv import sniff
|
||||
from scapy.sendrecv import AsyncSniffer
|
||||
from scapy.sendrecv import sendp
|
||||
from scapy.sendrecv import sr1
|
||||
from scapy.sendrecv import srp1
|
||||
from scapy.layers.dot11 import Dot11Beacon
|
||||
from scapy.layers.dot11 import Dot11
|
||||
from scapy.layers.dot11 import Dot11Elt
|
||||
|
@ -204,6 +204,16 @@ def PRN2(pkt):
|
|||
# ███████║ ██║ ██║ ██║██║ ██║██║██║ ╚████║███████╗██║ ██║
|
||||
# ╚══════╝ ╚═╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚═╝ ╚═══╝╚══════╝╚═╝ ╚═╝
|
||||
# ----------------------------------------------------------------
|
||||
# print("ToDS:", frame.FCfield & 0b1 != 0)
|
||||
# print("MF:", frame.FCfield & 0b10 != 0)
|
||||
# print("WEP:", frame.FCfield & 0b01000000 != 0)
|
||||
# print("src MAC:", frame.addr2)
|
||||
# print("dest MAC:", frame.addr1)
|
||||
# print("BSSID:", frame.addr3)
|
||||
# print("Duration ID:", frame.ID)
|
||||
# print("Sequence Control:", frame.SC)
|
||||
# print(feature(frame))
|
||||
# print("\n")
|
||||
def strainer(pkt) -> None:
|
||||
if pkt[Dot11].type == 0 and pkt[Dot11].subtype == 4:
|
||||
bssid = pkt[Dot11FCS].addr2
|
||||
|
@ -214,7 +224,7 @@ def strainer(pkt) -> None:
|
|||
addr2=macaddr,
|
||||
ID=65535)
|
||||
log.debug('Sending RTS frame to {0} with type 11'.format(bssid))
|
||||
res = sr1(new_pkt, timeout=3, verbose=0, retry=0)
|
||||
res = srp1(new_pkt, timeout=3, verbose=0, retry=0)
|
||||
if res:
|
||||
if res[Dot11].type == 1 and res[Dot11].subtype == 12:
|
||||
log.debug('Recieved CTS packet.')
|
||||
|
|
65
probe-iterator.py
Normal file
65
probe-iterator.py
Normal file
|
@ -0,0 +1,65 @@
|
|||
from netaddr.core import NotRegisteredError
|
||||
from netaddr import *
|
||||
from scapy.all import *
|
||||
import logging
|
||||
import logging.handlers
|
||||
|
||||
PROBE_REQUEST_TYPE=0
|
||||
PROBE_REQUEST_SUBTYPE=4
|
||||
|
||||
WHITELIST = ['18:dc:56:f0:40:40','34:a3:95:b1:2b:d9','48:13:7e:57:ae:b6','98:0c:a5:17:7d:2d']
|
||||
my_logger = logging.getLogger('agentlogger')
|
||||
handler = logging.handlers.RotatingFileHandler('tplink3022.log', mode='a', maxBytes=1048576, backupCount=10, encoding=None, delay=0)
|
||||
my_logger.addHandler(handler)
|
||||
|
||||
|
||||
def PacketHandler(pkt):
|
||||
if pkt.haslayer(Dot11):
|
||||
if pkt.type==PROBE_REQUEST_TYPE and pkt.subtype == PROBE_REQUEST_SUBTYPE:
|
||||
PrintPacket(pkt)
|
||||
|
||||
|
||||
def mac_info(mac):
|
||||
global macf
|
||||
maco = EUI(mac)
|
||||
try:
|
||||
macf = maco.oui.registration().org
|
||||
except NotRegisteredError:
|
||||
macf = "Not available"
|
||||
return macf
|
||||
|
||||
|
||||
def PrintPacket(pkt):
|
||||
print("Probe Request Captured:")
|
||||
try:
|
||||
extra = pkt.notdecoded
|
||||
except:
|
||||
extra = None
|
||||
if extra!=None:
|
||||
signal_strength = -(256-ord(extra[-4:-3]))
|
||||
else:
|
||||
signal_strength = -100
|
||||
print("No signal strength found")
|
||||
mac_info(pkt.addr2)
|
||||
print("Time: %s Source: %s SSID: %s MANF: %s RSSi: %d"%(pkt.time,pkt.addr2,pkt.getlayer(Dot11ProbeReq).info,macf,signal_strength))
|
||||
|
||||
str = "%s,%s,%s,%s,%d\n"%(pkt.time,pkt.addr2,pkt.getlayer(Dot11ProbeReq).info,macf,signal_strength)
|
||||
WriteToFile(str)
|
||||
|
||||
|
||||
def WriteToFile(str):
|
||||
my_logger.warn(str)
|
||||
|
||||
|
||||
def main():
|
||||
from datetime import datetime
|
||||
print("[%s] Starting scan"%datetime.now())
|
||||
print("Scanning :")
|
||||
try:
|
||||
sniff(iface=sys.argv[1],prn=PacketHandler,count=0,store=0)
|
||||
except:
|
||||
print('[!] Eroor : Failed to initialize sniffing')
|
||||
|
||||
|
||||
if __name__=="__main__":
|
||||
main()
|
Loading…
Reference in a new issue