Виявлення атаки людина посередині (Man in the middle, MitM-атак). Технічні FAQ Приклад у літературі

Домагатися бажаного результату майже завжди можна кількома способами. Це можна застосувати і до області ІБ. Іноді для досягнення мети можна лаяти, самостійно шукати дірки і розробляти сплоїти або прислухатися до того, що передається по мережі. Причому останній варіант найчастіше буває оптимальним. Саме тому сьогодні ми поговоримо про інструменти, які допоможуть виловлювати цінну для нас інформацію з мережевого трафіку, залучаючи для цього MITM-атаки.

MITMf

Почнемо з одного із найцікавіших кандидатів. Це цілий фреймворк для проведення man-in-the-middle атак, збудований на базі sergio-proxy. З недавнього часу включено до складу Kali Linux. Для самостійної установки достатньо клонувати репозиторій та виконати пару команд:

# setup.sh # pip install -r requirements.txt

# pip install -r requirements.txt

Має архітектуру, що розширюється за рахунок плагінів. Серед основних можна виділити такі:

  • Spoof - дозволяє перенаправляти трафік за допомогою ARP/DHCP-спуфінгу, ICMP-редиректів та модифікувати DNS-запити;
  • Sniffer - цей плагін відстежує спроби логіну для різних протоколів;
  • BeEFAutorun – дозволяє автоматично запускати модулі BeEF, виходячи з типу ОС та браузера клієнта;
  • AppCachePoison – здійснює атаку «отруєння кеша»;
  • SessionHijacking - викрадає сесії та зберігає отримані куки у профілі вогнелісу;
  • BrowserProfiler - намагається отримати список плагінів, що використовуються браузером;
  • FilePwn - дозволяє підміняти файли, що пересилаються по HTTP, за допомогою Backdoor Factory і BDFProxy;
  • Inject – впроваджує довільний контент у HTML-сторінку;
  • jskeylogger - впроваджує JavaScript-кейлоггер у сторінки клієнта.

Якщо цього функціоналу тобі здасться недостатньо, то ти завжди можеш додати свій, реалізувавши відповідне розширення.

PuttyRider

Ще одна цікава утиліта. Щоправда, на відміну від усіх інших інструментів, що розглядаються сьогодні, вона дуже вузько спеціалізована. Як розповідає сам автор проекту, на думку створити таку утиліту його наштовхнуло те, що під час проведення тестів на проникнення найважливіші дані розташовувалися на Linux/UNIX-серверах, до яких адміни підключалися SSH/Telnet/rlogin. Причому здебільшого отримати доступ до машини адміністраторів було набагато простіше, ніж до цільового сервера. Проникнувши на машину сисадміна, залишається тільки переконатися в наявності запущеного PuTTY і за допомогою цієї тулзи побудувати зворотний місток до атакуючого.

Утиліта дозволяє не тільки зняти «спілкування» між адміном і віддаленим сервером (включаючи паролі), а й виконувати довільні shell-команди в рамках цієї сесії. Причому це буде відбуватися абсолютно прозоро для користувача (адміна). Якщо цікавлять технічні деталі, наприклад, як реалізовано впровадження в процес PuTTY, рекомендую ознайомитися з презентацією автора.

Досить стара утиліта, що з'явилася на світ понад вісім років тому. Призначається для клонування сесій шляхом крадіжки кукісів. Для угону сесій має базові навички виявлення хостів (у разі підключення до відкритої бездротової мережі або хабу) та проведення ARP poisoning. Єдина проблема - сьогодні, на відміну від того, що було вісім років тому, майже всі великі компанії, такі як Yahoo або Facebook використовують SSL-шифрування, що робить цю тулзу абсолютно марною. Незважаючи на це, в Мережі ще залишається достатньо ресурсів, які не використовують SSL, тому списувати утиліту з рахунків поки рано. До її плюсів можна віднести те, що вона автоматично інтегрується у Firefox і створює окремий профіль для кожної сесії. Вихідний код доступний у репозиторії, а самостійно зібрати її можна за допомогою такої послідовності команд:

# apt-get install build-essential libwxgtk2.8-dev libgtk2.0-dev libpcap-dev # g++ $(wx-config --cppflags --libs) -lpcap -o sessionthief *.cpp # setcap cap_net_raw,cap_net_admin=eip sessionthief

# apt-get install build-essential libwxgtk2.8-dev libgtk2.0-dev libpcap-dev

# g++ $(wx-config --cppflags --libs) -lpcap -o sessionthief *.cpp

