RAPPORT DE TEST D'INTRUSION
Machine cible Basic Pentesting — TryHackMe (parcours SEC 101)
Exercice réalisé dans le cadre de la préparation à la certification SEC 101 TryHackMe.
1. Résumé Exécutif
Ce rapport documente les résultats d'un test d'intrusion réalisé sur la machine
« Basic Pentesting » de TryHackMe (IP : 10.129.187.21),
dans le cadre de la préparation à la certification SEC 101. L'objectif
était d'obtenir un accès complet en chaînant plusieurs vulnérabilités : informations
exposées en clair, authentification SSH faible, et récupération d'une clé privée
protégée par un mot de passe faible.
Constat principal : aucune faille isolée n'aurait suffi à compromettre la machine, mais leur combinaison (fichiers exposés, mot de passe SSH faible, permissions incorrectes sur une clé privée, secrets en clair) a permis une compromission complète en chaînant six étapes d'exploitation.
2. Périmètre et Méthodologie
2.1 Périmètre
- Adresse IP cible : 10.129.187.21
- Type de test : Boîte noire (aucune information préalable)
- Contexte : TryHackMe — Basic Pentesting (préparation SEC 101)
2.2 Méthodologie
- Reconnaissance — scan de ports, détection de services
- Énumération web — gobuster sur port 80
- Énumération SMB — analyse des partages anonymes
- Exploitation — brute force SSH avec Hydra
- Post-exploitation — analyse des fichiers accessibles
- Escalade de privilèges — clé privée SSH + crackage (John the Ripper)
3. Reconnaissance
3.1 Scan de ports (Nmap)
nmap -p- -T4 -sV -sC 10.129.187.21
| Port | État | Service | Version |
|---|---|---|---|
| 22/tcp | open | SSH | OpenSSH 8.2p1 |
| 80/tcp | open | HTTP | Apache 2.4.41 |
| 139/tcp | open | SMB (NetBIOS) | Samba 4.6.2 |
| 445/tcp | open | SMB | Samba 4.6.2 |
| 8009/tcp | open | AJP13 | Apache JServ 1.3 |
| 8080/tcp | open | HTTP | Apache Tomcat 9.0.7 |
Observations notables : Samba (partages potentiellement exposés), Apache Tomcat 9.0.7 (version ancienne, vulnérable) et serveur AJP exposé (port 8009, vecteur Ghostcat — CVE-2020-1938).
3.2 Énumération Web — Gobuster (port 80)
gobuster dir -w directory-list-2.3-medium.txt -u http://10.129.187.21/ -x php,js,txt
Répertoire /development découvert (HTTP 301). Fichiers récupérés :
dev.txt— journal interne contenant des informations sensiblesj.txt— message mentionnant un mot de passe faible pour l'utilisateur J
Extraits pertinents de dev.txt :
2018-04-23: Struts 2.5.12 installé (version vulnérable). -K
2018-04-22: SMB configuré. -K
2018-04-21: Apache installé. -J
Extrait de j.txt :
J'ai pu cracker ton hash facilement. Change ton mot de passe ASAP. -K
Conclusion : deux utilisateurs identifiés — K (Kay) et J (Jan). Jan a un mot de passe faible confirmé par Kay elle-même.
3.3 Énumération SMB
smbclient -L //10.129.187.21
smbclient //10.129.187.21/Anonymous -N
Partage Anonymous accessible sans authentification. Fichier récupéré :
staff.txt.
Announcement: PLEASE do not upload non-work-related items to this share.
(This means you too, Jan!) -Kay
Confirmation des identités : K = Kay, J = Jan.
4. Exploitation — Accès Initial
4.1 Brute force SSH — compte Jan
Partant du constat que Jan possède un mot de passe faible, une attaque par dictionnaire a été menée avec Hydra :
hydra -l jan -P /usr/share/wordlists/rockyou.txt 10.129.187.21 ssh -vV
| Utilisateur | Mot de passe |
|---|---|
jan | armando |
Résultat : shell SSH obtenu en tant que jan.
5. Post-Exploitation et Escalade de Privilèges
5.1 Découverte de la clé privée de Kay
Depuis le compte jan, exploration du répertoire home de kay :
ls -la /home/kay/.ssh/
La clé privée id_rsa de Kay était lisible par jan
(permissions 644). Cette piste a été identifiée avec aide extérieure.
La clé était chiffrée (AES-128-CBC) et nécessitait un mot de passe pour être utilisée.
5.2 Crackage de la clé privée (John the Ripper)
ssh2john id_rsa > key_hash.txt
john --wordlist=/usr/share/wordlists/rockyou.txt key_hash.txt
| Fichier | Passphrase trouvée |
|---|---|
id_rsa (clé de Kay) | beeswax |
5.3 Connexion SSH en tant que Kay
ssh -i id_rsa kay@10.129.187.21 # passphrase : beeswax
5.4 Récupération du mot de passe de Kay
Depuis le home de Kay, un fichier pass.bak était présent :
$ cat pass.bak
heresareallystrongpasswordthatfollowsthepasswordpolicy$$
Compromission totale du compte Kay.
6. Synthèse des Vulnérabilités
Impact : accès initial au système via brute force dictionnaire en quelques minutes.
Impact : escalade horizontale vers le compte privilégié Kay depuis n'importe quel utilisateur du système.
Impact : divulgation d'utilisateurs, services et faiblesses internes — facilite tout le reste de l'attaque.
Impact : chiffrement de la clé contournable en quelques secondes via ssh2john + rockyou.txt.
Impact : compromission totale et persistante du compte Kay.
Impact : vecteur d'attaque supplémentaire identifié mais non exploité dans cet exercice (lecture arbitraire de fichiers via AJP).
Impact : confirmation des identités utilisateurs sans authentification, contributeur à la phase d'énumération.
7. Chaîne d'Exploitation
La compromission complète a été obtenue en chaînant les étapes suivantes :
| Étape | Action | Résultat |
|---|---|---|
| 1 | Gobuster → /development/dev.txt + j.txt | Utilisateurs identifiés (Jan, Kay), mdp faible confirmé |
| 2 | SMB anonyme → staff.txt | Confirmation identités Jan et Kay |
| 3 | Hydra SSH → jan:armando | Accès SSH initial obtenu |
| 4 | Lecture /home/kay/.ssh/id_rsa (chmod 644) | Clé privée chiffrée récupérée |
| 5 | ssh2john + john → passphrase beeswax | Clé déchiffrée, connexion SSH Kay |
| 6 | cat pass.bak | Mot de passe de Kay en clair récupéré |
8. Recommandations
8.1 Prioritaires
- Appliquer une politique de mots de passe robuste sur tous les comptes SSH (longueur ≥ 12, complexité, rotation).
- Corriger les permissions des clés privées SSH :
chmod 600 /home/kay/.ssh/id_rsa(lisible uniquement par le propriétaire). - Supprimer ou chiffrer tout fichier contenant des mots de passe en clair (
pass.bak). - Ne jamais exposer de fichiers de notes internes ou de journaux de développement sur un serveur web public.
8.2 Secondaires
- Désactiver ou restreindre le partage SMB anonyme.
- Mettre à jour Apache Tomcat (9.0.7 → version récente) et désactiver AJP si non utilisé (CVE-2020-1938 Ghostcat).
- Utiliser des passphrases fortes et uniques pour toute clé privée SSH.
- Mettre en place
fail2banou équivalent pour limiter les tentatives de brute force SSH.
9. Réflexion sur l'Apprentissage
Cette machine a permis de consolider plusieurs compétences fondamentales du pentest :
- Reconnaissance multi-services : combiner
nmap,gobusteretsmbclientpour dresser un tableau complet de la surface d'attaque. - Lecture des indices contextuels : les fichiers texte exposés (
/development) ont été déterminants pour orienter l'attaque. - Brute force ciblé : Hydra sur un utilisateur spécifique avec contexte (mdp faible confirmé) est bien plus efficace qu'un scan générique.
- Crackage de clé SSH : maîtrise de
ssh2john+ John the Ripper pour attaquer des clés chiffrées.
Point d'amélioration identifié : la piste de la clé privée de Kay
dans ~/.ssh/ a nécessité un coup de pouce extérieur. À retenir : après
accès initial, toujours vérifier les répertoires .ssh des autres
utilisateurs avec les permissions actuelles.
10. Conclusion
La machine Basic Pentesting illustre parfaitement la notion de chaîne de vulnérabilités : aucune faille isolée n'est suffisante, mais leur combinaison mène à une compromission complète. Les vulnérabilités rencontrées (fichiers exposés, mot de passe faible, permissions incorrectes, secrets en clair) sont représentatives d'erreurs de configuration courantes en environnement réel.
Cette session a renforcé la compréhension pratique de techniques essentielles couvertes par la certification SEC 101 de TryHackMe.
Pentester
Julien PINOT
Étudiant BTS SIO Option SISR
Avril 2026
Cadre
TryHackMe — SEC 101
Machine : Basic Pentesting
Environnement : laboratoire pédagogique