Recherche rapide dans la base Exploit-DB avec searchsploit

I. Présentation

Je vous présente dans cet article l'outil searchsploit, qui permet d'effectuer des recherches dans la base de données exploit-db en ligne de commande.

Je vous ai déjà parlé de la base de données d'exploit exploit-db, qui référence divers exploits et techniques d'attaques. Searchsploit est donc un outil qui permet d'effectuer des recherches en ligne de commande sur votre poste plutôt que via l'interface web du site exploit-db. Cela peut s'avérer assez pratique et beaucoup plus rapide, notamment via l'utilisation des différentes options de searchsploit.

Avec searchsploit, il est possible d'effectuer des recherches en fonction de différents mots-clés, mais également de disposer de tous ces exploits directement sur sa machine, très pratique lorsque l'on est en situation d'audit et que l'on ne dispose pas d'accès à Internet.

II. Installation

Searchsploit fait partie du paquet exploit-db, présent nativement sur les machines KaliLinux. Pour les autres systèmes, vous trouverez le dépôt Github du projet ici : https://github.com/offensive-security/exploit-database.

cd /opt/
git clone https://github.com/offensive-security/exploitdb.git

Tous les exploits seront alors téléchargés sur votre machine, il ne s'agit que de fichiers textes, scripts ou binaires à compiler, il faut cependant prévoir environs 100 Mo de libre sur votre espace disque.

root@kali:/opt# ls exploit-database/*
 exploit-database/files.csv exploit-database/README.md exploit-database/searchsploit
exploit-database/platforms:
 aix bsdi_x86 hardware linux_crisv32 netbsd_x86 php solaris_sparc win_x86-64
 android bsd_ppc hp-ux linux_mips netware plan9 solaris_x86 xml
 arm bsd_x86 immunix linux_ppc novell python system_z
 ashx cfm ios linux_sparc openbsd qnx tru64
 asp cgi irix lin_x86 openbsd_x86 ruby ultrix
 aspx freebsd java lin_x86-64 osx sco unix
 atheos freebsd_x86 json macos osx_ppc sco_x86 unixware
 beos freebsd_x86-64 jsp minix palm_os sh4 windows
 bsd generator linux multiple perl solaris win_x86

Auprès téléchargement du dépôt git, vous trouverez dans le répertoire exploit-database/searchsploit le script searchsploit, ainsi que tous les exploits de la base de données exploit-db dans le répertoire platforms. Pour pouvoir utiliser la commande depuis n'importe où dans votre système, faites un lien symbolique vers le répertoire des binaires du système.

ln -sf /opt/exploit-database/searchsploit /usr/local/bin/searchsploit

Pour les utilisateurs de KaliLinux, les exploits sont présents dans le répertoire /usr/share/exploitdb/platforms/.

La base de données d'exploit-db est mise à jour régulièrement afin d'intégrer les dernières découvertes des chercheurs en sécurité. Il convient donc de mettre à jour notre base de données locale searchsploit. Cela peut être fait par une mise à jour standard pour les machines KaliLinux car le paquet fait partie des paquets installés nativement (apt-get update;apt-get upgrade). Egalement, et notamment pour les installation depuis le dépôt Github, on peut utiliser l'option "-u" ou "--update" de searchsploit.

searchsploit -u

La base de données locale va donc ensuite être mise à jour.

III. Utilisation

L'utilisation de searchsploit est des plus simple, par exemple pour rechercher les exploits concernant Tomcat.

root@kali:/opt# searchsploit Tomcat
 ---------------------------------------------------------------------
 Exploit Title | Path
 | (/usr/share/exploitdb/platforms/)
 ---------------------------------------------------------------------
 4D WebSTAR 5.3/5.4 Tomcat Plugin - Remote Buffer Overflow | osx/remote/25626.c
 AWStats 6.x - Apache Tomcat Configuration File Arbitrary Command Exe | cgi/webapps/35035.txt
 Apache 1.3.x + Tomcat 4.0.x/4.1.x (Mod_JK) - Chunked Encoding Denial | unix/dos/22068.pl
 Apache Commons FileUpload and Apache Tomcat - Denial of Service | multiple/dos/31615.rb
 Apache Tomcat (Windows) - 'runtime.getRuntime().exec()' Privilege Es | windows/local/7264.txt
 Apache Tomcat - (WebDAV) Remote File Disclosure | multiple/remote/4530.pl
 Apache Tomcat - (WebDAV) Remote File Disclosure (SSL) | linux/remote/4552.pl
 Apache Tomcat - Account Scanner / 'PUT' Request Remote Exploit | multiple/remote/18619.txt
 Apache Tomcat - Cookie Quote Handling Remote Information Disclosure | multiple/remote/9994.txt
 [...]

