Wi-Fi точка доступа для перехвата паролей: настройка и анализ данных

mitmAP – это небольшой скрипт на Python3, который автоматизирует создание беспроводной точки доступа и запускает инструменты для сниффинга трафика, в том числе позволяющие частично обходить HSTS.

Программа поставляется вместе с SSLStrip+ и dns2proxy и автоматически их запускает, благодаря чему и достигается обход HTTPS / HSTS. С mitmAP в этот процесс не нужно вникать, но если вы хотите сделать что-то подобное, например, с create_ap, то ознакомьтесь с «Инструкцией по использованию SSLStrip+ и dns2proxy для обхода HSTS».

mitmAP позволяет практически без ввода команд (и понимания механизма обхода HTTPS) использовать самые эффективные на сегодняшний момент способы понижения HTTPS до HTTP. В моих тестах пароль в открытом виде передавался для vk.com, yandex.ru, mail.ru.

Этот скрипт сделан в двух вариантах – для работы в Kali Linux или в Raspberry PI.

Скрипт должен работать на производных Debian, если установить зависимости; но не будет работать, например, в Arch Linux / BlackArch из-за выбранного автором способа запуска служб.

Инструкция по использованию mitmAP

Скачайте скрипт:

git clone https://github.com/xdavidhu/mitmAP.git
cd mitmAP/

Запустите его:

sudo python3 mitmAP.py

Скрипт начнёт с вопроса:

[?] Install/Update dependencies? Y/n:

Перевод: установить / обновить зависимости?

Если запускаете первый раз, то согласитесь, т.е. нажмите Enter. В дальнейшем можно выбирать n (нет).

Следующий вопрос:

[?] Please enter the name of your wireless interface (for the AP):

Перевод: введите имя вашего беспроводного интерфейса (для ТД). Если вы не знаете имя ваших интерфейсов, то в другом окне выполните команду:

ip a

Она покажет все сетевые интерфейсы вашей системы. А команда

sudo iw dev

покажет только беспроводные сетевые интерфейсы.

В Kali Linux беспроводной интерфейс обычно называется wlan0 (а если их два, то второй имеет имя wlan1).

Далее

[?] Please enter the name of your internet connected interface:

Перевод: пожалуйста, введите имя интерфейса, подключённого к Интернету.

В Kali Linux проводной интерфейс обычно называется eth0. Также для подключения к Интернету можно использовать вторую Wi-Fi карту.

[?] Use SSLSTRIP 2.0? Y/n:

Перевод: скрипт спрашивает, использовать ли SSLStrip+. В настоящее время, когда значительная, если уже не большая, часть трафика передаётся через HTTPS (в зашифрованном виде), эта опция крайне рекомендуется.

Теперь

[?] Create new HOSTAPD config file at '/etc/hostapd/hostapd.conf' Y/n:

Перевод: Создать ли новый конфигурационный файл hostapd.

Если запускаете первый раз, то это нужно сделать обязательно. При последующих запусках, если вы не собираетесь менять настройки ТД, то можно выбрать n (т.е. «нет»).

Настройка ТД:

[?] Please enter the SSID for the AP:

Перевод: введите имя для ТД.

Далее:

[?] Please enter the channel for the AP:

Перевод: введите номер канала ТД.

Затем:

[?] Enable WPA2 encryption? y/N:

Перевод: включить ли WPA2 шифрование?

Если вы включите шифрование, то для подключения к вашей ТД нужно будет вводить пароль. Для наших целей выбираем «нет».

Последняя настройка ТД:

[?] Set speed limit for the clients? Y/n:

Перевод: установить ли ограничение по скорости для клиентов?

Я выбираю «нет»,

Теперь:

[?] Start WIRESHARK on wlan0? Y/n:

Перевод: запустить ли Wireshark на интерфейсе wlan0?

И ещё один вопрос:

[?] Spoof DNS manually? y/N:

Перевод: Осуществлять ли ручной DNS спуфинг.

Если вы выберите «да», то вам нужно будет ввести количество сайтов, для которых вы будете подменять DNS ответы, а затем ввести домен каждого сайта и IP, на которой должны указывать DNS ответы. Кроме этого, вам нужно подготовить виртуальные хосты с фишинговыми страницами на серверах, куда будут перенаправлены пользователи. Можно обойтись без этого. Но если пользователь не будет авторизовываться на сайтах, то мы не узнаем его пароль (только кукиз). Фишинговые страницы подведут пользователя к вводу данных. Более подробно об этой атаке вы сможете прочитать в «Инструкции по работе с DNSChef: анализ DNS запросов, фальсификация DNS ответов, перенаправление на фальшивые копии сайтов».

Анализ данных mitmAP

mitmAP выводит перехваченные данные, в том числе логины и пароли в своём главном окне:

В своей папке она создаёт директорию logs с двумя файлами: mitmap-sslstrip.log и mitmap-wireshark.pcap. В первом файле содержаться собранные данные в текстовом виде. А второй предназначен для анализа в программе Wireshark.

