(modifié le 24 mai 2017 à 0:25)





A chaque faille découverte c'est le même processus : on cherche à patcher les machines concernées. Suivant la taille de votre infra et le nombre d'admins il y a fort à parier que vous allez oublier de patcher quelques machines.

Mise à jour : il est possible de récupérer les fichiers chiffrés avec WannaKiwi

Voyons comment détecter rapidement les machines faillibles à l'exploit WannaCry (ou tout autre exploit) avec l'outil Nmap.

Ingrédients

C'est l'outil de scan open source Nmap qui va nous permettre de lancer le scan, à l'aide du plugin associé à l'exploit : smb-vuln-ms17-010.nse.

Attention : vous devez être en version 7.40 minimum (génère une erreur sur les versions inférieures).

Pour le vérifier :

nmap -V

Avec Windows

Téléchargez et installez la dernière version stable pour Windows.

Téléchargez le plugin smb-vuln-ms17-010.nse dans le répertoire :

C:\Program Files (x86)\Nmap\scripts\

Ouvrir une invite de commande (non admin) pour lancer le scan.

Voici un exemple de scan d'une machine :

nmap -sC -p 445 -max-hostgroup 3 -open --script smb-vuln-ms17-010.nse monserver.maboite.lan

Voici un exemple de scan du 172.24.1.0/24 avec sortie dans un fichier texte :

nmap -sC -p 445 -max-hostgroup 3 -open --script smb-vuln-ms17-010.nse 172.24.1.0/24 -oN resultat.txt

Avec GNU/Linux

Installez le paquet xsltproc qui permet de générer un fichier html à partir d'un xml (Debian like):

apt-get install xsltproc

ou sur RedHat Like :

yum install xsltproc

Téléchargez et installez Nmap depuis les dépôts si la version supérieure ou égale à la v7.40 .

Si ce n'est pas le cas il faut compiler Nmap à partir de la dernière version dispo (nmap-7.40.tar.bz2 actuellement).

Se placer dans un répertoire de votre choix, tel que /usr/share/nmap-compile, puis en tant que root :

bzip2 -cd nmap-7.40.tar.bz2 | tar xvf -

cd nmap-7.40

./configure

make && make install

Téléchargez le plugin smb-vuln-ms17-010.nse dans le répertoire :

/usr/share/nmap-compile/scripts

Voici un exemple de scan d'une machine :

./nmap -sC -p 445 -max-hostgroup 3 -open --script smb-vuln-ms17-010.nse monserver.maboite.lan

Voici un exemple de scan du 172.24.1.0/24 avec sortie dans un fichier texte :

./nmap -sC -p 445 -max-hostgroup 3 -open --script smb-vuln-ms17-010.nse 172.24.0.0/24 -oX scan.xml && xsltproc scan.xml -o "wanna_ date +%m%d%y .html"



Attention : ne pas oublier le point "." devant "/nmap"

Récupérez ensuite le fichier html pour envoyer ce beau rapport :

Cette mise en forme rigoureuse témoignera du sérieux avec lequel vous faites votre job, le rapport est tout à fait "manager ready".

En cas de faille détectée

Voici ce que retourne NMAP quand une machine vulnérable à l'exploit SMBv1 est détecté :

Starting Nmap 7.40 ( https://nmap.org ) at 2017-05-17 15:57 Paris, Madrid (heure d'été)

Nmap scan report for monserveur (172.24.1.12)

Host is up (0.00013s latency).

rDNS record for 172.24.1.12:monserveur.maboite.lan

PORT STATE SERVICE

445/tcp open microsoft-ds

Host script results:

| 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://technet.microsoft.com/en-us/library/security/ms17-010.aspx

| https://blogs.technet.microsoft.com/msrc/2017/05/12/customer-guidance-for-wannacrypt-attacks/

|_ https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-0143

Conclusion

Je n'ai pas trouvé le moyen de générer un rapport HTML sous Windows, que ce soit avec msxsl.exe ou Parse-Nmap.ps1 : ça ne fonctionne pas.

Si quelqu'un parvient à trouver le moyen de sortir un résultat pour avoir un serveur par ligne et son état (touché ou non) ce serait pas mal pour lister ça dans un tableur et suivre l'installation du patch sur le parc. Probablement en utilisant l'option "-oG" de nmap, et à coup de awk et cut...

N'oubliez pas de relancer des scans une fois que tout est patché.

Ce tutoriel s'applique bien sûr à tous les plugins NMAP, WannaCry n'était qu'un prétexte pour vous présenter cette méthode que j'utilise depuis des années, par exemple avec heartbleed.

Cela fonctionne aussi avec Metasploit en utilisant :

auxiliary/scanner/smb/smb_ms17_010

avec "set RHOSTS 172.22.0.0/24" puis "run" (tutoriel).

note : cela fonctionne aussi en théorie sur OS X en mettant le plugin nse dans /opt/local/share/nmap/scripts/

En supplément : vérificateur de la vulnérabilité EternalBlue chez ESET

source rapport html