Як хакери використовують ICMP-тунелювання, щоб заволодіти мережею організації

29 вересня 2023 1 хвилина Автор: Lady Liberty

Застереження від хакерського ICMP-тунелювання: Як захистити мережу

Хакери часто вдаються до використання техніки, відомої як ICMP-тунелювання, для того, щоб заволодіти мережею організації. Цей метод дозволяє їм втручатися у мережевий трафік і передавати конфіденційну інформацію без відома власників мережі. Такий вид атаки може бути особливо небезпечним, оскільки ICMP-тунелювання важко виявити та блокувати. Хакери використовують різні методи для реалізації ICMP-тунелювання, і ця техніка може виявитися вельми винахідливою. Вони використовують маніпуляції з пакетами ICMP (Internet Control Message Protocol) для прихованого передавання даних. Іноді це може включати в себе дрібні зміни в заголовках пакетів ICMP, щоб інформація не виявлялася при звичайному моніторингу мережі. Зловмисники можуть використовувати ICMP-тунелювання для обходу мережевих заходів безпеки, таких як брандмауери та системи виявлення вторгнень (IDS).

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

Тунелювання протоколу

Одним з основних методів заплутування трафіку є тунелювання протоколу . При тунелюванні протоколу замість явного відправлення пакетів даних вибраного протоколу (наприклад, TCP) зловмисник інкапсулюватиме пакети в інший протокол. Така поведінка допомагає приховувати шкідливий трафік усередині, здавалося б, невинних форм зв’язку, сприяючи ухиленню від виявлення. Крім того, тунелювання протоколу можна використовувати для шифрування даних та маскування особи зловмисника.

Крім створення прихованого каналу з С2-сервером та виведення даних між двома машинами, тунелювання протоколу також можна використовувати для обходу авторизації на порталі для платного Wi-Fi. У багатьох випадках системи порталів блокують більшу частину TCP- та UDP-трафіку до/від незареєстрованих хостів, але дозволяють інші протоколи, такі як ICMP, DNS і т. д.

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

ICMP та тунелювання

Однією з поширених форм тунелювання протоколів, які не належать до прикладного рівня, є ICMP-тунелювання.

Internet Control Message Protocol (ICMP) — це протокол мережного рівня OSI, що використовується виявлення і контролю проблем маршрутизації у мережі. Коли мережні пристрої виявляють певні помилки, вони створюють пакети ICMP для інформування кінцевих точок про помилки.

Наприклад, коли в мережі виникають петлі маршрутизації, IP-пакети нескінченно проходитимуть через цикл, і їх значення TTL зрештою впаде до нуля. У цей момент останній маршрутизатор, який отримав пакет, надішле повідомлення ICMP «Час очікування минув: TTL минув під час передачі» на IP-адресу джерела пакета. Повідомлення ICMP також можна використовувати для керування маршрутизацією.

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

В цілому, ICMP-протокол не реалізований на кінцевих машинах, за винятком двох відомих інструментів:

  • Ping — мережна утиліта, яка використовується для перевірки доступності хоста по IP та вимірювання часу прийому-передачі. Ping використовує ICMP-пакети ” echo” для роботи;

  • Traceroute — утиліта мережної діагностики, що відображає вузли та транзитні затримки маршруту між двома машинами в IP-мережі з використанням ICMP. При відстеження маршруту traceroute відправляє кілька IP-пакетів запитаному хосту. Пакети призначені для того, щоб кожен маршрутизатор на своєму шляху відправляв ICMP-повідомлення ” Time Exceeded” на хост-джерело, що містить різну інформацію про маршрутизатор.

Нижче наведено приклад того, як ping використовує ехо-пакети ICMP для перевірки доступності хоста в мережі. Сервер ping надсилає ехо-сигнал (пакет, що містить дані) на сервер-одержувач. Потім сервер ping відповідає ехо-відповіддю, що містить ті самі дані. Слід зазначити, що при пінгуванні дані можуть бути довільними.

