* Trabalha numa **empresa de cibersegurança**? Quer ver a sua **empresa anunciada no HackTricks**? ou quer ter acesso à **versão mais recente do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
* Adquira o [**material oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga-me** no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe suas técnicas de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).
**Dica de bug bounty**: **inscreva-se** no **Intigriti**, uma plataforma premium de bug bounty criada por hackers, para hackers! Junte-se a nós em [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) hoje e comece a ganhar recompensas de até **$100,000**!
**SNMP - Simple Network Management Protocol** é um protocolo utilizado para monitorar diferentes dispositivos na rede (como roteadores, switches, impressoras, IoTs...).
SNMP também utiliza a porta **162/UDP** para **traps**. Estes são **pacotes de dados enviados do servidor SNMP para o cliente sem serem explicitamente solicitados**.
Para garantir que o acesso SNMP funcione entre fabricantes e com diferentes combinações de cliente-servidor, foi criada a **Base de Informação de Gerenciamento (MIB)**. MIB é um formato **independente para armazenar informações do dispositivo**. Um MIB é um arquivo de **texto** no qual todos os **objetos SNMP consultáveis** de um dispositivo estão listados em uma hierarquia de árvore **padronizada**. Ele contém pelo menos um `Identificador de Objeto` (`OID`), que, além do **endereço único** necessário e um **nome**, também fornece informações sobre o tipo, direitos de acesso e uma descrição do respectivo objeto.
Os arquivos MIB são escritos no formato de texto ASCII baseado na `Notação de Sintaxe Abstrata Um` (`ASN.1`). Os **MIBs não contêm dados**, mas explicam **onde encontrar quais informações** e como elas são, quais valores de retorno para o OID específico ou qual tipo de dado é usado.
**OIDs** significa **Identificadores de Objetos**. **OIDs identificam de forma única objetos gerenciados em uma hierarquia MIB**. Isso pode ser representado como uma árvore, cujos níveis são atribuídos por diferentes organizações. Os IDs de objetos MIB de nível superior (OIDs) pertencem a diferentes organizações padrão.
**Fabricantes definem ramos privados incluindo objetos gerenciados para seus próprios produtos.**
Você pode **navegar** por uma **árvore OID** na web aqui: [http://www.oid-info.com/cgi-bin/display?tree=#focus](http://www.oid-info.com/cgi-bin/display?tree=#focus) ou **ver o que um OID significa** (como `1.3.6.1.2.1.1`) acessando [http://oid-info.com/get/1.3.6.1.2.1.1](http://oid-info.com/get/1.3.6.1.2.1.1).
Existem alguns **OIDs conhecidos** como os dentro de [1.3.6.1.2.1](http://oid-info.com/get/1.3.6.1.2.1) que referenciam variáveis do Simple Network Management Protocol (SNMP) definidas pelo MIB-2. E a partir dos **OIDs pendentes deste** você pode obter alguns dados interessantes do host (dados do sistema, dados de rede, dados de processos...)
Estes seis primeiros valores tendem a ser os mesmos para todos os dispositivos e eles fornecem as informações básicas sobre eles. Esta sequência de números será a mesma para todos os OIDs, exceto quando o dispositivo é feito pelo governo.
* **SNMPv1**: Principal, ainda é o mais frequente, a **autenticação é baseada em uma string** (string de comunidade) que viaja em **texto simples** (todas as informações viajam em texto simples). **Versão 2 e 2c** enviam o **tráfego em texto simples** também e usam uma **string de comunidade como autenticação**.
* **SNMPv3**: Usa uma forma de **autenticação** melhor e as informações viajam **criptografadas** usando (**ataque de dicionário** poderia ser realizado, mas seria muito mais difícil encontrar as credenciais corretas do que no SNMPv1 e v2).
Como mencionado anteriormente, **para acessar as informações salvas no MIB, você precisa conhecer a string de comunidade nas versões 1 e 2/2c e as credenciais na versão 3.**\
Note que **a possibilidade de escrita de um OID depende da string de comunidade usada**, então **mesmo** se você descobrir que "**public**" está sendo usada, você poderia ser capaz de **escrever alguns valores.** Além disso, **pode** haver objetos que são **sempre "Somente Leitura".**\
Se você tentar **escrever** em um objeto, um erro de **`noSuchName` ou `readOnly`** é recebido\*\*.\*\*
Nas versões 1 e 2/2c, se você usar uma string de comunidade **ruim**, o servidor não **responderá**. Portanto, se ele responder, uma **string de comunidade válida foi usada**.
* O gerente recebe notificações ([Traps](https://en.wikipedia.org/wiki/Simple\_Network\_Management\_Protocol#Trap) e [InformRequests](https://en.wikipedia.org/wiki/Simple\_Network\_Management\_Protocol#InformRequest)) na porta **162**.
* Quando usado com [Transport Layer Security](https://en.wikipedia.org/wiki/Transport\_Layer\_Security) ou [Datagram Transport Layer Security](https://en.wikipedia.org/wiki/Datagram\_Transport\_Layer\_Security), as solicitações são recebidas na porta **10161** e as notificações são enviadas para a porta **10162**.
Para **adivinhar a community string**, você pode realizar um ataque de dicionário. Confira [aqui diferentes maneiras de realizar um ataque de força bruta contra SNMP](../../generic-methodologies-and-resources/brute-force.md#snmp). Uma community string frequentemente usada é `public`.
**SNMP** possui muitas informações sobre o host e coisas que podem ser interessantes são: **Interfaces de rede** (endereço IPv4 e **IPv6**), Nomes de usuário, Tempo de atividade, Versão do Servidor/SO e **processos**
[Braa ](https://github.com/mteg/braa) é um scanner SNMP em massa. O uso pretendido de tal ferramenta é, claro, fazer consultas SNMP – mas ao contrário do snmpwalk do net-snmp, ele é capaz de consultar dezenas ou centenas de hosts simultaneamente, e em um único processo. Assim, consome muito poucos recursos do sistema e faz a varredura MUITO rapidamente.
Então, vamos procurar as informações mais interessantes (de [https://blog.rapid7.com/2016/05/05/snmp-data-harvesting-during-penetration-testing/](https://blog.rapid7.com/2016/05/05/snmp-data-harvesting-during-penetration-testing/)):
Uma das primeiras coisas que faço é extrair os dados MIB sysDesc .1.3.6.1.2.1.1.1.0 de cada arquivo para determinar de quais dispositivos eu obtive informações. Isso pode ser facilmente feito usando o seguinte comando grep:
Como exemplo, se eu conseguir identificar a string de comunidade privada usada por uma organização em seus roteadores Cisco IOS, então eu poderia usar essa string de comunidade para extrair as configurações em execução desses roteadores. O melhor método para encontrar esses dados frequentemente tem sido relacionado a dados de SNMP Trap. Então, novamente, usando o seguinte grep podemos analisar rapidamente uma grande quantidade de dados MIB em busca da palavra-chave "trap":
Outra área de interesse são os logs. Descobri que alguns dispositivos armazenam logs dentro das tabelas MIB. Esses logs também podem conter tentativas de login mal-sucedidas. Pense na última vez que você fez login em um dispositivo via Telnet ou SSH e, inadvertidamente, inseriu sua senha como nome de usuário. Eu normalmente procuro por palavras-chave como _fail_, _failed_ ou _login_ e examino esses dados para ver se há algo valioso.
Se houver uma ACL que permite apenas alguns IPs consultar o serviço SMNP, você pode falsificar um desses endereços dentro do pacote UDP e farejar o tráfego.
**Dica de bug bounty**: **inscreva-se** no **Intigriti**, uma plataforma premium de bug bounty criada por hackers, para hackers! Junte-se a nós em [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) hoje mesmo e comece a ganhar recompensas de até **$100,000**!
* Você trabalha em uma **empresa de cibersegurança**? Quer ver sua **empresa anunciada no HackTricks**? ou quer ter acesso à **versão mais recente do PEASS ou baixar o HackTricks em PDF**? Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**material oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
* **Junte-se ao** [**💬**](https://emojipedia.org/speech-balloon/) [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-me no **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe suas técnicas de hacking enviando PRs para o** [**repositório hacktricks**](https://github.com/carlospolop/hacktricks) **e** [**repositório hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud).