Bir Web Sitesini Hangi WAF'ın Koruduğu Nasıl Bulunur?

Yayınlanan: 2021-10-11

Bir saldırganın, parmak izini almaya başlamadan önce bir ağda tipik olarak bir WAF'nin nerede kullanıldığını bilmesi her zaman iyi bir fikirdir.

Saldırılarının sonuçları etkilenebileceğinden, sızma test uzmanları bir web uygulaması etkileşimine başlamadan önce bir WAF'nin farkında olmalıdır.

Ama ondan önce…

WAF nedir?

WAF (Web Uygulaması Güvenlik Duvarı), web sitesi güvenliğinde önemli bir rol oynar. Trafiği filtreler ve izlerler. Web Uygulaması Güvenlik Duvarları, büyük kusurlara karşı koruma sağlar. Birçok kuruluş altyapılarını web uygulaması güvenlik duvarlarını içerecek şekilde modernize ediyor. Etik bilgisayar korsanlığı uzmanlarına göre, web uygulaması güvenlik duvarları güvenlik sorunlarını kendi başlarına çözemezler; dış tehditleri tanımak ve engellemek için yeterli yapılandırma gereklidir.

Bir WAF, belirli çevrimiçi uygulamaların içeriğini filtreleyebilmesi bakımından geleneksel bir güvenlik duvarından farklıdır, oysa geleneksel güvenlik duvarları sunucular arasında bir güvenlik bariyeri görevi görür.

Bir HTTP etkileşimi bir dizi kurala tabidir. Bu kurallar, genel olarak siteler arası komut dosyası çalıştırma ve SQL enjeksiyonu gibi tipik güvenlik açıklarını ele alır.

İnternette web uygulamalarının arkasındaki güvenlik duvarlarını keşfedebilecek birçok ücretsiz ve açık kaynaklı araç var.

Ve bu makalede, bir WAF'yi keşfetmek için kullanılabilecek yaklaşımlara ve araçlara bakacağız.

Lütfen dikkat: Bu eğitimde, ayrıntıları numaralandırmak için kendi sitemi kullandım. Sahibinden önceden izin almadan herhangi bir web sitesinde tarama veya başka bir bilgisayar korsanlığı faaliyeti gerçekleştirmeyin.

Manuel Keşif

TELNET kullanarak algılama

Telnet, çoğunlukla ağ yöneticileri ve penetrasyon test cihazları tarafından kullanılır. Telnet, daha önce belirtildiği gibi, herhangi bir bağlantı noktası üzerinden uzak ana bilgisayarlara bağlanmanıza olanak tanır.

  • HTTP parametreleri genellikle web uygulaması güvenlik duvarları tarafından yanıt üstbilgilerine bırakılır (veya eklenir).
  • Telnet, parmak izi almada kullanılan sunucu ve çerezler gibi temel toplama bilgilerini elde etmek için kullanılabilir.
  • Telnet Targetwebsite.com 80
 [email protected]: # telnet Targetwebsite.com 80 Trying 18.166.248.208... Connected to Targetwebsite.com. Escape character is '^]'.

Yukarıdaki komutu çalıştırdıktan sonra HEAD / HTTP / 1.1 yazıp enter tuşuna basın.

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

Web sitesinin barındırıldığı sunucuyu ve hedef bağlantı noktası 80'de telnet kullanıldıktan sonra oluşturulduğu arka uç dilini gösterir.

Bazı WAF sistemleri, başlığın değiştirilmesine izin verir ve ayrıca web sunucusunun standart olanlardan farklı HTTP yanıtları göndermesine neden olabilir.

Yukarıdaki sonuçta gösterildiği gibi, web sunucusu isteğimize yanıt verdi ve güvenlik duvarı/kenar ağ geçidinin Varnish olduğunu ortaya çıkardı.

Otomatik Keşif

#1. NMAP kullanarak algılama

Bir web uygulaması güvenlik duvarını tanımlayabilen bir komut dosyasına sahip olan Nmap, bu amaçla da kullanılabilir.

  • Nmap, birçok kalem testçisinin ve ağ yöneticisinin yaygın olarak kullandığı bir güvenlik değerlendirme aracıdır.
  • Nmap, hedef hakkında bilgi almak için kullanılır.
  • Komut dosyası, öncekiyle aynı web sayfasına karşı çalıştırıldı
  • 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

Yukarıdaki Nmap komutunu kullandıktan sonra Citrix Netscaler güvenlik duvarı algılandı.

#2. Whatwaf kullanarak algılama

Whatwaf, web uygulamalarının parmak izini almak ve herhangi bir WAF'nin varlığını tespit etmek için bir güvenlik aracıdır. Bu araç, güvenlik değerlendirmeleri sırasında bir web uygulamasının bir WAF tarafından korunup korunmadığını belirlemek için kullanışlıdır.

