Як перехопити пакети. Wireshark (перехоплювач мережних пакетів)

Жарознижуючі засоби для дітей призначаються педіатром. Але бувають ситуації невідкладної допомоги при лихоманці, коли дитині потрібно дати ліки негайно. Тоді батьки беруть на себе відповідальність і застосовують жарознижуючі препарати. Що дозволено давати дітям грудного віку? Чим можна збити температуру у дітей старшого віку? Які ліки найбезпечніші?

Програма Wireshark стане відмінним помічником для тих користувачів, кому потрібно зробити детальний аналіз мережевих пакетів, - трафіку комп'ютерної мережі. Сніффер легко взаємодіє з такими поширеними протоколами, як netbios, fddi, nntp, icq, x25, dns, irc, nfs, http, tcp, ipv6і багатьма іншими. Дозволяє при аналізі розділяти мережевий пакет на відповідні складові, згідно з визначеним протоколу, і видавати на екран легку для читання інформацію в числовому вигляді.
підтримує величезну кількість різноманітних форматів переданої і отриманої інформації, здатний відкривати файли, які знаходяться в користуванні інших утиліт. Принцип роботи полягає в тому, що мережева картка переходить в широкомовний режим і починається перехоплення мережевих пакетів, які знаходяться в зоні її видимості. Вміє працювати як програма для перехоплення пакетів wifi.

Як користуватися wireshark

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

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

Щоб запустити функцію захоплення мережевих пакетів, користувач повинен натиснути на іконку "Capture", потім відшукати спеціальний розділ меню під назвою "Interfaces", за допомогою якого можна відкрити окреме вікно "Wireshark Capture Interfaces", де повинні будуть показані всі доступні мережеві інтерфейси, Через які і буде проведений захоплення потрібних пакетів даних. У тому випадку, коли програма (сниффер) здатна виявити тільки один відповідний інтерфейс, вона видасть на екран всю важливу інформаціюпро нього.

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

Є версія і для Linux систем.

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

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


