VULN SCAN & XPLOIT: Escáner de Vulnerabilidades y Exploits

Estos días he estado desarrollando lo que inicialmente iba a ser una herramienta sencilla de análisis de vulnerabilidades, que permitiera al usuario buscar rápidamente vulnerabilidades asociadas a un servicio en la base de datos del NIST.

Una vez conseguí esta funcionalidad básica, decidí añadir una característica muy útil para un hacker ético: la posibilidad de saber si existe un exploit público asociado a cada vulnerabilidad.

Al principio, tuve problemas porque intenté obtener los exploits mediante web scraping en la web de Exploit-DB  pero no lograba obtener resultados.

Como Exploit-DB no dispone de una API oficial, solucioné el problema de esta manera:
1.- Descargando localmente la base de datos de Exploit-DB directamente desde su repositorio oficial en GitLab

Además, añadí otras opciones más:

2.- Utilizando la API de CIRCL CVE Search, que agrega referencias de múltiples fuentes (incluyendo Exploit-DB, GitHub, etc.). El programa filtra las URLs que contienen palabras clave como exploit, poc, proof o github.com.

3.- Buscando referencias relacionadas con exploits en la propia API de NVD, analizando el campo “references” que contiene URLs externas y etiquetas relevantes como exploit, poc o security.

Finalmente, el programa filtra y valida los resultados, eliminando duplicados y asegurando que las URLs sean relevantes y accesibles.

El uso es sencillo: tras iniciar la herramienta (main.py), solo tienes que introducir el nombre del servicio, que puede ser desde algo general como “WordPress” hasta más específico como “WordPress Frontend Login and Registration Blocks Plugin 1.0.7”. Obtendrás un listado de vulnerabilidades asociadas junto con los exploits públicos disponibles, si existen.

Resultados obtenidos tras ejecutar la herramienta
Resultados obtenidos tras ejecutar la herramienta

Puedes consultar el código completo en mi portfolio de GITHUB.

Aquí tienes un vídeo de cómo funciona:

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *