✍🏼Writeup – Source room TryHackMe

Briefing, très concis, du challenge (lui-même concis) :

Enumerate and root the box attached to this task. Can you discover the source of the disruption and leverage it to take control?

Reconnaissance (2 minutes)

On commence par un scan des ports via le légendaire nmap.

Explication sur la commande :

  • -sS : On souhaite faire un TCP SYN (Stealth) scan (ou half open scan car on ne rĂ©alise pas l’intĂ©gralitĂ© du 3-way handshake TCP).
  • -A : Aggressive scan options = active la dĂ©tection d’OS (-O) , le scan de version (-sV), utilisation des scripts par dĂ©faut (-sC) et rĂ©alise un traceroute de la cible (–traceroute).
  • -Pn : ConsidĂ©rer tous les hĂ´tes comme Ă©tant connectĂ©s (saute l’étape de dĂ©couverte des hĂ´tes).
  • -p- : Scan l’intĂ©gralitĂ© des ports possibles.
  • -T4 : Choisit la « politique de temporisation Â» 4 (la plus rapide Ă©tant la 5).
  • -oA : Permet de sauver dans « tous » les formats le rĂ©sultat du scan (bonne pratique permettant de conserver des traces de nos actions)
    • format « standard » nmap = out.nmap
    • format « standard » nmap « grepable » = out.gnmap
    • format XML : out.xml

On trouve ici 2 ports ouvert :

  • le port 22 permettant l’accès via SSH, avec un server OpenSSH en version 7.6p1.
  • le port 10000 en Ă©coute avec un serveur MiniServ (Webmin) en version 1.890.

Exploitation (5 minutes)

Après quelques recherches sur le web concernant l’application Webmin dans sa version 1.890, je tombe rapidement sur le repository suivant : https://github.com/n0obit4/Webmin_1.890-POC

Repository GitHub de l’exploit pour la CVE-2019-15107


Je clone le repository car il semble ĂŞtre une piste plus qu’intĂ©ressante.

Récupération du repository en local


Je lance alors le script python fourni pour vérifier son bon fonctionnement.

Exécution script sans commande

Le script semble fonctionner Ă  merveille !


Post exploitation (10 minutes)

Après divers essais inutiles de me crĂ©er un reverse shell, je me rend compte que je suis allĂ© un peu vite, et qu’en lisant un peu mieux la CVE et l’exploit utilisĂ©, on exĂ©cute des commandes en tant que root, pas besoin de reverse shell alors pour rĂ©cupĂ©rer mes flags …

A l’aide de l’exploit prĂ©cĂ©demment rĂ©cupĂ©rĂ© sur GitHub, je parcours d’abord le /home.

Listing du dossier /home


Je trouve alors le dossier personnel de l’utilisateur dark, et je m’empresse alors de lister ce rĂ©pertoire …

Enumération du dossier /home/dark


… dans lequel on trouve … le flag user !

Flag utilisateur découvert
Par ici le flag utilisateur découvert :

THM{SUPPLY_CHAIN_COMPROMISE}

On réalise la même gymnastique afin de trouver le flag root.
On commence par lister le dossier /root puisque toutes les commandes exécutées le sont avec les droits root.

Enumération du dossier /root


On trouve un fichier des plus intéressant, qui semble nous indiquer que nous sommes proches du but, on affiche le contenu de ce fichier root.txt.

Flag root découvert
Et par lĂ  le flag root :

THM{UPDATE_YOUR_INSTALL}


ChaĂ®ne d’attaque

