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