# setcap cap_net_raw,cap_net_admin=eip sessionthief

ProxyFuzz

Безпосередньо до проведення MITM-атак ProzyFuzz не має жодного стосунку. Як можна здогадатися з назви, тулза призначена для фазінгу. Це невеликий недетермінований мережевий фазер, реалізований на пітоні, який довільно змінює вміст пакетів мережевого трафіку. Підтримує протоколи TCP та UDP. Можна налаштувати, щоб проводився фазинг лише однієї сторони. Стане в нагоді, коли потрібно швиденько перевірити якийсь мережевий додаток (або протокол) і розробити PoC. Приклад використання:

Python proxyfuzz -l -r -p

python proxyfuzz -l -r -p

Список опцій включає:

  • w - задає кількість запитів, надісланих перед початком фазінгу;
  • c - фаззити лише клієнта (інакше обидві сторони);
  • s - фаззити лише сервер (інакше обидві сторони);
  • u - UDP-протокол (інакше використовується TCP).

The Middler

Представлена ​​у рамках конференції DEF CON утиліта для проведення MITM-атак на різні протоколи. Альфа-версія підтримувала протокол HTTP і мала у своєму арсеналі три круті плагіни:

  • plugin-beef.py - впроваджує Browser Exploitation Framework (BeEF) у будь-який HTTP-запит, що надходить з локальної мережі;
  • plugin-metasploit.py – впроваджує в незашифровані (HTTP) запити IFRAME, який підвантажує експлойти для браузерів з Metasploit;
  • plugin-keylogger.py - вбудовує JavaScript обробник події onKeyPress для всіх текстових полів, які будуть передаватися по HTTPS, змушуючи браузер символічно відправляти пароль, що вводиться користувачем на сервер атакуючого, до того як відбудеться відправка всієї форми.

The Middler не тільки автоматично аналізує мережевий трафік і знаходить у ньому кукіси, але й самостійно вимагає їх з боку клієнта, тобто процес автоматизований по максимуму. Програма гарантує збирання всіх незахищених облікових записів у комп'ютерній мережі (або публічному хотспоті), до трафіку якої вона має доступ. Для коректної роботи програми в системі мають бути встановлені такі пакети: Scapy, libpcap, readline, libdnet, python-netfilter. На жаль, репозиторій давно не оновлюється, тож нову функціональність доведеться додавати самостійно.

Консольна утиліта, яка в інтерактивному режимі дозволяє досліджувати та модифікувати HTTP-трафік. Завдяки таким навичкам утиліта використовується не тільки пентестерами/хакерами, але й звичайними розробниками, які її використовують, наприклад, для налагодження веб-додатків. З її допомогою можна отримувати докладну інформацію про те, які запити робить програму та які відповіді вона отримує. Також mitmproxy може допомогти у вивченні особливостей функціонування деяких REST API, особливо погано документованих.

Установка дуже проста:

$ sudo aptitude install mitmproxy

Варто зазначити, що mitmproxy дозволяє також виконувати перехоплення HTTPS-трафіку, надаючи клієнту самопідписаний сертифікат. Хороший приклад того, як налаштувати перехоплення та модифікацію трафіку, можна .

Dsniff

Ну а ця утиліта взагалі одне з перших, що має приходити на думку, як тільки почуєш
"MITM-атака". Інструмент досить старий, але продовжує активно оновлюватись, що не може не тішити. Детально розповідати про його можливості немає сенсу, за чотирнадцять років існування він не раз висвітлювався в мережі. Ось наприклад у керівництві на кшталт цього:

ну або інструкцію з нашого сайту:

На остан..

Як завжди, ми розглянули не всі утиліти, а лише найпопулярніші, є ще чимало маловідомих проектів, про які ми, можливо, якось поговоримо. Як бачиш, недоліку в інструментах для проведення MITM-атак не спостерігається, причому, що буває не так часто, одна з крутих тулз реалізована під вінду. Про nix-системи і говорити нічого - ціла різноманітність. Тож, гадаю, ти завжди зможеш знайти підходящий інструмент для викрадення
чужі credentials. Упс, тобто проведення тестувань.

У цій статті ми спробуємо з'ясувати теорію атак посередника та деякі практичні моменти, які допоможуть запобігти цим типам атак. Це допоможе нам зрозуміти той ризик, який несуть подібні вторгнення для нашого особистого життя, оскільки MitM-атаки дозволяють вторгатися в комунікації та прослуховувати наші розмови.

Розуміння того, як працює інтернет

