How Analysis traffic with Wireshark

Wireshark – це один із найпопулярніших і найпотужніших інструментів для аналізу мережевого трафіку у світі. Він дозволяє глибоко моніторити та аналізувати мережевий трафік.

TOOLS FOR FIND VULNERABILITY

Логин Свят

2/3/20253 min read

How How Analysis traffic with Wireshark

Wireshark – це один із найпопулярніших і найпотужніших інструментів для аналізу мережевого трафіку у світі. Він дозволяє глибоко моніторити та аналізувати мережевий трафік. Ось короткий огляд Wireshark:

1. Основне призначення:

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

2. Ключові можливості:

Захоплення трафіку: Wireshark може захоплювати трафік з різних типів мережевих інтерфейсів, таких як Ethernet, Wi-Fi, Bluetooth тощо.

Широка підтримка протоколів: Підтримує велику кількість мережевих протоколів, включно з TCP, UDP, HTTP, HTTPS, DNS, SNMP та багатьма іншими.

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

Підтримка дешифрування: Може дешифрувати зашифрований трафік (наприклад, HTTPS та SSH), за наявності відповідних ключів.

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

3. Інтерфейс користувача:

Список пакетів: Відображає перелік усіх захоплених пакетів.

Деталі пакета: Показує детальну інформацію про обраний пакет.

Байти пакета: Відображає шестигранне представлення даних пакета.

Панель фільтра: Дозволяє застосовувати фільтри для відображення релевантних пакетів.

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

4. Підтримка платформ:

Wireshark доступний для різних платформ, включно з Windows, macOS та Linux.

5. Основні випадки використання:

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

• Аналіз безпеки мережі, зокрема виявлення атак чи ідентифікація вразливостей.

• Розробка та відлагодження мережевих застосунків.

• Моніторинг трафіку для аудиту чи дотримання нормативних вимог.

Ось приклад використання Wireshark для перехоплення FTP-облікових даних:

1. Перехоплення облікових даних FTP за допомогою Wireshark

FTP (File Transfer Protocol) – це стандартний протокол для передачі файлів між комп’ютерами в мережі, наприклад, в Інтернеті. Він часто використовується для завантаження або вивантаження файлів між FTP-сервером і клієнтом.

Вразливість FTP до атак «людина посередині» (MITM):

Оскільки FTP не забезпечує шифрування даних, він уразливий до атак типу MITM (Man-in-the-Middle). Це дозволяє зловмиснику прослуховувати або маніпулювати трафіком між клієнтом і сервером.

Процес атаки та перехоплення облікових даних:

1. Клієнт підключається до FTP-сервера.

2. Під час з’єднання клієнт вводить свої облікові дані (логін та пароль).

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

Кроки для перехоплення FTP-трафіку за допомогою Wireshark:

1. Запустіть Wireshark і виберіть мережевий інтерфейс, який використовується для з’єднання з Інтернетом.

2. Натисніть кнопку “Start Capture” для початку захоплення трафіку.

3. Коли клієнт підключається до FTP-сервера, у Wireshark з’являться пакети протоколу FTP.

4. Використовуйте фільтр ftp у верхній панелі фільтрації для відображення лише FTP-трафіку.

5. Перегляньте захоплені пакети, щоб знайти ті, що містять логін і пароль. Вони зазвичай передаються у вигляді звичайного тексту в командах USER (логін) та PASS (пароль).

Як зловмисники можуть переглядати трафік у Wireshark, фільтруючи порт TCP 21:

Що таке TCP порт 21:

Порт 21 – це стандартний порт для протоколу FTP (File Transfer Protocol). Він використовується для передачі команд між клієнтом і сервером FTP. Оскільки цей трафік зазвичай не зашифрований, його можна легко перехопити.

Кроки для перегляду трафіку з використанням порту TCP 21 у Wireshark:

1. Запуск захоплення:

Відкрийте Wireshark і оберіть активний мережевий інтерфейс для моніторингу.

2. Встановлення фільтра:

Використовуйте фільтр для відображення лише трафіку, що проходить через порт 21. У поле фільтра введіть:

tcp.port == 21

Це дозволить Wireshark відображати лише пакети, що використовують порт TCP 21 (тобто FTP-трафік).

Потім клацніть правою кнопкою миші на TCP-пакеті, виберіть “Follow TCP Stream”, і інформація буде відображена.

2. Як отримати облікові дані для входу на вебсайт за допомогою Wireshark

HTTP (Hypertext Transfer Protocol) – це протокол зв’язку, який використовується для передачі даних у Всесвітній павутині (WWW). Він є основним протоколом для обміну інформацією між клієнтами (наприклад, веббраузерами) та вебсерверами. HTTP, як текстовий протокол прикладного рівня, визначає правила передачі та інтерпретації даних. Зазвичай його використовують для завантаження вебсторінок, але він також може передавати інші типи даних, такі як зображення, відео та файли.

Незважаючи на покращення версій протоколу, включаючи HTTP/1.0, HTTP/1.1 та HTTP/2, HTTP все ще має вразливості, які можуть бути використані зловмисниками.

Поширені вразливості HTTP:

Атака “людина посередині” (MITM):

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

Сценарій MITM-атаки:

a) Зловмисник налаштовує фальшиву Wi-Fi мережу, щоб жертва підключилася до неї для перегляду вебсторінок.

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

У цьому випадку жертва входить на сайт і вводить свій логін і пароль.

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

Після появи відфільтрованих POST-запитів зловмисник може клацнути правою кнопкою миші на одному з них і вибрати “Follow” → “HTTP Stream” для аналізу потоку HTTP з метою отримання додаткової інформації.

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

3. Аналіз атаки Hydra Brute Force за допомогою Wireshark

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

Процес виконання атаки brute force за допомогою Hydra:

1. Зловмисник запускає Hydra, вказуючи цільову систему та облікові дані, які будуть використовуватися для перебору паролів.

2. Hydra автоматично надсилає численні запити для авторизації з різними комбінаціями логінів та паролів.

3. Коли одна з комбінацій виявиться правильною, Hydra повідомляє про успішний доступ.

Аналіз атаки за допомогою Wireshark:

1. Запуск захоплення трафіку:

Відкрийте Wireshark і виберіть відповідний мережевий інтерфейс для моніторингу.

2. Фільтрування запитів:

Використовуйте фільтри для перегляду трафіку, що може бути пов’язаний з атакою brute force. Для цього можна застосувати фільтр за конкретним протоколом аутентифікації, наприклад, http, ftp, або ssh залежно від методу атаки.

Можна також застосувати фільтр для відображення великої кількості повторюваних запитів:

ip.src == <IP-адреса зловмисника> && (http || ftp || ssh)

3. Виявлення ознак атаки:

• Велика кількість повторюваних запитів для входу на сайт або в систему.

• Послідовні помилкові відповіді аутентифікації (наприклад, 401 Unauthorized для HTTP або Login incorrect для SSH).

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

4. Аналіз потоку:

Можна клацнути правою кнопкою миші на будь-якому з пакетів і вибрати “Follow” → “TCP Stream” або “HTTP Stream”, щоб переглянути всю послідовність запитів і відповідей.

4. Виявлення SQL-ін’єкції за допомогою Wireshark

SQL-ін’єкція (SQL Injection) – це тип атаки, спрямований на експлуатацію вебдодатків, які використовують SQL (мову структурованих запитів) для обробки даних. Під час атаки зловмисник вставляє шкідливий SQL-код у вхідні дані додатка, який може бути виконаний базою даних.

Процес SQL-ін’єкції:

1. Зловмисник вводить шкідливий SQL-запит (SQLi payload) у поле введення даних вебдодатка (наприклад, форму входу або пошуковий рядок).

2. Вебдодаток неправильно обробляє введені дані, що призводить до виконання небезпечного SQL-запиту в базі даних.

3. Зловмисник може отримати доступ до конфіденційної інформації або змінити дані в базі.

Виявлення SQL-ін’єкції у Wireshark:

1. Запуск захоплення трафіку:

