Сегодня мы рассмотрим варианты нагрузочного стресс-тестирования серверов и имитацию DoS (или DDoS, если тестировать с нескольких серверов) для Web серверов. Для чего это может быть полезно: для проверки собственных серверов и хостинг-провайдеров на данные типы уязвимостей.
DoS атаки будем использовать L3/4 и L7 уровней OSI.
dstIP – это IP адрес или FQDN имя атакуемой машины.
Первой будет утилита hping версии 3.
Начнем с атаки на превышение максимального количества полуоткрытых сессий (SYN-flood):
hping3 --flood -S -p 80 192.168.232.7
используемые параметры:
–flood – отправлять столько пакетов, сколько возможно.
-S – использовать SYN пакеты
-p 80 – пакеты отправляются на порт 80 (HTTP).
Вторым типом атаки будет ICMP-flood. Его лучше использовать вместе с большим размером пакетов, чтобы попробовать исчерпать входящий канал атакуемого сервера.
hping3 --flood --icmp -d 1000 dstIP
используемые параметры:
–icmp – используем пакеты ICMP
-d 1000 – указываем размер пакета
Теперь попробуем UDP-flood. Эта атака так же насыщает полосу пропускания.
hping3 --flood --udp -s 53 --keep -p 68 192.168.232.36
используемые параметры:
–udp – используем UDP
-s 53 – отправляем с порта 53
–keep – фиксируем порт отправления, иначе он будет увеличиваться на 1 для каждого следующего пакета
-p 68 – отправляем пакеты на порт 68
Теперь перейдем к атакам непосредственно на сам Web сервер.
Первой будет атака на медленные подключения. Смысл данной атаки в том, что у любого Web сервера есть лимит на количество одновременных подключений, но когда мы подключаемся и очень медленно запрашиваем страницу – соединение не сбрасывается, а количество параллельных подключений у сервера ограниченно.
slowhttptest -c 1000 -H -i 20 -r 200 -t GET -u http://dstIP -x 24 -p 3
используемые параметры:
-c – общее суммарное количество подключений
-i – пауза между сессиями для загрузкой части страницы (в рамках одного подключения)
-r – количество подключений в секунду
-t GET – использовать GET запросы (так же можно POST)
-u – URL. Поддерживает HTTP и HTTPS ссылки
-x – количество загружаемых байт из части страницы за одну сессию (в рамках одного подключения)
-p – время ожидания при проверке подключения. Если ответ от сервера не получен за это время, то сервер считается недоступным
-H – атака slow headers a.k.a. Slowloris
Так же доступные типы атак:
-B – атака slow body a.k.a R-U-Dead-Yet
-R – атака range attack a.k.a Apache killer
-X – атака Slow Read
И последний тип рассматриваемых атак. Утилита siege, которая просто запрашивает, в огромное количество потоков, страницы сайта, после чего происходит исчерпание либо ресурсов сервера (если запрашиваем тяжелые станицы) либо ресурсов исходящего канала (если запрашиваем тяжелые файлы).
siege -i -c 2000 https://dstIP/page
используемые параметры:
-i – симулировать обычного пользователя
-c – количество подключений
page – запрашиваемая страницы. тип атаки зависит от выбранной страницы.
Так же можно данной утилите передать флагом -R файл с перечислением страниц
Вот мы и рассмотрели набор для стресс-тестирования Web серверов. Более подробные параметры каждой из утилит можно посмотреть в Man’е.
Заказать Аудит Безопасности или Пентест Вашей IT-инфраструктурыБыть уверенным в своей IT-инфраструктуре – это быть уверенным в завтрашнем дне. Для того, чтобы сделать заказ:
|
Респект, порушил свои серваки. Slowhttp не пережили. Спасибо за инфу