# SNMP

Antes de continuar, vamos nos atentar em descobrir quais são as "Community" (senhas) do SNMP. Iremos ter 2 tipos de perfil de acesso, sendo uma Read Only (Somente Leitura) e uma Read and Write (Leitura e Escrita).

Segue abaixo uma lista de credenciais default que geralmente você irá encontrar em seus testes.

* public (Read Only)
* private (Read and Write)
* manager (Read and Write)
* cisco
* juniper
* access
* secret

### Árvore MIB

O SNMP Management Information Base (MIB) é um banco de dados que contém informações geralmente relacionadas ao gerenciamento de rede. O banco de dados é organizado como uma árvore, onde os ramos representam diferentes organizações ou funções de rede. As folhas da árvore (pontos de extremidade finais) correspondem a valores de variáveis específicos que podem ser acessados e testados por um usuário externo.

Por exemplo, os seguintes valores MIB correspondem a parâmetros específicos de SNMP do Microsoft Windows e contêm muito mais do que informações baseadas em rede

| MIB                      | DESCRIÇÃO                              |
| ------------------------ | -------------------------------------- |
| `1.3.6.1.2.1.25.1.6.0`   | Processos do Sistema                   |
| `1.3.6.1.2.1.25.4.2.1.2` | Programas em execução                  |
| `1.3.6.1.2.1.25.4.2.1.4` | Path do Processos                      |
| `1.3.6.1.2.1.25.2.3.1.4` | Unidade de Armazenamento               |
| `1.3.6.1.2.1.25.6.3.1.2` | Nome do Softwares que estão instalados |
| `1.3.6.1.4.1.77.1.2.25`  | Contas de Usuários                     |
| `1.3.6.1.2.1.6.13.1.3`   | Portas Locais TCP abertas              |

#### snmpwalk + snmp-mibs

Realize os passos abaixo, para deixar o `snmpwalk` com uma saída mais amigável.

```bash
apt install snmp-mibs-downloader
>/etc/snmp/snmp.conf
```

#### Realizando pesquisas

```bash
# Busco por MIB's de referente a user
snmptranslate -TB user

# Detalhes sobre determinado MIB
snmptranslate -Td <mib_user>

# Detalhes do Server
snmp-check <ip> -c <community>
```

###

### &#x20;Enumeração

#### SNMP-Check

Caso não informe o parâmetro `-c`, será utilizado a senha padrão `public`.

```bash
snmp-check <ip> -c <community> -w
```

#### SNMPWalk

O comando abaixo também irá retornar o OID, no qual irá utilizar em alguns comandos abaixo.

```bash
snmpwalk -c <community> -v 2c <ip>
snmpwalk -c <community> -v 2c <ip> | grep STRING
```

Caso já saiba o OID, pode utilizar o seguinte comando:

```bash
snmpwalk -c <community> -v 2c <ip> <oid>
```

Por exemplo, para buscar os usuários do SO, execute o comando abaixo. Note que estamos passando o MIB mostrado na tabela acima:

```bash
snmpwalk -c <community> -v1 <ip> 1.3.6.1.4.1.77.1.2.25
```

Enumerando processos do Windows:

```bash
snmpwalk -c <community> -v1 <ip> 1.3.6.1.2.1.25.4.2.1.2
```

Enumerando portas locais que estão abertas:

```bash
snmpwalk -c <community> -v1 <ip> 1.3.6.1.2.1.6.13.1.3
```

Enumerando softwares que estão instalados:

```bash
snmpwalk -c <community> -v1 <ip> 1.3.6.1.2.1.25.6.3.1.2
```

#### SNMPGet

```bash
snmpget -c public -v 2c <ip> <oid>
```

####

#### Nmap

Processos do SNMP

```bash
nmap -p161 -sU --script snmp-processes <ip>
```

### Alterando Configurações

#### SNMPSet

Provavelmente, o valor de `community` deve ser `private` (permissão de gravação).

```bash
snmpset -v2c -c <community> <ip> <oid> <novo_valor>
```

### Pegando Configurações CISCO

Digite o comando abaixo no terminal (`private` é uma senha padrão):

```bash
copy-router-config.pl <ip_roteador> <ip_TFTP> private
```

### Brute force em Community

```bash
onesixtyone -c <wordlist.txt> 192.168.1.0/24
onesixtyone -c <wordlist.txt> <wordlist_ip>
```

#### Sites

```bash
# Repositório OID
​http://www.oid-info.com/basic-search.htm
https://www.alvestrand.no/objectid/

http://snmplabs.com/snmpclitools/snmpget.html

# MIB
https://www.ibm.com/docs/en/aix/7.1?topic=management-information-base
```


---

# 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://mysther.gitbook.io/knowledge-base/ataques/infra/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.