Щоб зрозуміти принцип атаки посередника, варто спочатку розібратися з тим, як працює інтернет. Основні точки взаємодії: клієнти, маршрутизатори, сервери. Найбільш поширений протокол взаємодії між клієнтом та сервером - Hypertext Transfer Protocol (HTTP). Серфінг в інтернеті за допомогою браузера, електронна пошта, обмін миттєвими повідомленнями – все це здійснюється через HTTP.

Коли ви вводите в адресному рядку вашого браузера, клієнт (ви) надсилає запит на відображення веб-сторінки серверу. Пакет (HTTP GET-запит) передається через кілька маршрутизаторів на сервер. Після цього сервер відповідає веб-сторінкою, яка надсилається клієнту та відображається на його моніторі. HTTP-повідомлення повинні передаватися в безпечному режимі, щоб забезпечити конфіденційність та анонімність.

Малюнок 1. Взаємодія клієнт-сервер

Забезпечення безпеки протоколу зв'язку

Безпечний протокол зв'язку повинен мати кожну з таких властивостей:

  1. Приватність- Лише гаданий одержувач може прочитати повідомлення.
  2. Автентичність- Особа взаємодіючих сторін доведена.
  3. Цілісність- підтвердження того, що повідомлення не було змінено у дорозі.

Якщо хоч жодного з цих правил не дотримано, весь протокол скомпрометовано.

Атака посередника через протокол HTTP

Зловмисник може легко здійснити атаку посередника, використовуючи техніку, яка називається ARP-спуфінг. Будь-який у вашій мережі Wi-Fi може надіслати вам підроблений ARP-пакет, через нього ви неусвідомлено посилатимете весь ваш трафік через зловмисника замість маршрутизатора.

Після цього зловмисник отримує повний контроль над трафіком і може відстежувати запити, що надсилаються в обидві сторони.

Рисунок 2. Схема атаки посередника


Для запобігання таким атакам була створена захищена версія протоколу HTTP. Transport Layer Security (TLS) та його попередник, Secure Socket Layer (SSL), є криптографічними протоколами, які забезпечують безпеку передачі даних через мережу. Отже, захищений протокол називатиметься HTTPS. Можна переглянути, як працює захищений протокол, набравши в адресному рядку браузера (зверніть увагу на наявність S у https).

Атака посередника на погано реалізований SSL

Сучасний SSL використовує хороший алгоритм шифрування, але це не має значення, якщо він неправильно реалізований. Якщо хакер може перехопити запит, він може його змінити, вилучивши із запитуваного URL "S", тим самим обійшовши SSL.

Таке перехоплення та модифікацію запиту можна помітити. Наприклад, якщо ви запитуєте https://login.yahoo.com/, а у відповідь приходить http://login.yahoo.com/, це має викликати підозри. На момент написання статті така атака справді працює на сервісі електронної пошти Yahoo.

Малюнок 3. Перехоплення та модифікація запиту


Щоб запобігти такій атакі, сервери можуть реалізувати HTTP Strict Transport Security (HSTS) – механізм, що активує форсоване захищене з'єднання через протокол HTTPS. У разі, якщо зловмисник модифікує запит, прибравши з URL «S», сервер все одно перенаправить користувача 302-редиректом на сторінку із захищеним протоколом.

Малюнок 4. Схема роботи HSTS


Такий спосіб реалізації SSL є вразливим для іншого виду атаки - зловмисник створює SSL-з'єднання з сервером, але різними хитрощами змушує користувача використовувати HTTP.

Малюнок 5. Схема атаки при HSTS


Для запобігання таким атакам сучасні браузери на кшталт Chrome, Firefox і Tor відстежують сайти, що використовують HSTS і встановлюють з ними з'єднання з боку клієнта по SSL у примусовому порядку. У цьому випадку зловмиснику, який проводить атаку посередника, доведеться створювати SSL-з'єднання з жертвою.

Малюнок 6. Схема атаки, де зловмисник встановлює SSL з'єднання з жертвою


Для того, щоб забезпечити SLL-з'єднання з користувачем, зловмисник повинен знати, як діяти як сервер. Давайте розберемося в технічних аспектах SSL.

Розуміння SSL

З погляду хакера, компрометування будь-якого протоколу зв'язку зводиться до того що, щоб знайти слабке ланка серед перелічених вище компонентів (приватність, автентичність і цілісність).

SSL використовує асиметричний алгоритм шифрування. У симетричному шифруванні проблема полягає в тому, що для шифрування та дешифрування даних використовується той самий ключ, такий підхід неприпустимий для інтернет-протоколів, оскільки зловмисник може простежити цей ключ.

