WSTG-INFO-01 (OSINT)
robots.txtsitemap.xml- Google Hacking dorksearch.com
- https://osint.sh/
- https://www.osintdojo.com/resources/
- https://i-intelligence.eu/uploads/public-documents/OSINT_Handbook_2020.pdf
- https://github.com/TheHermione/DorkFinder?tab=readme-ov-file
- https://book.hacktricks.xyz/generic-methodologies-and-resources/external-recon-methodology/github-leaked-secrets
WSTG-INFO-02 (Fingerprint Web Server)
Herausfinden des Webservers und der Version. - Banner grabbing - Request mit/ohne TLS - Kaputte Requests schicken - Cookie namen - https://addons.mozilla.org/en-US/firefox/addon/builtwith/ - https://addons.mozilla.org/en-GB/firefox/addon/wappalyzer/ - Die Antworten von Requests können unterschiedlich ausfallen beispielsweise unterschiedliche Reihenfolge der Header, bei unterschiedlichen Webservern.
WSTG-INFO-03 (Webserver Metafiles Information Leakage)
- Identifizierung von versteckten oder obfuskierten Pfaden
robots.txt<META NAME="ROBOTS"wie robots Datei nur innerhalb des HTML- anderd META Tags
sitemap.xml/security.txt&/.well-known/security.txtRFC 9116 contact Information for security researchers https://securitytxt.org/humans.txtInformationen über die Entwickler der Seite- Andere Well-Known URIs nach IANA
WSTG-INFO-04 Enummerierung von Anwendungen auf dem Webserver
- Verschiedene base URLs
example.com/app1,example.com/app2 - Verwendung nicht standardmäßiger Ports, wie
8080,8443... - Virtuelle Hosts
- Nameserver finden:
host -t ns <domain>und zone transfer ausführen:host -l <domain> <nameserver> - Reverse DNS querry
- dnsdumpster
- Informationen des TLS Zertifikates
openssl s_client -connect <ip>:<port> </dev/null 2>/dev/null | openssl x509 -noout -text | grep -E 'DNS:|Subject:'
WSTG-INFO-05 Analysieren von Webseiten nach Informationsleaks
- "source maps" für debug Zwecke. schaffen eine Verbindung zwischen minimierten/obfuskierten Versionen und dem Original. An die Dateinamen wird oft
.mapangehangen - Evaluieren von Kommentaren, Metadaten und redirect Bodys.
- Evaluieren der Javascript Dateien
- https://github.com/tomnomnom/waybackurls
WSTG-INFO-06 Identifizierung von Applikationsendpunkten
- Identifizieren wo
GETundPOSTRequests genutzt werden. - Identifizieren von Parametern in einem
POSTRequest - Attack Surface Detector
WSTG-INFO-07
- Spider
WSTG-INFO-08 Fingerprint Web Application Framework
- Frameworks haben spezielle Strukturen und Aufbau
- HTTP headers
X-Powered-ByX-Generator - Cookies
- HTML source code
- Spezifische Dateien und Ordner
- Dateierweiterungen
- Fehlernachrichten
- Generelle Identifier:
powered bybuilt uponrunning
| Framework | Keyword |
|---|---|
| Adobe ColdFusion | <!-- START headerTags.cfm |
| Microsoft ASP.NET | __VIEWSTATE |
| ZK | <!-- ZK |
| Business Catalyst | <!-- BC_OBNW --> |
| Indexhibit | ndxz-studio |
| - Whatweb -a 3 | |
| # WSTG-INFO-10 Identifizieren der Applikationsarchitektur | |
- Detect Platform-as-a-Service (AWS, Azure...) Serverless (X-Amz-Invocation-Type, X-Amz-Log-Type, X-Amz-Client-Context) |
|
| - Dedizierte Speicherlösungen | |
- Amazon S3 Buckets BUCKET.s3.amazonaws.com oder s3.REGION.amazonaws.com/BUCKET |
|
- Azure Speicher Account ACCOUNT.blob.core.windows.net |
|
| - Datenbank identifizieren | |
| - Windows, IIS und ASP.NET nutzen oft Microsoft SQL Server | |
| - Eingebettete Systeme nutzen oft SQLite | |
| - PHP nutzt oft MySQL oder PostgeSQL | |
| - APEX nutzt oft Oracle | |
| - Authentifizierung erfolgt oft bei Applikationen | |
- Web Server Konfiguration (schließt .htaccess mit ein) identifizierbar durch popup und WWW-Authenticate: Basic |
|
| - Lokale Nutzer Accounts | |
- Active Directory oder LDAP Möglicherweise mit NTLM Authentifizierung WWW-Authenticate: NTLM |
|
| - SSO (OAuth, OpenID Connect, SAML) | |
| - third party services (scripts, sylesheets, Bilder, APIs, social media, Advertising, Payment gateways) | |
| - Netzwerk Komponenten(Reverse Proxy,Load Balancer, CDN) | |
| - Emails können von dem Backend geschickt werden und die IP verraten | |
| - Firewall, IDPS, WAF | |
| # WSTG-CONF-01 Test der Netzwerk Konfiguration | |
| - Validieren der Netzwerkkonfiguration | |
| - Validieren, das genutzt Frameworks und Systeme sicher sind | |
| # [WSTG-CONF-02] Applikations Platform Konfiguration | |
| - Verifizieren, ob Standard und bekannte Dateien entfernt wurden. | |
| - Verifizieren, dass es kein Debug Code oder erweiterungen gibt im Produktivsystem | |
| - Verifizieren des Logging Prozesses | |
| - https://github.com/microsoft/AttackSurfaceAnalyzer | |
| - NIST checklists | |
| - Keine Default Fehlernachrichten | |
| - Graybox (Whitebox) | |
| # WSTG-CONF-03 Check der Dateierweiterungen | |
| - Brute Forcen von Dateierweiterungen | |
- .zip, .tar, .gz, .tgz, .rar |
|
- .java |
|
- .txt |
|
- .pdf |
|
- .docx, .rtf, .xlsx, .pptx |
|
- .bak, .old |
|
| - https://filext.com/ | |
| # WSTG-CONF-04 Untersuchen von Backup und unreferenzierten Dateien | |
| Weiterlesen: https://github.com/OWASP/wstg/blob/master/document/4-Web_Application_Security_Testing/02-Configuration_and_Deployment_Management_Testing/04-Review_Old_Backup_and_Unreferenced_Files_for_Sensitive_Information.md#how-to-test | |
| # WSTG-CONF-05 Suche nach Administrationsinterfaces | |
| - Standard Pfade | |
| # WSTG-CONF-06 Testen der HTTP Methoden | |
| Method | Original Purpose |
| ------------------------------------------------------------------------ | ------------------------------------------------- |
GET |
Request a file. |
HEAD |
Request a file, but only return the HTTP headers. |
POST |
Submit data. |
PUT |
Upload a file. |
DELETE |
Delete a file |
CONNECT |
Establish a connection to another system. |
OPTIONS |
List supported HTTP methods. |
TRACE |
Echo the HTTP request for debug purposes. |
PATCH |
|
- Windows equivalent zu TRACE ist TRACK |
|
- CONNECT erlaubt die Erstellung einer TCP Verbindung: CONNECT <ip>:<port> HTTP/1.1 |
|
- HTTP Methoden überschreiben mit den Headern: X-HTTP-Method, X-HTTP-Method-Override, X-Method-Override |
|
| # WSTG-CONF-07 Test HTTP Strict Transport Security | |
- max-age spezifiziert die Gültigkeit der Direktive in Sekunden |
|
- includeSubDomains schließt alle Subdomains mit ein |
|
- preload (Unoffiziel) definiert, dass die Domain auf der preload Liste ist für Domains ist, die nie ohne HTTPS geladen werden sollten |
|
- Empfehlung: Strict-Transport-Security: max-age=31536000; includeSubDomains |
|
| # WSTG-CONF-09 Test Datei Rechte | |
| > [!INFO] Whitebox | |
| > Test der Dateiberechtigungen |
WSTG-CONF-10 Test for Subdomain Takeover
Gibt es eine Domain auf, die das Opfer zeigt welche nicht mehr gültig ist, weil sie abgelaufen ist, oder auf ein veraltetes Github/Gitlab Pages Dokument zeigt, ist es möglich, dies zu übernehmen.
- Bei einer der Antworten eines Endpunktes könnte ein Chance für einen Subdomain Takeover Angriff bestehen:
- NXDOMAIN
- SERVFAIL
- REFUSED
- no servers could be reached
- enumerate the domain: dnsrecon -d victim.com
- check Domain dig CNAME victim.com
- Überprüfen des Besitzers: whois <ip> | grep "OrgName"
- Identifizieren von Nameservern für die Domain dig ns victim.com +short. Die Antworten SERVFAIL und REFUSED sollten genauer untersucht werden.
- sublist3r
WSTG-CONF-11 Test Cloud Storage
- Überprüfen des Cloud Speichers auf deren Zugriffsrechte
- Check des Datei hochladens:
curl -X PUT -d 'test' 'https://<cloud-storage-service>/test.txt'
WSTG-CONF-12 Testing Content Security Policy
Die Content-Security-Policy und die <meta> Tags können dafür genutzt werden, um zu spezifizieren von welchen Quellen, Resourcen wie Javascript, CSS, Bilder und sonstige geladen werden können. Durch diese Sicherheitsmaßnahme werden Attacken wie XSS und Clickjacking verhindert.
- unsafe-inline erlaubt die Nutzung von inline scripts und styles, was zu XSS führen kann.
- unsafe-eval erlaubt die Nutzung von eval() und ist anfällig gegen bypass Techniken, wie URL injection
- unsafe-hashes erlaubt die Nutzung von inline scripts und styles, wenn sie einem bestimmten Hash ähneln
- Resourcen können von jeder beliebigen Quelle erlaubt werden, wenn der wildcard * genutzt wird.
- Werden JSONP endpunkte genutzt kann dies zu einem CSP oder same-origin-policy bypass führen
- Framing kann für alle Quellen mit dem * wildcard in der frame-ancestors Direktive aktiviert werden. Ist dieser Header nicht definiert im CSP ist die Applikation möglicherweise anfällig gegenüber clickjacking
- https://csp-evaluator.withgoogle.com/
script-src 'nonce-r4nd0m' 'strict-dynamic';
object-src 'none'; base-uri 'none';
strict-dynamic erreicht werden.
- script-src Restriktiert die Quellen von wo Skripts geladen werden können
- object-src Restriktiert die Quellen von denen Objekte geladen werden können
- base-uriDie Basis URL die für relative Pfade genutzt wird. Ohne diese Direktive wird die Webseite verwundbar gegenüber HTML base tag injections.
WSTG-CONF-13 Test der Pfad Verwirrung
- Applikationspfade müssen korrekt konfiguriert sein, um web cache deception Angriffe zu vermeiden.
- Ist der Pfad
https://example.com/user/dashboardsollte etwas wiehttps:// example.com/user/dashboard/non.jsgeprüft werden. - [[Hacking/Web/Web Cache Deception]]
WSTG-IDNT-01 Test der Rollen Definitionen
- Identifizieren und Dokumentieren der genutzten Rollen der Anwendung
- Versuchen Rollen zu ändern, zu wechseln oder auf sie zuzugreifen.
- Fuzzen möglicher Rollen:
- Cookie variablen:
role=admin,isAdmin=True - account variable:
Role: manager - versteckte Ordner:
/admin,/mod,/backups - wechsel zu bekannten Nutzern wie admin oder backups
- Authmatrix Burp extension
- Cookie variablen:
WSTG-IDNT-02 Test des Registrierungsprozesses
- Verifizieren der nötigen Identitätsnachweise
- Kann sich jeder registrieren?
- Werden Registrierungen automatisch durchgeführt oder von einem Nutzer genehmigt
- Kann die selbe Person oder identität sich mehrmals registrieren
- Können sich Nutzer für verschiedene Rollen registrieren
- Welchen Nachweis der Identität gibt es?
- Sind registrierte Nutzer verifiziert?
- Können Identitätsinformationen leicht gefälscht werden?
- Kann der Informationsaustausch während der Registrierung manipulliert werden?
WSTG-IDNT-03 Test der Provision des Account Prozesses
- Verifizieren, welche Accounts Konten erstellen können und welchen Typ sie haben.
- Gibt es irgendeine Verifikation, Abwägung oder Genehmigung Zugriffsrechte zu entziehen
- Kann ein Administrator andere Administratoren oder Nutzer erstellen
- Kann ein Administrator Accounts mit höheren Rechten als er selbst hat erstellen.
- Kann ein Nutzer oder Administrator seinen eigenen Account entfernen?
- Wie werden Daten von gelöschten Nutzern behandelt.
WSTG-IDNT-04 Test der Account Enummerierung und erratbare Nutzernamen
Verifiziere, dass unregistrierte Nutzer oder bekannte Nutzer ihren Namen nicht zu reservierten Nutzernamen wie admin, administrator oder moderator ändern kann.
WSTG-IDNT-05 Schwache oder nicht umgesetzte erzwingung der Nutzer Policy
Wichtig???
WSTG-ATHN-02 Test auf Standard Passwörter
- Testen ob es Standard Passwörter gibt.
- https://cirt.net/passwords
- https://github.com/ihebski/DefaultCreds-cheat-sheet/blob/main/DefaultCreds-Cheat-Sheet.csv
WSTG-ATHN-03 Test des Auslog Prozesses
Die folgenden Angriffe sollen durch einen Logout Prozess abgewehrt werden: - Passwort oder Nutzernamen erraten - Erraten der 2FA Codes oder Sicherheitsfragen - Zum testen das Passwort 3 Mal falsch eingeben und dann richtig. Wiederholen für 4 und 5 Mal - Nach 5 Malen sollte der Account gesperrt sein - Nach 5 Min überprüfen, ob der Account immer noch gesperrt ist - Nach 10 Min überprüfen - Nach 15 Minuten sollten ein einloggen wieder möglich sein - Captchas können Brute Force auch verhindern, kommen aber mit ihren eigenen Schwachstellen, wenn sie nicht korrekt implementiert wurden - Evaluieren des Prozesses zum Aktivieren des Accounts
WSTG-ATHN-04 Test zum Umgehen des Authentifizierungs Schemas
- Überprüfen, ob eine Authentifizierung bei allen benötigten Diensten Aktiv ist.
- Die Authentifizierung kann umgangen werden durch die Manipulation von Parametern...
WSTG-ATHN-05 Test der Passwort merken Funktion
- Die Credentials sollten als Tokens im Browser gespeichert werden.
- Analysieren der Lebenszeit der Tokens
WSTG-ATHN-06 Test der Browser Cache Schwachstellen
- Prüfen, ob Anwendung den Nutzer anweist sensible Daten nicht zu speichern
- Um zu verhindern, dass man durch die Zurück Taste sensible Daten sehen, muss die Direktive
Cache-Control: must-revalidategesetzt werden. Diese Direktive verhindert sensible Daten in der history. - Die Direktiven
Cache-Control: no-cache, no-store,Expires: 0undPragma: no-cacheverhindern, dass sensible Informationen gecacht werden und müssen dementsprechend bei sensiblen Antworten gecacht sein.- Noch sicherer Header:
Cache-Control: must-revalidate, max-age=0, s-maxage=0
- Noch sicherer Header:
- Zum überprüfen des caches kann im Verzeichnis:
~/.cache/mozilla/firefox/gesucht werden. Allerdings kann dies in Firefox auch durch die URLabout:cacheabgefragt werden. - Auf mobilen Geräten, kann dies unterschiedlich gehandhabt werden, dafür kann der Responsive Design Mode unter Firefox genutzt werden.
WSTG-ATHN-07 Test auf schwache Passwort Policys
- Erlaubte/Verbotene Zeichen
- Verhinderung dass User Nutzername als Passwort nutzt
- Minimale/maximale Passwortlänge
- Sind oft benutzte Passwörter Nutzbar
WSTG-ATHN-08 Schwache Sicherheitsfragen
- Test der Sicherheit der Fragen
- Check, ob Fragen Bruteforce bar sind.