Обратите внимание: что при перезапуске программы эти файлы затираются! Т.е. если вы намереваетесь анализировать эти файлы позднее, то вам нужно позаботиться об их перемещении или переименовании, иначе они будут просто удалены.

Если вы выбрали запуск окна Wireshark и отображение передаваемых изображений с помощью Driftnet, то вы также их сможете использовать для мониторинга передаваемых данных в реальном времени.

Анализ данных в Wireshark

Wireshark имеет очень детальный фильтр данных, с его разнообразием вы сможете ознакомиться на страничке официальной документации https://www.wireshark.org/docs/dfref/

Приведу примеры нескольких ходовых фильтров.

Для отображения в Wireshark всех HTTP запросов, переданных методом POST:

http.request.method == "POST"

Для отображения данных переданных или полученных с определённого домена (вместо <URL> введите интересующий домен, например, vk.com):

http.host=="<URL>"

Для поиска строки во всём потоке передаваемых данных используется следующий фильтр (вместо <строка> введите строку, которую вы хотите искать):

frame contains "<строка>"

Для отображения кукиз в Wireshark:

http.cookie

Если вас интересует кукиз с определёнными именем, то используйте:

http.cookie contains "<имя_куки>"

Для показа запросов в Wireshark, переданных методом GET или POST:

http.request.uri contains "?" or http.request.method=="POST"

Если вы хотите найти данные обмена с FTP сервером, то в Wireshark можете использовать один из следующих фильтров:

ftp

или

tcp.port==21 || tcp.port==20

Сниффинг данных в других программах

Хотя mitmAP задействует интересные программы, вы всегда можете проводить анализ данных другими инструментами. Например, если вы хотите использовать Bettercap, то нужно учитывать, что:

  • ARP спуфинг не нужен
  • Не нужно проводить обнаружение клиентов
  • Не нужно включать SSLStrip.

Т.е. команда может иметь вид:

sudo bettercap -X -I wlan0 -S NONE --no-discovery

Или:

sudo bettercap -X -I wlan0 -S NONE --no-discovery --proxy --no-sslstrip

Завершение работы mitmAP

Для выключения программы нужно два раза быстро нажать CTRL+C. Напомню, что при повторном запуске программа затрёт файлы с полученными данными. Т.е. вам нужно их переместить в другую папку, если вы хотите позже провести их анализ.

Рекомендуется Вам:

6 комментариев to Wi-Fi точка доступа для перехвата паролей: настройка и анализ данных

  1. artem:

    спасибо огромное

  2. rk:

    Alexey, а можно ли создать ложную т.д. с телефона андройд, а с ноута не имеющего доступа к интернет ловить авторизацию в фальшивой точек доступа на телефоне?

     

  3. Дан:

    да но после установки у меня не запускался интернет..  пришлось залезть в NetworkManager.conf и поменять значение на

    [main]
    plugins=ifupdown,keyfile

    [keyfile]
    managed=false

  4. Аноним:

    Добрый день не могли бы вы подсказать как сделать так  чтобы весь этот трафик шёл через прокси бурпа ? 

    • Alexey Alexey:

      Здравствуйте! Посмотрите, как здесь трафик переправляется через Tor: https://hackware.ru/?p=2126

      Попробуйте сделать по той статье, только пропустите настройку Tor’а.

      Т.е. запустите ТД, пропускаем настройку Tor’а и сразу переходим к маршрутизации трафика.

      Для перенаправления трафика используется два правила iptables:

      sudo iptables -t nat -A PREROUTING -i wlan0 -p tcp --syn -j REDIRECT --to-ports 9040
      sudo iptables -t nat -A PREROUTING -i wlan0 -p udp --dport 53 -j REDIRECT --to-ports 5300

      Второе правило перенаправляет UDP трафик, т.е. DNS запросы – его просто пропустите (не используйте).

      А в первом правиле, по идее, достаточно только установить порт Burp’а. Т.е. допустим Burp прослушивает порт 1111, тогда правило iptables должно выглядеть так:

      sudo iptables -t nat -A PREROUTING -i wlan0 -p tcp --syn -j REDIRECT --to-ports 1111

      IP интерфейса wlan0 настраивается после запуска create_ap. Этому интерфейсу будет присвоен IP 192.168.12.1.

      Поэтому после поднятия ТД и применения правила iptables настройте Burp на прослушивание порта 1111 на IP 192.168.12.1.

      К сожалению, сам не могу проверить, ноут второй месяц в ремонте. angryangryangry

      Интересно, заработает или нет – если не трудно, напишите о результатах, пожалуйста.

    • Alexey Alexey:

      И ещё один пример перенаправления трафика на Burp: https://hackware.ru/?p=917#12_ettercap_burp

      Там вначале запускается сниффинг, но вам сниффинг не нужен - нужно только применить правило iptables.

Добавить комментарий

Ваш e-mail не будет опубликован.