Асиметричне ж шифрування включає 2 ключі для кожної сторони: відкритий ключ, що використовується для шифрування, і конфіденційний ключ, що використовується для дешифрування даних.

Малюнок 7. Робота публічного та конфіденційного ключів

Як SSL забезпечує три властивості, потрібні для безпечного зв'язку?

  1. Оскільки для шифрування даних використовується асиметрична криптографія, SSL забезпечує приватне з'єднання. Це шифрування не так легко зламати і залишитися непоміченим.
  2. Сервер підтверджує свою легітимність, надсилаючи клієнту SSL-сертифікат, виданий центром сертифікації – довіреною третьою стороною.

Якщо зловмиснику вдасться отримати сертифікат, він може створити умови для атаки посередника. Таким чином, він створить 2 з'єднання - з сервером та з жертвою. Сервер у цьому випадку думає, що зловмисник - це звичайний клієнт, а жертва не має можливості ідентифікувати зловмисника, оскільки той надав сертифікат, що доводить, що він сервер.

Ваші повідомлення доходять і приходять у зашифрованому вигляді, проте проходять ланцюжком через комп'ютер кіберзлочинця, де має повний контроль.

Малюнок 8. Схема атаки за наявності у зловмисника сертифіката


Сертифікат не обов'язково має бути підроблений, якщо зловмисник має можливість скомпрометувати браузер жертви. У цьому випадку він може вставити підписаний сертифікат, який буде довіреним за замовчуванням. Так і реалізовується більшість атак посередника. У складніших випадках хакер повинен піти іншим шляхом - підробити сертифікат.

Проблеми центрів сертифікації

Сертифікат, що відправляється сервером, виданий і підписаний центром сертифікації. У кожному браузері є список довірених центрів сертифікації, і ви можете додавати або видаляти їх. Проблема тут полягає в тому, що якщо ви вирішите видалити великі центри, ви не зможете відвідувати сайти, які використовують сертифікати, підписані цими центрами.

Сертифікати та центри сертифікації завжди були найслабшою ланкою HTTPS-з'єднання. Навіть якщо все було реалізовано правильно і кожен центр сертифікації має солідний авторитет, все одно складно змиритися з фактом, що доводиться довіряти третім сторонам.

На сьогоднішній день існує понад 650 організацій, здатних видавати сертифікати. Якщо зловмисник зламає будь-яку з них, він отримає будь-які сертифікати, які забажає.

Навіть коли існував лише один центр сертифікації, VeriSign, існувала проблема - люди, які мали запобігати атакам посередника, продавали послуги перехоплення.

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

Криміналістика

Оскільки зловмисник відправляє підроблені пакети ARP, не можна побачити його IP-адресу. Натомість потрібно звертати увагу на MAC-адресу, яка є специфічною для кожного пристрою в мережі. Якщо ви знаєте MAC-адресу вашого маршрутизатора, ви можете порівняти його з МАС-адресою шлюзу за замовчуванням, щоб з'ясувати, чи це ваш маршрутизатор або зловмисник.

Наприклад, на ОС Windows ви можете скористатися командою ipconfig у командному рядку (CMD), щоб побачити IP-адресу вашого шлюзу за замовчуванням (останній рядок):

Малюнок 9. Використання команди ipconfig


Потім використовуйте команду arp –a для того, щоб дізнатися MAC-адресу цього шлюзу:

Малюнок 10. Використання команди arp –a


Але є й інший спосіб помітити атаку – якщо ви відстежували мережеву активність у той час, коли вона почалася, і спостерігали за пакетами ARP. Наприклад, можна використовувати Wireshark для цих цілей, ця програма буде повідомляти, якщо MAC-адреса шлюзу за замовчуванням змінилася.

Примітка: якщо атакуючий буде правильно підміняти MAC-адреси, відстежити його стане великою проблемою.

Висновок

SSL - протокол, що змушує зловмисника виконати величезну роботу для здійснення атаки. Але він не захистить вас від атак, що спонсоруються державою або від кваліфікованих організацій хакерів.

Завдання користувача полягає в тому, щоб захистити свій браузер та комп'ютер, щоб запобігти вставці підробленого сертифіката (дуже поширена техніка). Також варто звернути увагу на список довірених сертифікатів та видалити ті, кому ви не довіряєте.

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

