Атаки типу man in the. Все про атаку "Людина посередині" (Man in the Middle, MitM). Я — експерт у галузі безпеки, і я вважаю, що ваш протокол небезпечний

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

18.10.2016 | Володимир Хазов

Плани ФСБ, Мінкомзв'язку та Мінпромторгу щодо реалізації положень закону Ярової в частині перехоплення та дешифрування листування росіян перестають бути лише планами, а вже починають наводитися в дію замовленням на підготовку експертного висновку про можливість перехоплення повідомлень WhatsApp, Viber, Facebook Messenger, Telegram, Skype за допомогою MITM-атак та демонстрацію прототипу такого засобу.

Про схему організації «законної» MITM-атаки ми писали у минулій статті. Сьогодні ж зупинимося докладніше на самому принципі такої атаки та способи її здійснення.

Що таке MITM-атака

Man In The Middle (MITM) перекладається як "людина посередині". Цей термін означає мережеву атаку, коли зловмисник знаходиться між інтернет-користувачем і програмою, до якої той звертається. Не у фізичному плані, звичайно, а за допомогою спеціального програмного забезпечення. Він представляється користувачеві додатком, що запитується (це може бути веб-сайт або інтернет-сервіс), імітує роботу з ним, робить це так, щоб склалося враження нормальної роботи та обміну інформацією.

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

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

Крім того, після крадіжки облікових даних та злому системи злочинці можуть встановити в корпоративної мережішкідливе програмне забезпечення для організації розкрадання інтелектуальної власності (патенти, проекти, бази даних) та заподіяння економічної шкоди шляхом видалення важливих даних.

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

Як здійснюється MITM-атака

Виконання MITM-атаки складається з двох фаз: перехоплення та дешифрування.

  • Перехоплення

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

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

Другий спосіб - активний перехоплення, яким може бути здійснено одним з наступних варіантів:

IP-spoofing- Підміна IP-адреси мети в заголовку пакета на адресу атакуючого. В результаті користувачі замість того, щоб зайти на запитуваний URL, потрапляють на сайт зловмисника.

ARP-spoofing– заміна цієї MAC-адреси вузла на адресу атакуючого в ARP-таблиці жертви. В результаті дані, надіслані користувачем на IP-адресу необхідного вузла, потрапляють на адресу атакуючого.

DNS-spoofing –зараження кешу DNS, проникнення на сервер DNSта заміна запису відповідності адреси веб-сайту. В результаті користувач намагається отримати доступ до сайту, що запитується, але отримує від DNS-сервера адресу сайту зловмисника.

  • Дешифрування

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

І тому існує кілька методів:

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

SSL BEAST(browser exploit against SSL/TLS) – атака використовує вразливість SSL у TLS версії 1.0 та 1.2. Комп'ютер жертви заражається шкідливим JavaScript, який перехоплює зашифровані cookies, що надсилаються до веб-додатку. Це компрометує режим шифрування "зчеплення блоків шифротексту" таким чином, що атакуючий отримує розшифровані cookies та ключі автентифікації.

SSL-hijacking– передача підроблених ключів автентифікації користувачеві та програмі на момент початку TCP-сеансу. Це створює видимість безпечного з'єднанняколи насправді сеансом керує «людина посередині».

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

Захист від MITM-атак

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

Дії користувачів:

  • Уникати підключення до Wi-Fi-точок, які не мають парольного захисту. Вимкніть функцію автоматичного підключеннядо відомих точок доступу - зловмисник може замаскувати свій Wi-Fi під легальний.
  • Звертати увагу на повідомлення браузера про перехід на незахищений веб-сайт. Таке повідомлення може вказувати на перехід на підроблений сайт зловмисника або на проблеми із захистом легального сайту.
  • Завершувати сеанс роботи з програмою (logout), якщо вона не використовується.
  • Не використовувати загальнодоступні мережі(кафе, парк, готель та інші) для проведення конфіденційних операцій (ділове листування, фінансові операції, покупки в онлайн-магазинах тощо).
  • Використовуйте на комп'ютері або ноутбуці антивірус з актуальними базами, він допоможе захиститись від атак за допомогою шкідливого програмного забезпечення.

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

Хорошою практикою вважається захист TLS і HTTPS не тільки сторінок авторизації, але й решти розділів сайту. Це зменшує шанс зловмисника на розкрадання cookies користувача в той момент, коли він переміщається незахищеними сторінками після проходження авторизації.