ÉtapeTechnique MITRE ATT&CK (ID)Nom technique (anglais)Explication / application au challenge
Scan Nmap (ports et version)T1595 (Reconnaissance) / T1595.002Active Scanning / Scanning IPs, PortsScan actif pour trouver ports ouverts et versions (nmap -sS -A -p- -Pn).
DĂ©couverte de services (Webmin 1.890)T1046Network Service DiscoveryIdentification du service Webmin/MiniServ sur le port 10000 et d’OpenSSH sur 22.
Recherche d’exploit public / ciblage de service WebT1190Exploit Public-Facing ApplicationUtilisation d’un exploit public (CVE-2019-15107) ciblant l’application Webmin exposĂ©e.
ExĂ©cution de commandes via l’exploit (RCE)T1059Command and Scripting InterpreterCommandes shell exĂ©cutĂ©es sur la machine cible par le vecteur RCE fourni par l’exploit.
Obtenir contexte root directement via le service vulnĂ©rableT1068 (ou T1190 selon perspective)Exploitation for Privilege Escalation (ou RCE via service)L’exploit permet exĂ©cution en tant que root (pas d’Ă©lĂ©vation additionnelle nĂ©cessaire).
Exploration des fichiers locauxT1083File and Directory DiscoveryListing de /home puis /home/dark et /root pour trouver les fichiers d’intĂ©rĂŞt.
Collecte des preuves/flags (lecture)T1005Data from Local SystemLecture des fichiers user.txt et root.txt (récupération de données locales).

Remarque : l’Ă©tape « exploitation » est principalement couverte par T1190 (Exploit Public‑Facing Application) — ici l’exploit aboutit Ă  une RCE avec privilèges root, situation qui peut aussi ĂŞtre dĂ©crite via T1068 (Exploitation pour l’escalade) si on insiste sur l’obtention de privilèges Ă©levĂ©s.

Synthèse de la chaĂ®ne d’attaque :

  1. Reconnaissance : scan complet (nmap -sS -A -Pn -p-) → découverte de Webmin/MiniServ 1.890 sur le port 10000 et OpenSSH 7.6p1 sur le port 22.
  2. Recherche d’un exploit public pour Webmin 1.890 (CVE‑2019‑15107) et clonage du PoC.
  3. Exploitation : exĂ©cution du script PoC → Remote Code Execution sans authentification (RCE). L’exploit permet d’exĂ©cuter des commandes en tant que root.
  4. Post compromission : listing /home et /root → lecture de user.txt et root.txt.
  5. Conclusion : accès root obtenu sans Ă©lĂ©vation additionnelle — montrant l’impact critique d’un service public vulnĂ©rable.

Retour d’expĂ©rience

Ce challenge, nettement plus simple que les derniers que j’ai pu rĂ©alisĂ©, ne m’a quand mĂŞme par Ă©pargnĂ©.
MalgrĂ© une facilitĂ© annoncĂ©e, je me suis quand mĂŞme de nouveau retrouvĂ© piĂ©gĂ© par mon impatience, qui m’a conduite Ă  chercher lĂ  oĂą il n’en Ă©tait nul besoin.
Cette recherche de reverse shell (inutile) m’a pris moins d’une dizaine de minutes, mais c’est rageant de voir que cette perte de temps est due Ă  une prĂ©cipitation de ma part qui m’a emmenĂ© Ă  nĂ©gliger certaines informations, et dans les mĂ©tiers de la cybersĂ©curitĂ©, la patience est plus qu’une qualitĂ©, c’est une nĂ©cessitĂ© afin d’Ă©viter des incomprĂ©hensions et des erreurs pouvant ĂŞtre très graves.


Conclusion

Une room rapidement terminée (20 minutes douche comprise !).

Ici pas de recherche interminable, de dĂ©couverte technique, ni d’incantations spirituelles n’ont Ă©tĂ© nĂ©cessaire.
Un cas d’Ă©cole, on scan, on trouve un service avec une version douteuse, on trouve un exploit directement utilisable et on obtient une RCE root sans authentification mĂŞme pas besoin de recourir Ă  de l’Ă©lĂ©vation de privilèges.

Un cas d’Ă©cole oui, mais un cas dĂ©sastreux en production, et pourtant, Ă  l’heure oĂą j’Ă©cris ces lignes, une simple recherche sur Shodan m’indique que près de 1500 IPs publiques exposent un service MiniServ en version 1.890.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *