Дізнайтеся, як запускати MITM-атаки в Kali NetHunter за допомогою застарілого, але все ще потужного фреймворку MITMf. У цій статті розглянуто повний процес встановлення та налаштування інструмента на Android-пристрої з NetHunter, способи обходу проблем із сумісністю, а також практичні приклади атак через ARP‑спуфінг, SSLstrip і DNS‑спуфінг. Отримайте покрокові інструкції, поради щодо усунення помилок і порівняння MITMf із сучасним альтернативним рішенням — Bettercap.
Дисклеймер: Інформація, представлена в цій статті, надається виключно в освітніх цілях і призначена для підвищення обізнаності щодо методів захисту від MITM-атак. Використання описаних технік для несанкціонованого втручання в чужі мережі чи системи є незаконним і може призвести до кримінальної відповідальності.
Атаки типу «людина посередині» (MITM) – це тип кібератак, під час яких зловмисник перехоплює та, можливо, змінює зв’язок між двома пристроями, щоб отримати доступ до конфіденційних даних та взяти під контроль з’єднання.
Завдяки використанню MITM Framework з відкритим кодом (MITMf) зловмисники можуть легко перехоплювати та змінювати мережевий трафік, автоматизуючи MITM-атаки. MITMf більше не підтримується та є застарілим, проте він все ще є частиною NetHunter. У цій публікації блогу ми розглянемо MITM-атаки як з точки зору зловмисника, так і з точки зору жертви. Я розгляну кілька методів, які зловмисники можуть використовувати для перехоплення та зміни мережевого зв’язку, а також те, як вони виконують MITM-атаки за допомогою MITM Framework для отруєння ARP, перехоплення HTTP та HTTPS-трафіку та підміни DNS. У відео показано демонстрацію використання SSLstrip та DNS change для перехоплення HTTPS та обходу HSTS.
Крім того, ми розглянемо точку зору жертви та те, як вона може стати мішенню цих загроз. Нарешті, ми розглянемо кілька стратегій запобігання та захисту від атак MITM.
MITMf був розроблений byt3bl33d3r як універсальний сервіс для атак типу «посередник» та мережевих атак, одночасно оновлюючи та вдосконалюючи існуючі атаки та методи. Однак, він більше не підтримується, і, як пропонує @byt3bl33d3r, вам слід використовувати Bettercap, який на момент написання цієї публікації підтримується та надає набагато більше функцій.
Хоча MITMf є частиною меню програми NetHunter, з якоїсь причини він не встановлено у версіях NetHunter 2022.03 та 2022.04. Я спробував встановити його вручну, але під час процесу встановлення виникло кілька помилок залежностей, оскільки він був розроблений для python2, а проект востаннє підтримувався у 2015 році. Навіть якщо мені вдасться успішно його встановити, існує ймовірність того, що він може працювати неправильно під час виконання деяких своїх атак. Ще гірше, якщо ви хочете повторити процес встановлення, існує можливість виникнення іншої проблеми з MITMf або деякими з його залежностей.
Однак, я знайшов швидке, але брудне рішення, як використовувати MITMf, але вам доведеться знизити версію NetHunter до 2022.1. Це швидко, бо частково працюватиме, і брудно, бо зі старою версією ви втратите WPS та рідний hci0 доступ до Bluetooth безпосередньо з програми NetHutner. Однак вони все ще доступні з терміналу NetHunter.
Запуск MITMf з NetHunter версії 2022.1 призведе до відсутності bdfactory модулів capstone , як видно на мал. 1.

Відсутній bdfactory та capstone потребує завантаження вручну за допомогою таких команд:
git clone https://github.com/secretsquirrel/the-backdoor-factory backdoor mkdir /usr/share/mitmf/bdfactory cd backdoor cp -r ./* /usr/share/mitmf/bdfactory/ cd /usr/share/mitmf/bdfactory pip install capstone

Також може виникнути помилка з вашим iptables. Через це, можливо, знадобиться повернутися до iptables версії 1.6.2, як це описано в рішенні yesimxev (розробник NetHunter), яке я знайшов на Gitlab NetHunter . Ви можете повернутися до версії за допомогою команд:
wget http://old.kali.org/kali/pool/main/i/iptables/iptables_1.6.2-1.1_arm64.deb wget http://old.kali.org/kali/pool/main/i/iptables/libip4tc0_1.6.2-1.1_arm64.deb wget http://old.kali.org/kali/pool/main/i/iptables/libip6tc0_1.6.2-1.1_arm64.deb wget http://old.kali.org/kali/pool/main/i/iptables/libiptc0_1.6.2-1.1_arm64.deb wget http://old.kali.org/kali/pool/main/i/iptables/libxtables12_1.6.2-1.1_arm64.deb dpkg -i *.deb apt-mark hold iptables apt-mark hold libip4tc0 apt-mark hold libip6tc0 apt-mark hold libiptc0 apt-mark hold libxtables12
MITMf тепер має виконуватися без помилок.

Коли ми виправили всі помилки з попереднього розділу, ми можемо знайти найпоширеніші команди на Github. У наступних розділах я зосереджуся на деяких з них, таких як отруєння ARP, перехоплення HTTP та HTTPS-трафіку та підміна DNS.
MITMf базується на підміні ARP, тобто на типі атаки типу «людина посередині» (MITM), яка дозволяє зловмиснику перехоплювати та змінювати мережевий трафік, отруюючи кеш ARP на цільовому пристрої. ARP, або протокол розв’язання адрес, – це протокол, що використовується для зіставлення IP-адреси з фізичною адресою (MAC-адресою) в локальній мережі. Під час атаки зі спуфінгом ARP зловмисник надсилає фальшиві ARP-повідомлення на цільовий пристрій, пов’язуючи свою власну MAC-адресу з IP-адресою легітимного пристрою в мережі. Це дозволяє зловмиснику перехоплювати та змінювати мережевий трафік, призначений для легітимного пристрою.
Атаки зі спуфінгом ARP часто використовуються в поєднанні з іншими типами атак, такими як спуфінг DNS, видалення SSL тощо. Ці атаки можуть бути використані для крадіжки конфіденційної інформації, запуску фішингових атак та порушення безпеки мережі.
Щоб просто протестувати це на двох мобільних пристроях, ми перевіримо кеш ARP до та після початку отруєння зловмисником за допомогою MITMf, як видно на наступних малюнках.


Після того, як ми отруїли таблицю кешу ARP на пристрої жертви, пристрій вважає, що шлюз (у нашому випадку домашній маршрутизатор) – це смартфон зловмисника (MAC-адреса шлюзу змінена на wlan0 інтерфейс пристрою зловмисника). Це означає, що запити, зроблені від жертви, спочатку проходять через зловмисника, а потім пересилаються на фактичний шлюз та Інтернет. Через це зловмисник може перехоплювати та стежити за трафіком жертв, проте існують обмеження, які ми пояснимо пізніше.
Тепер, якщо ми розуміємо основи того, як це працює, ми можемо перейти до самих атак.
MITMf можна інтуїтивно використовувати з меню програми NetHunter за допомогою MITM Framework. Ви можете побачити найпоширеніші опції на кожній із вкладок. Щоб перехопити мережевий трафік протоколу HTTP на цільовому пристрої, нам потрібно перейти на Spoof Settings вкладку та ввімкнути плагін spoof, використовувати перенаправлення ARP та ввести ваш шлюз (IP-адресу маршрутизатора) та IP-адресу цілі, як видно на мал. 6. Натисніть на три крапки у верхньому правому куті та розпочніть атаку MITMf.

Термінал Kali NetHunter відкриє MITMf із попередньо визначеними аргументами, які ви встановили як видимі на мал. 7.

На нашому цільовому пристрої ми використовуватимемо тестовий веб-сайт із реалізованими функціями входу, який використовує протокол HTTP. Використовуючи наші фіктивні облікові дані, ми спробуємо увійти. Оскільки пристрої зловмисника отруїли таблицю кешу ARP жертви, смартфон жертви вважає, що пристрій зловмисника є шлюзом, і через це наша інформація для входу спочатку надсилається на пристрій зловмисника, як показано на мал. 8 та 9.


Для кращої ілюстрації та швидкості реагування ви можете переглянути відеодемонстрацію.
У попередньому прикладі ми успішно перехопили протокол HTTP для моніторингу мережевого зв’язку пристрою. З цієї та інших міркувань безпеки було запроваджено протокол HTTPS, який використовує наскрізне шифрування, тому зловмисник у тій самій мережі не може бачити трафік. Цю спробу також було обійдено, коли було запроваджено SSLStrip, який зміг видалити SSL з HTTPS-зв’язку аж до HTTP. Через це було запроваджено HTTP Strict Transport Security (HSTS) – протокол безпеки, який допомагає захиститися від MITM-атак, змушуючи браузер зв’язуватися з веб-сайтом через HTTPS замість HTTP. Здається, це глухий кут.
Однак, існує часткове рішення для обходу HSTS за допомогою SSLStrip+ та зміни DNS. Використовуючи обидва ці методи, ви можете видалити SSL та змінити назву запитуваного домену, додавши на початку незареєстрований піддомен. Оскільки цей піддомен не існує, сервер не запитуватиме у браузера використання HSTS. Це можна використати для перехоплення HTTPS-з’єднання, але лише для деяких веб-сайтів. Наприклад, https://www.yahoo.com буде видалено до http://www.yahoo.com, а піддомен змінено на http://www.yahoo.com або http://weblogin.yahoo.com. Піддомен yahoo.comне має визначеного піддомену wwww або weblogin . Через це yahoo.comдомен не має причин відповідати браузеру, щоб включити HSTS.
Щоб увімкнути перехоплення HTTPS, перейдіть на General Settingsвкладку та перевірте SSLStrip+, чи буде вказано –hstsаргумент команди, як показано на мал 10. Далі Spoof Settingsми використовуватимемо ті ж налаштування, що й у попередньому сценарії.

На мал. 11 видно, що запитуваний веб-сайт yahoo.comне використовує HTTPS, а доменне ім’я в адресному рядку змінено на wwww.yahoo.com.

Навіть попри те, що MITMf відображає багато помилок та винятків, він все одно може продовжувати атаку. Коли ми намагаємося увійти до свого облікового запису, введені у форму входу Yahoo дані надсилаються на наш пристрій у незашифрованому вигляді, як показано на мал. 12.

Для кращої ілюстрації та швидкості реагування ви можете переглянути відеодемонстрацію цього сценарію.
Важливо зазначити, що ця атака працює не для кожного вебсайту. Потенційна жертва може розпізнати атаку, побачивши інше доменне ім’я в адресному рядку, як запитувалося (наприклад weblogin.yahoo.com), відсутній зелений замок (SSL/TLS), а під час моїх тестів ці вебсайти завантажувалися набагато повільніше, а іноді й не всі зображення завантажувалися належним чином, що часто робило вебсайт непридатним для використання.
Під час атаки DNS-спуфінгу зловмисник змінює систему доменних імен (DNS), щоб перенаправляти запити користувача на шкідливий веб-сайт. Цей тип атаки часто виконується шляхом налаштування внутрішньої системи DNS, що працює на пристрої, яка змінює записи DNS та перенаправляє трафік на встановлений зловмисником сервер, не змінюючи відображену URL-адресу в адресному рядку.
Зберігаючи ті ж налаштування, що й раніше, нам потрібно лише додати наші проксі-сервери DNS. Перейдіть на MITMf Configurationвкладку та прокрутіть униз, доки не побачите [[DNS]] розділ. У цьому розділі ми можемо налаштувати наш внутрішній DNS-сервер. У цьому розділі прокрутіть униз, доки не знайдете [[[A]]]записи. Тут ви можете додати будь-який запис доменного імені, який буде перенаправлено на власну IP-адресу. Ми додамо запис для *.facebook.comдоменного імені, яке призначить йому нашу локальну IP-адресу, як видно на мал. 13. На цій IP-адресі ми запускаємо фіктивний веб-сайт для входу в Facebook і натискаємо, UPDATE щоб зберегти файл конфігурації.

