В данной статье мы поговорим про создание поддельной точки доступа. В рамках тестирования на проникновение возникает очень много вариантов использования поддельной точки доступа (Rogue AP, Fake AP) и они относятся в основном к реализации MitM атак посредством Fake AP.
Создаем открытую безпарольную точку доступа с названием копирующем известную сети или закрытую точку с таким же типом шифрования и паролем (предварительно перехваченным и расшифрованным с оригинальной точки доступа, как это сделать — рассказывается в статьях Взлом Wi-Fi с шифрованием WPA/WPA2 PSK и Reaver. Взлом Wi-Fi со включенным WPS) и далее ждем подключившихся клиентов. После чего каким либо способом, коих очень много, анализируем проходящий через нас трафик, либо выдаем какие-либо фишинговые сайты с запросом паролей.
Для создания нам потребуется Linux (я использовал Raspbian и микрокомпьютер Raspberry Pi для создания Rogue AP)
Для начала проверим, что наша карточка поддерживает режим точки доступа (AP), для этого посмотрим вывод утилиты iw:
iw list | grep "Supported interface modes" -A 8
в списке поддерживаемых режимов должно присутствовать AP.
Пример:
Supported interface modes: * IBSS * managed * AP * AP/VLAN * WDS * monitor * mesh point
Установим hostapd — программная точка доступа:
apt-get install hostapd
в настройках демона укажем, где он должен брать конфигурацию, для этого откроем файл /etc/default/hostapd, найдем в нем строчку:
#DAEMON_CONF=""
раскомментируем ее и укажем где находится файл конфигурации (у нас это будет /etc/hostapd/hostapd.conf).
Пример:
DAEMON_CONF="/etc/hostapd/hostapd.conf"
touch /etc/hostapd/hostapd.conf
и изменим его, прописав параметры нашей сети.
Для безпарольной точки доступа будет достаточно написать:
interface=wlan0 driver=nl80211 hw_mode=g ssid=FreeWifi channel=6
interface — интерфейс, на котором будет работать точка доступа;
driver — используемый драйвер (обычно nl80211);
ssid — SSID имя точки доступа;
channel — канал, на котором будет работать точка доступа;
hw_mode — режим работы (a — 802.11a, b — 802.11b,g — 802.11g), g означает режим работы 802.11b/g.
Для точки доступа с шифрованием WPA2 конфигурация будет немного сложнее:
interface=wlan0 driver=nl80211 hw_mode=g ssid=FreeWifi channel=6 auth_algs=1 wpa=2 wpa_passphrase=1234abcd wpa_key_mgmt=WPA-PSK wpa_pairwise=CCMP TKIP rsn_pairwise=CCMP
auth_algs — алгоритм аутентификации (1 — WPA2, 2 — WEP, 3 — любой);
wpa — тип шифрования WPA (1 — WPA, 2 — WPA2, 3 — WPA/WPA2);
wpa_passphrase — пароль точки доступа;
wpa_key_mgmt — алгоритм ключей шифрования (может быть WPA-PSK — PreSharedKey или WPA-EAP — проверка по протоколу EAP внешним сервером);
wpa_pairwise и rsn_pairwise — какие шифры можно использовать для шифрования передаваемых данных (можно использовать CCMP, TKIP или любой, на выбор клиента).
так же можно использовать дополнительные параметры:
ap_isolate=1 — включить изоляцию клиентов;
bridge=имя_интерфеса — использовать мост.
Теперь нужно настроить получение адресов и маршрутизацию трафика.
Первым делом назначим IP-адрес Wi-Fi адаптеру. Для этого откроем файл /etc/network/interfaces и запишем в него конфигурацию сети для беспроводного адаптера wlan0:
allow-hotplug wlan0 iface wlan0 inet static address 192.168.2.1 netmask 255.255.255.0
по аналогии настроим и сетевой адаптер, который будет смотреть в интернет (либо если адрес получается по DHCP, то настроим автоматическое получение адреса, как это сделать — описывается в статье Debian, Ubuntu, Raspbian. Базовая настройка IPv4 на сетевых Ethernet интерфейсах)
Далее настроим DNS и выдачу адресов по DHCP, в данном случае воспользуемся утилитой dnsmasq, которая умеет и то и то.
Установим dnsmasq:
apt-get install dnsmasq
откроем конфигурационный файл /etc/dnsmasq.conf и изменим (или добавим) в нем строки:
interface=wlan0 dhcp-authoritative dhcp-range=192.168.2.10,192.168.2.60,1h dhcp-option=1,255.255.255.0 dhcp-option=3,192.168.2.1 dhcp-option=6,192.168.2.1,8.8.8.8 domain=fakeAP.local address=/fake.local/10.0.0.1
interface — интерфейс на котором будут работать DHCP и DNS;
dhcp-authoritative — указываем, что наш сервер главный в сети;
dhcp-range — диапазон адресов, параметры указываются через запятую (начало_диапазона,конец_диапазона,время_аренды_адреса);
dhcp-option — параметры DHCP, задаются через запятую в формате (номер_опции,значение,значение)
dhcp-option=1 — маска сети;
dhcp-option=3 — шлюз;
dhcp-option=6 — DNS сервера;
domain — префикс локального домена;
address — вручную назначаемые DNS записи, сначала проверяется данный список, а потом уже все остальные (идеально подходит для подмены адресов).
[ad name=»Responbl»]
Теперь разрешим пересылку пакетов (форвардинг):
echo "1" > /proc/sys/net/ipv4/ip_forward
Примечание: данный метод работает до перезагрузки. Как включить постоянную пересылку пакетов — рассказывается в статье Обход HTTPS с помощью SSLSTRIP.
И создадим NAT:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Примечание: iptables так же сохраняет правила до перезагрузки, поэтому для автостарта их нужно отдельно сохранить и восстановить после перезагрузки, как это сделать — рассказывается в статье Обход HTTPS с помощью SSLSTRIP.
перезапускаем сервисы dnsmasq и hostapd:
service dnsmasq restart service hostapd restart
ждем подключившихся клиентов.
Список выданных адресов можно посмотреть командой:
cat /var/log/syslog | grep DHCPACK