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.