Как узнать, какой WAF защищает веб-сайт?

Опубликовано: 2021-10-11

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

Тестировщики на проникновение должны знать о WAF до начала взаимодействия с веб-приложением, поскольку это может повлиять на результат их атак.

Но перед этим ...

Что такое WAF?

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

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

HTTP-взаимодействие подчиняется набору правил. Эти правила устраняют типичные уязвимости, такие как межсайтовые сценарии и SQL-инъекции в целом.

В Интернете есть множество бесплатных инструментов с открытым исходным кодом, которые могут обнаруживать брандмауэры, скрытые за веб-приложениями.

В этой статье мы рассмотрим подходы и инструменты, которые можно использовать для обнаружения WAF.

Обратите внимание: в этом руководстве я использовал свой собственный сайт для перечисления деталей. Не выполняйте сканирование или другие действия по взлому на любом веб-сайте без предварительного разрешения владельца.

Обнаружение вручную

Обнаружение с помощью TELNET

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

  • Параметры HTTP часто остаются (или вставляются) в заголовки ответов брандмауэрами веб-приложений.
  • Telnet можно использовать для получения базовой информации, такой как сервер и файлы cookie, используемые для снятия отпечатков пальцев.
  • Введите Telnet Targetwebsite.com 80
 [email protected]: # telnet Targetwebsite.com 80 Trying 18.166.248.208... Connected to Targetwebsite.com. Escape character is '^]'.

После выполнения приведенной выше команды напишите HEAD / HTTP / 1.1 и нажмите клавишу ввода.

 [email protected]: # telnet 18.166.248.208 80 Trying 18.166.248.208... Connected to 18.166.248.208. Escape character is '^]'. HEAD / HTTP/1.1 Host: 18.166.248.208 HTTP/1.1 200 OK Date: SUN, 10 Oct 2021 05:08:03 IST Server: Apache X-Powered-By: PHP/5.3.5 ZendServer/5.0 Set-Cookie: SESSIONID VULN SITE=t25put8gliicvqf62u3ctgjm21; path=/ Expires: Thu, 19 Nov 1981 08:52:00 IST Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma: no-cache X-Varnish: 4723782781 Age: 0 Via: 1.1 varnish Connection: close Content-Type: text/html Connection closed by foreign host.

Он указывает сервер, на котором размещен веб-сайт, и внутренний язык, на котором он был создан после использования telnet на целевом порту 80.

Некоторые системы WAF позволяют изменять заголовок, а также могут заставлять веб-сервер отправлять HTTP-ответы, отличные от стандартных.

Как показано в приведенном выше результате, веб-сервер ответил на наш запрос и обнаружил, что межсетевой экран / пограничный шлюз был Varnish.

Автоматическое обнаружение

№1. Обнаружение с помощью NMAP

Для этой цели также можно использовать Nmap, в котором есть сценарий, который может идентифицировать брандмауэр веб-приложений.

  • Nmap - это инструмент оценки безопасности, который обычно используют многие тестировщики на проникновение и сетевые администраторы.
  • Nmap используется для получения информации о цели.
  • Скрипт запускался на той же веб-странице, что и раньше.
  • Введите команду nmap –script=http-waf-fingerprint targetweb.com
 [email protected]:# nmap --script=http-waf-fingerprint targetwebsite.com Starting Nmap 7.90 ( https://nmap.org ) at 2021-10-10 07:58 IST Nmap scan report for targetsite.com (18.166.248.208) Host is up (0.24s latency). Not shown: 982filtered ports PORT STATE SERVICE 53/tcp open domain 80/tcp open http | http-waf-fingerprint: | Detected WAF | Citrix Netscaler 443/tcp open https 5432/tcp closed postgresql 8080/tcp closed http-proxy Nmap done: 1 IP address (1 host up) scanned in 25.46 seconds

После использования указанной выше команды Nmap был обнаружен брандмауэр Citrix Netscaler.

№2. Обнаружение с помощью Whatwaf

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

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

Обход межсетевого экрана, обнаружение приложений, снятие отпечатков пальцев приложений и идентификация программного обеспечения - все это частые применения WhatWaf. Сеть
Предполагаемыми пользователями этой программы являются пен-тестеры и специалисты по безопасности.

Как установить WhatWaf?

Установка на Kali-Linux

 sudo apt install python3-pip git clone https://github.com/ekultek/whatwaf cd whatwaf sudo pip3 install -r requirements.txt

При запуске без версии Python мы можем легко указать исполняемый файл:

 ./whatwaf --help

Однако, поскольку мы не устанавливали зависимости Python 2, рекомендуется указать версию Python.

 python3 ./whatwaf --help

Использование инструмента

Инструмент обнаружения брандмауэра Whatwaf прост в использовании! Нам просто нужно выполнить следующую команду:

 ./whatwaf -u https://www.targetsite.com

Как вы можете видеть ниже, этот инструмент обнаружил брандмауэр для указанного URL-адреса веб-сайта.

Напоминание! - Я использовал свой сайт для сканирования

 ┌──(rootkali)-[/home/writer/WhatWaf] └─# ./whatwaf -u https://www.renjith.org ,------. ' .--. ' ,--. .--. ,--. .--.| | | | | | | | | | | |'--' | | | | | | | | | | __. | | |.'.| | | |.'.| | | .' | | | | |___| | ,'. |hat| ,'. |af .---. '--' '--' '--' '--' '---' /><script>alert("WhatWaf?<|>v2.0.3($dev)");</script>%00 [11:12:34][ERROR] you must install psutil first `pip install psutil` to start mining XMR [11:12:34][INFO] checking for updates [11:12:34][WARN] it is highly advised to use a proxy when using WhatWaf. do so by passing the proxy flag (IE `--proxy http://127.0.0.1:9050`) or by passing the Tor flag (IE `--tor`) [11:12:34][INFO] using User-Agent 'whatwaf/2.0.3 (Language=2.7.18; Platform=Linux)' [11:12:34][INFO] using default payloads [11:12:34][INFO] testing connection to target URL before starting attack [11:12:35][SUCCESS] connection succeeded, continuing [11:12:35][INFO] running single web application 'https://www.renjith.org' [11:12:35][WARN] URL does not appear to have a query (parameter), this may interfere with the detection results [11:12:35][INFO] request type: GET [11:12:35][INFO] gathering HTTP responses [11:12:42][INFO] gathering normal response to compare against [11:12:42][INFO] loading firewall detection scripts [11:12:42][INFO] running firewall detection checks [11:12:44][FIREWALL] detected website protection identified as 'Apache Generic' [11:12:44][INFO] starting bypass analysis [11:12:44][INFO] loading payload tampering scripts [11:12:45][INFO] running tampering bypass checks [11:19:09][SUCCESS] apparent working tampers for target: ------------------------------ (#1) description: tamper payload by changing characters into a wildcard example: '/bin/cat /et?/?asswd' load path: content.tampers.randomwildcard ------------------------------

Как показано в приведенном выше результате, веб-сервер ответил на наш запрос и показал, что это брандмауэр Apache. Мы также можем использовать службу tor для поиска WAF, но это может увеличить задержку.

 ./whatwaf -u https://www.targetsite.com --tor

Основное преимущество инструмента Whatwaf заключается в том, что он автоматически пытается предоставить полезные данные для обхода выявленного межсетевого экрана.

№3. Обнаружение с помощью Wafw00f

Самый известный инструмент для обнаружения брандмауэра веб-приложений - Wafw00f. Wafw00f отправляет HTTP-запрос брандмауэру веб-приложения для его идентификации. При сбое отправки HTTP-запросов wafw00f выполняет вредоносный HTTP-запрос. Если выполнение злонамеренного HTTP-запроса не удается, wafw00f проверяет предыдущие HTTP-запросы и использует простой алгоритм, чтобы определить, реагирует ли брандмауэр веб-приложения на наши атаки.

Wafw00f не предустановлен в дистрибутивах Kali Linux.

Как установить Wafw00f?

Пакет zip доступен для загрузки из официального источника GitHub.

Загрузите инструмент Wafwoof. Вы также можете использовать клиент git для клонирования репозитория. Чтобы получить пакет, выполните команды:

 $ git clone https://github.com/EnableSecurity/wafw00f.git

Чтобы загрузить инструмент wafw00f в систему, перейдите в папку или каталог wafw00f и выполните следующую команду.

 $ python setup.py install

Установочный файл будет обработан, и wafw00f будет установлен в системе.

Использование инструмента

Чтобы использовать этот инструмент, запустите эту команду.

 $ wafw00f <url>

НАПОМИНАНИЕ - сканируйте только те веб-сайты, которые вам разрешено тестировать.

 ┌──(rootkali)-[/home/writer/wafw00f] └─# wafw00f https://webhashes.com ______ / \ ( Woof! ) \ ____/ ) ,, ) (_ .-. - _______ ( |__| ()``; |==|_______) .)|__| / (' /|\ ( |__| ( / ) / | \ . |__| \(_)_)) / | \ |__| ~ WAFW00F : v2.1.0 ~ The Web Application Firewall Fingerprinting Toolkit [*] Checking https://whatismyip.com [+] The site https://whatismyip.com is behind Cloudflare (Cloudflare Inc.) WAF. [~] Number of requests : 2

Жаль, брандмауэр обнаружен!

Мы попробуем использовать другой целевой веб-сайт для обсуждения.

 ┌──(rootkali)-[/home/writer/wafw00f] └─# wafw00f https://renjith.org ______ / \ ( Woof! ) \ ____/ ) ,, ) (_ .-. - _______ ( |__| ()``; |==|_______) .)|__| / (' /|\ ( |__| ( / ) / | \ . |__| \(_)_)) / | \ |__| ~ WAFW00F : v2.1.0 ~ The Web Application Firewall Fingerprinting Toolkit [*] Checking https://renjith.org [+] Generic Detection results: [-] No WAF detected by the generic detection [~] Number of requests: 7

На этот раз брандмауэр не обнаружен.

А чтобы использовать его в подробном режиме, выполните следующую команду.

 wafw00f <url> -v

Вы можете увидеть несколько дополнительных возможностей этой утилиты, выполнив эту команду.

 wafw00f <url> --help

Заключение

В этой статье мы рассмотрели различные стратегии и инструменты для обнаружения брандмауэров веб-приложений. Это важное действие, которое необходимо выполнять на этапе сбора информации каждого теста на проникновение веб-приложений.

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

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

Вам также может быть интересно прочитать: Уязвимости при использовании Nikto Scanner.