Kali linux нагрузочное тестирование

Статья Стресс-тест сети: DoS веб-сайта в Kali Linux с GoldenEye

На страницах codeby.net уже говорилось об инструментах DoS, которые могут сильно нагрузить серверы HTTP, чтобы парализовать их работу из-за исчерпания пула ресурсов. GoldenEye — это ещё один, со своими особенностями, который может положить сервер за 30 секунд, в зависимости от того, насколько велик пул его памяти. Конечно, он не работает на защищённых серверах и серверах за правильно настроенными WAF, IDS. Но это отличный инструмент для тестирования вашего веб-сервера на повышенную нагрузку. А на основании полученных результатов можно изменить правила iptables/файерволов для увеличения устойчивости и сопротивляемости к негативным факторам.

Это интересно:

  • xerxes — Мошнейший инструмент для организации DoS-атак
  • Пишем самый мощный инструмент для DoS атак [Python]
  • Список лучших инструментов для DOS атак

Подробности об инструменте GoldenEye:

  • Название утилиты: GoldenEye
  • Автор: Jan Seidl
  • Веб-сайт: http://wroot.org/

Из поста автора GoldenEye:

  1. Этот инструмент предназначен только для целей исследования и любое другое вредоносное его использование запрещено.
  2. GoldenEye — это приложение на питоне для ТОЛЬКО ЦЕЛЕЙ ТЕСТИРОВАНИЯ БЕЗОПАСНОСТИ!
  3. GoldenEye это инструмент тестирования HTTP DoS.
  4. Эксплуатируемый вектор атаки: HTTP Keep Alive + NoCache

Типы DoS или DDoS атак

Давайте пройдёмся по самой базовой информации об атаках DoS или. DDoS. Обычно выделяют три вида DoS и DDoS атак:

  1. DoS и DDoS атаки уровня приложений
  2. DoS и DDoS атаки уровня протокола
  3. DoS и DDoS атаки насыщения полосы пропускания

DoS и DDoS атаки уровня приложений

DoS и DDoS атаки уровня приложений — это атаки, которые нацелены на Windows, Apache, OpenBSD или другое программное обеспечение для выполнения атаки и краха сервера.

DoS и DDoS атаки уровня протокола

DoS и DDoS атаки уровня протокола — это атаки на уровне протокола. Эта категория включает Synflood, Ping of Death и другие.

DoS и DDoS атаки насыщения полосы пропускания

Этот тип атак включает ICMP-флуд, UDP-флуд и другие типы флуда, осуществляемые через поддельные пакеты.

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

Сторонние программы, установленные не из репозитория, я собираю в каталоге

/opt. Если у вас нет каталога для сторонних программ, то создайте его и перейдите туда:

Следующая большая команда создаст каталог, загрузит туда последнюю версию GoldenEye, распакует архив и сразу запустит GoldenEye (покажет справку по программе):

mkdir GoldenEye && cd GoldenEye && wget https://codeload.github.com/jseidl/GoldenEye/zip/master && unzip master.zip && cd GoldenEye-master/ && ./goldeneye.py
Если вам хочется всё сделать самому — постепенно, то продолжаем. Для начала создаём каталог GoldenEye, переходим туда и скачиваем архив с программой:

Теперь у нас появился каталог GoldenEye-master, переходим туда и проверяем его содержимое:

Запуск GoldenEye – досим веб-сайт

Запуск очень прост, делается это так:

Программа показывает нам свою справку:

Необходимо осведомлять пользователей о расписании тестирования и возможных перебоях в работе. Поскольку часто результатом симуляции атаки является остановка работы.

Ну и все другие предупреждения: вы не должны тестировать (симулировать атаку) других без их разрешения. Поскольку в случае причинения вреда, вы можете быть привлечены к ответственности в соответствии с законодательством.

Данная информация размещена в образовательных целях. Для тестирования своих серверов, для анализа качества их настройки и разработки мер противодействия атакам.

Читайте также:  Kali linux nethunter без root

Запуск слегка различается от используемой вами ОС:

В зависимости от того, где вы сохранили файлы, подредактируйте ваш путь и команду.

Далее тесты GoldenEye:

Следить за состоянием сервера я буду командой top :

Т.е. сервер находится в состоянии простоя, процесс полностью свободен, свободной оперативной памяти доступно 350 мегабайт.

Можно посмотреть по скриншоту, процессор по-прежнему практически бездействует, но количество свободной памяти резко сократилось, увеличилось количество спящих процессов.

Тем не менее, сервер не удалось полностью положить при атаке в один поток (хотя вообще-то, такая задача и не ставилась).

Анализ атаки GoldenEye

Посмотрим лог сервера:

Я использую grep -E ‘192.168.1.55’, чтобы отфильтровать подключения только с машины, с которой велась атака.

Видим там примерно такое:

Одного взгляда на логи достаточно, что каждый запрос GET содержит различные строки, различные пользовательские агенты и различных реферов, среди которых Bing, Baidu, Yandex и другие рандомные поисковые системы.

Так что происходит, когда ваш веб-сервер встречается с этой атакой? Он анализирует входящий трафик, проверяет запрашиваемые URL, адреса источников и поле Referrer и пропускает их с кодом 200 OK. Почему? Потому что каждый браузер был различным.

Инструмент был создан остроумно так, чтобы любой сервер мог подумать, что это различные пользователи, пытающие зайти с одного IP (может быть IP прокси или большой организации?) с различными браузерами (Firefox, Chrome, MSIE, Safari и т. д.), различными операционными системами (Mac, Linux, Windows и т.д.) и даже с различными реферами. Да, возможно запрашиваемый URL был неправильным, но нормальные веб-сервера всё равно пропустят его, перенаправят на страницу ошибки в то время как соединение будет оставаться открытым (например, Apache worker/socket). Стандартный веб-сервер обычно позволяет X число одновременных пользователей с одного IP и с большим количеством соединений/используемых сокетов, этот тип атаке приводит к тяжёлому давлению на сервер и последующие пользователи получают ошибку (HTTP 503 или наподобии). Следовательно, атакующий с несколькими рандомными proxy/VPN может быстро истощить ресурсы сервера. Он даже может замедлить атаки на один IP для избежания начального выявления:

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

  • -w = 10 одновременные рабочие
  • -s = 10 одновременных соединений
  • -m = рандом, смесь GET и POST

Совершенный DoS!

Интересное наблюдение по Google Analytics и GoldenEye

Я попробовал это в живую, чтобы просто посмотреть, как поведёт себя реальный веб-сервер. Интересно, оказывается что Google Analytics воспринимает этот трафик как реальный и добавляет данные от флуда в статистику (хотя он и идёт с одного IP, но различные рефереры и браузеры убеждают Google в том, что это отдельные пользователи). Можно придумать ещё пару способов эксплуатировать это:

  • Можно повышать свой рейтинг в Google, т. к. она будет воспринимать это как легитимный трафик.
  • Если Google будет наказывать за это, то тогда можно зафлудить веб-сайты конкурентов для понижения их ранжирования в Google.

Эта палка о двух концах.

Блокирование/защита от атаки GoldenEye

Следующие предложения хорошо сработают, когда вы используете Apache:

  1. Понижение соединений на один IP (обычно их 300 на IP для Apache)
  2. Редактирование порога соединений на IP
  3. Отключить настройки KeepAlive и нижний Connection Timeout (по умолчанию это 300)
  4. Если вы хоститесь на общем сервере, обратитесь к сисадминам. Если они не могут защитить от этой простой атаки, то просто переезжайте к хостинг компании получше.
  5. Используйте Web application Firewall (WAF).
  6. Использование белых листов для входящих запросов – и эта атака не окажет эффекта на ваш сервер.
  7. NGINX и Node.js вроде бы лучше справляются с атаками подобного рода.

Заключение

GoldenEye выглядит как расширенная (или схожая на) HTTP Flooder программа. Обе работают похожим образом, но NoCache и KeepAlive от GoldenEye делают большую разницу. Также она использует интересный способ перемешивания браузеров, операционных систем и рефереров, что может обмануть файервол.

В общем, это хороший инструмент для тестирования на нагрузку своего собственного веб-сайта (с разрешения вашей хостинг компании), вашего корпоративного веб-сайта и любых веб-приложений, которые позволяют входящие GET или POST запросы. Используйте её для обновления ваших правил файервола. WAF и благодаря этому избежите будущих атак.

Читайте также:  Linux быстрее windows или нет

Будет интересно послушать ваши решения для подобного типа атак — пишите их в комментариях. Ретвит и расшаривание статьи в соц. сетях приветствуются.

Источник

Стресс-тест сети (DoS веб-сайта) со SlowHTTPTest в Kali Linux: slowloris, slow body и slow read атаки в одном инструменте

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

Связанные статьи по защите веб-сервера:

Связанные статьи по DoS:

  • Стресс-тест сети с Low Orbit Ion Cannon (LOIC)
  • Стресс-тест сети (DoS веб-сайта) с SlowHTTPTest в Kali Linux: slowloris, slow body и slow read атаки в одном инструменте (вы её читаете)

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 .. (жизнь хороша!)

Для других дистрибутивов Linux

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

Этот набор команд делает следующее: скачивает самую последнюю версию SlowHTTPTest, распаковывает её и переходим в каталог с программой:

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

Для тех, кто предпочитает скачать архив вручную, переходите сюда.

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

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

Mac OS X

Linux

Попробуйте ваш любимый пакетный менеджер, некоторые из них знают о slowhttptest (как Kali Linux).

Использование SlowHTTPTest

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

Источник

Статья Стресс-тест сети (DoS веб-сайта) со SlowHTTPTest в Kali Linux: slowloris, slow body и slow read атаки в одном инструменте

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

  • Как усилить веб-сервер Apache с помощью mod_security и mod_evasive на CentOS

Связанные статьи по DoS:

  • Стресс-тест сети с Low Orbit Ion Cannon (LOIC)
  • Стресс-тест сети (DoS веб-сайта) с SlowHTTPTest в Kali Linux: slowloris, slow body и slow read атаки в одном инструменте (вы её читаете)

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 запросы, но ответы читает медленно.

Читайте также:  How to update drivers windows update

Установка SlowHTTPTest
Установка для пользователей Kali Linux
Для пользователей Kali Linux установка через apt-get .. (жизнь хороша!)

Для других дистрибутивов Linux
Инструмент распространяется как портативный пакет, т. е. просто загрузите последний тарбол из секции загрузки, извлеките, настройте, скомпилируйте и установите.
Этот набор команд делает следующее: скачивает самую последнюю версию SlowHTTPTest, распаковывает её и переходим в каталог с программой:

Здесь PREFIX должен быть заменён на абсолютный путь, где инструмент slowhttptest должен быть установлен.
У вас должна быть установлена libssl-dev для успешной компиляции этого инструмента. Большинство систем должны иметь его.

Mac OS X
Используем Homebrew:

Linux
Попробуйте ваш любимый пакетный менеджер, некоторые из них знают о slowhttptest (как Kali Linux).

Использование SlowHTTPTest
slowhttptest это потрясающий инструмент, который позволяет делать многие вещи. Далее только несколько примеров использования.
Пример использования в режиме slow body a.k.a R-U-Dead-Yet, результаты только выводятся на экран

Вывод по 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 соединениями.

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

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

Источник

Оцените статью