Захист від MITM-атак – це відповідальність користувача та оператора зв'язку. Для користувача найважливіше – не втрачати пильності, використовувати лише перевірені способи доступу до інтернету, а для передачі персональних даних вибирати сайти з HTTPS-шифруванням. Операторам зв'язку можна рекомендувати використовувати Deep Packet Inspection (DPI) системи для виявлення аномалій у мережах передачі даних та запобігання spoofing-атакам.

Державні органи планують використовувати MITM-атаку для захисту громадян, а не завдання шкоди, на відміну від зловмисників. Перехоплення особистих повідомлень та іншого користувача трафіку здійснюється в рамках чинного законодавства, виконується за рішенням судових органів для боротьби з тероризмом, незаконним обігом наркотиків та іншими забороненими видами діяльності. Звичайним користувачам«законні» MITM-атаки не становлять небезпеки.

MTProto використовує оригінальний метод для того, щоб досягти надійності у вразливій мобільного зв'язкута швидкості у доставці великих файлів(наприклад, фотографій, відео та документів розміром до 1 ГБ). Цей документ призначений для роз'яснення деталей нашої системи та розгляду елементів, які, на перший погляд, важко зрозуміти.

Детальна документація протоколу доступна на цій сторінці. Якщо у вас є питання - пишіть у Твіттер.

Примітка:Кожне повідомлення, зашифроване через MTProto, завжди містить такі дані, які будуть перевірені під час дешифрування, щоб зробити систему надійною від відомих проблем:

  • ідентифікатор сесії – session id;
  • довжина повідомлення – message length;

Note 2:Дивіться додаткові коментарі щодо використання , та модифікованоюсхеми.

Чому ви не використовуєте X [ваш варіант]

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

Чому ви спираєтеся на класичні криптоалгоритми?

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

Я — експерт у сфері безпеки, і я вважаю, що ваш протокол є небезпечним.

Ви можете взяти участь у нашому конкурсі: Павло Дуров пропонує $200 000 у биткойнах тому, хто перший зламає MTProto. Можете ознайомитися з оголошенням та Конкурсним FAQ. Якщо у вас є інші зауваження, будемо раді почути їх на [email protected].

Захист від відомих атак

Атаки на основі відкритих текстів (Known-Plaintext Attacks)

Згідно з визначенням, атака на основі відкритого тексту – вид криптоаналітичної атаки, при якій у атакуючого є обидві версії тексту: зашифрована та вихідна. Використовуваний у MTProto AES IGE стійкий до таких атак. До того ж, незашифрований текст у MTProto завжди містить сіль сервера та ідентифікатор сесії.

Атака на основі адаптивно підібраного відкритого тексту

Згідно з визначенням атака на основі адаптивно підібраного відкритого тексту - вид атаки в криптоаналізі, що передбачає, що криптоаналітик може вибирати відкритий текст і отримувати відповідний йому шифротекст. MTProto використовує AES у режимі IGE, який безпечний проти таких атак. Відомо, що IGE нестійкий до blockwise-adaptive атак, але MTProto виправляє це нижчеописаним способом. Кожне повідомлення з відкритим текстом, яке має бути зашифровано, містить такі дані, які перевіряються при розшифровці:

  • сіль сервера (64-бітна) – server salt (64-Bit);
  • порядковий номер повідомлення – message sequence number;
  • час відправлення повідомлення – time.

До того ж, щоб замінити відкритий текст, також доведеться використовувати вірні AES-ключ та вектор ініціалізації, що залежать від auth_key. Це робить MTProto стійким проти атак на основі адаптивно підібраного відкритого тексту.

Атаки на основі підібраного шифротексту

Згідно з визначенням, атака на основі підібраного шифротексту - це криптографічна атака, при якій криптоаналітик збирає інформацію про шифр шляхом підбору зашифрованого тексту і отримання його розшифровки при невідомому ключі. При такій атаці зловмисник може ввести в систему один або кілька відомих шифротекстів та отримати відкриті тексти. За допомогою цих даних атакуючий може спробувати відновити ключ, який використовується для розшифровування. У MTProto при кожному дешифруванні повідомлення проводиться перевірка на відповідність msg_key до SHA-1 розшифрованих даних. Відкритий текст (дешифровані дані) також містить інформацію про довжину повідомлення, його порядкового номера та солі сервера. Це зводить нанівець атаки на основі підібраного шифротексту.

Атаки повторного відтворення

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

