80,443 - Pentesting Web-Methodik
Tip
Lernen & üben Sie AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Lernen & üben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.
Grundlegende Informationen
Der Web-Service ist der häufigste und umfangreichste Dienst und es existieren viele verschiedene Arten von Schwachstellen.
Standardport: 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-Leitfaden
Zusammenfassung der Methodik
In dieser Methodik gehen wir davon aus, dass Sie eine Domain (oder Subdomain) und nur diese angreifen. Daher sollten Sie diese Methodik auf jede entdeckte Domain, Subdomain oder IP mit unbestimmtem Webserver im Scope anwenden.
- Beginnen Sie damit, die vom Webserver verwendeten technologies zu identifying. Suchen Sie nach tricks, die Sie während des weiteren Tests beachten sollten, falls Sie die Tech erfolgreich identifizieren können.
- Gibt es eine known vulnerability in der Version der Technologie?
- Wird eine well known tech verwendet? Gibt es einen useful trick, um mehr Informationen zu extrahieren?
- Gibt es einen specialised scanner der ausgeführt werden sollte (z. B. wpscan)?
- Starten Sie general purposes scanners. Man weiß nie, ob sie etwas finden oder interessante Informationen liefern.
- Beginnen Sie mit den initial checks: robots, sitemap, 404 error und SSL/TLS scan (falls HTTPS).
- Starten Sie das spidering der Webseite: Es ist Zeit, alle möglichen files, folders und parameters being used zu find. Prüfen Sie auch auf special findings.
- Note that anytime a new directory is discovered during brute-forcing or spidering, it should be spidered.
- Directory Brute-Forcing: Versuchen Sie, alle entdeckten Ordner zu brute-forcen, um neue files und directories zu suchen.
- Note that anytime a new directory is discovered during brute-forcing or spidering, it should be Brute-Forced.
- Backups checking: Prüfen Sie, ob Sie backups von discovered files finden können, indem Sie gängige Backup-Erweiterungen anhängen.
- Brute-Force parameters: Versuchen Sie, hidden parameters zu find.
- Sobald Sie alle möglichen endpoints identifiziert haben, die user input akzeptieren, prüfen Sie auf alle Arten von damit zusammenhängenden vulnerabilities.
- Follow this checklist
Server-Version (Vulnerable?)
Identifizieren
Prüfen Sie, ob es known vulnerabilities für die aktuell laufende Server-version gibt.
Die HTTP headers and cookies of the response können sehr nützlich sein, um die verwendeten technologies und/oder die version zu identify. Ein Nmap scan kann die Server-Version identifizieren, aber auch die Tools whatweb, webtech oder https://builtwith.com/** können nützlich sein:**
whatweb -a 1 <URL> #Stealthy
whatweb -a 3 <URL> #Aggresive
webtech -u <URL>
webanalyze -host https://google.com -crawl 2
Search nach vulnerabilities of the web application version
Prüfe, ob ein WAF vorhanden ist
- https://github.com/EnableSecurity/wafw00f
- https://github.com/Ekultek/WhatWaf.git
- https://nmap.org/nsedoc/scripts/http-waf-detect.html
Web-Technik-Tricks
Einige Tricks, um Schwachstellen in verschiedenen bekannten Technologien zu finden, die verwendet werden:
- AEM - Adobe Experience Cloud
- Apache
- Artifactory
- Buckets
- CGI
- Custom UDP RPC Protocols
- Dotnet SOAP WSDL client exploitation
- Drupal
- Flask
- Fortinet FortiWeb
- 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
- Roundcube
- Spring Actuators
- Symphony
- Tomcat
- VMWare
- Web API Pentesting
- WebDav
- Werkzeug
- Wordpress
- Electron Desktop (XSS to RCE)
- Sitecore
- Zabbix
Berücksichtige, dass dieselbe Domain unterschiedliche Technologien auf verschiedenen Ports, Ordnern und Subdomains verwenden kann.
Wenn die Webanwendung eine der zuvor genannten Tech/Plattformen oder eine andere verwendet, vergiss nicht, im Internet nach neuen Tricks zu suchen (und gib mir Bescheid!).
Quellcode-Review
Wenn der source code der Anwendung auf github verfügbar ist, gibt es neben der Durchführung eines White box test durch dich selbst einige Informationen, die für das aktuelle Black-Box testing nützlich sein könnten:
- Gibt es eine Change-log- oder Readme- oder Version-Datei oder irgendetwas mit über das Web zugänglichen Versionsinformationen?
- Wie und wo werden die credentials gespeichert? Gibt es eine (zugängliche?) Datei mit credentials (Benutzernamen oder Passwörtern)?
- Sind Passwörter im Klartext, verschlüsselt oder welcher Hashing-Algorithmus wird verwendet?
- Wird ein Master-Key zum Verschlüsseln verwendet? Welcher Algorithmus wird genutzt?
- Kannst du auf eine dieser Dateien zugreifen, indem du eine Schwachstelle ausnutzt?
- Gibt es interessante Informationen in den github-issues (gelöst und ungelöst)? Oder in der commit history (vielleicht wurde ein Passwort in einem alten Commit eingeführt)?
Source code Review / SAST Tools
Automatische Scanner
Allgemeine automatische Scanner
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
Wenn ein CMS verwendet wird, vergiss nicht, einen Scanner auszuführen, vielleicht wird etwas Interessantes gefunden:
Clusterd: JBoss, ColdFusion, WebLogic, Tomcat, Railo, Axis2, Glassfish
CMSScan: WordPress, Drupal, Joomla, vBulletin Websites auf Sicherheitsprobleme prüfen. (GUI)
VulnX: Joomla, Wordpress, Drupal, PrestaShop, Opencart
CMSMap: (W)ordpress, (J)oomla, (D)rupal oder (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
Zu diesem Zeitpunkt solltest du bereits einige Informationen über den vom Client verwendeten Webserver haben (falls Daten vorliegen) und einige Tricks, die du während des Tests beachten solltest. Wenn du Glück hast, hast du sogar ein CMS gefunden und einen Scanner ausgeführt.
Schritt-für-Schritt Web-Anwendungs-Erkennung
Ab diesem Punkt werden wir anfangen, mit der Webanwendung zu interagieren.
Erste Prüfungen
Default pages with interesting info:
- /robots.txt
- /sitemap.xml
- /crossdomain.xml
- /clientaccesspolicy.xml
- /.well-known/
- Überprüfe auch Kommentare in den Haupt- und Unterseiten.
Fehler erzwingen
Webserver können sich behave unexpectedly verhalten, wenn ihnen ungewöhnliche Daten geschickt werden. Das kann zu vulnerabilities führen oder vertrauliche Informationen preisgeben.
- Rufe fake pages wie /whatever_fake.php (.aspx,.html,.etc) auf
- Füge “[]”, “]]” und “[[” in cookie values und parameter values ein, um Fehler zu erzeugen
- Erzeuge Fehler, indem du Eingabe wie
/~randomthing/%sam Ende der URL angibst - Probiere different HTTP Verbs wie PATCH, DEBUG oder falsche wie FAKE
Prüfe, ob du Dateien hochladen kannst (PUT verb, WebDav)
Wenn du feststellst, dass WebDav aktiviert ist, du aber nicht genügend Berechtigungen hast, um Dateien im Root-Ordner hochzuladen, versuche:
- Brute Force credentials
- Upload files via WebDav in die übrigen gefundenen Ordner der Webseite. Möglicherweise hast du Berechtigungen, Dateien in anderen Ordnern hochzuladen.
SSL/TLS vulnerabilites
- Wenn die Anwendung isn’t forcing the user of HTTPS in irgendeinem Teil, dann ist sie vulnerable to MitM
- Wenn die Anwendung sending sensitive data (passwords) using HTTP. Dann ist das eine hohe vulnerability.
Benutze testssl.sh um nach vulnerabilities zu prüfen (In Bug Bounty programs werden solche Arten von vulnerabilities wahrscheinlich nicht akzeptiert) und benutze a2sv um die vulnerabilities erneut zu prüfen:
./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>
Information about SSL/TLS vulnerabilities:
- https://www.gracefulsecurity.com/tls-ssl-vulnerabilities/
- https://www.acunetix.com/blog/articles/tls-vulnerabilities-attacks-final-part/
Spidering
Starte irgendeine Art von spider innerhalb der Webanwendung. Ziel des spider ist es, so viele Pfade wie möglich von der getesteten Anwendung zu finden. Daher sollten Web-Crawling und externe Quellen genutzt werden, um möglichst viele valide Pfade zu entdecken.
- gospider (go): HTML spider, LinkFinder in JS files und externe Quellen (Archive.org, CommonCrawl.org, VirusTotal.com).
- hakrawler (go): HML spider, mit LinkFider für JS files und Archive.org als externe Quelle.
- dirhunt (python): HTML spider, zeigt außerdem “juicy files” an.
- evine (go): Interaktiver CLI HTML spider. Sucht ebenfalls in Archive.org.
- meg (go): Dieses Tool ist kein Spider, kann aber nützlich sein. Du kannst eine Datei mit Hosts und eine Datei mit Pfaden angeben; meg holt dann jeden Pfad von jedem Host und speichert die Response.
- urlgrab (go): HTML spider mit JS-Rendering-Fähigkeiten. Sieht aber unmaintained aus, die vorkompilierte Version ist alt und der aktuelle Code kompiliert nicht.
- gau (go): HTML spider, der externe Provider verwendet (wayback, otx, commoncrawl).
- ParamSpider: Dieses Script findet URLs mit Parametern und listet sie auf.
- galer (go): HTML spider mit JS-Rendering-Fähigkeiten.
- LinkFinder (python): HTML spider mit JS-Beautify-Fähigkeiten, der neue Pfade in JS files suchen kann. Es lohnt sich auch, einen Blick auf JSScanner zu werfen, das eine Wrapper-Umgebung für LinkFinder ist.
- goLinkFinder (go): Extrahiert Endpoints sowohl aus HTML-Quellcode als auch eingebetteten Javascript-Dateien. Nützlich für Bug Hunter, Red Teamer und Infosec-Ninjas.
- JSParser (python2.7): Ein Python-2.7-Script, das Tornado und JSBeautifier verwendet, um relative URLs aus JavaScript-Dateien zu parsen. Nützlich, um AJAX-Requests einfach zu entdecken. Scheint unmaintained.
- relative-url-extractor (ruby): Nimmt eine Datei (HTML) und extrahiert URLs mit einem cleveren Regex, um relative URLs aus unformatierten (minified) Dateien zu finden.
- JSFScan (bash, mehrere Tools): Sammelt interessante Informationen aus JS files mittels mehrerer Tools.
- subjs (go): Findet JS files.
- page-fetch (go): Lädt eine Seite in einem headless Browser und gibt alle URLs aus, die geladen wurden, um die Seite darzustellen.
- Feroxbuster (rust): Content-Discovery-Tool, das mehrere Optionen der vorherigen Tools kombiniert.
- Javascript Parsing: Eine Burp-Erweiterung, um Pfade und Params in JS files zu finden.
- Sourcemapper: Ein Tool, das, gegeben die .js.map URL, den beautified JS-Code ausliefert.
- xnLinkFinder: Tool zum Entdecken von Endpoints für ein gegebenes Ziel.
- waymore: Entdeckt Links aus der Wayback Machine (lädt auch die Responses in der Wayback herunter und sucht dort nach weiteren Links).
- HTTPLoot (go): Crawlt (auch durch Ausfüllen von Formularen) und findet außerdem sensitive Infos mittels spezifischer Regexes.
- SpiderSuite: Spider Suite ist ein fortgeschrittener Multi-Feature GUI Web Security Crawler/Spider für Cyber-Security-Professionals.
- jsluice (go): Ein Go-Paket und command-line tool zum Extrahieren von URLs, Pfaden, Secrets und anderen interessanten Daten aus JavaScript-Quellcode.
- ParaForge: ParaForge ist eine einfache Burp Suite extension, um Parameter und Endpoints zu extrahieren, um benutzerdefinierte Wordlists für Fuzzing und Enumeration zu erstellen.
- katana (go): Hervorragendes Tool dafür.
- Crawley (go): Gibt jeden Link aus, den es finden kann.
Brute Force directories and files
Beginne mit dem brute-forcing ab dem Root-Verzeichnis und stelle sicher, dass du alle gefundenen Verzeichnisse mittels dieser Methode und alle durch Spidering entdeckten Verzeichnisse brute-forcest (du kannst das rekursiv durchführen und die Namen der gefundenen Verzeichnisse am Anfang der verwendeten Wordlist anfügen).
Tools:
- Dirb / Dirbuster - In Kali enthalten, alt (und langsam) aber funktional. Erlaubt selbst-signierte Zertifikate und rekursive Suche. Im Vergleich zu anderen Optionen zu langsam.
- Dirsearch (python)**: Es erlaubt keine selbst-signierten Zertifikate, bietet aber rekursive Suche.
- Gobuster (go): Erlaubt selbst-signierte Zertifikate, hat jedoch keine rekursive Suche.
- Feroxbuster - Schnell, unterstützt rekursive Suche.
- wfuzz
wfuzz -w /usr/share/seclists/Discovery/Web-Content/raft-medium-directories.txt https://domain.com/api/FUZZ - ffuf - Schnell:
ffuf -c -w /usr/share/wordlists/dirb/big.txt -u http://10.10.10.10/FUZZ - uro (python): Kein Spider, aber ein Tool, das aus einer Liste gefundener URLs “duplizierte” URLs entfernt.
- Scavenger: Burp-Extension, um eine Liste von Verzeichnissen aus dem Burp-History verschiedener Seiten zu erstellen.
- TrashCompactor: Entfernt URLs mit duplizierten Funktionalitäten (basierend auf JS-Imports).
- Chamaleon: Nutzt Wappalyzer, um verwendete Technologien zu erkennen und passende Wordlists auszuwählen.
Empfohlene Wordlists:
- 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
Beachte, dass jedes Mal, wenn während des brute-forcing oder spidering ein neues Verzeichnis entdeckt wird, dieses ebenfalls brute-forced werden sollte.
What to check on each file found
- Broken link checker: Findet defekte Links in HTML-Dateien, die anfällig für takeovers sein könnten.
- File Backups: Sobald du alle Dateien gefunden hast, suche nach Backups aller ausführbaren Dateien (“.php”, “.aspx” …). Übliche Varianten zur Benennung einer Sicherung sind: file.ext~, #file.ext#, ~file.ext, file.ext.bak, file.ext.tmp, file.ext.old, file.bak, file.tmp und file.old. Du kannst auch die Tools bfac oder backup-gen**** verwenden.
- Discover new parameters: Du kannst Tools wie Arjun, parameth, x8 und Param Miner verwenden, um versteckte Parameter zu entdecken. Wenn möglich, solltest du auf jeder ausführbaren Web-Datei nach versteckten Parametern suchen.
- 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
- Kommentare: Prüfe die Kommentare aller Dateien; du kannst dort Credentials oder versteckte Funktionalität finden.
- Wenn du an einem CTF teilnimmst, ist ein gängiger Trick, Informationen in Kommentaren am rechten Rand der Seite zu verstecken (mit Hunderten von Spaces, sodass du die Daten nicht siehst, wenn du den Sourcecode im Browser öffnest). Eine andere Möglichkeit ist, mehrere neue Zeilen zu verwenden und Informationen in einem Kommentar am Ende der Seite zu verstecken.
- API keys: Wenn du API keys findest, gibt es Projekte, die zeigen, wie man API keys verschiedener Plattformen nutzt: keyhacks, zile, truffleHog, SecretFinder, RegHex, DumpsterDive, EarlyBird
- Google API keys: Wenn du einen API key findest, der wie AIzaSyA-qLheq6xjDiEIRisP_ujUseYLQCHUjik aussieht, kannst du das Projekt gmapapiscanner verwenden, um zu prüfen, auf welche APIs der Key Zugriff hat.
- S3 Buckets: Während des spidering prüfe, ob eine Subdomain oder ein Link mit einem S3 bucket in Verbindung steht. In diesem Fall prüfe die Berechtigungen des Buckets.
Special findings
Während du das spidering und brute-forcing durchführst, kannst du interessante Dinge finden, die du notieren musst.
Interessante Dateien
- Suche nach Links zu anderen Dateien innerhalb von CSS-Dateien.
- Wenn du eine .git Datei findest, können Informationen extrahiert werden
- Wenn du eine .env Datei findest, können dort API-Keys, DB-Passwörter und andere Informationen stehen.
- Wenn du API endpoints findest, solltest du diese auch testen. Diese sind zwar keine Dateien, sehen aber oft so aus.
- JS files: In der Spidering-Sektion wurden mehrere Tools genannt, die Pfade aus JS files extrahieren können. Es wäre außerdem interessant, jede gefundene JS-Datei zu überwachen, da eine Änderung in manchen Fällen anzeigen kann, dass eine potenzielle Schwachstelle in den Code eingeführt wurde. Du könntest z.B. JSMon** verwenden.**
- Du solltest gefundene JS files auch mit RetireJS oder JSHole prüfen, um zu sehen, ob sie verwundbar sind.
- 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 mit Zeichen:“[]!+” https://enkhee-osiris.github.io/Decoder-JSFuck/)
- TrainFuck:
+72.+29.+7..+3.-67.-12.+55.+24.+3.-6.-8.-67.-23. - In vielen Fällen musst du die verwendeten regulären Ausdrücke verstehen. Nützlich dafür sind: https://regex101.com/ oder https://pythonium.net/regex
- Du könntest außerdem die Dateien überwachen, in denen Formularfelder erkannt wurden, da eine Änderung der Parameter oder das Erscheinen eines neuen Formulars auf eine potenzielle neue verwundbare Funktionalität hinweisen kann.
403 Forbidden/Basic Authentication/401 Unauthorized (bypass)
502 Proxy Error
Wenn eine Seite mit diesem Statuscode antwortet, ist wahrscheinlich ein schlecht konfigurierter Proxy vorhanden. Wenn du eine HTTP-Anfrage wie: GET https://google.com HTTP/1.1 (mit dem Host-Header und anderen üblichen Headern) sendest, wird der Proxy versuchen, auf google.com zuzugreifen — und du hast möglicherweise ein SSRF gefunden.
NTLM Authentication - Info disclosure
Wenn der laufende Server zur Authentifizierung Windows ist oder du ein Login findest, das nach deinen Credentials (und nach dem Domain-Namen) fragt, kannst du eine Informationsweitergabe provozieren.
Sende den Header: “Authorization: NTLM TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA=” und aufgrund der Funktionsweise der NTLM-Authentifizierung wird der Server mit internen Infos (IIS-Version, Windows-Version…) im Header “WWW-Authenticate” antworten.
Du kannst dies mit dem nmap plugin “http-ntlm-info.nse” automatisieren.
HTTP Redirect (CTF)
Es ist möglich, Inhalt innerhalb einer Redirect unterzubringen. Dieser Inhalt wird nicht für den Benutzer angezeigt (da der Browser die Weiterleitung ausführt), aber es könnte etwas darin versteckt sein.
Web Vulnerabilities Checking
Nachdem eine umfassende Enumeration der Webanwendung durchgeführt wurde, ist es Zeit, auf viele mögliche Schwachstellen zu prüfen. Du findest die Checkliste hier:
Web Vulnerabilities Methodology
Mehr Infos zu Web-Vulnerabilities:
- 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
Du kannst Tools wie https://github.com/dgtlmoon/changedetection.io verwenden, um Seiten auf Änderungen zu überwachen, die neue Schwachstellen einführen könnten.
HackTricks Automatic Commands
HackTricks Automatic Commands
```yaml 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 outEntry_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}
</details>
> [!TIP]
> Lernen & üben Sie AWS Hacking:<img src="../../../../../images/arte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../../../../images/arte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">\
> Lernen & üben Sie GCP Hacking: <img src="../../../../../images/grte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">[**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)<img src="../../../../../images/grte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">
> Lernen & üben Sie Azure Hacking: <img src="../../../../../images/azrte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">[**HackTricks Training Azure Red Team Expert (AzRTE)**](https://training.hacktricks.xyz/courses/azrte)<img src="../../../../../images/azrte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">
>
> <details>
>
> <summary>Unterstützen Sie HackTricks</summary>
>
> - Überprüfen Sie die [**Abonnementpläne**](https://github.com/sponsors/carlospolop)!
> - **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
> - **Teilen Sie Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repos senden.
>
> </details>