Тепер нам потрібно додати аргумент для MITMf, щоб використовувати наш внутрішній DNS-сервер. Схоже, що з Spoof Settingsнього неможливо одночасно ввімкнути ARP та DNS. Через це ми виберемо ARP та розпочнемо атаку MITMf. Тепер найпростіший спосіб додати аргумент --dns– це завершити mitmf процес за допомогою Ctrl + C, натиснути на стрілку вгору, щоб вибрати останню використану команду, та додати –dnsаргумент, як показано на мал. 14.

Якщо ми спробуємо відвідати, наприклад, m.facebook.comна цільовому пристрої, то буде відображено наш власний веб-сайт для входу, що працює на нашому сервері.

Атака добре спрацювала проти пристроїв Android, але не була успішною під час тестування проти браузерів Chrome, Firefox та Brave від Windows 10.

MITMf пропонує колекцію плагінів, які можна використовувати для маніпулювання та зміни трафіку на льоту, а також для виконання різних інших дій, пов’язаних з MITM. Ось список доступних плагінів:
HTA Drive-By : Вводить фальшиве сповіщення про оновлення та пропонує клієнтам завантажити програму HTA.
SMBTrap : Використовує вразливість «SMB Trap» на підключених клієнтах.
ScreenShotter : Використовує HTML5 Canvas для створення точного знімка екрана браузера клієнта.
Респондент : отруйник LLMNR, NBT-NS, WPAD та MDNS
SSLstrip+ : Частково обійти HSTS
Підміна : Перенаправлення трафіку за допомогою підміни ARP, ICMP, DHCP або DNS
BeEFAutorun : Автоматично запускає модулі BeEF на основі ОС або типу браузера клієнта
AppCachePoison : Виконує атаки отруєння кешу додатків HTML5.
Ferret-NG : Прозоро перехоплює сеанси клієнта
BrowserProfiler : Намагається перерахувати всі плагіни браузера підключених клієнтів.
FilePwn : Виконувані файли бекдору, що надсилаються через HTTP за допомогою Backdoor Factory та BDFProxy.
Вставка : Вставка довільного контенту в HTML-контент
BrowserSniper : Здійснює атаки типу «drive-by» на клієнтів із застарілими плагінами браузера.
JSkeylogger : Вставляє кейлогер Javascript на веб-сторінки клієнта.
Замінити : Замінити довільний вміст у HTML-контенті
SMBAuth : Викликати спроби автентифікації SMB-запит-відповідь
Upsidedowninternet : Перевертає зображення на 180 градусів
Captive : Створює портал, що перенаправляє HTTP-запити за допомогою 302.
На жаль, мені не вдалося успішно запустити більшість із них. Мене в основному цікавило захоплення сеансів за допомогою Ferret-NG, ін’єкція коду JavaScript або html, ін’єкція кейлогера та навіть upsidedownternet, оскільки вони призводили до винятку в коді Python у модулі ProxyPlugins.
Щоб повною мірою використовувати MITMf, я раджу використовувати його з командного рядка. Повний список опцій, як показано на мал. 17, можна переглянути за допомогою команди mitmf --help.