У кожного з команди] [свої переваги по частині софта і утиліт для
пен-тесту. Порадившись, ми з'ясували, що вибір так різниться, що можна
скласти справжній джентльменський набір з перевірених програм. На тому і
вирішили. Щоб не робити збірну солянку, весь список ми розбили на теми - і в
Цього разу торкнемося утиліт для сніфінга і маніпулювання пакетами. користуйся на
здоров'я.

Wireshark

Netcat

Якщо говорити про перехоплення даних, то Network Minerзніме з «ефіру»
(Або з заздалегідь підготовленого дампа в PCAP-форматі) файли, сертифікати,
зображення та інші медіа, а також паролі та іншу інфу для авторизації.
Корисна можливість - пошук тих ділянок даних, що містять ключові слова
(Наприклад, логін користувача).

Scapy

сайт:
www.secdev.org/projects/scapy

Must-have для будь-якого хакера, який представляє собою найпотужнішу ТУЛЗ для
інтерактивної маніпуляції пакетами. Прийняти і декодувати пакети самих
різних протоколів, відповісти на запит, инжектировать модифікований і
власноруч створений пакет - все легко! З її допомогою можна виконувати цілий
ряд класичних задач, на кшталт сканування, tracorute, атак і визначення
інфраструктури мережі. В одному флаконі ми отримуємо заміну таких популярних утиліт,
як: hping, nmap, arpspoof, arp-sk, arping, tcpdump, tetheral, p0f і т.д. У той
же самий час Scapyдозволяє виконати будь-яке, навіть саме специфічне
завдання, яке ніколи не зможе зробити вже створене іншим розробником
засіб. Замість того щоб писати цілу гору рядків на Сі, щоб, наприклад,
згенерувати неправильний пакет і зробити фаззінга якогось демона, досить
накидати пару рядків коду з використанням Scapy! У програми немає
графічного інтерфейсу, а інтерактивність досягається за рахунок інтерпретатора
Python. Трохи освоїшся, і тобі вже нічого не буде коштувати створити некоректні
пакети, инжектировать потрібні фрейми 802.11, поєднувати різні підходи в атаках
(Скажімо, ARP cache poisoning і VLAN hopping) і т.д. Розробники самі наполягають
на те, щоб можливості Scapy використовувалися в інших проектах. підключивши її
як модуль, легко створити утиліту для різного роду дослідження локалки,
пошуку вразливостей, Wi-Fi інжекції, автоматичного виконання специфічних
задач і т.д.

packeth

сайт:
Платформа: * nix, є порт під Windows

Цікава технологія, що дозволяє, з одного боку, генерувати будь-який
ethernet пакет, і, з іншого, відправляти послідовності пакетів з метою
перевірки пропускної здатності. На відміну від інших подібних тулз, packeth
має графічний інтерфейс, дозволяючи створювати пакети в максимально простий
формі. Далі більше. Особливо опрацьовано створення і відправка
послідовностей пакетів. Ти можеш встановлювати затримки між відправленням,
слати пакети з максимальною швидкістю, щоб перевірити пропускну здатність
ділянки мережі (ага, ось сюди-то і будуть ДДОС) і, що ще цікавіше -
динамічно змінювати параметри в пакетах (наприклад, IP або MAC-адресу).

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

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

Крок 1. Встановлюємо і запускаємо Wireshark для захоплення трафіку

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

Захоплення трафіку почався.

Крок 2. Фільтрація захопленого POST трафіку

Відкриваємо браузер і намагаємося авторизуватися на якому-небудь ресурсі за допомогою логіна і пароля. По завершенню процесу авторизації і відкриття сайту ми зупиняємо захоплення трафіку в Wireshark. Далі відкриваємо аналізатор протоколів і бачимо велика кількістьпакетів. Саме на цьому етапі більшість ІТ-фахівців здаються, тому що не знають, що робити далі. Але ми знаємо і нас цікавлять конкретні пакети, які містять POST дані, які формуються на нашій локальній машині при заповненні форми на екрані і відправляються на віддалені сервер при натисканні кнопки «Вхід» або «Авторизація» в браузері.

Вводимо в вікні спеціальний фільтр для відображення захоплених пакетів: http.request.method == "POST "

І бачимо замість тисячі пакетів, всього один з шуканими нами даними.

Крок 3. Знаходимо логін і пароль користувача

Швидкий клік правою кнопки миші і вибираємо з меню пункт Follow TCP Steam


Після цього в новому вікні з'явиться текст, який в коді відновлює вміст сторінки. Знайдемо поля «password» і «user», які відповідають паролю і імені користувача. У деяких випадках обидва поля будуть легко читані і навіть не зашифровані, але якщо ми намагаємося захопити трафік при зверненні до дуже відомим ресурсам типу: Mail.ru, Facebook, Вконтакте і т.д., то пароль буде закодований:

HTTP / 1.1 302 Found

Server: Apache / 2.2.15 (CentOS)

X-Powered-By: PHP / 5.3.3

P3P: CP = "NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"

Set-Cookie: password = ; expires = Thu, 07-Nov-2024 23:52:21 GMT; path = /

Location: loggedin.php

Content-Length: 0

Connection: close

Content-Type: text / html; charset = UTF-8

Таким чином, в нашому випадку:

Ім'я користувача: networkguru

пароль:

Крок 4. Визначення типу кодування для розшифровки пароля

Заходимо, наприклад, на сайт http://www.onlinehashcrack.com/hash-identification.php#res і вводимо наш пароль у вікно для ідентифікації. Мені видано був список протоколів кодування в порядку пріоритету:

Крок 5. Розшифровка пароля користувача

На даному етапі можемо скористатися утилітою hashcat:

~ # Hashcat -m 0 -a 0 /root/wireshark-hash.lf /root/rockyou.txt

На виході ми отримали розшифрованих пароль: simplepassword

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

  • Протокол POP і фільтр виглядає наступним чином: pop.request.command == "USER" || pop.request.command == "PASS"
  • Протокол IMAP і фільтр буде: imap.request contains "login"
  • Протокол SMTP і потрібно вводити наступне фільтра: smtp.req.command == "AUTH"

і більш серйозні утиліти для розшифровки протоколу кодування.

Крок 6. Що робити, якщо трафік зашифрований і використовується HTTPS?

Для відповіді на це питання є кілька варіантів.

Варіант 1. Підключитися в розрив з'єднання між користувачем і сервером і захопити трафік в момент встановлення з'єднання (SSL Handshake). У момент установки з'єднання можна перехопити сеансовий ключ.

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

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

Після отримання ключів за варіантом 1 або 2 необхідно прописати їх в WireShark:

  1. Йдемо в меню Edit - Preferences - Protocols - SSL.
  2. Ставимо прапор «Reassemble SSL records spanning multiple TCP segments».
  3. «RSA keys list» і натискаємо Edit.
  4. Вводимо дані в усі поля і прописуємо шлях у файлу з ключем

WireShark може розшифровувати пакети, які зашифровані з використанням алгоритму RSA. У разі якщо використовуються алгоритми DHE / ECDHE, FS, ECC, сниффер нам не помічник.

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

БОНУС

ВІДЕО: Wireshark Packet Sniffing Usernames, Passwords, and Web Pages

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

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

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

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

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

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

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

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

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

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

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

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

Щоб перехопити мережевий трафік, зловмисник може підмінити реальний IP-адресу мережевого маршрутизатора своїм IP-адресою, виконавши це, наприклад, за допомогою фальсифікованих ICMP-повідомлень Redirect. Отримане повідомлення Redirect хост А повинен, згідно з документом RFC-1 122, сприйняти як відповідь на дейтаграмму, послану іншому хосту, наприклад, В. Свої дії на повідомлення 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).

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

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


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

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

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

Для демонстрації технології сніфінга ми застосуємо вельми популярну програму-сніфер SpyNet, Яку можна знайти на багатьох Web-сайтах. Офіційний сайт програми 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), Які здатні виявляти в мережі комп'ютери, зайняті прослуховуванням мережевого трафіку. Програми-антісніфери для вирішення своїх завдань використовують особливий ознака наявності в мережі прослуховуючих пристроїв - мережева плата комп'ютера-сніфера повинна знаходитися в спеціальному режимі прослуховування. Перебуваючи в режимі прослуховування, мережеві комп'ютери особливим чином реагують на IР-дейтаграми, що посилаються на адресу тестованого хоста. Наприклад, прослуховуючі хости, як правило, обробляють весь вступник трафік, не обмежуючись тільки надісланими на адресу хоста дейтаграммами. Є й інші ознаки, що вказують на підозрілу поведінку хоста, які здатна розпізнати програма AntiSniff.

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

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

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

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

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

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

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

Для захисту від таких атак мережеві адміністратори повинні підтримувати базу даних з таблицею відповідності МАС-адрес і 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-1 122, сприйняти як відповідь на дейтаграмму, послану іншому хосту, наприклад, В. Свої дії на повідомлення 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 не перевіряють IР-адреси відправників повідомлень, то після отримання фальсифікованого пакета сервери FTP або TELNET відправлять відповідь було надіслане за вказаною в хибному пакеті IP-адресою хакерського хоста. Після цього хакерський хост почне роботу з сервером FTP або TELNET зі свого IР-адреси, але з правами легально підключився користувача, який, в свою чергу, втратить зв'язок з сервером через неузгодженості лічильників.

Таким чином, для здійснення описаної вище атаки необхідною і достатньою умовою є знання двох поточних 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(Її опис можна знайти, наприклад, в).

Підтримайте проект - поділіться посиланням, спасибі!
Читайте також
Сбебранк (він же Ощадбанк) Сбебранк (він же Ощадбанк) Рішення проблем з ліцензією у Autocad Чи не запускається autocad windows 7 Рішення проблем з ліцензією у Autocad Чи не запускається autocad windows 7 Інструкція з використання PIN коду КріптоПро, під час підписання кількох документів - Інструкції - АТ Інструкція з використання PIN коду КріптоПро, під час підписання кількох документів - Інструкції - АТ "ПЕК-Торг"