# Nuclei

> Nuclei es un escáner de seguridad que utiliza una base de datos de plantillas para detectar vulnerabilidades, configuraciones incorrectas y exposición de información sensible.

Su funcionamiento se basa en tres componentes clave:

1. **Plantillas YAML**: Contienen reglas de detección para diversas vulnerabilidades.
2. **Escaneo basado en HTTP, DNS, TCP y más**: Puede realizar pruebas en distintos protocolos.
3. **Automatización y personalización**: Permite crear reglas propias para detectar vulnerabilidades específicas.

## <mark style="color:red;">Instalación</mark>

<https://docs.projectdiscovery.io/tools/nuclei/install?utm_source=github&utm_medium=web&utm_campaign=nuclei_readme>

## <mark style="color:red;">Plantillas</mark>

### Actualización de plantillas

```bash
nuclei -update  
nuclei -ut       #(actualiza solo las plantillas)
```

### Descarga de todas las plantillas públicas

{% @github-files/github-code-block url="<https://github.com/xm1k3/cent>" %}

Herramientas comunitarias como **Cent** que facilitan la gestión de plantillas de múltiples orígenes. Algunos hunters usan Cent para suscribirse a repositorios de plantillas no oficiales (otros investigadores publican las suyas en GitHub) y así ampliar su arsenal más allá del repo principal.

```bash
cent -p cent-nuclei-templates
```

## <mark style="color:red;">Ejecución</mark>

### Escaneo básico

{% code overflow="wrap" %}

```bash
# 1 URL
nuclei -u "https://example.com"                           

# Varias URLs
nuclei -l targets.txt                                     

# Usando plantillas personalizadas
nuclei -u https://example.com -t ./cent-nuclei-templates  
```

{% endcode %}

* Con salida en formato JSON y registro de tiempo de la ejecución:

{% code overflow="wrap" %}

```bash
nuclei -u "https://example.com" -json-export "nuclei/output_$(date +'%Y-%m-%d_%H-%M-%S').json"
nuclei -l scope/urls.txt -json-export "nuclei/output_$(date +'%Y-%m-%d_%H-%M-%S').json"
```

{% endcode %}

* Hilos (ej: 100 peticiones concurrentes):

```bash
nuclei -u https://example.com -c 100
```

* Peticiones por segundo (ej: 50 peticiones por segundo):

```bash
nuclei -u https://example.com -rate-limit 50
```

### Categorías de pruebas

Nuclei tiene diversas categorías de pruebas, como:

* **CVEs**: Escanea vulnerabilidades conocidas (CVE).
* **misconfiguration**: Detecta configuraciones incorrectas.
* **exposures**: Identifica archivos sensibles expuestos.
* **default-logins**: Prueba credenciales por defecto.

```bash
nuclei -u https://example.com -t cves/
nuclei -u https://example.com -t misconfigurations/
nuclei -u https://example.com -o resultados.json -json
```

Múltiples categorías:

{% code overflow="wrap" %}

```bash
nuclei -l scope/urls.txt -t cves/,misconfiguration/,exposures/,default-logins/,vulnerabilities/api/ -json-export "nuclei/full_scan_$(date +'%Y-%m-%d_%H-%M-%S').json"
```

{% endcode %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://www.xtormin.com/herramientas-comunes/nuclei.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
