Пре него што почне са процесом узимања отисака прстију, за нападача је корисно да зна где се обично користи WAF (Web Application Firewall) у мрежном окружењу.
Тестирачи пенетрације морају обратити пажњу на присуство WAF-а приликом тестирања веб апликација, јер то може значајно утицати на исход њихових напада.
Али прво, да дефинишемо…
Шта је заправо WAF?
WAF, или заштитни зид веб апликација, има кључну улогу у безбедности веб сајтова. Његова функција је да филтрира и надгледа мрежни саобраћај. Заштитни зидови веб апликација пружају заштиту од бројних рањивости. Данас, многе организације унапређују своју инфраструктуру уводећи WAF решења. Међутим, експерти за етичко хаковање напомињу да WAF сам по себи није решење свих безбедносних проблема; неопходна је правилна конфигурација како би се спољне претње успешно идентификовале и блокирале.
За разлику од традиционалних заштитних зидова, WAF има способност филтрирања садржаја специфичних веб апликација, док традиционални заштитни зидови делују као безбедносна баријера између сервера и спољног света.
HTTP интеракција пролази кроз скуп правила. Ова правила су намењена за обраду типичних рањивости као што су скриптовање на више локација (XSS) и SQL инјекције.
На интернету је доступан велики број бесплатних алата отвореног кода који могу открити присуство WAF-а иза веб апликација.
У овом тексту ћемо размотрити приступе и алате који се могу користити за детекцију WAF-ова.
Важна напомена: у овом упутству, за демонстрацију, користио сам сопствену веб страницу. Немојте вршити скенирање или било које хакерске активности на било којој веб локацији без претходног одобрења власника.
Ручна детекција
Детекција коришћењем TELNET-а
Telnet се најчешће користи од стране мрежних администратора и тестирача пенетрације. Омогућава вам да се повежете на удаљене хостове путем било ког порта.
- WAF-ови често остављају (или убацују) HTTP параметре у заглавља одговора.
- Telnet се може користити за добијање основних информација, као што су сервер и колачићи, који се користе за узимање отисака прстију.
- Команда: `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, са скриптом која може идентификовати WAF, такође се може користити у ове сврхе.
- 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-ом током безбедносних провера.
Ако је тако, стратегије заобилажења WAF-а могу бити од помоћи у даљем тестирању или експлоатацији веб апликације.
Заобилажење заштитног зида, детекција апликација, узимање отисака прстију апликација и идентификација софтвера су честе употребе WhatWaf-а. Намењен је за тестираче пенетрације и професионалце у области безбедности.
Како инсталирати WhatWaf?
Инсталација на Кали Линук:
sudo apt install python3-pip git clone https://github.com/ekultek/whatwaf cd whatwaf sudo pip3 install -r requirements.txt
Приликом покретања без навођења верзије Пајтона, можемо лако навести извршну датотеку:
./whatwaf --help
Међутим, пошто нисмо инсталирали Python 2 зависности, саветујемо вам да посебно наведете верзију Питхона.
python3 ./whatwaf --help
Коришћење алата
WhatWaf алат за детекцију WAF-а је једноставан за употребу! Потребно је само извршити следећу команду:
./whatwaf -u https://www.targetsite.com
Као што можете видети у наставку, овај алат је открио заштитни зид за дату УРЛ адресу веб локације.
Подсетник! – Користио сам сопствену веб локацију за скенирање.
┌──(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 захтеве ка WAF-у у циљу идентификације. Ако слање HTTP захтева не успе, Wafw00f шаље злонамерни HTTP захтев. Уколико ни то не успе, Wafw00f анализира претходне HTTP захтеве и користи једноставан алгоритам да утврди да ли WAF реагује на наше нападе.
Wafw00f није унапред инсталиран у Кали Линук дистрибуцијама.
Како инсталирати 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 присутан омогућава тестеру пенетрације да испроба различите приступе заобилажењу заштите и експлоатацији евентуалних рањивости веб апликације.
Према истраживачима етичког хаковања, поседовање WAF-а је данас све неопходније. Увек је важно анализирати логове веб апликација како би се открили нови напади који се одвијају на позадинским серверима. Ово вам омогућава да прилагодите правила у вашем WAF-у и пружите највиши ниво заштите.
Можда ће вас такође занимати: Рањивости пронађене Никто скенером.