Compare commits

...

2 commits

Author SHA1 Message Date
Yaro Kasear
2aca8df967 Add debug print statement for deadpoints with no clients 2025-05-02 09:58:26 -05:00
Yaro Kasear
6160948d05 Refactor deadpoint candidate handling and update suspect AP flags 2025-05-02 09:56:07 -05:00

View file

@ -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 ===