Як дізнатися, який WAF захищає веб-сайт

[*]

[*]Зловмиснику завжди доцільно знати, де зазвичай використовується 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 і натисніть клавішу enter.

[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.

  Як налаштувати робочий стіл MATE

[*]Деякі системи 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-адреси веб-сайту.

  Як знайти свій перший твіт

[*]Нагадування! – Я використовував власний сайт для сканування

┌──(root💀kali)-[/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-запити та використовує простий алгоритм, щоб визначити, чи реагує брандмауер веб-програми на наші атаки.

  6 найкращих інфраструктур сповіщень для сучасних програм

[*]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>

[*]НАГАДУВАННЯ. Скануйте лише ті веб-сайти, які вам дозволено тестувати

┌──(root💀kali)-[/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

[*]На жаль, брандмауер виявлено!

[*]Ми спробуємо інший цільовий веб-сайт для обговорення.

┌──(root💀kali)-[/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.