Recherche dans Exploit-DB via CLI

CybersécuritéBeginner
Pratiquer maintenant

Introduction

Dans le domaine de la cybersécurité, la découverte d'une vulnérabilité logicielle n'est que la première étape. Pour comprendre le risque réel, les professionnels de la sécurité doivent faire le pont entre la découverte et l'exploitation. L'Exploit Database (Exploit-DB) est une archive conforme aux CVE répertoriant des exploits publics et les logiciels vulnérables correspondants, conçue pour les testeurs d'intrusion et les chercheurs en vulnérabilités.

Ce lien est crucial car une découverte de vulnérabilité a une signification pratique différente selon qu'il existe du matériel d'exploitation public, son degré de maturité et les conditions requises pour son exécution. Associer les versions logicielles aux références d'exploits permet de transformer une découverte brute en un contexte de risque concret.

Dans ce laboratoire, vous apprendrez à utiliser searchsploit, l'interface en ligne de commande officielle d'Exploit-DB. Vous vous exercerez à mettre à jour la base de données locale, à rechercher des versions logicielles spécifiques, à filtrer de grands ensembles de résultats et à extraire le code source des exploits pour analyse. Ces compétences sont essentielles pour corréler les services découverts avec des vecteurs d'attaque connus.

Mettre à jour la base de données Searchsploit

Dans cette étape, vous apprendrez à vous assurer que votre copie locale de l'Exploit Database est à jour.

L'outil searchsploit repose sur un dépôt local d'exploits. Comme de nouvelles vulnérabilités sont découvertes et publiées quotidiennement, il est crucial de mettre à jour cette base de données régulièrement avant d'effectuer toute recherche. Si vous effectuez une recherche sur une base de données obsolète, vous risquez de manquer des exploits récemment publiés pour le logiciel que vous étudiez.

Maintenir les références d'exploits à jour fait partie de l'hygiène d'évaluation. Un contexte obsolète peut entraîner à la fois un faux sentiment de sécurité et une urgence mal placée.

Pour mettre à jour la base de données, vous pouvez utiliser l'option de mise à jour fournie par la commande searchsploit. Exécutez la commande suivante dans votre terminal :

searchsploit -u

Vous devriez voir une sortie indiquant que l'outil récupère les dernières modifications depuis le dépôt officiel. La sortie ressemblera à ceci :

[*] Updating searchsploit...
Already up to date.

En exécutant cette commande, votre répertoire local /opt/exploitdb se synchronise avec les derniers exploits, shellcodes et documents disponibles sur Exploit-DB.

Note : Le processus de mise à jour peut prendre plusieurs minutes, surtout lors de la vérification de exploitdb-papers (par exemple, en affichant Nothing here (/opt/exploitdb-papers). Starting fresh...). Soyez patient et laissez le processus se terminer. Si vous préférez ne pas attendre, vous pouvez appuyer sur Ctrl+C pour annuler le processus ou simplement ouvrir un nouvel onglet de terminal pour poursuivre le laboratoire, car la base de données principale des exploits est mise à jour en premier.

Rechercher par version de logiciel

Dans cette étape, vous apprendrez à effectuer une recherche de base pour une version logicielle spécifique.

Lorsque vous scannez un système cible (par exemple, en utilisant Nmap), vous découvrez souvent la version exacte des services qui y sont exécutés. Vous pouvez transmettre ces numéros de version directement à searchsploit pour trouver les exploits pertinents. L'outil parcourt les titres et les descriptions des exploits dans sa base de données pour trouver des correspondances.

C'est pourquoi une détection de version précise en amont est importante. Plus votre identification logicielle est précise, plus votre corrélation d'exploits sera utile et pertinente.

Imaginons que vous ayez découvert un serveur FTP exécutant vsftpd 2.3.4. Il s'agit d'une version notoirement vulnérable du logiciel. Pour rechercher des exploits liés à cette version spécifique, saisissez le nom du logiciel et la version comme arguments :

searchsploit vsftpd 2.3.4

La commande renverra un tableau formaté affichant le titre de l'exploit et son chemin correspondant dans la base de données. Votre sortie devrait ressembler à ceci :

------------------------------------------------------------------------ ---------------------------------
 Exploit Title                                                          |  Path
------------------------------------------------------------------------ ---------------------------------
vsftpd 2.3.4 - Backdoor Command Execution                               | unix/remote/17491.rb
vsftpd 2.3.4 - Backdoor Command Execution (Metasploit)                  | linux/remote/16362.rb
------------------------------------------------------------------------ ---------------------------------
Shellcodes: No Results