Зловмисники можуть використовувати тунелі ICMP, щоб приховати зловмисну ​​поведінку в мережі. Замість явного зв’язку з машиною за допомогою вибраного протоколу кожен пакет буде розміщено в пакеті відлуння або відповіді відлуння. Потік зв’язку тепер буде серією операцій «ping» замість TCP-з’єднання, наприклад.

Чому це проблема

ICMP призначений для виявлення та моніторингу мережевих проблем, тому можливість встановлення з’єднання даних між двома машинами часто ігнорується. Крім того, оскільки ICMP є важливою частиною добре встановленого набору протоколів Інтернету, а не протоколом прикладного рівня, компанії менш імовірно будуть стежити за ним так пильно, як звичайні підозрювані у крадіжці даних. Зазвичай: HTTP, HTTPS, TCP, IMAP тощо. .
Крім того, пом’якшення непросте, оскільки в багатьох випадках функції ICMP не можна повністю вимкнути без істотного впливу на роботу користувача.

Загальні набори інструментів для тунелювання

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

ICMPSH

Icmpsh – це простий набір інструментів для запуску обернених оболонок на комп’ютерах з Windows. Він складається з клієнта, написаного на C та працюючого тільки на комп’ютерах з Windows, та POSIX-сумісного сервера, доступного на C, Python та Perl.

Деякі з особливостей icmpsh:

  • Використовується для C&C — на відміну від інших наборів інструментів, icmpsh створює зворотну оболонку, що дозволяє використовувати його для зв’язку C2-сервера з цільовими машинами;

  • Націлений на машини Windows – клієнт є виконуваний файл Windows і на даний момент може працювати тільки на машинах Windows;

  • Низькі привілеї – клієнту не потрібні привілеї адміністратора для правильної роботи;

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

Ptunnel

Ptunnel призначений для обфускування та тунелювання TCP-трафіку. При виконанні клієнт ptunnel тунелюватиме TCP через ICMP на призначений сервер ptunnel. Сервер буде діяти як проксі і пересилатиме TCP-пакети в їхнє фактичне місце призначення і назад. Цей інструментарій може працювати тільки на POSIX-сумісних ОС.

Деякі з особливостей ptunnel:

  • Надійні з’єднання — ptunnel може виявляти втрачені пакети та повторно надсилати їх у разі потреби;

  • Декілька підключень – сервер можна налаштувати для одночасної обробки кількох підключень;

  • Підтримує аутентифікацію — щоб невідомі хости не могли використовувати ваш проксі-сервер.

Icmptunnel

Icmptunnel має схожу на ptunnel архітектуру, але, на відміну від ptunnel, він може тунелювати будь-який IP-трафік. Крім того, Icmptunnel тунелює всі IP-пакети клієнта, а не тільки один сеанс, порт тощо. Ці функції роблять інструмент корисним для обходу порталів аутентифікації Wi-Fi, але менш корисним для скоординованих кібератак. І клієнт, і сервер мають бути сумісні з POSIX.

Деякі з особливостей icmptunnel:

  • Шифрування даних – корисне навантаження ICMP шифрується;

  • Універсальність – тунелювати можна будь-який IP-трафік.

Демонстрація

У цій демонстрації ми будемо використовувати icmpsh для створення сеансу зворотної оболонки між комп’ютером-зловмисником під керуванням Kali Linux і комп’ютером-жертвою під керуванням Windows 10. Ми вибираємо icmpsh, тому що інструмент портативний і не потребує прав адміністратора для запуску на комп’ютері-жертві.

Демонстраційна схема. Зловмисник 192.168.68.113, жертва 192.168.68.115

Крок 1. Відключення echo-відповідей ядра

Перед запуском icmpsh нам потрібно заборонити ядру відповідати на відлуння ICMP. Більшість інструментів ICMP-тунелювання реалізують механізми синхронізації потоку даних між двома машинами, і відповіді ядра можуть призвести до несподіваних результатів.

Щоб відключити ping-відповіді ядра, ми додали до файлу /etc/sysctl.conf наступний рядок: net.ipv4.icmp_echo_ignore_all=1 .

Крок 2 — Запуск сервера та клієнта Icmpsh

Спочатку ми запустимо icmpsh сервер на нашій машині з Kali Linux. Цей інструмент дуже простий у використанні і вимагає всього два аргументи: IP-адреси зловмисника та жертви.

Наша машина чекає на ping-запитів від нашої жертви (IP 192.168.68.115). Тепер ми можемо запустити клієнт, який є виконуваним файлом, завантаженим з GitHub. Ось його аргументи:

Наша машина Kali знаходиться за IP-адресою 192.168.68.113, тому це остання команда:

Запуск icmpsh клієнта на комп’ютері з Windows 10.

На атакуючій стороні ми починаємо отримувати дані по SSH:

Icmpsh-сервер, що відображає вихідні дані клієнтської оболонки

Крок 3 – Виконання команд оболонки

Тепер, коли все налаштовано, ми маємо працюючу зворотну оболонку (reverse shell) на нашому сервері Kali. Наприклад, ми можемо ввести systeminfo для збору інформації про пристрій жертви:

Під час перевірки мережного трафіку між двома машинами ми бачимо велику кількість ICMP-пакетів:

Великий ICMP-трафік між зловмисником та жертвою, перехоплений Wireshark після запуску зворотної оболонки

Оскільки icmpsh не шифрує дані, ми можемо бачити текст оболонки, впроваджений всередину дейтаграм:

Висновок зворотного командного інтерпретатора у вигляді відкритого тексту (позначений синім), замаскований усередині пакета ICMP.

Пом’якшення наслідків

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

Деякі загальні шаблони тунелювання, які можуть бути виявлені:

  • Широке використання ICMP . Особливо при тунелюванні великих обсягів даних може бути виявлений значний обсяг ICMP-трафіку, що входить або виходить із мережі;
  • Аномальний розмір пакета . Кіберзлочинці можуть зменшити загальну кількість пакетів, вставляючи більші дейтаграми в кожен запит або відповідь. Як правило, легітимні ехо-запити та відповіді матимуть фіксований стандартний розмір, тому різні розміри дейтаграм можуть вказувати на те, що з’єднання використовується для тунелювання;
  • Періодичні ping-запити . Як зазначалося раніше, деякі інструменти тунелювання періодично надсилають порожні ICMP-запити, щоб пробити дірки через NAT та міжмережевих екранів з відстеженням стану. Цю модель легко виявити, але іноді її складніше від легітимної поведінки;
  • Мимовільне корисне навантаження ICMP . За допомогою інструментів перевірки пакетів дані ICMP-пакетів можна сканувати та порівнювати зі структурами та заголовками звичайних протоколів для виявлення тунелювання. Однак дані можуть бути зашифровані, і, якщо хакер зможе їх правильно зашифрувати, пакети важко відрізнити від нешкідливого корисного навантаження ICMP.

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

Інші статті по темі
Особиста безпекаПриватність
Читати далі
Основні принципи запобігання парсингу
Запобігання парсингу: Важливість та основні принципи захисту веб-сайтів від автоматизованого видобування даних. Розглянуті безпекові заходи для забезпечення конфіденційності, доступності та ефективності онлайн-ресурсів
1056
ОсвітаХакерські мережі
Читати далі
Синтетичні дані та як комп’ютери створюють інформацію для навчання штучного інтелекту
У цій статті розглядаються синтетичні дані як вигадані чи створені за допомогою комп'ютерних алгоритмів і їх важлива роль у навчанні та розвитку штучного інтелекту.
931
Знайшли помилку?
Якщо ви знайшли помилку, зробіть скріншот і надішліть його боту.