Атакующему всегда полезно знать, где в сети обычно используется WAF, прежде чем приступать к сбору информации.
Пентестеры должны знать о WAF до начала работы с веб-приложениями, поскольку это может повлиять на результаты их атак.
Что такое WAF?
WAF (Web Application Firewall) играет важную роль в обеспечении безопасности веб-сайта.
Они фильтруют и контролируют трафик.
Брандмауэры веб-приложений обеспечивают защиту от основных недостатков.
Многие организации модернизируют свою инфраструктуру, чтобы включить в нее брандмауэры веб-приложений.
По мнению экспертов по этическому взлому, брандмауэры веб-приложений не могут самостоятельно решить проблемы безопасности; для распознавания и блокирования внешних угроз требуется соответствующая настройка.
WAF отличается от традиционного брандмауэра тем, что он может фильтровать содержимое конкретных онлайн-приложений, в то время как традиционные брандмауэры действуют как защитный барьер между серверами.
HTTP-взаимодействие подчиняется набору правил.
Эти правила касаются типичных уязвимостей, таких как межсайтовый скриптинг и SQL-инъекции т.д.
В интернете существует множество бесплатных инструментов с открытым исходным кодом, которые могут обнаружить брандмауэры, стоящие за веб-приложениями.
В этой статье мы рассмотрим подходы и инструменты, которые можно использовать для обнаружения WAF.
Обратите внимание: в этом руководстве я использовал свой собственный сайт для перечисления деталей.
Не проводите сканирование или другие хакерские действия на любом сайте без предварительного разрешения владельца.
Обнаружение вручную
Обнаружение с помощью TELNET
Telnet в основном используется сетевыми администраторами и специалистами по тестированию на проникновение.
Telnet позволяет подключаться к удаленным узлам через любой порт, как уже говорилось ранее.
- Параметры HTTP часто оставляются (или вставляются) в заголовки ответов брандмауэрами веб-приложений.
- Telnet можно использовать для получения основной информации, такой как сервер и cookies
- Введите
Telnet Targetwebsite.com 80
telnet Targetwebsite.com 80
Trying 18.166.248.208...
Connected to Targetwebsite.com.
Escape character is '^]'.
После выполнения приведенной выше команды напишите HEAD / HTTP / 1.1 и нажмите клавишу ввода.
# 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.
Он указывает сервер, на котором размещен веб-сайт, и язык back-end, на котором он был создан после использования telnet на целевом порту 80.
Некоторые системы WAF позволяют изменять этот заголовок, а также могут заставить веб-сервер отправлять HTTP-ответы, отличающиеся от стандартных.
Как показано в приведенном выше результате, веб-сервер ответил на наш запрос и показал, что межсетевым экраном/пограничным шлюзом является Varnish.
Автоматизированная разведка
#1. Обнаружение с помощью NMAP
Для этой цели также можно использовать Nmap, в котором есть скрипт, способный определить брандмауэр веб-приложения.
🥽 Перечислите общие ресурсы NetBIOS с помощью NBTScan и Nmap Scripting Engine
- Nmap – это инструмент оценки безопасности, который обычно используют многие пен-тестеры и сетевые администраторы.
- Nmap используется для получения информации о цели.
- Скрипт был запущен на ту же веб-страницу, что и раньше
- Введите команду nmap -script=http-waf-fingerprint targetweb.com
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?
Установка на Kali-Linux:
sudo apt install python3-pip
git clone https://github.com/ekultek/whatwaf
cd whatwaf
sudo pip3 install -r requirements.txt
При запуске, не имея версии Python, мы можем легко указать исполняемый файл: