Privacy Tools Guide

Check your router’s connected devices list (usually at 192.168.1.1 or 192.168.0.1) and compare against known devices—unknown MAC addresses indicate unauthorized access. Monitor your internet speed and bandwidth usage; unauthorized users downloading large files will cause noticeable slowdowns. Enable router logging to track connection attempts and failed authentications. If you find unknown devices, change your WiFi password to a strong, randomly-generated one and use WPA3 encryption instead of WPA2 if supported.

Understanding WiFi Authentication Basics

WiFi networks protected with WPA2 or WPA3 use four-way handshake authentication. When a device connects, it exchanges cryptographic messages with the router that prove the device possesses the correct password—without actually transmitting the password over the air. A cracked password means someone has captured and processed this handshake to extract the credential.

The cracking process typically involves two approaches: brute force (trying every possible password combination) or dictionary attacks (testing common passwords or leaked credentials). Once cracked, attackers can access your network and everything connected to it.

Monitoring Connected Devices

The most straightforward detection method involves reviewing devices on your network. Your router maintains a table of connected clients with MAC addresses, IP assignments, and connection times.

Access your router’s administrative interface—usually at 192.168.0.1 or 192.168.1.1—and look for a “Connected Devices,” “DHCP Clients,” or “Wireless Clients” section. Compile a list of your known devices by MAC address:

# On Linux, find your router's IP and check connected ARP entries
router_ip=$(ip route | grep default | awk '{print $3}')
arp -a | grep "$router_ip" -B 1

Compare the current device list against your inventory. Unknown devices with manufacturer identifiers matching common device types (particularly smartphones or laptops) warrant investigation. Remember that MAC addresses can be spoofed, so this method catches casual intruders but not sophisticated attackers.

Analyzing Router Logs

Routers maintain logs that record connection attempts, authentication successes, and errors. Access these through the administrative panel, typically under “System Log,” “Security Log,” or “Advanced > Logs.”

Look for these indicators:

On many routers, you can export logs for analysis. Parse them programmatically to detect patterns:

import re
from datetime import datetime

def analyze_router_logs(log_content):
    failed_auth = re.findall(r'auth.*fail', log_content, re.IGNORECASE)
    new_devices = re.findall(r'new device.*?([0-9a-fA-F:]{17})', log_content)
    successful = re.findall(r'connected.*?([0-9a-fA-F:]{17})', log_content)

    return {
        'failed_attempts': len(failed_auth),
        'new_devices': set(new_devices),
        'total_connections': len(successful)
    }

# Example usage with captured log data
with open('router.log', 'r') as f:
    results = analyze_router_logs(f.read())
    print(f"Failed attempts: {results['failed_attempts']}")
    print(f"Unknown MACs: {results['new_devices']}")

Network Traffic Analysis

For deeper inspection, analyze network traffic flowing through your router. Tools like Wireshark or tcpdump on a monitoring interface can reveal patterns indicating unauthorized use.

Install tcpdump on a Linux machine with network monitoring capabilities:

# Capture traffic on wireless interface (requires monitor mode)
sudo tcpdump -i wlan0 -c 100 -w capture.pcap

Analyze the capture for unusual traffic patterns:

from scapy.all import rdpcap, TCP, IP

def analyze_network_traffic(pcap_file):
    packets = rdpcap(pcap_file)

    # Count connections per destination IP
    dest_ips = {}
    for pkt in packets:
        if IP in pkt:
            dst = pkt[IP].dst
            dest_ips[dst] = dest_ips.get(dst, 0) + 1

    # Identify high-traffic destinations
    suspicious = {ip: count for ip, count in dest_ips.items()
                  if count > 1000 and not ip.startswith('192.168.')}

    return suspicious

# Identify potential data exfiltration
anomalies = analyze_network_traffic('capture.pcap')
print("High traffic destinations:", anomalies)

This approach detects bandwidth-heavy activities like large downloads, streaming, or data transfers—activities you didn’t initiate.

Checking for Handshake Capture

If attackers are actively attempting to crack your password, they must capture the four-way handshake. Some modern routers and access points log when handshakes are captured by external monitoring tools.

Search router logs for entries mentioning “handshake,” “WPA handshake,” or “EAPOL.” Frequent handshake capture attempts indicate active reconnaissance:

grep -i "handshake" /var/log/router.log

