
Offener Rogue-WLAN-AP zur Erfassung von Datenverkehr in kontrollierten Umgebungen. Verwendet hostapd (nativer nl80211-AP-Modus) + dnsmasq (DHCP/DNS) + iptables für NAT in Richtung einer Uplink-Schnittstelle.

iw phy → Supported interface modes: ... AP).hostapd, dnsmasq, iw, iptables, rfkill, wireshark.Bearbeite die Variablen am Anfang von fake_ap.sh.
INTERNET_IFACE — Uplink mit InternetDies ist die Schnittstelle, die bereits eine Standardroute besitzt (Ethernet, USB-Adapter, WLAN-Client usw.). Die Namen variieren je nach Rechner (eth0, enp3s0, wlp3s0, …).
ip route | grep default
# default via 192.168.1.1 dev enp3s0 ...
# ^^^^^^
# use this name
Setze INTERNET_IFACE auf die Schnittstelle nach dev.
AP_IFACE — WLAN-Karte für den Fake-APVerwende die physische WLAN-Schnittstelle aus iw dev. Häufig wlan0, es kann aber auch wlp2s0 oder Ähnliches sein.
iw dev
# phy#0
# Interface wlan0
# ^^^^^
# use this name
Wähle die Schnittstelle auf der phy, die den AP-Modus unterstützt (iw phy → Supported interface modes: ... AP). Verwende weder Docker-Brücken (docker0, br-*) noch virtuelle Schnittstellen (veth*).
FAKE_SSID="Free_Public_WiFi"
CHANNEL="6"
INTERNET_IFACE="enp3s0"
AP_IFACE="wlan0"
GATEWAY_IP="10.0.0.1"
sudo ./fake_ap.sh
Das Skript:
wlan0) im Managed-Modus auf der WLAN-phy.hostapd mit einer offenen SSID auf dem gewählten Kanal.dnsmasq (DHCP + DNS-Forwarder an 1.1.1.1 / 8.8.8.8).sudo journalctl -t dnsmasq -f # DHCP leases + every client DNS query
sudo wireshark -i wlan0 # capture client L3 traffic (use your AP_IFACE)
sudo iw dev wlan0 station dump # client L2 state (RSSI, rate, traffic)
cat /var/lib/misc/dnsmasq.leases # active leases
Öffne Wireshark auf deiner AP-Schnittstelle (z. B. wlan0) und wende den Anzeigefilter an, den du benötigst.
| Was du lernst | Filter |
|---|---|
| Nur SYN (neue TCP-Verbindungen) | tcp.flags.syn == 1 && tcp.flags.ack == 0 |
| Laufende TLS-Handshakes |
# one client's encrypted traffic + contacted domains
ip.src == 10.0.0.42 && (dns || tls.handshake.type == 1)
# passive phone model discovery
ip.src == 10.0.0.42 && (dhcp || mdns || ssdp || nbns)
# traffic to a specific domain (e.g. social)
tls.handshake.extensions_server_name contains "instagram"
# exclude broadcast/multicast noise
not (eth.dst == ff:ff:ff:ff:ff:ff) && not (ip.dst >= 224.0.0.0 && ip.dst <= 239.255.255.255)
sudo tshark -i wlan0 -Y 'tls.handshake.type==1 && ip.src==10.0.0.42' \
-T fields -e tls.handshake.extensions_server_name
sudo tcpdump -i wlan0 -w /tmp/capture.pcap
journalctl -t dnsmasq -f sichtbar.MIT — siehe LICENSE.
Verwende das Tool nur in Netzwerken und auf Geräten, die dir gehören oder für die du eine schriftliche Genehmigung zum Testen hast. Das Abfangen fremden Datenverkehrs ist illegal.
| Was du lernst | Filter |
|---|
| Hostname und Hersteller (DHCP-Optionen 12/55/60) | dhcp |
| Gerätename + Dienste (Bonjour/AirPlay/Chromecast) | mdns |
| Windows-Hostname / SMB | nbns |
| Gerätemodell (UPnP) | ssdp |
| Hersteller anhand der MAC-Adresse | eth.addr == aa:bb:cc:dd:ee:ff |
| Gesamter Datenverkehr eines Clients | ip.addr == 10.0.0.X |
| Was du lernst | Filter |
|---|
| Über DNS aufgelöste Domains | dns.qry.name |
| HTTPS-Domains (SNI im ClientHello) | tls.handshake.type == 1 |
| DNS-Antworten mit aufgelösten IPs | dns.flags.response == 1 |
| QUIC-Verbindungen (Google, YouTube, Meta) | quic |
| Unverschlüsseltes HTTP (vollständige URL) | http.request |
| User-Agent von App/Browser | http.user_agent |
tls.handshake |
| Große Übertragungen (HTTP/2 über TLS) | tcp.len > 1000 |
| ICMP (Diagnose-Pings des Clients) | icmp |
| Was du lernst | Filter |
|---|
| HTTP POST (Login auf http://-Seiten) | http.request.method == "POST" |
| FTP-Anmeldedaten | ftp.request.command in {"USER","PASS"} |
| Telnet | telnet |
| Unverschlüsseltes SMTP/IMAP/POP3 | `smtp |
| Auffällige Zeichenketten im Payload | frame contains "password" |