Атака «Людина посередині» (MitM)

Telegram має два режими спілкування: звичайні чати, що використовують шифрування клієнт-сервер, та секретні чати, що використовують кінцеве шифрування та захищені від атак посередника. Передача даних між клієнтом і сервером захищена від подібних атак під час генерації ключів за протоколом Діффі-Хеллмана завдяки алгоритму відкритим ключем RSA, який вбудований у клієнти Telegram. Після цього, якщо клієнти співрозмовників довіряють програмного забезпеченнясервери, секретні чати між ними захищаються сервером від атак посередника. Спеціально для тих, хто недовіряє серверу, у додатку є порівняння секретних кодів. Ключі візуалізуються як зображень. Порівнюючи візуалізовані ключі, користувачі можуть переконатися, що атака "людина посередині" не була здійснена.

Шифрування

Ви використовуєте IGE? Він же зламаний!

Так, ми використовуємо IGE, але в нашій реалізації з ним все гаразд. Той факт, що ми не використовуємо IGE разом з іншими елементами нашої системи так само, як і MAC, робить спроби злому IGE безглуздими. IGE, як і поширений режим зчеплення блоків шифротексту (CBC), піддається blockwise-adaptive атакам. Але адаптивні атаки є загрозою лише тоді, коли той самий ключ використовується в декількох повідомленнях (у це не так).

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

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


Wikimedia Foundation. 2010 .

Дивитися що таке "Людина посередині (атака)" в інших словниках:

    Атака «людина посередині», MITM атака (англ. Man in the middle) термін у криптографії, що позначає ситуацію, коли криптоаналітик (атакуючий) здатний читати і видозмінювати за своєю волею повідомлення, якими обмінюються… Вікіпедія

    - … Вікіпедія

    Криптоаналіз (від грец. κρυπτός прихований та аналіз) наука про методи отримання вихідного значення зашифрованої інформації, не маючи доступу до секретної інформації (ключу), необхідної для цього. Найчастіше під цим мається на увазі… … Вікіпедія

    Хакерська атака у вузькому значенні слова в даний час під словосполученням розуміється «Замах на систему безпеки», і схиляється скоріше до сенсу наступного терміну атаки Крєкер. Це сталося через спотворення сенсу самого слова «хакер»… Вікіпедія

    - (від ін. грец. κρυπτός прихований та аналіз) наука про методи розшифрування зашифрованої інформації без призначеного для такого розшифрування ключа. Термін був запроваджений американським криптографом Вільямом Ф. Фрідманом у 1920 році. Неформально… … Вікіпедія

Атака «людина посередині» (англ. Man in the middle, MitM-атака) - термін у криптографії, що означає ситуацію, коли атакуючий здатний читати і видозмінювати за своєю волею повідомлення, якими обмінюються кореспонденти, причому жоден з останніх не може здогадатися про його присутності у каналі.

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

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

Припустимо, об'єкт "A" планує передати об'єкту "B" інформацію. Об'єкт "C" має знання про структуру та властивості використовуваного методу передачі даних, а також про факт планованої передачі власне інформації, яку "С" планує перехопити.

Для здійснення атаки "С" "представляється" об'єкту "А" як "В", а об'єкту "В" - як "А". Об'єкт " А " , помилково вважаючи, що він спрямовує інформацію " У " , посилає її об'єкту " З " .

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

Приклад MitM-атаці:

Припустимо, у Аліси фінансові проблеми та використовуючи програму для обміну миттєвими повідомленнями, вирішила попросити у Джона суму грошей, надсилаючи повідомлення:
Аліса: Джон, привіт!
Аліса: Надішліть, будь ласка, ключ шифрування, є маленьке прохання!
Джон: Вітаю! Почекай секундочку!

Але, в цей час, Містер-Х, який, аналізуючи трафік за допомогою сніфера, помітив це повідомлення, а слова "ключ шифрування" викликала цікавість. Ось чому вирішив перехопити наступні повідомлення та підмінити їх на потрібні йому дані, і коли отримав таке повідомлення:
Джон: Ось мій ключ: 1111_Д

Він змінював ключ Джона на свій, і відправив повідомлення Алісі:
Джон: Ось, мій ключ: 6666_М

Аліса, нічого не підозрюючи і думаючи, що це ключ Джона, використовуючи секретний ключ 6666_М, відправляє Джону зашифровані повідомлення:
Аліса: Джоне, у мене проблеми і мені терміново потрібні гроші, переведи, будь ласка, $300 на мій рахунок: Z12345. Спасибі. p.s. Мій ключ: 2222_А