On Linux systems with aircrack-ng installed, you can monitor for attack signatures:

# Monitor for deauthentication attacks (often precede handshake capture)
sudo airmon-ng start wlan0
sudo airodump-ng mon0

Deauthentication frames—legitimate parts of 802.11 but abused by attackers to force device reconnection and trigger new handshakes—appear in monitoring mode as repeated disassociation events.

Monitoring DNS and Internet Activity

Unusual DNS queries or internet traffic patterns reveal unauthorized network use. Set up Pi-hole as a local DNS server to log all queries:

# Install Pi-hole on a Raspberry Pi or Linux machine
curl -sSL https://install.pi-hole.net | bash

After installation, review query logs for domains you don’t recognize, particularly those associated with:

Similarly, monitor your bandwidth usage through your ISP’s portal or router statistics. Sudden spikes in data usage—particularly upload traffic—may indicate someone using your network for activities ranging from file sharing to hosting illicit services.

Practical Defense Strategies

Detection works alongside prevention. Implement these measures to reduce your attack surface:

  1. Use strong passwords: Minimum 16 characters with random characters, or use your password manager’s generator
  2. Enable WPA3: If your hardware supports it, WPA3 provides protection against offline dictionary attacks
  3. Disable WPS: WiFi Protected Setup contains known vulnerabilities that simplify cracking
  4. Update router firmware: Manufacturers patch security flaws regularly
  5. Segment your network: Create a guest network for IoT devices and visitors
  6. Enable router notifications: Many modern routers alert you to new device connections

Advanced Detection: Behavioral Analysis

Beyond simple device counting, sophisticated detection analyzes network behavior patterns that indicate compromise:

Protocol-Level Analysis

Unauthorized users often exhibit distinct network patterns:

from collections import defaultdict
import time

class NetworkBehaviorAnalyzer:
    def __init__(self):
        self.connections = defaultdict(list)
        self.traffic_patterns = {}

    def analyze_traffic_timing(self, packets):
        """Identify unusual network timing patterns."""
        for packet in packets:
            src_mac = packet['src_mac']
            timestamp = packet['timestamp']
            self.connections[src_mac].append(timestamp)

        suspicious_devices = []

        # Look for devices making connections at odd hours
        for mac, timestamps in self.connections.items():
            hours = [time.localtime(ts).tm_hour for ts in timestamps]

            # If device is active 3AM-5AM regularly, it's suspicious
            night_activity = sum(1 for h in hours if h in [3, 4, 5])
            if night_activity > len(hours) * 0.3:
                suspicious_devices.append({
                    'mac': mac,
                    'reason': 'Unusual night activity',
                    'night_activity_ratio': night_activity / len(hours)
                })

        return suspicious_devices

    def analyze_bandwidth_patterns(self, traffic_data):
        """Identify bandwidth-intensive activities."""
        per_device = defaultdict(list)

        for entry in traffic_data:
            mac = entry['device_mac']
            bytes_sent = entry['bytes_out']
            per_device[mac].append(bytes_sent)

        anomalies = []

        # Detect devices using excessive bandwidth
        for mac, transfers in per_device.items():
            total_bytes = sum(transfers)
            avg_transfer = total_bytes / len(transfers) if transfers else 0

            # If a device averages >100MB per session, something's off
            if avg_transfer > 100_000_000:
                anomalies.append({
                    'mac': mac,
                    'reason': 'Excessive bandwidth',
                    'avg_transfer_mb': avg_transfer / 1_000_000
                })

        return anomalies

This analysis identifies behavioral patterns that distinguish legitimate devices from unauthorized ones.

DNS Query Clustering

Legitimate devices make predictable DNS queries (Google, Facebook, work services). Unauthorized users make different queries:

# Capture DNS queries and analyze patterns
tcpdump -i eth0 -n 'udp port 53' -w dns_capture.pcap

# Parse and analyze
python3 << 'EOF'
import pyshark

def analyze_dns_queries(pcap_file):
    cap = pyshark.FileCapture(pcap_file, display_filter='dns')

    domains = {}
    for packet in cap:
        if hasattr(packet, 'dns'):
            dns_layer = packet.dns
            if dns_layer.has('qry_name'):
                domain = dns_layer.qry_name.split('.')[0]  # TLD
                domains[domain] = domains.get(domain, 0) + 1

    # Suspicious domains unlikely to be queried by normal devices
    suspicious = ['tor', 'proxy', 'vpn', 'torrent', 'piracy']

    findings = []
    for domain, count in domains.items():
        if any(sus in domain for sus in suspicious):
            findings.append(f"Suspicious domain: {domain} ({count} queries)")

    return findings

print(analyze_dns_queries('dns_capture.pcap'))
EOF

Queries to Tor exit nodes, VPN services, or piracy sites indicate unauthorized network use.

Detecting Specific Attack Vectors

Different cracking methods leave different forensic traces:

Dictionary Attack Indicators

Dictionary attacks test common passwords repeatedly:

# Look for failed authentication patterns in logs
grep -i "auth.*fail" /var/log/router.log | \
  grep -o 'MAC.*' | \
  sort | uniq -c | sort -rn

# Many failures from same MAC = dictionary attack in progress

If a single MAC address shows 50+ failed authentications in an hour, someone is actively attacking your network with a dictionary.

Brute Force Attack Signatures

Brute force attempts use every possible password combination:

2026-03-16 14:23:01: Authentication failed - MAC [AA:BB:CC:DD:EE:FF]
2026-03-16 14:23:02: Authentication failed - MAC [AA:BB:CC:DD:EE:FF]
2026-03-16 14:23:03: Authentication failed - MAC [AA:BB:CC:DD:EE:FF]
2026-03-16 14:23:04: Authentication success - MAC [AA:BB:CC:DD:EE:FF]

The rapid-fire failures followed by success indicate a brute force completion. Modern routers should implement exponential backoff (increasing delay between attempts) to slow brute force attacks.

Handshake Capture Attempts

Attackers attempting to crack WPA passwords must capture handshakes:

2026-03-16 10:15:22: Disassociation packet received - client [XX:XX:XX]
2026-03-16 10:15:23: Deauthentication packet received - client [XX:XX:XX]
2026-03-16 10:15:24: Client reconnected - client [XX:XX:XX]

Deauthentication attacks (forcing device disconnections) in the logs indicate someone actively capturing handshakes.

Recovery Steps After Compromise

If you’ve confirmed unauthorized access:

Immediate Actions

  1. Change password immediately to a strong 20+ character random password
  2. Change WPA2/WPA3 password - do NOT reuse your previous password
  3. Reboot the router - forces disconnection of all connected devices
  4. Reboot modem - clears DHCP leases and disconnects ISP-level attacks

Verification Steps

# Confirm all unauthorized devices are disconnected
# Check DHCP client list after reboot
# Verify connected device count matches known devices

# Monitor network carefully for 24 hours
# Watch for unexpected data usage
# Monitor for new device connections

# Change passwords for all online accounts
# Attackers with network access might have captured credentials

Long-Term Hardening

# 1. Update router firmware immediately
curl http://192.168.1.1/cgi-bin/luci -v | grep -i version

# 2. Disable unnecessary features
# - Disable UPnP (allows automatic port forwarding)
# - Disable remote management
# - Disable WPS (WiFi Protected Setup)
# - Disable DDNS if not needed

# 3. Configure firewall rules
# Block outbound SMTP on port 25 (prevents botnet sending spam)
# Block common P2P ports if not needed
# Implement inbound stateful filtering

# 4. Enable encrypted SSH access to router
# Default telnet access is insecure

# 5. Implement VPN for device access
# If you need remote access, use OpenVPN, not direct router access

Estimating Damage from Compromise

If unauthorized access occurred, understand what attackers accessed:

Data Accessed Damage Assessment Recovery Action
Unencrypted traffic (HTTP) High - passwords, sessions, data visible Change all passwords, monitor accounts
HTTPS traffic Low - encrypted in transit Monitor for account compromise
Device IP addresses Medium - enables targeting Monitor devices, enable two-factor auth
Router admin password Critical - complete compromise Change immediately, reset router to factory defaults
WiFi password (WPA2) High - ongoing access Change immediately with strong password
DNS queries Medium - reveals browsing patterns Not recoverable, implement DNS over HTTPS
Connected devices list Low - limited usefulness alone Monitor for further compromise

The seriousness depends on what data was actually transmitted over the compromised network.

Professional Network Audits

For high-value networks, consider professional audits:

These services provide documented vulnerability assessments valuable for security hardening and legal proceedings if needed.

Built by theluckystrike — More at zovo.one