Енциклопедичний YouTube

    1 / 3

    ✪ №4 ЯК СТАТИ ХАКЕРОМ? "Атака Посередника"! |ХАКІНГ від А до Я|

    ✪ MiTM-напад на iOS. Техніка та наслідки

    ✪ Біткоїн Хронологія Хакерських Атак і Зломів Бірж на Криптовалютному ринку (2012 - 2018)

    Субтитри

Принцип атаки

Атака зазвичай починається з прослуховування каналу зв'язку і закінчується тим, що криптоаналітик намагається підмінити перехоплене повідомлення, витягти з нього корисну інформацію, перенаправити його на зовнішній ресурс.

Припустимо, об'єкт A планує передати об'єкту B певну інформацію. Об'єкт C володіє знаннями про структуру та властивості використовуваного методу передачі даних, а також про факт планованої передачі власне інформації, яку планує перехопити. Для здійснення атаки З «представляється» об'єкту А як В, а об'єкту В - як А. Об'єкт А, помилково вважаючи, що він спрямовує інформацію, посилає її об'єкту С. Об'єкт С, отримавши інформацію, і здійснивши з нею деякі дії (наприклад , Скопіювавши або модифікувавши у своїх цілях) пересилає дані власне одержувачу - В; об'єкт, своєю чергою, вважає, що інформацію було отримано ним безпосередньо від А.

Приклад атаки

Використання шкідливого коду

Атака «людина посередині» дозволяє криптоаналітику вставляти свій код в електронні листи, SQL-вирази та веб-сторінки (тобто дозволяє здійснювати SQL-ін'єкції, HTML/script-ін'єкції або XSS-атаки), і навіть модифікувати бінарні файли, що завантажуються користувачем. , щоб отримати доступ до облікового запису користувача або змінити поведінку програми, завантаженої користувачем з Інтернету.

Downgrade Attack

Терміном «Downgrade Attack» називають таку атаку, коли криптоаналітик змушує користувача використовувати менш безпечні функції, протоколи, які досі підтримуються з міркувань сумісності. Такий вид атаки може бути проведений на протоколи SSH, IPsec та PPTP.

Для захисту від Downgrade Attack небезпечні протоколи повинні бути вимкнені щонайменше на одній стороні; просто підтримки та використання за умовчанням безпечних протоколів недостатньо!

SSH V1 замість SSH V2

Атакуючий може спробувати змінити параметри з'єднання між сервером та клієнтом під час встановлення між ними з'єднання. Згідно з доповіддю, зробленою на конференції Blackhat Conference Europe 2003, криптоаналітик може «змусити» клієнта розпочати сесію SSH1 замість SSH2 змінивши номер версії «1.99» для SSH-сесії на «1.51», що означає використання SSH V1. Протокол SSH-1 має вразливість, якими може скористатися криптоаналітик.

IPsec

При такому сценарії атаки криптоаналітик вводить свою жертву в оману, змушуючи її думати, що IPsec-сесія не може початися на іншому кінці (сервері). Це призводить до того, що повідомлення будуть пересилатися в явному вигляді, якщо хост-машина працює в rollback-режимі.

PPTP

На етапі узгодження параметрів сесії PPTP атакуючий може змусити жертву використовувати менш безпечну PAP-автентифікацію, MSCHAP V1 (тобто «відкотитися» з MSCHAP V2 до версії 1) або не використовувати шифрування взагалі.

Атакуючий може змусити свою жертву повторити етап узгодження параметрів PPTP-сесії (надіслати Terminate-Ack-пакет), викрасти пароль з існуючого тунелю і повторити атаку.

Громадські засоби комунікацій без захисту достовірності, конфіденційності, доступності та цілісності інформації

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

На відміну від попередніх сценаріїв, заснованих на технічних та технологічних аспектах засобів комунікацій, у цьому випадку атака заснована на ментальних аспектах, а саме на вкоріненні у свідомості користувачів концепції ігнорування вимог інформаційної безпеки.

Чи врятує шифрування?

Розглянемо випадок стандартної HTTP-транзакції. У цьому випадку зловмисник досить легко може розбити оригінальне TCP-з'єднання на два нових: одне між собою та клієнтом, інше між собою та сервером. Це досить просто зробити, оскільки дуже рідко з'єднання між клієнтом і сервером пряме, і в більшості випадків вони пов'язані через кілька проміжних серверів. MITM-атаку можна проводити будь-якому з цих серверів.