Durum buysa, atlama ve kaçınma stratejileri, çevrimiçi uygulamanın daha fazla test edilmesinde veya kullanılmasında yardımcı olabilir.

Güvenlik duvarı atlama, uygulama algılama, uygulama parmak izi alma ve yazılım tanımlama, WhatWaf'ın sık kullanımlarıdır. Ağ
Kalem test cihazları ve güvenlik uzmanları bu programın hedef kullanıcılarıdır.

WhatWaf nasıl kurulur?

Kali-Linux'ta Kurulum

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

Başlatma sırasında, bir Python sürümü olmadan, yürütülebilir bir dosyayı kolayca belirtebiliriz:

 ./whatwaf --help

Ancak Python 2 bağımlılıklarını yüklemediğimiz için özellikle Python sürümünü sağlamanız önerilir.

 python3 ./whatwaf --help

Araç Kullanımı

Whatwaf güvenlik duvarı algılama aracının kullanımı kolaydır! Sadece aşağıdaki komutu çalıştırmamız gerekiyor:

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

Aşağıda görebileceğiniz gibi, bu araç sağlanan web sitesi URL'si için güvenlik duvarını algıladı.

Hatırlatma! – Tarama için kendi sitemi kullandım

 ┌──(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 ------------------------------

Yukarıdaki sonuçta gösterildiği gibi, web sunucusu isteğimize yanıt verdi ve güvenlik duvarının Apache olduğunu ortaya çıkardı. WAF'yi taramak için tor hizmetini de kullanabiliriz, ancak gecikmeyi artırabilir.

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

Whatwaf aracının ana avantajı, ortaya çıkan güvenlik duvarını atlamak için yükleri otomatik olarak vermeye çalışmasıdır.

#3. Wafw00f Kullanarak Algılama

Web uygulaması güvenlik duvarını tespit etmek için en iyi bilinen araç Wafw00f'dir. Wafw00f, onu tanımlamak için web uygulaması güvenlik duvarına bir HTTP isteği gönderir. HTTP istekleri gönderme başarısız olduğunda, wafw00f kötü amaçlı bir HTTP isteği yapar. Kötü amaçlı bir HTTP isteği yapmak başarısız olursa, wafw00f önceki HTTP isteklerini inceler ve web uygulaması güvenlik duvarının saldırılarımıza tepki verip vermediğini belirlemek için basit bir algoritma kullanır.

Wafw00f, Kali Linux dağıtımlarında önceden kurulu değildir.

Wafw00f nasıl kurulur?

Zip paketi resmi GitHub kaynağından indirilebilir.

Wafwoof Aracını indirin. Depoyu klonlamak için git istemcisini de kullanabilirsiniz. Paketi almak için şu komutları çalıştırın:

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

wafw00f aracını sisteme indirmek için wafw00f klasörüne veya dizinine gidin ve aşağıdaki komutu uygulayın.

 $ python setup.py install

Kurulum dosyası işlenecek ve sisteme wafw00f yüklenecektir.

Araç Kullanımı

Bu aracı kullanmak için bu komutu çalıştırın.

 $ wafw00f <url>

HATIRLATICI – Yalnızca test etmenize izin verilen web sitelerini tarayın

 ┌──(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

Çok kötü, güvenlik duvarı algılandı!

Tartışma amacıyla farklı bir hedef web sitesi deneyeceğiz.

 ┌──(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

Bu sefer Güvenlik Duvarı algılanmadı.

Ayrıntılı modda kullanmak için aşağıdaki komutu çalıştırın.

 wafw00f <url> -v

Bu komutu yürüterek bu yardımcı programın birkaç ek özelliğini görebilirsiniz.

 wafw00f <url> --help

Toplama

Bu yazıda, web uygulaması güvenlik duvarlarını tespit etmek için farklı stratejilere ve araçlara baktık. Bu, her web uygulaması sızma testinin bilgi toplama aşamasında gerçekleştirilmesi gereken önemli bir faaliyettir.

Ayrıca, bir WAF'nin yerinde olduğunu bilmek, penetrasyon test cihazının savunmaları aşmak ve çevrimiçi uygulamadaki herhangi bir açıktan yararlanmak için çeşitli yaklaşımlar denemesine olanak tanır.

Etik bir bilgisayar korsanlığı araştırmacısına göre, bir web uygulaması güvenlik duvarına (WAF) sahip olmak giderek daha gerekli hale geliyor. Arka uç web uygulama sunucusunda meydana gelen yeni saldırıları tespit etmek için web uygulaması günlüklerinizi analiz etmek her zaman önemlidir. Bu, en yüksek düzeyde koruma sağlamak için web uygulamanızın güvenlik duvarındaki kuralları özelleştirmenize olanak tanır.

Ayrıca ilginizi çekebilir: Nikto Scanner kullanan güvenlik açıkları.