Усі згадані атаки базуються на отруєнні ARP та підміні. Виявлення цих атак не є дуже складним. Існує два способи їх розпізнати: автоматично за допомогою інструментів затримання або вручну. Починаючи з автоматичного виявлення, найпростіший спосіб класифікувати таку атаку на вашому комп’ютері та мережі — це мати програмне забезпечення безпеки для робочого столу, яке може виявляти отруєння ARP та блокувати його (Рис. 18).

На Android ви можете встановити безкоштовний додаток ARP Guard, доступний у Google Play Store. Додаток для виявлення ARP працює дуже добре. Він працює у фоновому режимі, і якщо виявлено отруєння ARP, він негайно повідомить вас про це за допомогою сповіщення, як видно на мал. 19.

Ручний аналіз можна виконати через командний рядок або термінал за допомогою arp -aкоманди як на настільних комп’ютерах, так і на пристроях Android. На мал. 20 ви можете побачити результат виконання команди до та після початку отруєння ARP. З виводу видно, що дві однакові MAC-адреси представляють дві різні IP-адреси в мережі, що є сильним сигналом ймовірної атаки отруєння ARP, що триває.

Тепер ви повинні краще розуміти, як захистити свою мережу та пристрої від ARP-атак, які можуть призвести до MITM-атак.
Важливо пам’ятати, що атаки MITM важко виявити та запобігти, тому важливо завжди бути пильними та вживати заходів для захисту своїх пристроїв і особистої інформації. Ось кілька порад, які допоможуть вам запобігти сценаріям соціальної інженерії та атак MITM та захиститися від них:
Використовуйте програмне забезпечення безпеки та регулярно його оновлюйте. Це допоможе захистити ваші пристрої від шкідливого програмного забезпечення, зміненої конфігурації мережі та іншого шкідливого програмного забезпечення.
Використовуйте брандмауер: Брандмауер може допомогти блокувати несанкціоновані підключення та запобігти зловмиснику здійснити атаку MITM.
Використовуйте двофакторну автентифікацію (2FA): Двофакторна автентифікація додає додатковий рівень безпеки до вашого процесу входу, вимагаючи другої форми підтвердження на додаток до пароля. Це може допомогти запобігти доступу зловмисника до ваших облікових записів, навіть якщо у нього є ваші дані для входу.
Використовуйте VPN (віртуальну приватну мережу) для шифрування вашого інтернет-з’єднання та захисту даних під час користування публічним Wi-Fi.
Використання HTTPS: Вебсайти, що використовують HTTPS, шифрують з’єднання між пристроєм користувача та вебсайтом, що ускладнює для зловмисника перехоплення зв’язку та виконання MITM-атаки.
Будьте обережні, користуючись публічним Wi-Fi, та уникайте підключення до мереж, яким ви не довіряєте.
Навчайте себе та своїх співробітників про небезпеку соціальної інженерії та MITM-атак, а також переконайтеся, що всі знають про ознаки та способи захисту від них.
На завершення, атаки типу «людина посередині» (MITM) становлять серйозну загрозу безпеці онлайн-комунікацій, оскільки вони дають зловмисникам можливість перехоплювати та змінювати зв’язок між двома сторонами. Зловмисники можуть легко перехоплювати та контролювати мережевий трафік завдяки MITM Framework, ефективному інструменту, який автоматизує MITM-атаки. Ми можемо навчитися захищати себе від таких типів загроз, розуміючи, як зловмисники можуть використовувати MITM Framework та різні методи, які вони можуть застосовувати для перехоплення та зміни мережевого зв’язку.
Ми також можемо навчитися розпізнавати та уникати спроб MITM, знаючи про тактику та стратегії, які використовують зловмисники. Важливо пам’ятати, що атаки MITM можуть вплинути на будь-кого, тому завжди краще бути проактивними та вживати запобіжних заходів для самозахисту, використовуючи безпечні протоколи зв’язку, шифрування та регулярний моніторинг мережевого трафіку.