Однак у випадку, якщо клієнт і сервер спілкуються по HTTPS - протоколу, що підтримує шифрування - також може бути проведена атака "людина посередині". При такому вигляді з'єднання використовується TLS або SSL для шифрування запитів, що, здавалося б, робить канал захищеним від сніфінгу та MITM-атак. Атакуючий може для кожного з'єднання TCP створити дві незалежні SSL-сесії. Клієнт встановлює SSL-з'єднання з атакуючим, той, своєю чергою, створює з'єднання з сервером. Браузер у таких випадках зазвичай попереджає про те, що сертифікат не підписаний довіреним центром сертифікації, але рядові користувачі застарілих браузерів легко оминають це попередження. До того ж у зловмисника може виявитися сертифікат, підписаний кореневим центром сертифікації (наприклад, такі сертифікати іноді використовуються для DLP) і не створює попереджень. Крім того, існує низка атак на HTTPS. Таким чином, протокол HTTPS не можна вважати захищеним від MITM-атак у рядових користувачів. [ ] Існує ряд заходів, що запобігають частині атак MITM на https сайти, зокрема, HSTS , який забороняє використовувати http-з'єднання з сайтів, Certificate pinning та HTTP Public Key Pinning , що забороняють заміну сертифіката.

Виявлення MITM-атаки

Для виявлення атаки "людина посередині" необхідно проаналізувати мережевий трафік. Наприклад, для детектування атаки по SSL слід звернути увагу на такі параметри:

  • IP-адреса сервера
  • DNS-сервер
  • X.509 -сертифікат сервера
    • Чи підписано сертифікат самостійно?
    • Чи підписано сертифікат центром сертифікації?
    • Чи був сертифікат анульований?
    • Чи змінювався сертифікат нещодавно?
    • Чи отримували інші клієнти в інтернеті такий самий сертифікат?

Реалізації MITM-атаки

Перелічені програми можуть бути використані для здійснення атак "людина посередині", а також для їх виявлення та тестування системи на вразливості.

Див. також

  • Aspidistra (англ.) - британський радіопередавач, який використовувався під час Другої світової війни «вторгнення», варіант MITM-атаки.
  • Змова Бабінгтона (англ.) - змова проти Єлизавети I, в ході якого Уолсінгем перехоплював кореспонденцію.

Інші атаки

  • «Людина в браузері» (Man in the Browser) - вид атаки, при якій зловмисник отримує можливість миттєво змінювати параметри транзакції, змінювати сторінки абсолютно прозоро для жертви.
  • «Зустріч посередині» (Meet-in-the-middle Attack) - криптографічна атака, яка так само, як і атака «днів народження», використовує компроміс між «часом» і пам'яттю.
  • «Втрата посередині» (Miss in the middle attack) - ефективний метод так званого impossible differential cryptanalysis.
  • Relay attack - варіант MITM-атаки, заснований на пересиланні перехопленого повідомлення припустимому одержувачу, але не тому, якому це повідомлення призначалося.

Процес початку сеансу TCP, що складається із трьох кроків. Клієнт посилає серверу пакет із прапором SYN. Отримавши від клієнта пакет із прапором SYN, у відповідь сервер відправляє пакет із SYN+ACK прапорами і переходить у стан ESTABLISHED. Отримавши коректну відповідь від сервера, клієнт відправляє пакет із прапором ACK і переходить у стан ESTABLISHED

Бан-лист

Список клієнтів, які мають прав на певні дії. За допомогою бан-ліста зазвичай обмежують можливості роботів при виявленні DDoS-атаки. Також в реаліях ігрових серверів до цього списку заносяться гравці з поганою репутацією, які використовують чіт-коди, або які здійснюють протиправні дії.

Бот

Комп'ютер за допомогою якого ведеться атака DDoS "реальним" трафіком. Найчастіше це комп'ютер звичайного користувача, заражений вірусом. Часто користувач не може помітити, що комп'ютер заражений і використовується в протиправних цілях

Веб-сервер

Комп'ютер у мережі, який приймає HTTP-запити від клієнтів, зазвичай веб-браузерів, і видає їм HTTP-відповіді. Як правило, разом з HTTP-відповіддю веб-сервер відповідає HTML-сторінкою, зображенням, медіа-потоком або іншими даними

Веб-сервіс

Веб-сервісами називають послуги, що надаються в Інтернеті. При вживанні даного терміна мова може вестись про пошук, веб-пошту, зберігання документів, файлів, закладок тощо. Зазвичай веб-сервіси можна користуватися незалежно від комп'ютера, браузера або місця доступу до Інтернету.

Домен