Notez que les résultats de recherche fournissent une brève description de la vulnérabilité (dans ce cas, une exécution de commande via porte dérobée) et le chemin vers le fichier de code de l'exploit. Le nombre dans le nom de fichier (comme 17491) est l'identifiant unique de l'Exploit Database (EDB-ID).

Filtrer les résultats de recherche

Dans cette étape, vous apprendrez à affiner vos recherches à l'aide de filtres.

Parfois, un terme de recherche large renverra des centaines de résultats, ce qui rend difficile la recherche de ce dont vous avez besoin. searchsploit fournit plusieurs options pour aider à restreindre la sortie. Deux des options les plus utiles sont -t (qui limite la recherche au titre de l'exploit plutôt qu'au chemin complet du fichier ou à la description) et --exclude (qui supprime les résultats contenant des mots spécifiques).

Supposons que vous recherchiez des exploits d'élévation de privilèges pour le noyau Linux, mais que vous souhaitiez exclure les exploits de type Déni de Service (DoS), car ils ne sont généralement pas utiles pour obtenir un accès.

Exécutez la commande suivante pour rechercher dans les titres "linux kernel privilege escalation" tout en excluant le terme "dos" :

searchsploit -t linux kernel privilege escalation --exclude="dos"

Vous verrez une liste d'exploits spécifiquement adaptés à l'élévation de privilèges sur les noyaux Linux. La sortie sera étendue, mais beaucoup plus propre qu'une recherche générique :

------------------------------------------------------------------------ ---------------------------------
 Exploit Title                                                          |  Path
------------------------------------------------------------------------ ---------------------------------
Linux Kernel - 'BCC' Local Privilege Escalation                         | linux/local/40759.rb
Linux Kernel - 'BPF' Local Privilege Escalation                         | linux/local/40758.rb
Linux Kernel - 'ptrace_traceme' Local Privilege Escalation              | linux/local/47133.c
...
------------------------------------------------------------------------ ---------------------------------

L'utilisation de ces techniques de filtrage vous permet d'identifier rapidement le type exact d'exploit dont vous avez besoin pour votre scénario spécifique.

Examiner les détails du code d'exploit

Dans cette étape, vous apprendrez à extraire et à examiner le code réel de l'exploit.

Trouver un exploit n'est qu'une partie du processus ; vous devez également lire et comprendre le code avant de l'exécuter. L'exécution d'exploits inconnus peut être dangereuse ou nécessiter des modifications spécifiques (comme la modification de l'adresse IP cible ou du port) pour fonctionner correctement.

searchsploit vous permet de copier (miroir) facilement un exploit dans votre répertoire de travail actuel en utilisant l'option -m suivie de l'EDB-ID. Extrayons l'exploit vsftpd 2.3.4 que nous avons trouvé à l'étape 2, qui avait l'EDB-ID 17491.

Exécutez la commande suivante pour copier l'exploit dans votre répertoire ~/project :

searchsploit -m 17491

Vous devriez voir une sortie confirmant que le fichier a été copié :

  Exploit: vsftpd 2.3.4 - Backdoor Command Execution
      URL: https://www.exploit-db.com/exploits/17491
     Path: /opt/exploitdb/exploits/unix/remote/17491.rb
    Codes: CVE-2011-2523, OSVDB-73573
 Verified: True
File Type: Ruby script, ASCII text
Copied to: /home/labex/project/17491.rb

Maintenant que le fichier 17491.rb se trouve dans votre répertoire actuel, vous pouvez examiner son contenu à l'aide d'un lecteur de texte comme cat ou d'un éditeur comme nano. Exécutez la commande suivante pour afficher les premières lignes du code de l'exploit :

head -n 20 17491.rb

La sortie affichera le code source Ruby pour le module Metasploit, vous permettant de lire les commentaires, de comprendre la vulnérabilité (une porte dérobée malveillante laissée dans le code source) et de voir comment l'exploit la déclenche.

Résumé

Dans ce laboratoire, vous avez appris à utiliser efficacement searchsploit pour naviguer dans l'Exploit Database directement depuis la ligne de commande. Vous avez commencé par mettre à jour la base de données locale pour vous assurer de disposer des dernières informations sur les vulnérabilités. Vous avez ensuite effectué des recherches ciblées basées sur des versions logicielles spécifiques et appris à filtrer les résultats indésirables à l'aide d'options d'exclusion. Enfin, vous vous êtes exercé à extraire le code source des exploits vers votre espace de travail local pour une révision et une analyse en toute sécurité. Ces techniques sont fondamentales pour les flux de travail d'évaluation des vulnérabilités et de test d'intrusion.