# SNMP

<table data-header-hidden><thead><tr><th width="181"></th><th></th></tr></thead><tbody><tr><td><strong>Puerto/s</strong></td><td>161,162,10161,10162</td></tr><tr><td><strong>Protocolo/s</strong></td><td>UDP</td></tr><tr><td><strong>Nombre del servicio (nmap)</strong></td><td>snmp</td></tr></tbody></table>

## Enumeración

Enumeración de todos los sistemas con el servicio snmp:

```bash
nmap -sU -sV -p 161 -v -open -oA snmp-enum 192.168.1.0/24
```

Obtención de todos los servicios snmp con la comunidad "public" por defecto:

```bash
cat snmp-enum.gnmap | grep "(public)" | cut -d" " -f2 
```

Obtención de información vía snmp utilizando la comunidad public:

```bash
snmpwalk -c public -v2c $IP
```

## Vulnerabilidades

### SNMP 'GETBULK' (DDoS Reflejado)

La operación GETBULK de SNMP se utiliza para obtener un volumen grande de información en una única petición. Sin embargo, si estas peticiones no se realizan de forma autenticada, un atacante podría aprovecharse de ello para realizar un ataque de DDoS reflejado.

**¿Cómo se comprueba sin realizar un ataque de denegación de servicio?**

Simplemente enviando una petición 'GETBULK' a la víctima con una dirección IP de un tercero (el objetivo final del ataque DDoS) suplantada como dirección IP de origen. El host con servicio SNMP, al recibir la solicitud envía la respuesta (que es mucho mayor en tamaño que la solicitud original) a la dirección IP de origen suplantada.

Desde nuestra máquina atacante se captura el tráfico de la IP del host SNMP y puerto 161, donde podremos ver el tamaño de la petición y respuesta obtenida:

```bash
tcpdump -i eth0 -n host <IP host SNMP> and port 161
```

Para realizar la petición, por ejemplo, se realiza una petición de 500 iteraciones con OID 1.3.6.1.2.1.1.1.0:

```bash
snmpbulkget -Cr500 -c public -v2c <IP host SNMP> 1.3.6.1.2.1.1.1.0
```

Tras realizar esta petición con snmpbulkget, se puede obtener  el GetBulk(29) de la petición y la respuesta GetResponse(1247), evidenciando que la respuesta es mucho mayor que la petición realizada.

Si esto se hiciera de forma automatizada, se podría provocar un DDoS reflejado.


---

# 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/pentesting-en-infraestructuras/servicios/snmp.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.
