Obsah

Vytvoření Wi-Fi access pointu v Kali Linuxu

Vytvořeno: 17.5.2020

Poznámka k aktuálnosti: Toto je dobový článek. Postup, názvy rozhraní, dostupné balíčky i doporučené konfigurace nemusí odpovídat aktuálním verzím Kali Linuxu a současné praxi.

Tento postup se hodí ve chvíli, kdy je potřeba vytvořit vlastní Wi-Fi access point a přes něj analyzovat provoz připojených zařízení. Typický scénář je připojení telefonu do vlastní sítě, zachytávání komunikace například ve Wiresharku a následná analýza přenášených dat. Praktickým předpokladem je správně zprovozněná USB Wi-Fi karta v režimu AP nebo monitoring, viz navazující článek Kali Linux ve VirtualBoxu a připojení USB Wi-Fi karty.

Instalace hostapd a dnsmasq

Základ tvoří dva balíčky:

Bez běžícího DHCP klient obvykle skončí chybou, že mu nebyla přidělena IP adresa.

apt install hostapd dnsmasq

Přepnutí Wi-Fi karty do monitor režimu

Před spuštěním access pointu je v původním postupu Wi-Fi karta přepnuta do režimu monitor.

ifconfig wlan0 down
iwconfig wlan0 mode monitor
ifconfig wlan0 up

Konfigurace hostapd

Je potřeba připravit konfigurační soubor hostapd.conf. Níže jsou tři varianty podle původního článku.

Otevřená 2,4 GHz síť

interface=wlan0
driver=nl80211
ssid=FREEWIFI
hw_mode=g
channel=11
macaddr_acl=0
ignore_broadcast_ssid=0
ieee80211n=1
wme_enabled=1

5 GHz síť s WPA2

interface=wlan0
driver=nl80211
ssid=WIFINETWORK5
channel=40
macaddr_acl=0
ignore_broadcast_ssid=0
auth_algs=1
wpa=2
wpa_passphrase=password@!945
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
wpa_pairwise=CCMP
wpa_group_rekey=86400
ieee80211n=1
wme_enabled=1
 
logger_syslog=0
logger_syslog_level=0
preamble=1
 
## IEEE 802.11n
ieee80211n=1
country_code=CZ
ieee80211d=1
 
## IEEE 802.11a
hw_mode=a
 
## IEEE 802.11ac
ieee80211ac=1

2,4 GHz síť s WPA2

interface=wlan0
driver=nl80211
ssid=WIFINETWORK2
channel=9
macaddr_acl=0
ignore_broadcast_ssid=0
auth_algs=1
wpa=2
wpa_passphrase=password@!945
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
wpa_pairwise=CCMP
wpa_group_rekey=86400
ieee80211n=1
wme_enabled=1
 
logger_syslog=0
logger_syslog_level=0
preamble=1
 
## IEEE 802.11n
ieee80211n=1
country_code=CZ
ieee80211d=1
 
## IEEE 802.11g
hw_mode=g

Po výběru vhodné varianty lze hostapd spustit přímo nad připraveným konfiguračním souborem.

hostapd hostapd.conf

Nastavení dnsmasq

Soubor dnsmasq.conf může podle původního postupu vypadat takto:

interface=wlan0
dhcp-range=192.168.1.2,192.168.1.100,255.255.255.0,12h
dhcp-option=3,192.168.1.1
dhcp-option=6,192.168.1.1
server=8.8.8.8
log-queries
log-dhcp
listen-address=127.0.0.1

Spuštění démona:

dnsmasq -C dnsmasq.conf -d

Přidělení IP adresy a NAT přes iptables

V této fázi už běží hostapd i dnsmasq, ale je ještě potřeba:

ifconfig wlan0 up 192.168.1.1 netmask 255.255.255.0
route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1
 
iptables -F
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -i wlan0 -j ACCEPT
 
echo 1 > /proc/sys/net/ipv4/ip_forward

Tím se vytvoří jednoduchý NAT mezi wlan0 a eth0, takže klienti připojení do Wi-Fi mohou komunikovat dál do sítě.

Všechno v jednom skriptu

Pro zjednodušení lze celý postup spojit do jednoho skriptu. Původní řešení používá tmux, přičemž rozložení oken vychází i z ukázek Ask Ubuntu a Stack Overflow.

#!/bin/bash
 
# prepare wlan0 for monitoring mode
 
ifconfig wlan0 down
iwconfig wlan0 mode monitor
ifconfig wlan0 up
 
ifconfig wlan0 up 192.168.1.1 netmask 255.255.255.0
route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.1.1
 
iptables -F
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -i wlan0 -j ACCEPT
 
echo 1 > /proc/sys/net/ipv4/ip_forward
 
tmux new-session \; \
        send-keys 'hostapd -d '"\"$1\"" C-m \; \
        split-window -h \; \
        send-keys 'dnsmasq -C dnsmasq.conf -d' C-m \; \
        split-window -v \; \
        send-keys 'iw dev wlan0 station dump' C-m \;

Skript může být uložen například jako createAP. Jako povinný parametr dostává cestu ke konfiguraci hostapd.conf. Předpokládá také, že dnsmasq.conf je ve stejném adresáři jako skript.

./createAP hostapd.conf

Monitoring připojených zařízení a provozu

Pro rychlou kontrolu právě připojených klientů lze použít příkaz iw dev wlan0 station dump. Praktické ukázky k iw jsou dostupné v dokumentaci About iw - examples.

iw dev wlan0 station dump

Ukázka rozložení terminálů v tmux:

kali-tmux.jpg

V původním kontextu slouží tento setup hlavně k tomu, aby bylo možné:

Poznámka k ovladačům

Pokud konkrétní USB Wi-Fi karta nefunguje korektně v režimu AP, může být potřeba dořešit ovladače. V původních zdrojích je uveden i repozitář Zdrojový kód pro kompilaci ovladačů.

Zdroje