Compare commits

..

No commits in common. "2aca8df967f182483f9746fc7ab6246d20ca5d00" and "b7864a537eb39a03d73a97e5d312fdfa842237b4" have entirely different histories.

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,6 +108,7 @@ 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
@ -165,7 +166,7 @@ def write_csv(outfile):
"NumberofBSSIDsOnSSID": "N/A",
"NumberofChannelsOnSSID": "N/A",
"UnlinkedDevices": len(unlinked_candidates),
"Deadpoints": len([ap for ap in aps if is_deadpoint(ap)])
"Deadpoints": len([ap for ap in deadpoint_candidates if is_deadpoint(ap)])
}
new_file = not os.path.exists(outfile)
@ -210,7 +211,7 @@ def print_suspect_aps():
ssid = ssid_map.get(bssid, "<unknown>")
flags = []
if any(kw in ssid.lower() for kw in keywords):
flags.append("Likely non-AP")
flags.append("Suspicious SSID")
if is_deadpoint(bssid):
flags.append("Deadpoint")
if flags:
@ -233,9 +234,6 @@ 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 ===