# 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.