Відкрийте Wireshark і виберіть мережевий інтерфейс для моніторингу трафіку вебдодатка.

2. Фільтрування HTTP-запитів:

Застосуйте фільтр для перегляду лише HTTP-запитів:

http

або фільтруйте запити з параметрами форми, які можуть містити SQL-код:

http.request.method == "POST" || http.request.method == "GET"

3. Перегляд підозрілих запитів:

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

• '; DROP TABLE users; --

• ' OR '1'='1' --

• UNION SELECT username, password FROM users

4. Слідкування за потоком:

Клацніть правою кнопкою миші на пакеті з підозрілим запитом і виберіть “Follow → HTTP Stream”, щоб переглянути повний вміст переданих даних.

Ознаки SQL-ін’єкції:

• Наявність символів ', ;, --, OR, UNION, що можуть бути частинами SQL-запитів.

• Незвично довгі або складні рядки введених даних у HTTP-запитах.

• Помилки бази даних у відповідях сервера, такі як: SQL syntax error або Database error

5. Аналіз сканування за допомогою Nmap у Wireshark

Nmap (Network Mapper) – це один із найпопулярніших та найпотужніших інструментів для сканування мереж. Він дозволяє виявляти активні вузли, визначати запущені на них сервіси, а також отримувати додаткову інформацію про ці вузли й сервіси.

Основні параметри (флаги), що використовуються зі сканером Nmap:

1. -sS (TCP SYN scan) – це найпоширеніший тип сканування.

• Nmap надсилає SYN-пакет на цільовий порт.

• Залежно від відповіді визначається стан порту:

• Якщо сервер відповідає пакетом SYN/ACK, це означає, що порт відкритий.

• Якщо сервер відповідає пакетом RST (Reset), це свідчить про те, що порт закритий.

• Якщо відповідь не надходить, це може означати, що порт фільтрується (наприклад, брандмауером).

Аналіз сканування в Wireshark:

1. Запуск захоплення трафіку:

Відкрийте Wireshark і виберіть мережевий інтерфейс для моніторингу мережевого трафіку.

2. Фільтрація трафіку:

Використовуйте фільтр для перегляду лише TCP-трафіку:

tcp

Або використовуйте фільтр для SYN-пакетів, які зазвичай надсилаються під час сканування:

tcp.flags.syn == 1 && tcp.flags.ack == 0

3. Слідкування за потоком:

Клацніть правою кнопкою миші на одному з SYN-пакетів і виберіть “Follow → TCP Stream”, щоб переглянути послідовність запитів і відповідей.

Ознаки сканування Nmap у трафіку:

• Велика кількість SYN-пакетів, що надсилаються на різні порти за короткий проміжок часу.

• Відсутність повноцінного TCP-з’єднання (немає тристороннього рукостискання).

• Пакети RST, що повертаються у відповідь на SYN-пакети.

2-sT (TCP Connect scan):

TCP Connect Scan – це тип сканування, при якому відбувається повне встановлення TCP-з’єднання з цільовим портом.

Процес сканування:

1. Nmap надсилає запит для встановлення TCP-з’єднання.

2. Якщо порт відкритий, сервер відповідає на SYN-пакет пакетом SYN/ACK, після чого Nmap надсилає пакет ACK, завершуючи тристороннє рукостискання.

3. Якщо порт закритий, сервер відповідає пакетом RST (Reset), відхиляючи з’єднання.

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

Особливості:

• Цей тип сканування легко виявляється засобами журналювання та мережевими брандмауерами, оскільки він ініціює повне TCP-з’єднання.

• У журналах мережевого трафіку можна побачити повноцінні з’єднання із сервісами на різних портах.

Виявлення TCP Connect Scan у Wireshark:

Фільтрація трафіку:

Використовуйте фільтр для відображення лише SYN-пакетів та подальших ACK-пакетів:

tcp.flags.syn == 1 && tcp.flags.ack == 0

або для тристороннього рукостискання:

tcp.flags.syn == 1 || tcp.flags.ack == 1 || tcp.flags.rst == 1