Поняття "Домен" може використовуватися в різному контексті, коли йдеться про мережні технології. Найчастіше під доменом мають на увазі доменне ім'я сайту. Домени поділяються на різні рівні, наприклад в домені example.com, com є доменом першого рівня, а example доменом другого рівня. Для спрощення спілкування люди також використовують термін "Піддомен", що означає домен, рівень якого більше двох. Наприклад, у домені mail.example.com, mail є піддоменом.

Пошуковий робот

Сервіс пошукової системи для виявлення нових сторінок в Інтернеті та зміни вже існуючих. За принципом дії нагадує браузер. Він аналізує вміст сторінки, зберігає його в певному вигляді на сервері пошукової машини, якій належить, і відправляється за посиланнями на наступні сторінки.

Смуга пропуску

Максимально можлива кількість даних, що передаються в одиницю часу. Часто інтернет-провайдери, обіцяючи велику швидкість доступу до Інтернету, не виконують своїх обіцянок. Найчастіше це відбувається через повного заняття смуги пропускання.

Домагатися бажаного результату майже завжди можна кількома способами. Це можна застосувати і до області ІБ. Іноді для досягнення мети можна лаяти, самостійно шукати дірки і розробляти сплоїти або прислухатися до того, що передається по мережі. Причому останній варіант найчастіше буває оптимальним. Саме тому сьогодні ми поговоримо про інструменти, які допоможуть виловлювати цінну для нас інформацію з мережевого трафіку, залучаючи для цього MITM-атаки.

MITMf

Почнемо з одного із найцікавіших кандидатів. Це цілий фреймворк для проведення man-in-the-middle атак, збудований на базі sergio-proxy. З недавнього часу включено до складу Kali Linux. Для самостійної установки достатньо клонувати репозиторій та виконати пару команд:

# setup.sh # pip install -r requirements.txt

Має архітектуру, що розширюється за рахунок плагінів. Серед основних можна виділити такі:

  • Spoof - дозволяє перенаправляти трафік за допомогою ARP/DHCP-спуфінгу, ICMP-редиректів та модифікувати DNS-запити;
  • Sniffer - цей плагін відстежує спроби логіну для різних протоколів;
  • BeEFAutorun – дозволяє автоматично запускати модулі BeEF, виходячи з типу ОС та браузера клієнта;
  • AppCachePoison – здійснює атаку «отруєння кеша»;
  • SessionHijacking - викрадає сесії та зберігає отримані куки у профілі вогнелісу;
  • BrowserProfiler - намагається отримати список плагінів, що використовуються браузером;
  • FilePwn - дозволяє підміняти файли, що пересилаються по HTTP, за допомогою Backdoor Factory і BDFProxy;
  • Inject – впроваджує довільний контент у HTML-сторінку;
  • jskeylogger - впроваджує JavaScript-кейлоггер у сторінки клієнта.

Якщо цього функціоналу тобі здасться недостатньо, то ти завжди можеш додати свій, реалізувавши відповідне розширення.

PuttyRider

Ще одна цікава утиліта. Щоправда, на відміну від усіх інших інструментів, що розглядаються сьогодні, вона дуже вузько спеціалізована. Як розповідає сам автор проекту, на думку створити таку утиліту його наштовхнуло те, що під час проведення тестів на проникнення найважливіші дані розташовувалися на Linux/UNIX-серверах, до яких адміни підключалися SSH/Telnet/rlogin. Причому здебільшого отримати доступ до машини адміністраторів було набагато простіше, ніж до цільового сервера. Проникнувши на машину сисадміна, залишається тільки переконатися в наявності запущеного PuTTY і за допомогою цієї тулзи побудувати зворотний місток до атакуючого.


Утиліта дозволяє не тільки зняти «спілкування» між адміном і віддаленим сервером (включаючи паролі), а й виконувати довільні shell-команди в рамках цієї сесії. Причому це буде відбуватися абсолютно прозоро для користувача (адміна). Якщо цікавлять технічні деталі, наприклад, як реалізовано впровадження в процес PuTTY, рекомендую ознайомитися з презентацією автора.


Досить стара утиліта, що з'явилася на світ понад вісім років тому. Призначається для клонування сесій шляхом крадіжки кукісів. Для угону сесій має базові навички виявлення хостів (у разі підключення до відкритої бездротової мережі або хабу) та проведення ARP poisoning. Єдина проблема - сьогодні, на відміну від того, що було вісім років тому, майже всі великі компанії, такі як Yahoo або Facebook використовують SSL-шифрування, що робить цю тулзу абсолютно марною. Незважаючи на це, в Мережі ще залишається достатньо ресурсів, які не використовують SSL, тому списувати утиліту з рахунків поки рано. До її плюсів можна віднести те, що вона автоматично інтегрується у Firefox і створює окремий профіль для кожної сесії. Вихідний код доступний у репозиторії, а самостійно зібрати її можна за допомогою такої послідовності команд:

