hping3 — тестирование сети

В компьютерной терминологии атака отказ-в-обслуживании (DoS) или атака распределённый отказ-в-обслуживании (DDoS) — это попытка сделать ресурсы машины или сети недоступными для пользователей. Хотя средства, мотивы и цели DoS различаются, главная её суть остаётся прежней — на время или на неопределённый срок прервать или приостановить услугу хоста, соединённого с Интернетом. В этой статье я покажу, как выполнить атаку DoS атаку с использованием hping3 и спуфингом IP в Kali Linux.

Как известно, DDoS — это атака, осуществляемая двумя или более лицами, или ботами, а DoS атака делается одним лицом или системой. На 2014 год, частота распознанных DDoS атак достигла в среднем 28 за каждый час.

Обычной целью исполнителей DoS атак являются сайты и услуги на привлекающих внимания серверах, вроде банковских, платёжные шлюзы кредитных карт и даже корневые сервера имён. Угроза отказа-в-обслуживании также распространены в бизнесе в отношении веб-сайтов.

Эта техника теперь широко применяется в определённых играх, используемая владельцами серверов или недовольными конкурентами в таких играх как популярные сервера Minecraft. Возрастает применение DoS как формы «Уличных Интернет Протестов». Этот термин обычно применяется к компьютерным сетям, но не ограничивается этим; например, он также относится к управлению ресурсами CPU.

Понятно, что тема эта актуальная. Поэтому важно подготовится к атакам подобного рода. Провести стресс-тесты своих сетей и серверов. Если они проседают под натиском DoS, то обратитесь к инструкциям по настройке mod_evasive и mod-qos. А данная статья и другие по стресс-тесту сети помогут вам протестировать работоспособность этих модулей на ваших серверах.

Один из общих методов атаки — это насыщение целевой машины внешними запросами связи, в связи с чем она не может ответить на легитимный трафик или отвечает так медленно, что является по существу недоступной. Такие атаки обычно ведут к перегрузке сервера. Обобщённо говоря, в результате DoS атаки оказываются занятыми те или иные ресурсы сервера и он больше не может выполнять деятельность, для которой он предназначен, либо происходит воспрепятствование связи между пользователями и жертвой таким образом, что они больше не могут адекватно обмениваться информацией.

DoS атаки незаконны. Их организаторы и рядовые исполнители преследуются по законам многих стран. Стресс-тест собственной сети не является противозаконным. Стресс-тест чужих сетей/серверов при получении их согласия также разрешён, но необходимо учитывать интересы третьих лиц. Этими третьими лицами могут быть владельцы хостинга (если вы тестируете чужой сайт, виртуальный сервер, находящиеся на хостинге), интернет-провайдеры (поскольку значительный поток трафика может создавать нагрузку на их коммуникации) и т. д. Крайне желательно согласовывать стресс-тесты и с этими третьими лицами во избежание всех возможных проблем. Иначе, невольно, вы станете причинителем вреда тем, на кого стресс-тест не был нацелен.

hping3 хорошо отрабатывает если у вас ещё есть другие запущенные DoS инструменты вроде GoldenEye (использование нескольких инструментов, которые атакую один и тот же сайт/сервер/услугу, увеличивает шансы на успех). Знаете ли вы, что есть агентства и корпорации, которые практически в реальном времени отслеживают DDoS атаки по всему миру и отображают карту DoS в реальном времени:

Сегодня мы будем использовать для нашей атаки отказа-в-обслуживании — DoS — hping3

В этой инструкции будет продемонстрировано, как досить используя hping3 со случайными IP источника на Kali Linux.

Перед тем, как мы начнём использовать hping3, давайте пройдёмся по основам.

Что такое hping3
hping3 это бесплатный генератор пакетов и анализатор для TCP/IP протокола. Hping, де факто, один из обязательных инструментов для аудита безопасности и тестирования файерволов и сетей, он использовался для выполнения эксплойта техники сканирования Idle Scan, которая сейчас реализована в сканере портов Nmap. Новая версия hping — hping3 — написана на скриптах с использованием языка Tcl. В ней реализует сядвижок для удобного описания строками TCP/IP пакетов, следовательно, программист может за очень короткое время написать скрипт, относящийся к низкоуровневой манипуляции пакетами TCP/IP и анализировать их.

Как и большинство инструментов, использующихся в компьютерной безопасности, hping3 полезен для экспертов по безопасности, но существует множество приложений, связанных с тестированием сети и системным администрированием.