3.-sU (UDP Scan):

UDP Scan використовується для виявлення відкритих UDP-сервісів на цільовому вузлі. Оскільки UDP (User Datagram Protocol) є протоколом без встановлення з’єднання, цей тип сканування є більш складним і повільним у порівнянні з TCP.

Процес UDP-сканування:

1. Nmap надсилає UDP-пакет на цільовий порт.

2. Відповіді можуть бути різними залежно від стану порту:

• Якщо порт відкритий, сервер може не відповісти взагалі або надіслати відповідь залежно від сервісу (наприклад, DNS може повернути відповідь на запит).

• Якщо порт закритий, сервер зазвичай відповідає пакетом ICMP Port Unreachable.

• Якщо порт фільтрується, відповіді може не бути, оскільки брандмауер може блокувати пакети.

Особливості:

• UDP-сканування займає більше часу, оскільки немає гарантованих відповідей від відкритих портів.

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

Фільтрація UDP-трафіку:

Використовуйте фільтр для відображення лише UDP-пакетів:

udp

4.-sV (Визначення версії сервісу):

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

Процес визначення версії сервісу:

1. Після виявлення відкритих портів Nmap надсилає спеціальні запити на ці порти.

2. Залежно від відповіді сервісу, Nmap аналізує отриману інформацію та намагається визначити:

• Тип сервісу (наприклад, FTP, HTTP, SSH).

• Версію програмного забезпечення (наприклад, Apache 2.4.51 або OpenSSH 8.0).

3. Якщо доступно, Nmap може надати додаткову інформацію, таку як назва операційної системи або інші метадані.

Особливості:

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

• Якщо сервіс має налаштування для приховування версії або відповідає нестандартно, Nmap може отримати обмежену або неточну інформацію.

Виявлення сканування з прапорцем -sV у Wireshark:

Ви можете фільтрувати трафік за типом протоколів, які використовуються для взаємодії з сервісами, наприклад:

tcp.port == 22 || tcp.port == 80 || tcp.port == 443

Захист від сканування та атак в мережі: Підсумок

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

1. Використання шифрування (HTTPS, SSH, FTPS, SFTP):

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

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

2. Використання брандмауерів та обмеження доступу:

• Заблокуйте невідомі або несанкціоновані підключення до портів.

• Обмежте доступ до критичних сервісів за допомогою правил доступу до мережі та дозволених IP-адрес.

• Заблокуйте невикористовувані порти та протоколи.

3. Захист від атак типу “людина посередині” (MITM):

• Уникайте підключення до незахищених або невідомих Wi-Fi мереж.

• Використовуйте VPN для шифрування всього мережевого трафіку.

• Впровадьте сертифікати TLS/SSL для захисту вебсайтів і мережевих сервісів.

4. Використання систем виявлення та запобігання вторгненням (IDS/IPS):

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

• Автоматично блокуйте або сповіщайте про підозрілі дії у мережі.

5. Ліміт на спроби входу в систему:

• Налаштуйте сервіси на обмеження кількості невдалих спроб входу.

• Використовуйте CAPTCHA або двофакторну аутентифікацію для додаткового захисту форм входу.

6. Захист від атак brute force:

• Обмежте кількість одночасних підключень від одного клієнта.

• Реалізуйте блокування IP-адреси після певної кількості невдалих спроб входу.

• Ведіть журнали подій для моніторингу спроби brute force атак.

7. Захист інформації про сервіси:

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

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

8. Регулярне оновлення програмного забезпечення:

• Вчасно оновлюйте ОС, вебсервери, бази даних та інші компоненти системи, щоб захиститися від відомих вразливостей.

9. Використання веб-фаєрволів (WAF):

• Впровадьте WAF для виявлення та блокування атак типу SQL-ін’єкція, XSS та інших.

10. Перевірка і очищення вхідних даних:

• Використовуйте параметризовані запити та перевіряйте введені користувачем дані для запобігання ін’єкцій (SQL, командна ін’єкція).

• Виконуйте валідацію та фільтрацію даних на стороні сервера.