# apt-get install build-essential libwxgtk2.8-dev libgtk2.0-dev libpcap-dev # g++ $(wx-config --cppflags --libs) -lpcap -o sessionthief *.cpp # setcap cap_net_raw,cap_net_admin=eip sessionthief

ProxyFuzz

Безпосередньо до проведення MITM-атак ProzyFuzz не має жодного стосунку. Як можна здогадатися з назви, тулза призначена для фазінгу. Це невеликий недетермінований мережевий фазер, реалізований на пітоні, який довільно змінює вміст пакетів мережевого трафіку. Підтримує протоколи TCP та UDP. Можна налаштувати, щоб проводився фазинг лише однієї сторони. Стане в нагоді, коли потрібно швиденько перевірити якийсь мережевий додаток (або протокол) і розробити PoC. Приклад використання:

Python proxyfuzz -l -r -p

Список опцій включає:

  • w - задає кількість запитів, надісланих перед початком фазінгу;
  • c - фаззити лише клієнта (інакше обидві сторони);
  • s - фаззити лише сервер (інакше обидві сторони);
  • u - UDP-протокол (інакше використовується TCP).

The Middler

Представлена ​​у рамках конференції DEF CON утиліта для проведення MITM-атак на різні протоколи. Альфа-версія підтримувала протокол HTTP і мала у своєму арсеналі три круті плагіни:

  • plugin-beef.py - впроваджує Browser Exploitation Framework (BeEF) у будь-який HTTP-запит, що надходить з локальної мережі;
  • plugin-metasploit.py – впроваджує в незашифровані (HTTP) запити IFRAME, який підвантажує експлойти для браузерів з Metasploit;
  • plugin-keylogger.py - вбудовує JavaScript обробник події onKeyPress для всіх текстових полів, які будуть передаватися по HTTPS, змушуючи браузер символічно відправляти пароль, що вводиться користувачем на сервер атакуючого, до того як відбудеться відправка всієї форми.

The Middler не тільки автоматично аналізує мережевий трафік і знаходить у ньому кукіси, але й самостійно вимагає їх з боку клієнта, тобто процес автоматизований по максимуму. Програма гарантує збирання всіх незахищених облікових записів у комп'ютерній мережі (або публічному хотспоті), до трафіку якої вона має доступ. Для коректної роботи програми в системі мають бути встановлені такі пакети: Scapy, libpcap, readline, libdnet, python-netfilter. На жаль, репозиторій давно не оновлюється, тож нову функціональність доведеться додавати самостійно.

Консольна утиліта, яка в інтерактивному режимі дозволяє досліджувати та модифікувати HTTP-трафік. Завдяки таким навичкам утиліта використовується не тільки пентестерами/хакерами, але й звичайними розробниками, які її використовують, наприклад, для налагодження веб-додатків. З її допомогою можна отримувати докладну інформацію про те, які запити робить програму та які відповіді вона отримує. Також mitmproxy може допомогти у вивченні особливостей функціонування деяких REST API, особливо погано документованих.

Установка дуже проста:

$ sudo aptitude install mitmproxy

$ pip install mitmproxy

$easy_install mitmproxy

Варто зазначити, що mitmproxy дозволяє також виконувати перехоплення HTTPS-трафіку, надаючи клієнту самопідписаний сертифікат. Хороший приклад того, як налаштувати перехоплення та модифікацію трафіку, можна .


Intercepter-NG

Було б дивно, якби цей легендарний інструмент не ввійшов до нашого огляду. Навіть якщо ти ніколи його не юзал, то, напевно, про нього чув (і просто зобов'язаний познайомитися з ним ближче) - він часто зустрічається на сторінках журналу. Повністю описувати його функціонал не буду – по-перше, нас цікавить саме MITM, по-друге, такий опис займе всю статтю.

Продовження доступне лише учасникам

Варіант 1. Приєднайтесь до спільноти «сайт», щоб читати всі матеріали на сайті

Членство у спільноті протягом зазначеного терміну відкриє тобі доступ до ВСІХ матеріалів «Хакера», збільшить особисту накопичувальну знижку та дозволить накопичувати професійний рейтинг Xakep Score!