hping3 следует использовать для…

  • Traceroute/ping/probe (трассировки/пинга/зондирования) хостов за файерволом, которые блокируют попытки использовать стандартные утилиты.
  • Выполнения сканирования простоя (в настоящее время реализуется в nmap с лёгким пользовательским интерфейсом).
  • Тестирование правил файервола.
  • Тестирование IDS (систем обнаружения вторжения).
  • Эксплуатации известных зависимостей в стеках TCP/IP.
  • Сетевых исследованиях
  • Изучении TCP/IP (hping была использована в сетевых курсах AFAIK).
  • Написании реальных приложений, связанных с TCP/IP тестированием и безопасностью.
  • При автоматизированных тестах по фильтрации трафика.
  • Создания рабочей модели эксплойтов.
  • Исследований в свере сетей и безопасности, когда нужно эмулировать комплексное TCP/IP поведение.
  • Прототипах систем обнаружения вторжения (IDS)
  • Простых в использовании утилитах с интерфейсом Tk.

hping3 уже установлен в Kali Linux как и многие другие инструменты. Он крайне полезен и уже скоро я продемонстрирую его работу.

DoS с использованием hping3 и случайным IP источника
Ну хватит уже ходить вокруг да около, переходим к атаке. Запускается всё одной простой командой:
Код:

root@WebWare-Kali:~# hping3 -c 10000 -d 120 -S -w 64 -p 21 --flood --rand-source 192.168.1.37
HPING 192.168.1.37 (eth0 192.168.1.37): S set, 40 headers + 120 data bytes
hping in flood mode, no replies will be shown
^C
--- 192.168.1.37 hping statistic ---
3258138 packets transmitted, 0 packets received, 100% packet loss
round-trip min/avg/max = 0.0/0.0/0.0 ms
root@WebWare-Kali:~#

Давайте разберёмся в синтаксисе используемой команды:

  • hping3 = Имя бинарника приложения.
  • -c 100000 = Количество пакетов для отправки.
  • -d 120 = Размер каждого пакета, который будет отправлен на целевую машину.
  • -S = Я отправляю только пакеты SYN.
  • -w 64 = Размер окна TCP.
  • -p 21 = Порт назначения (используется 21 порт FTP). Вы можете использовать здесь любой порт.
  • –flood = Отправка пакетов так быстро, как возможно, не заботясь об отображении входящих пакетов. Решим флуда.
  • –rand-source = Использование рандомных IP адресов источника. Вы также можете использовать -a или –spoof чтобы спрятать имя хоста. Подробности по man hping3

192.168.1.37 = Целевой IP адрес или IP адрес целевой машины. Также вы можете использовать здесь сайт. В моём случае, тестирование происходит в лабораторных условиях, в пределах локальной сети.

Так как узнать, работает ли это? В режиме флуда hping3 не проверяет полученные ответы (в любом случае мы не могли бы это сделать, поскольку мы использовали флаг –rand-souce, означающий, что IP адрес источника больше не ваш).

Посмотрим на ситуацию со стороны сервера. Я буду использовать команду top. Так выглядит ситуацию на сервере в режиме простоя:

Стресс-тест сети: DoS с использованием hping3 и спуфингом IP в Kali Linux

Использование процессора в районе нуля, много свободной оперативной памяти.

Так сервер себя чувствует после начала атаки:

Стресс-тест сети: DoS с использованием hping3 и спуфингом IP в Kali Linux

Эта атака не оказала влияния на оперативную памяти, но полностью поглотила ресурсы процессора.

Чтобы понять, что это за si, обратимся к Википедии:
Код:

us — (User CPU time) время, затраченное на работу программ пользователей
sy — (System CPU time) время, затраченное на работу процессов ядра
ni — (Nice CPU time) время, затраченное на работу программ с измененным приоритетом
id — простой процессора
wa — (iowait) время, затраченное на завершение ввода-вывода
hi — (Hardware IRQ) время, затраченное на обработку hardware-прерываний
si — (Software Interrupts) время, затраченное на работу обработку software-прерываний (network)
st — (Steal Time) время, «украденное» гипервизором у этой виртуальной машины для других задач (например работа другой виртуальной машины)

Т.е. si — (Software Interrupts) время, затраченное на работу обработку software-прерываний (network). Вполне логично.

Заключение
Любые новые и современные файерволы будут блокировать это, и в наши дни большинство ядер Linux построены с защитой от SYN флуда. Эта инструкция предназначена для целей исследования и обучения. Для тех, у кого проблемы с TCP SYN или TCP Connect флудом, попробуйте изучить IPTables и способы настройки для блокировки DoS-атак, использующих hping3 или любые другие инструменты. Вы также можете осуществлять DoS-атаку с использованием GoldenEye и другие инструменты для стресс-теста сети.

Запись опубликована в рубрике Linux с метками , , . Добавьте в закладки постоянную ссылку.

Добавить комментарий

Войти с помощью: 

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.