шаблоны wordpress.
DOS И DDOS АТАКИ НА WEB СЕРВЕРА. СТРЕСС-ТЕСТИРОВАНИЕ
Сегодня мы рассмотрим варианты нагрузочного стресс-тестирования серверов и имитацию DoS (или DDoS, если тестировать с нескольких серверов) для Web серверов. Для чего это может быть полезно: для проверки собственных серверов и хостинг-провайдеров на данные типы уязвимостей.
DoS атаки будем использовать L3/4 и L7 уровней OSI.
dstIP — это IP адрес или FQDN имя атакуемой машины.
Первой будет утилита hping версии 3.
Начнем с атаки на превышение максимального количества полуоткрытых сессий (SYN-flood):
1
|
hping3 —flood —S —p 80 192.168.232.7
|
используемые параметры:
—flood — отправлять столько пакетов, сколько возможно.
-S — использовать SYN пакеты
-p 80 — пакеты отправляются на порт 80 (HTTP).
Вторым типом атаки будет ICMP-flood. Его лучше использовать вместе с большим размером пакетов, чтобы попробовать исчерпать входящий канал атакуемого сервера.
1
|
hping3 —flood —icmp —d 1000 dstIP
|
используемые параметры:
—icmp — используем пакеты ICMP
-d 1000 — указываем размер пакета
Теперь попробуем UDP-flood. Эта атака так же насыщает полосу пропускания.
1
|
hping3 —flood —udp —s 53 —keep —p 68 192.168.232.36
|
используемые параметры:
—udp — используем UDP
-s 53 — отправляем с порта 53
—keep — фиксируем порт отправления, иначе он будет увеличиваться на 1 для каждого следующего пакета
-p 68 — отправляем пакеты на порт 68
Теперь перейдем к атакам непосредственно на сам Web сервер.
Первой будет атака на медленные подключения. Смысл данной атаки в том, что у любого Web сервера есть лимит на количество одновременных подключений, но когда мы подключаемся и очень медленно запрашиваем страницу — соединение не сбрасывается, а количество параллельных подключений у сервера ограниченно.
1
|
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, которая просто запрашивает, в огромное количество потоков, страницы сайта, после чего происходит исчерпание либо ресурсов сервера (если запрашиваем тяжелые станицы) либо ресурсов исходящего канала (если запрашиваем тяжелые файлы).
1
|
siege —i —c 2000 https://dstIP/page
|
используемые параметры:
-i — симулировать обычного пользователя
-c — количество подключений
page — запрашиваемая страницы. тип атаки зависит от выбранной страницы.
Так же можно данной утилите передать флагом -R файл с перечислением страниц
Вот мы и рассмотрели набор для стресс-тестирования Web серверов. Более подробные параметры каждой из утилит можно посмотреть в Man’е.
https://blackdiver.net/it/security-it/3903