Skip to content

WSTG-INFO-01 (OSINT)

  • robots.txt
  • sitemap.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.txt RFC 9116 contact Information for security researchers https://securitytxt.org/
  • humans.txt Informationen ü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 .map angehangen
  • Evaluieren von Kommentaren, Metadaten und redirect Bodys.
  • Evaluieren der Javascript Dateien
  • https://github.com/tomnomnom/waybackurls

WSTG-INFO-06 Identifizierung von Applikationsendpunkten

  • Identifizieren wo GET und POST Requests genutzt werden.
  • Identifizieren von Parametern in einem POST Request
  • Attack Surface Detector

WSTG-INFO-07

  • Spider

WSTG-INFO-08 Fingerprint Web Application Framework

  • Frameworks haben spezielle Strukturen und Aufbau
  • HTTP headers X-Powered-By X-Generator
  • Cookies
  • HTML source code
  • Spezifische Dateien und Ordner
  • Dateierweiterungen
  • Fehlernachrichten
  • Generelle Identifier:
    • powered by
    • built upon
    • running
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';
- Das obige Bilded eine Moderate Policy ab, eine strenge Policy kann durch entfernen von 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/dashboard sollte etwas wie https:// example.com/user/dashboard/non.js geprü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

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-revalidate gesetzt werden. Diese Direktive verhindert sensible Daten in der history.
  • Die Direktiven Cache-Control: no-cache, no-store, Expires: 0 und Pragma: no-cache verhindern, 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
  • Zum überprüfen des caches kann im Verzeichnis: ~/.cache/mozilla/firefox/ gesucht werden. Allerdings kann dies in Firefox auch durch die URL about:cache abgefragt 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.