Pour cibler une version préciser de Tomcat

 ---------------------------------------------------------------------
 root@kali:/opt# searchsploit Tomcat 3.1
 ---------------------------------------------------------------------
 Exploit Title | Path
 | (/usr/share/exploitdb/platforms/)
 ---------------------------------------------------------------------
 Apache Tomcat 3.1 - Path Revealing | multiple/remote/20131.txt
 Tomcat 3.0/3.1 Snoop Servlet - Information Disclosure | multiple/remote/20132.txt
 ---------------------------------------------------------------------

On observe notamment sur la colonne de droite la présence des chemins locaux des exploits, si je souhaite récupérer l'exploit ou la procédure d'attaque pour "Apache Tomcat 3.1 - Path Revealing ", il me suffit de suivre le chemin indiqué :

root@kali:/opt# cat /usr/share/exploitdb/platforms/multiple/remote/20131.txt
 source: http://www.securityfocus.com/bid/1531/info
A vulnerability exists in the JSP portion of the Tomcat package, version 3.1, from the Apache Software Foundation. Upon hitting an nonexistent JSP file, too much information is presented by the server as part of the error message. This information may be useful to a would be attacker in conducting further attacks.
http://narco.guerrilla.sucks.co:8080/anything.jsp
Error: 404
 Location: /anything.jsp
JSP file "/appsrv2/jakarta-tomcat/webapps/ROOT/anything.jsp" not found

On peut également demander à afficher les URL pour récupérer les exploits depuis Internet sur le site d'exploit-db en utilisant l"option "-w".

root@kali:/opt# searchsploit Tomcat 3.1 -w
 -----------------------------------------------------------
 Exploit Title | URL
 -----------------------------------------------------------
 Apache Tomcat 3.1 - Path Revealing | https://www.exploit-db.com/exploits/20131/
 Tomcat 3.0/3.1 Snoop Servlet - Information Disclosure | https://www.exploit-db.com/exploits/20132/
 -----------------------------------------------------------

Pour omettre certains mots-clés du résultat, on peut utiliser l'option "--exclude" :

root@kali:/opt# searchsploit Tomcat 3.1 -w --exclude="dos|Snoop"
 -----------------------------------------------------------
 Exploit Title | URL
 -----------------------------------------------------------
 Apache Tomcat 3.1 - Path Revealing | https://www.exploit-db.com/exploits/20131/
 -----------------------------------------------------------

IV. Combiner nmap et searchsploit

Il est possible de donner à searchsploit le résultat d'une commande nmap pour qu'il effectue ses recherches sur les services et systèmes d'exploitations détectés. Il faut pour cela enregistrer le scan nmap à traiter au format XML avec l'option "-oX" de nmap :

nmap -sT -F 192.168.56.11 -oX file.xml -A

On peut ensuite utiliser l'option "--nmap" de searchsploit

root@kali:/opt# searchsploit --nmap file.xml
 [i] SearchSploit's XML mode (without verbose enabled)
 [i] Reading: 'file.xml'
[i] /usr/bin/searchsploit -t microsoft windows rpc
 ---------------------------------------------------------------------
 Exploit Title | Path
 | (/usr/share/exploitdb/platforms/)
 ---------------------------------------------------------------------
 Microsoft Windows - 'Lsasrv.dll' RPC Remote Buffer Overflow (MS04-01 | windows/remote/293.c
 Microsoft Windows - 'RPC DCOM' Long Filename Overflow (MS03-026) | windows/remote/100.c
 Microsoft Windows - 'RPC DCOM' Remote Buffer Overflow | windows/remote/64.c
 Microsoft Windows - 'RPC DCOM' Remote Exploit (1) | windows/remote/69.c
 Microsoft Windows - 'RPC DCOM' Remote Exploit (2) | windows/remote/70.c
[...]
 Microsoft Windows XP/2000/NT 4.0 - RPC Service Denial of Service (2) | windows/dos/21952.c
 Microsoft Windows XP/2000/NT 4.0 - RPC Service Denial of Service (3) | windows/dos/21953.txt
 Microsoft Windows XP/2000/NT 4.0 - RPC Service Denial of Service (4) | windows/dos/21954.txt
 Microsoft Windows XP/2003 - RPCSS Service Isolation Privilege Escala | windows/local/32892.txt
 ---------------------------------------------------------------------
[i] /usr/bin/searchsploit -t microsoft windows netbios ssn
[i] /usr/bin/searchsploit -t windows 10 enterprise evaluation 15063 microsoft ds

Cette recherche n'est ni exhaustive ni très précise, il convient donc de vérifier les résultats fournis par searchsploit qui prend uniquement le nom des services détectés pour effectuer des recherches.

L'outil searchsploit est donc très pratique il permet notamment d'avoir accès tous les exploits de la plateforme exploit-db sans accès à Internet. Il est enfin à noter que l'on ne peut obtenir les informations relatives aux "Papers" publiés sur exploit-db et à la base des Google Dorks.

Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Partager sur Google+ Envoyer par mail

Mickael Dorigny

Co-fondateur d'IT-Connect.fr. Auditeur/Pentester chez Orange Cyberdéfense.

Nombre de posts de cet auteur : 526.Voir tous les posts

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.