Aprenda e pratique Hacking AWS:<imgsrc="/.gitbook/assets/arte.png"alt=""data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<imgsrc="/.gitbook/assets/arte.png"alt=""data-size="line">\
Aprenda e pratique Hacking GCP: <imgsrc="/.gitbook/assets/grte.png"alt=""data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<imgsrc="/.gitbook/assets/grte.png"alt=""data-size="line">](https://training.hacktricks.xyz/courses/grte)
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
Se você está interessado em **carreira de hacking** e hackear o inhackeável - **estamos contratando!** (_fluência em polonês escrita e falada é necessária_).
**SNMP - Simple Network Management Protocol** é um protocolo usado para monitorar diferentes dispositivos na rede (como roteadores, switches, impressoras, IoTs...).
O SNMP também usa 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 cliente-servidor, a **Management Information Base (MIB)** foi criada. MIB é um **formato independente para armazenar informações de dispositivos**. 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 **`Object Identifier` (`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 em `Abstract Syntax Notation One` (`ASN.1`). Os **MIBs não contêm dados**, mas explicam **onde encontrar quais informações** e como elas se parecem, quais valores retornam para o OID específico ou qual tipo de dado é utilizado.
**Object Identifiers (OIDs)** desempenham um papel crucial. Esses identificadores únicos são projetados para gerenciar objetos dentro de uma **Management Information Base (MIB)**.
Os níveis mais altos dos IDs de objetos MIB, ou OIDs, são alocados a diversas organizações de padronização. É dentro desses níveis superiores que a estrutura para práticas e padrões de gerenciamento global é estabelecida.
Além disso, os fornecedores têm a liberdade de estabelecer ramificações privadas. Dentro dessas ramificações, eles têm a **autonomia para incluir objetos gerenciados pertinentes às suas próprias linhas de produtos**. Este sistema garante que haja um método estruturado e organizado para identificar e gerenciar uma ampla gama de objetos entre diferentes fornecedores e padrões.
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 bem conhecidos** como os que estão 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 no MIB-2. E a partir dos **OIDs pendentes deste** você pode obter alguns dados interessantes do host (dados do sistema, dados da rede, dados de processos...)
Esses primeiros seis valores tendem a ser os mesmos para todos os dispositivos e 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 é a mais frequente, a **autenticação é baseada em uma string** (community string) que viaja em **texto simples** (todas as informações viajam em texto simples). **Versão 2 e 2c** também enviam o **tráfego em texto simples** e usam uma **community string como autenticação**.
* **SNMPv3**: Usa uma forma de **autenticação** melhor e as informações viajam **criptografadas** (um **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 community string nas versões 1 e 2/2c e as credenciais na versão 3.**\
Note que **a capacidade de gravação de um OID depende da community string utilizada**, então **mesmo** que você descubra que "**public**" está sendo usado, você pode ser capaz de **gravar alguns valores.** Além disso, podem **existir** objetos que são **sempre "Somente Leitura".**\
Se você tentar **gravar** um objeto, um erro **`noSuchName` ou `readOnly`** é recebido\*\*.\*\*
Nas versões 1 e 2/2c, se você usar uma **bad** community string, o servidor não **responderá**. Portanto, se ele responder, uma **community string 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ê poderia 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** tem muitas informações sobre o host e coisas que você pode achar 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**
1.**`rwuser noauth`** é configurado para permitir acesso total à árvore OID sem a necessidade de autenticação. Esta configuração é direta e permite acesso irrestrito.
Uma série de **valores de Base de Informação de Gerenciamento (MIB)** são utilizados para monitorar vários aspectos de um sistema Windows através do SNMP:
* **Portas Locais TCP**: Finalmente, `1.3.6.1.2.1.6.13.1.3` é designado para monitorar portas locais TCP, fornecendo insights sobre conexões de rede ativas.
[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 rápido.
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/)):
O processo começa com a extração de **sysDesc MIB data** (1.3.6.1.2.1.1.1.0) de cada arquivo para identificar os dispositivos. Isso é realizado através do uso de um **grep command**:
Um passo crucial envolve identificar a **string de comunidade privada** usada por organizações, particularmente em roteadores Cisco IOS. Essa string permite a extração de **configurações em execução** dos roteadores. A identificação geralmente se baseia na análise de dados de SNMP Trap em busca da palavra "trap" com um **comando grep**:
Logs armazenados nas tabelas MIB são examinados em busca de **tentativas de login falhadas**, que podem acidentalmente incluir senhas inseridas como nomes de usuário. Palavras-chave como _fail_, _failed_ ou _login_ são pesquisadas para encontrar dados valiosos:
Finalmente, para extrair **endereços de email** dos dados, um **comando grep** com uma expressão regular é usado, focando em padrões que correspondem a formatos de email:
Se houver uma ACL que permite apenas alguns IPs consultar o serviço SNMP, você pode falsificar um desses endereços dentro do pacote UDP e capturar o tráfego.
Se você está interessado em **carreira em hacking** e hackear o inhackeável - **estamos contratando!** (_fluência em polonês escrita e falada é necessária_).
Aprenda e pratique Hacking AWS:<imgsrc="/.gitbook/assets/arte.png"alt=""data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<imgsrc="/.gitbook/assets/arte.png"alt=""data-size="line">\
Aprenda e pratique Hacking GCP: <imgsrc="/.gitbook/assets/grte.png"alt=""data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<imgsrc="/.gitbook/assets/grte.png"alt=""data-size="line">](https://training.hacktricks.xyz/courses/grte)
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.