Estuvimos la anterior semana con dos entradas referentes a Nuclei la primera comprendiendo que es Nuclei y la segunda entrada sobre el plugin para Burp Suite que nos permite realizar la integración.
Hoy veremos otro plugin que nos permite generar templates para Nuclei desde el mismo Burp, este fue desarrollado por el mismo equipo creador de la herramienta Project Discovery.
La pregunta que muchos tendrán es cuál podría ser el uso de esto si estamos trabajando con Burp y realizando el proceso de pentesting con un sistema en específico.
El caso de uso que yo lo veo es si tenemos que repetir el mismo proceso en más equipos o servidores de manera masiva además de que este sea controlado, y de que manera si encontramos un CVE o deseamos implementar algún template nuevo en específico para la comunidad, siendo honesto la creacion de este plugin creo que fue diseñado bajo este objetivo.
Herramientas a utilizar
- Plugin Nuclei Template Generator.
- Burp Suite (Community, Pro)
- Bwapp (Entorno vulnerable para pruebas Web Dockerizado)
Instalacion del plugin
El plugin se encuentra desarrollado en Java y tenemos que dirigirnos a realeses descargar el fichero .jar de la última versión liberada, durante la creación de esta entrada contamos con la versión v1.0.0-rc1.
|
|
Después de descargar procedemos a instalar para ello 1 nos dirigimos a Extender, 2 seleccionamos el tipo de extensión Java, 3 y por ultimo el fichero .jar descargado como lo vemos en la captura.
Si la instalación se realizó correctamente tendremos un nuevo tab Nuclei.
En este tenemos algunos parametros a configurar e instalar que son:
- Path to Nuclei : Ubicación del binario de Nuclei.
- Template default save path : Ubicación de los templates de Nuclei.
- Template author : Autor de los templates a ser generados.
El path de nuclei es identificado automáticamente por el plugin en caso de que el mismo no sea identificado procedemos a configurarlo.
Generando un Template Personalizado
Veremos algunos parametros
Parámetros a tener en cuenta.
{{param}}: Parámetro que será modificado y configurado previamente, en caso de contar con más de uno se comienza a referenciar {{param1}}, {{param2}} etc.
{{hostname}}: La url que será reemplaza en el parámetro respectivo.
matcher condition: Identificamos el dato en el response obteniendo ya sea en el body u otro parámetro en específico.
part: Es donde identificar la condicion de matcher siendo en el header o body.
Generando un template identificando una respuesta.
Para generar un nuevo template basta con hacer click derecho ir a Extensions luego Nuclei y generamos el template en específico.
En este caso estamos seleccionando la palabra SQL Syntax al momento de generarlo tendremos el siguiente resultado en una nueva ventana.
En esta nueva ventana contamos tambien con el status code respectivo, seleccionando el boton de Execute veremos a Nuclei ejecutandose y visualizando el resultado respectivo.
En la parte superior contamos con el comando de Nuclei respectivo.
Generando ejemplos de template en Intruder
A continuación veremos algunos ejemplos relacionados al uso del intruder y al final combinando el mismo.
Battering Ram
En el siguiente ejemplo lo que hacemos es mandar dos solicitudes sobre un parámetro en específico.
Visualizamos en el lado derecho el cambio del parámetro donde lo especificamos con la variable {{param}}.
Pitchfork
En el siguiente ejemplo tenemos pitchfork con dos parámetros el primero en el request del GET y el segundo en el user Agent
Después de enviarlo a Nuclei nos brindará la respectiva ventana donde podremos configurar los parametros respectivos, además de que en este caso hacemos un match con el error de SQLi anterior.
Nota final
Vale aclarar que en este caso específico para hacer las pruebas y conocer el plugin es necesario estar con una sesión válida, y en caso de que este se replique o se use credenciales por defecto el mismo podría ser utilizado y replicado en otras instancias.
Solo es un ejemplo para conocer el uso.
Regards,
Snifer