Отримавши повідомлення, Містер-Х, розшифровує її за допомогою його ключа, читає, і радіючи, змінює номер рахунку та ключ шифрування Аліси на свій, зашифровує повідомлення ключем 1111_Д, і відправляє Джону повідомлення:
Аліса: Джоне, у мене проблемми і мені терміново потрібні гроші, переведи будь ласка $300 на мій рахунок: Z67890. Спасибі. p.s. Мій ключ: 6666_А

Після того, як отримав повідомлення, Джон розшифровує її за допомогою ключа 1111_Д, і навіть не сумніваючись, переказує гроші на рахунок Z67890...

І таким чином, Містер-Х використовуючи атаку "людина посередині", заробив $300, але Алісі тепер доведеться пояснити, що вона не отримала гроші... А Джон? Джон повинен довести Алісі, що він їх відправив...

Реалізація:

Подібний тип атак використовується в деяких програмних продуктахдля прослуховування мережі, наприклад:
NetStumbler- програма, за допомогою якої можна зібрати безліч корисних даних про бездротову мережу та вирішити деякі проблеми, пов'язані з її експлуатацією. NetStumbler дозволяє визначити радіус дії мережі та допоможе точно спрямувати антену для зв'язку на далекі відстані. Для кожної знайденої точки доступу можна дізнатись MAC-адресу, співвідношення сигнал/шум, назву сервісу та ступінь його захищеності. Якщо трафік не шифрується, корисною виявиться здатність програми виявляти неавторизоване підключення.

dsniff- являє собою набір програм для мережного аудиту та перевірок на можливість проникнення, забезпечують пасивний моніторинг мережі для пошуку даних, що цікавлять (паролі, адреси електронної пошти, файли і т. п.), перехоплення мережного трафіку, у звичайних умовах недоступного для аналізу (наприклад, в мережі, що комутується), також можливість організації MITM-атак для перехоплення сесій SSH і HTTPS за рахунок використання недоліків PKI.

Cain & Abel - безкоштовна програма, що дозволяє відновлювати втрачені паролі для операційних системсімейства Windows. Підтримується кілька режимів відновлення: грубий злам методом перебору, підбір за словником, перегляд прихованих зірочками паролів тощо. Також є опції для виявлення пароля шляхом перехоплення інформаційних пакетівта їх подальшого аналізу, запису переговорів по мережі, аналізу кешу та інші.

Ettercap- являє собою сніффер, перехоплювач пакетів та реєстратор для локальних Ethernet-мереж, який підтримує активний та пасивний аналіз множини протоколів, а також можливі «підкидання» власних даних у наявну сполуку та фільтрацію «на льоту» без порушення синхронізації з'єднання. Програма дозволяє перехоплювати SSH1, HTTPS та інші захищені протоколи та надає можливість розшифровувати паролі для наступних протоколів: TELNET, FTP, POP, RLOGIN, SSH1, ICQ, SMB, MySQL, HTTP, NNTP, X11, NAPSTER, IRC, RIP, BGP, SOCKS 5, IMAP 4, VNC, LDAP, NFS, SNMP, HALF LIFE, QUAKE 3, MSN, YMSG.

KARMA– набір утиліт для оцінки безпеки бездротових клієнтів, є бездротовим сніффером, який, пасивно прослуховуючи 802.11 Probe Request фрейми, дозволяє виявляти клієнтів та їх переваги/довірені мережі. Потім може бути створена підроблена точка доступу для однієї з мережі, до якої він може бути автоматично підключений. Високорівневі підроблені служби можуть використовуватися для крадіжки персональних даних або експлуатації клієнтських вразливостей на хості.

AirJack- Комплект програм, який, на думку експертів з галузі WiFi-хакінгу, це найкращий інструментдля генерування різних кадрів 802.11. AirJack включає ряд утиліт, призначені для виявлення прихованого ESSID, посилки фреймів припинення сеансу з підробленим MAC, проведення MitM-атак та її модифікацію.

Протидія:

Для запобігання атакам подібного типу абонентам "A" і "B" достатньо за допомогою достовірного каналу передати один одному цифрові підписи публічних ключів шифрування. Тоді при порівнянні підписів ключів у сеансах шифрування можна буде встановити, яким ключем шифрувалися дані, і чи не відбулася заміна ключів.