80,443 - Pentesting Web Metodolojisi
{{#include ../../banners/hacktricks-training.md}}
Temel Bilgiler
Web servisi en yaygın ve kapsamlı servisdir ve birçok farklı türde vulnerabilities vardır.
Varsayılan port: 80 (HTTP), 443(HTTPS)
PORT STATE SERVICE
80/tcp open http
443/tcp open ssl/https
nc -v domain.com 80 # GET / HTTP/1.0
openssl s_client -connect domain.com:443 # GET / HTTP/1.0
Web API Rehberi
{{#ref}} web-api-pentesting.md {{#endref}}
Metodoloji özeti
Bu metodolojide bir domain'i (veya subdomain'i) ve yalnızca onu hedef alacağınızı varsayacağız. Bu yüzden, bu metodolojiyi kapsam içindeki her keşfedilen domain, subdomain veya web sunucusu belirlenmemiş IP için uygulamalısınız.
- Önce web sunucusunun kullandığı teknolojileri belirleyin. Teknolojiyi başarılı bir şekilde tanımlayabilirseniz, testin geri kalanında akılda tutulması gereken ipuçlarını arayın.
- Kullandığınız teknolojinin sürümüne ait herhangi bir bilinen vulnerability var mı?
- Herhangi bir well known tech mi kullanılıyor? Daha fazla bilgi çıkarmak için kullanışlı bir trick var mı?
- Çalıştırılması gereken herhangi bir specialised scanner var mı (ör. wpscan)?
- General purposes scanners çalıştırın. Ne bulacaklarını ya da ilginç bilgi elde edip etmeyeceklerini asla bilemezsiniz.
- Başlangıç kontrolleriyle başlayın: robots, sitemap, 404 hata ve SSL/TLS scan (eğer HTTPS).
- Web sayfasını spidering ile tarayın: Kullanılan tüm olası files, folders ve parameters being usedi bulun. Ayrıca special findings için kontrol edin.
- Brute-forcing veya spidering sırasında yeni bir dizin keşfedildiğinde, o dizin spidering ile taranmalıdır.
- Directory Brute-Forcing: Keşfedilen tüm klasörlerde yeni files ve directories aramak için brute force yapmayı deneyin.
- Brute-forcing veya spidering sırasında yeni bir dizin keşfedildiğinde, o dizin Brute-Forced edilmelidir.
- Backups checking: Keşfedilen dosyaların backups'ını bulup bulamayacağınızı, yaygın yedek uzantılarını ekleyerek test edin.
- Brute-Force parameters: Gizli parametreleri bulmaya çalışın.
- Tüm olası endpoints ve user input kabul eden noktaları belirledikten sonra, bunlarla ilişkili her türlü vulnerabilities için kontrol edin.
- Bu kontrol listesini takip edin
Sunucu Sürümü (Etkilenebilir mi?)
Tanımlama
Çalışan sunucunun sürümü için bilinen zafiyetler olup olmadığını kontrol edin.
HTTP yanıtının başlıkları ve çerezleri, kullanılan teknolojileri ve/veya sürümü tanımlamak için çok yararlı olabilir. Nmap scan sunucu sürümünü tespit edebilir, ancak whatweb, webtech veya https://builtwith.com/** gibi araçlar da faydalı olabilir:**
whatweb -a 1 <URL> #Stealthy
whatweb -a 3 <URL> #Aggresive
webtech -u <URL>
webanalyze -host https://google.com -crawl 2
Ara için vulnerabilities of the web application version
Herhangi bir WAF olup olmadığını kontrol et
- https://github.com/EnableSecurity/wafw00f
- https://github.com/Ekultek/WhatWaf.git
- https://nmap.org/nsedoc/scripts/http-waf-detect.html
Web teknoloji hileleri
Kullanılan farklı ve iyi bilinen technologies içinde vulnerabilities bulmaya yönelik bazı tricks:
- AEM - Adobe Experience Cloud
- Apache
- Artifactory
- Buckets
- CGI
- Drupal
- Flask
- Git
- Golang
- GraphQL
- H2 - Java SQL database
- ISPConfig
- IIS tricks
- Microsoft SharePoint
- JBOSS
- Jenkins
- Jira
- Joomla
- JSP
- Laravel
- Moodle
- Nginx
- PHP (php has a lot of interesting tricks that could be exploited)
- Python
- Spring Actuators
- Symphony
- Tomcat
- VMWare
- Web API Pentesting
- WebDav
- Werkzeug
- Wordpress
- Electron Desktop (XSS to RCE)
- Sitecore
Dikkate alın ki same domain farklı different technologies kullanıyor olabilir farklı ports, folders ve subdomains üzerinde.
Eğer web application herhangi bir iyi bilinen tech/platform listed before veya any other kullanıyorsa, yeni tricks için search on the Internet yapmayı unutmayın (ve bana haber verin!).
Kaynak Kod İncelemesi
Eğer uygulamanın source code'u github üzerinde erişilebilir durumdaysa, uygulama üzerinde kendi your own a White box test'inizi gerçekleştirmek dışında, mevcut Black-Box testing için useful olabilecek some information olabilir:
- Web üzerinden erişilebilir bir Change-log or Readme or Version dosyası ya da version info accessible içeren başka bir şey var mı?
- credentials nasıl ve nerede saklanıyor? Erişilebilir bir file içinde credentials (kullanıcı adları veya parolalar) var mı?
- passwords plain text halinde mi, encrypted mi yoksa hangi hashing algorithm kullanılıyor?
- Bir şeyi şifrelemek için herhangi bir master key kullanılıyor mu? Hangi algorithm kullanılıyor?
- Bu dosyalardan herhangi birine bir zafiyet kullanarak access any of these files sağlanabilir mi?
- github'ta (çözülmüş veya çözülmemiş) issues içinde herhangi bir interesting information in the github var mı? Veya commit history içinde (belki eski bir commit içine yerleştirilmiş bir password introduced inside an old commit)?
{{#ref}} code-review-tools.md {{#endref}}
Otomatik tarayıcılar
Genel amaçlı otomatik tarayıcılar
nikto -h <URL>
whatweb -a 4 <URL>
wapiti -u <URL>
W3af
zaproxy #You can use an API
nuclei -ut && nuclei -target <URL>
# https://github.com/ignis-sec/puff (client side vulns fuzzer)
node puff.js -w ./wordlist-examples/xss.txt -u "http://www.xssgame.com/f/m4KKGHi2rVUN/?query=FUZZ"
CMS scanners
Bir CMS kullanılıyorsa run a scanner yapmayı unutmayın; belki işe yarar bir şey bulunur:
Clusterd: JBoss, ColdFusion, WebLogic, Tomcat, Railo, Axis2, Glassfish
CMSScan: WordPress, Drupal, Joomla, vBulletin web sitelerindeki güvenlik sorunlarını tarar. (GUI)
VulnX: Joomla, Wordpress, Drupal, PrestaShop, Opencart
CMSMap: (W)ordpress, (J)oomla, (D)rupal or (M)oodle
droopscan: Drupal, Joomla, Moodle, Silverstripe, Wordpress
cmsmap [-f W] -F -d <URL>
wpscan --force update -e --url <URL>
joomscan --ec -u <URL>
joomlavs.rb #https://github.com/rastating/joomlavs
Bu noktada (eğer herhangi bir veri verildiyse) müşteri tarafından kullanılan web sunucusuna dair bazı bilgilere ve test sırasında akılda tutulması gereken bazı ipuçlarına zaten sahip olmalısınız. Şanslıysanız bir CMS bulmuş ve bir scanner çalıştırmış bile olabilirsiniz.
Adım adım Web Uygulama Keşfi
Bu noktadan itibaren web uygulaması ile etkileşime geçmeye başlayacağız.
Başlangıç kontrolleri
İlgi çekici bilgi içeren varsayılan sayfalar:
- /robots.txt
- /sitemap.xml
- /crossdomain.xml
- /clientaccesspolicy.xml
- /.well-known/
- Ana ve ikincil sayfalardaki yorumları da kontrol edin.
Hata tetikleme
Web sunucuları onlara garip veri gönderildiğinde beklenmedik şekilde davranabilir. Bu, vulnerabilities açabilir veya sensitive information ifşa edebilir.
- /whatever_fake.php (.aspx,.html,.etc) gibi sahte sayfalara erişin
- Hata oluşturmak için cookie değerlerine ve parametre değerlerine "[]", "]]", ve "[[" ekleyin
- URL'nin sonuna
/~randomthing/%s
girerek hata oluşturun - PATCH, DEBUG gibi farklı HTTP Verbs deneyin veya FAKE gibi yanlış bir verb kullanın
Dosya yükleyip yükleyemeyeceğinizi kontrol edin (PUT verb, WebDav)
Eğer WebDav etkinse fakat kök dizinde dosya yükleme için yeterli izniniz yoksa şunları deneyin:
- Brute Force ile credentials
- WebDav aracılığıyla web sayfası içindeki bulunan diğer klasörlere dosya yükleyin. Diğer klasörlere dosya yükleme izniniz olabilir.
SSL/TLS zafiyetleri
- Uygulama hiçbir yerde kullanıcıyı HTTPS kullanmaya zorlamıyorsa, MitM için açıktır
- Uygulama hassas verileri (şifreler) HTTP üzerinden gönderiyorsa, bu yüksek önemde bir güvenlik açığıdır
testssl.sh kullanarak vulnerabilities için kontrol edin (Bug Bounty programlarında muhtemelen bu tür zafiyetler kabul edilmeyecektir) ve zafiyetleri tekrar kontrol etmek için a2sv kullanın:
./testssl.sh [--htmlfile] 10.10.10.10:443
#Use the --htmlfile to save the output inside an htmlfile also
# You can also use other tools, by testssl.sh at this momment is the best one (I think)
sslscan <host:port>
sslyze --regular <ip:port>
SSL/TLS zafiyetleri hakkında bilgiler:
- https://www.gracefulsecurity.com/tls-ssl-vulnerabilities/
- https://www.acunetix.com/blog/articles/tls-vulnerabilities-attacks-final-part/
Spidering
Ağ içinde bir tür spider başlatın. Spider'ın amacı, test edilen uygulamadan mümkün olduğunca çok path bulmaktır. Bu nedenle, geçerli path'leri bulmak için web crawling ve harici kaynaklar kullanılmalıdır.
- gospider (go): HTML spider, JS dosyalarındaki LinkFinder ve harici kaynaklar (Archive.org, CommonCrawl.org, VirusTotal.com) kullanır.
- hakrawler (go): HTML spider, JS dosyaları için LinkFinder ve Archive.org gibi harici kaynaklar kullanır.
- dirhunt (python): HTML spider, ayrıca "juicy files" gösterir.
- evine (go): Etkileşimli CLI HTML spider. Ayrıca Archive.org'da arama yapar.
- meg (go): Bu araç bir spider değil ama faydalı olabilir. Hosts içeren bir dosya ve path'ler içeren bir dosya belirtirseniz, meg her host üzerindeki her path'i çeker ve cevabı kaydeder.
- urlgrab (go): JS render yeteneklerine sahip HTML spider. Ancak, görünüşe göre bakımı yapılmıyor; önceden derlenmiş sürüm eski ve mevcut kod derlenmiyor.
- gau (go): Harici sağlayıcıları (wayback, otx, commoncrawl) kullanan HTML spider.
- ParamSpider: URL'lerde parametre bulan ve listeleyen bir script.
- galer (go): JS render yeteneklerine sahip HTML spider.
- LinkFinder (python): HTML spider, JS beautify yetenekleri ile JS dosyalarında yeni path'ler arayabilir. Ayrıca LinkFinder'ın bir wrapper'ı olan JSScanner da göz atmaya değerdir.
- goLinkFinder (go): Hem HTML kaynağında hem de gömülü javascript dosyalarında endpoint çıkarmak için. Bug hunter'lar, red team'ler, infosec uzmanları için kullanışlı.
- JSParser (python2.7): Tornado ve JSBeautifier kullanan, JavaScript dosyalarından relatif URL'leri parse eden bir python 2.7 script'i. AJAX isteklerini keşfetmede faydalı. Görünüşe göre bakımı yapılmıyor.
- relative-url-extractor (ruby): Bir dosya (HTML) verildiğinde, minify edilmiş dosyalardan relatif URL'leri bulup çıkarmak için akıllı regex kullanır.
- JSFScan (bash, several tools): Çeşitli araçlar kullanarak JS dosyalarından ilginç bilgiler toplar.
- subjs (go): JS dosyalarını bulur.
- page-fetch (go): Bir sayfayı headless browser ile yükler ve sayfayı yüklemek için çağrılan tüm url'leri yazdırır.
- Feroxbuster (rust): Önceki araçların çeşitli seçeneklerini harmanlayan content discovery aracı.
- Javascript Parsing: JS dosyalarında path ve param bulmak için bir Burp extension.
- Sourcemapper: Verilen .js.map URL'si ile beautified JS kodunu almanızı sağlayan araç.
- xnLinkFinder: Belirli bir hedef için endpoint keşfi yapan araç.
- waymore: wayback machine'den link keşfi (aynı zamanda wayback'teki cevapları indirip daha fazla link arar).
- HTTPLoot (go): Form doldurma dahil tarama yapar ve belirli regexlerle hassas bilgi bulur.
- SpiderSuite: Spider Suite, siber güvenlik profesyonelleri için tasarlanmış gelişmiş çok özellikli GUI web security Crawler/Spider'dır.
- jsluice (go): JavaScript kaynak kodundan URL, path, secret ve diğer ilginç verileri çıkarmak için bir Go paketi ve komut satırı aracı.
- ParaForge: ParaForge, istekteki parametreleri ve endpoint'leri çıkarmak için basit bir Burp Suite extension'dır; fuzzing ve enumeration için özel wordlist oluşturmayı sağlar.
- katana (go): Bu iş için harika bir araç.
- Crawley (go): Bulabildiği her linki yazdırır.
Brute Force directories and files
Root klasörden brute-forcing yapmaya başlayın ve bulunan tüm directories üzerinde brute-forcing yaptığınızdan emin olun; bunu bu yöntemle ve Spidering tarafından keşfedilen tüm dizinlerde uygulayın (bunu rekürsif olarak yapabilir ve kullanılan wordlist'in başına bulunan dizinlerin isimlerini ekleyebilirsiniz).
Araçlar:
- Dirb / Dirbuster - Kali içinde gelir, old (ve slow) ama iş görür. Otomatik imzalı sertifikalara izin verir ve rekürsif aramayı destekler. Diğer seçeneklerle karşılaştırıldığında çok yavaş.
- Dirsearch (python)**: Otomatik imzalı sertifikalara izin vermez ama rekürsif aramayı destekler.
- Gobuster (go): Otomatik imzalı sertifikalara izin verir, ancak rekürsif arama özelliği yoktur.
- Feroxbuster - Hızlı, rekürsif aramayı destekler.
- wfuzz
wfuzz -w /usr/share/seclists/Discovery/Web-Content/raft-medium-directories.txt https://domain.com/api/FUZZ
- ffuf - Hızlı:
ffuf -c -w /usr/share/wordlists/dirb/big.txt -u http://10.10.10.10/FUZZ
- uro (python): Bu bir spider değil, ancak bulunan URL listesi verildiğinde "çift" URL'leri siler.
- Scavenger: Burp history'sinden farklı sayfaların dizin listesini oluşturmak için Burp Extension.
- TrashCompactor: JS import'larına dayalı olarak fonksiyonellikleri duplicate olan URL'leri kaldırır.
- Chamaleon: Kullanılan teknolojileri tespit etmek için wapalyzer kullanır ve kullanılacak wordlist'leri seçer.
Önerilen sözlükler:
- https://github.com/carlospolop/Auto_Wordlists/blob/main/wordlists/bf_directories.txt
- Dirsearch included dictionary
- http://gist.github.com/jhaddix/b80ea67d85c13206125806f0828f4d10
- Assetnote wordlists
- https://github.com/danielmiessler/SecLists/tree/master/Discovery/Web-Content
- raft-large-directories-lowercase.txt
- directory-list-2.3-medium.txt
- RobotsDisallowed/top10000.txt
- https://github.com/random-robbie/bruteforce-lists
- https://github.com/google/fuzzing/tree/master/dictionaries
- https://github.com/six2dez/OneListForAll
- https://github.com/random-robbie/bruteforce-lists
- https://github.com/ayoubfathi/leaky-paths
- /usr/share/wordlists/dirb/common.txt
- /usr/share/wordlists/dirb/big.txt
- /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
Not: Yeni bir dizin spidering veya brute-forcing sırasında keşfedildiğinde, o dizin mutlaka Brute-Forced edilmelidir.
What to check on each file found
- Broken link checker: HTML içinde takeover'lara açık olabilecek kırık linkleri bulur.
- File Backups: Tüm dosyaları bulduktan sonra, tüm yürütülebilir dosyaların yedeklerini arayın (".php", ".aspx"...). Yedek isimlendirmesi için yaygın varyasyonlar: file.ext~, #file.ext#, ~file.ext, file.ext.bak, file.ext.tmp, file.ext.old, file.bak, file.tmp ve file.old. Ayrıca bfac veya backup-gen araçlarını kullanabilirsiniz.
- Discover new parameters: Gizli parametreleri keşfetmek için Arjun, parameth, x8 ve Param Miner gibi araçları kullanabilirsiniz. Mümkünse, her yürütülebilir web dosyasında gizli parametreleri aramaya çalışın.
- Arjun all default wordlists: https://github.com/s0md3v/Arjun/tree/master/arjun/db
- Param-miner “params” : https://github.com/PortSwigger/param-miner/blob/master/resources/params
- Assetnote “parameters_top_1m”: https://wordlists.assetnote.io/
- nullenc0de “params.txt”: https://gist.github.com/nullenc0de/9cb36260207924f8e1787279a05eb773
- Comments: Tüm dosyaların yorumlarını kontrol edin; credentials veya gizli fonksiyonellik bulabilirsiniz.
- Eğer CTF oynuyorsanız, yaygın bir hile sayfanın sağ tarafına (tarayıcıyla kaynak kodunu açtığınızda görünmeyecek şekilde) yüzlerce boşluk kullanarak bilgi saklamak veya birkaç yeni satır ile sayfanın altına yorum içinde bilgi gizlemek olabilir.
- API keys: Herhangi bir API key bulursanız, farklı platformların API key'lerini nasıl kullanacağınızla ilgili rehberler şunlardır: keyhacks, zile, truffleHog, SecretFinder, RegHex, DumpsterDive, EarlyBird
- Google API keys: AIza ile başlayan bir API key bulursanız (örnek: AIzaSyA-qLheq6xjDiEIRisP_ujUseYLQCHUjik), hangi API'lere erişebildiğini kontrol etmek için gmapapiscanner projesini kullanabilirsiniz.
- S3 Buckets: Spidering sırasında herhangi bir subdomain veya herhangi bir linkin bir S3 bucket ile ilişkili olup olmadığına bakın. Bu durumda, bucket'ın permissionsini kontrol edin.
Special findings
Spidering ve brute-forcing yaparken fark etmeniz gereken ilginç şeyler bulabilirsiniz.
Interesting files
- CSS dosyaları içinde diğer dosyalara işaret eden link'leri arayın.
- Eğer bir .git dosyası bulursanız bazı bilgiler çıkarılabilir
- Eğer bir .env bulursanız, api key'ler, db şifreleri ve diğer bilgiler bulunabilir.
- Eğer API endpoints bulursanız, onları test etmelisiniz. Bunlar dosya değillerdir ama muhtemelen dosya gibi "görünebilirler".
- JS files: Spidering bölümünde JS dosyalarından path çıkarabilen birçok araç listelendi. Ayrıca, bulunan her JS dosyasını izlemek ilginç olabilir; bazı durumlarda bir değişiklik, koda yeni bir zafiyet eklendiğinin göstergesi olabilir. Örneğin JSMon kullanılabilir.
- Keşfedilen JS dosyalarını ayrıca zafiyet için RetireJS veya JSHole ile kontrol etmelisiniz.
- Javascript Deobfuscator and Unpacker: https://lelinhtinh.github.io/de4js/, https://www.dcode.fr/javascript-unobfuscator
- Javascript Beautifier: http://jsbeautifier.org/, http://jsnice.org/
- JsFuck deobfuscation (javascript with chars:"[]!+" https://enkhee-osiris.github.io/Decoder-JSFuck/)
- TrainFuck](https://github.com/taco-c/trainfuck):
+72.+29.+7..+3.-67.-12.+55.+24.+3.-6.-8.-67.-23.
- Birçok durumda kullanılan regular expression'ları anlamanız gerekecektir. Bunun için yararlı araçlar: https://regex101.com/ veya https://pythonium.net/regex
- Formların tespit edildiği dosyaları da izleyebilirsiniz; parametredeki bir değişim veya yeni bir formun ortaya çıkması potansiyel yeni bir zafiyetin göstergesi olabilir.
403 Forbidden/Basic Authentication/401 Unauthorized (bypass)
{{#ref}} 403-and-401-bypasses.md {{#endref}}
502 Proxy Error
Eğer herhangi bir sayfa bu kod ile cevap veriyorsa, muhtemelen hatalı yapılandırılmış bir proxy vardır. GET https://google.com HTTP/1.1 gibi bir HTTP isteği gönderirseniz (host header ve diğer yaygın header'larla birlikte), proxy google.com'a erişmeye çalışacak ve böylece bir SSRF bulmuş olacaksınız.
NTLM Authentication - Info disclosure
Eğer authentication isteyen sunucu Windows ise veya giriş bölümü sizden credentials (ve domain adı) istiyorsa, bir information disclosure tetikleyebilirsiniz.
Aşağıdaki header'ı gönderin: “Authorization: NTLM TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA=”
ve NTLM authentication'ın çalışma şekli gereği, sunucu cevap header'ı "WWW-Authenticate" içinde iç ağ bilgilerini (IIS versiyonu, Windows versiyonu...) döndürecektir.
Bunu otomatikleştirmek için nmap plugin "http-ntlm-info.nse" kullanılabilir.
HTTP Redirect (CTF)
Bir Redirection içine içerik koymak mümkündür. Bu içerik kullanıcıya gösterilmeyecek (tarayıcı yönlendirmeyi gerçekleştirecektir) ancak yönlendirme içinde bir şey saklanmış olabilir.
Web Vulnerabilities Checking
Web uygulamasının kapsamlı bir enumerasyonu yapıldıktan sonra, birçok olası zafiyet için kontrol zamanı. Kontrol listesi burada bulunuyor:
{{#ref}} ../../pentesting-web/web-vulnerabilities-methodology.md {{#endref}}
Web zafiyetleri hakkında daha fazla bilgi:
- https://six2dez.gitbook.io/pentest-book/others/web-checklist
- https://kennel209.gitbooks.io/owasp-testing-guide-v4/content/en/web_application_security_testing/configuration_and_deployment_management_testing.html
- https://owasp-skf.gitbook.io/asvs-write-ups/kbid-111-client-side-template-injection
Monitor Pages for changes
Sayfalarda zafiyet eklenebilecek değişiklikleri izlemek için https://github.com/dgtlmoon/changedetection.io gibi araçları kullanabilirsiniz.
HackTricks Automatic Commands
Protocol_Name: Web #Protocol Abbreviation if there is one.
Port_Number: 80,443 #Comma separated if there is more than one.
Protocol_Description: Web #Protocol Abbreviation Spelled out
Entry_1:
Name: Notes
Description: Notes for Web
Note: |
https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-web/index.html
Entry_2:
Name: Quick Web Scan
Description: Nikto and GoBuster
Command: nikto -host {Web_Proto}://{IP}:{Web_Port} &&&& gobuster dir -w {Small_Dirlist} -u {Web_Proto}://{IP}:{Web_Port} && gobuster dir -w {Big_Dirlist} -u {Web_Proto}://{IP}:{Web_Port}
Entry_3:
Name: Nikto
Description: Basic Site Info via Nikto
Command: nikto -host {Web_Proto}://{IP}:{Web_Port}
Entry_4:
Name: WhatWeb
Description: General purpose auto scanner
Command: whatweb -a 4 {IP}
Entry_5:
Name: Directory Brute Force Non-Recursive
Description: Non-Recursive Directory Brute Force
Command: gobuster dir -w {Big_Dirlist} -u {Web_Proto}://{IP}:{Web_Port}
Entry_6:
Name: Directory Brute Force Recursive
Description: Recursive Directory Brute Force
Command: python3 {Tool_Dir}dirsearch/dirsearch.py -w {Small_Dirlist} -e php,exe,sh,py,html,pl -f -t 20 -u {Web_Proto}://{IP}:{Web_Port} -r 10
Entry_7:
Name: Directory Brute Force CGI
Description: Common Gateway Interface Brute Force
Command: gobuster dir -u {Web_Proto}://{IP}:{Web_Port}/ -w /usr/share/seclists/Discovery/Web-Content/CGIs.txt -s 200
Entry_8:
Name: Nmap Web Vuln Scan
Description: Tailored Nmap Scan for web Vulnerabilities
Command: nmap -vv --reason -Pn -sV -p {Web_Port} --script=`banner,(http* or ssl*) and not (brute or broadcast or dos or external or http-slowloris* or fuzzer)` {IP}
Entry_9:
Name: Drupal
Description: Drupal Enumeration Notes
Note: |
git clone https://github.com/immunIT/drupwn.git for low hanging fruit and git clone https://github.com/droope/droopescan.git for deeper enumeration
Entry_10:
Name: WordPress
Description: WordPress Enumeration with WPScan
Command: |
?What is the location of the wp-login.php? Example: /Yeet/cannon/wp-login.php
wpscan --url {Web_Proto}://{IP}{1} --enumerate ap,at,cb,dbe && wpscan --url {Web_Proto}://{IP}{1} --enumerate u,tt,t,vp --passwords {Big_Passwordlist} -e
Entry_11:
Name: WordPress Hydra Brute Force
Description: Need User (admin is default)
Command: hydra -l admin -P {Big_Passwordlist} {IP} -V http-form-post '/wp-login.php:log=^USER^&pwd=^PASS^&wp-submit=Log In&testcookie=1:S=Location'
Entry_12:
Name: Ffuf Vhost
Description: Simple Scan with Ffuf for discovering additional vhosts
Command: ffuf -w {Subdomain_List}:FUZZ -u {Web_Proto}://{Domain_Name} -H "Host:FUZZ.{Domain_Name}" -c -mc all {Ffuf_Filters}
{{#include ../../banners/hacktricks-training.md}}