Compare commits
2 commits
b7864a537e
...
2aca8df967
Author | SHA1 | Date | |
---|---|---|---|
![]() |
2aca8df967 | ||
![]() |
6160948d05 |
1 changed files with 6 additions and 4 deletions
10
listener.py
10
listener.py
|
@ -26,7 +26,7 @@ target_ap_bssid = None
|
|||
beacon_counts = defaultdict(int)
|
||||
current_channel = None
|
||||
include_probes = False
|
||||
deadpoint_candidates = set()
|
||||
# deadpoint_candidates = set()
|
||||
unlinked_candidates = set()
|
||||
bssid_channels = {}
|
||||
|
||||
|
@ -108,7 +108,6 @@ def handle_packet(pkt):
|
|||
beacon_counts[a2] += 1
|
||||
if beacon_counts[a2] > 1:
|
||||
aps.add(a2)
|
||||
deadpoint_candidates.add(a2)
|
||||
ssid = parse_ssid(pkt)
|
||||
if ssid:
|
||||
ssid_map[a2] = ssid
|
||||
|
@ -166,7 +165,7 @@ def write_csv(outfile):
|
|||
"NumberofBSSIDsOnSSID": "N/A",
|
||||
"NumberofChannelsOnSSID": "N/A",
|
||||
"UnlinkedDevices": len(unlinked_candidates),
|
||||
"Deadpoints": len([ap for ap in deadpoint_candidates if is_deadpoint(ap)])
|
||||
"Deadpoints": len([ap for ap in aps if is_deadpoint(ap)])
|
||||
}
|
||||
|
||||
new_file = not os.path.exists(outfile)
|
||||
|
@ -211,7 +210,7 @@ def print_suspect_aps():
|
|||
ssid = ssid_map.get(bssid, "<unknown>")
|
||||
flags = []
|
||||
if any(kw in ssid.lower() for kw in keywords):
|
||||
flags.append("Suspicious SSID")
|
||||
flags.append("Likely non-AP")
|
||||
if is_deadpoint(bssid):
|
||||
flags.append("Deadpoint")
|
||||
if flags:
|
||||
|
@ -234,6 +233,9 @@ def channel_hopper(interface):
|
|||
time.sleep(CHANNEL_HOP_INTERVAL)
|
||||
|
||||
def is_deadpoint(ap_bssid):
|
||||
# Once again for debugging, pretty-print APs with no clients
|
||||
if ap_bssid not in ap_clients:
|
||||
print(f"[!] Deadpoint detected: {ap_bssid} (no clients)")
|
||||
return sum(ap_clients[ap_bssid].values()) < 2 # No meaningful client interaction
|
||||
|
||||
# === Main ===
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue