Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
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.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
sniffles — Sniffles: Gerador de Captura de Pacotes para IDS e Avaliação de Expressões Regulares | Kitploit
Ferramentas/GitHubGitHub/petabi/sniffles
Sniffing e Análise de PacotesEvasão de IDS/IPSFuzzingSegurança de RedeTestes de PenetraçãoDetecção de Intrusão
GitHubpetabi/sniffles

sniffles

Sniffles: Gerador de Captura de Pacotes para IDS e Avaliação de Expressões Regulares

Ver Repositório
652564há 7 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

Sniffles—Gerador de Captura de Pacotes para Avaliação de IDS e Expressões Regulares

Sniffles é uma ferramenta para criar capturas de pacotes que testarão IDS que usam padrões fixos ou expressões regulares para detectar comportamentos suspeitos. Sniffles funciona de forma muito simples. Ele pega um conjunto de expressões regulares ou regras e escolhe aleatoriamente uma expressão regular ou regra. Em seguida, gera conteúdo com base nessa regra ou expressão regular. Para strings fixas, isso significa adicionar a string diretamente aos dados (possivelmente com offsets ou outras opções, conforme as regras do Snort). Para expressões regulares, o processo é um pouco mais complexo. A expressão regular é convertida em um NFA e um caminho aleatório é escolhido através do NFA (do início ao fim). Os dados resultantes corresponderão à expressão regular. Finalmente, Sniffles pode ser configurado para correspondência total ou parcial. Com uma correspondência total, os dados do pacote irão corresponder absolutamente a pelo menos uma regra ou expressão regular (embora algumas opções do Snort não sejam totalmente consideradas). Uma correspondência parcial apagará o último caractere de uma sequência de correspondência para uma sequência que não deve corresponder (pode corresponder a outra regra, no entanto). Regras correspondentes devem causar a maior carga em um IDS. Assim, é possível determinar quão bem o IDS lida com o tráfego no pior caso. O tráfego de correspondência parcial causará quase tanta carga quanto o tráfego correspondente. Finalmente, Sniffles também pode gerar tráfego que possui dados completamente aleatórios. Esses dados aleatórios oferecem um cenário de melhor caso, já que dados aleatórios são muito improváveis de corresponder a qualquer regra. Assim, podem ser processados na velocidade máxima. Dessa forma, Sniffles permite a criação de capturas de pacotes para operação de melhor e pior caso da inspeção profunda de pacotes do IDS.

Além do acima, Sniffles também tem a capacidade de criar capturas de pacotes de avaliação. Existem dois tipos de capturas de pacotes de avaliação. A primeira captura de pacotes de avaliação criará exatamente um pacote para cada regra ou expressão regular, em sequência. Assim, é possível testar e verificar se cada regra corresponde conforme o esperado. A avaliação completa vai um passo além e cria um pacote para cada ramo possível em uma expressão regular. Uma única expressão regular pode ter milhares de ramos possíveis. Isso testa para garantir que todos os ramos possíveis de uma expressão regular sejam tratados adequadamente. Capturas de pacotes de avaliação devem corresponder a todos os pacotes. Quaisquer pacotes não correspondentes provavelmente representam uma falha do IDS e precisam de uma investigação mais aprofundada. É claro, sempre há a possibilidade de que Sniffles não esteja criando o pacote correto para um determinado IDS, ou não reconheça uma opção específica para uma regra. Verifique os recursos de regras suportados para mais informações.

Finalmente, Sniffles também pode fazer muito para gerar tráfego de rede aleatório. Por padrão, o tráfego aleatório é TCP, UDP ou ICMP e unidirecional. No entanto, também pode gerar tráfego TCP com ACKs, handshakes e teardowns para cada fluxo. Ele gerará números de sequência e checksums corretos. Além disso, endereços MAC podem ser definidos de acordo com distribuições desejadas, e endereços de rede IP podem ser definidos pelos espaços de endereço Local e Externo. Além disso, é possível simular varreduras dentro de uma captura de tráfego.

Instalação

REQUER: Python 3.3+ e o módulo SortedContainers

Sniffles consiste nos seguintes arquivos:

  • rulereader.py: O parser para regras.
  • ruletrafficgenerator.py: A ferramenta para gerar fluxos de conteúdo.
  • sniffles.py: O programa principal que gerencia o processo.
  • sniffles_config.py: lida com entrada de linha de comando e opções para Sniffles.
  • traffic_writer.py: Escreve um pacote em um arquivo compatível com pcap. Não requer libpcap.
  • vendor_mac_list.py: Contém Identificadores Únicos de Organização MAC usados para gerar endereços MAC semi-realistas em vez de apenas octetos aleatoriamente misturados.
  • examples/vendor_mac_definition.txt: Arquivo opcional para definir a distribuição de endereços MAC parciais ou completos.
  • pcre files for pcre (pcre_chartables.c pcre_compile.c pcre_globals.c pcre_internal.h pcre_newline.c pcre_tables.c pcre.h pcrecomp.c pcreconf.py ucp.h).
  • nfa.py: para percorrer o NFA.
  • regex_generator.py: O código para gerar expressões regulares aleatórias.
  • rand_rule_gen.py, feature.py e rule_formats.py: módulos para gerar conjuntos de regras aleatórias.

Para instalar:

  1. Vá para o diretório de nível superior.
  2. Digite python3.x setup.py install.
  3. Isso instalará a aplicação no seu sistema.

Notas de Instalação:

  1. Isso não foi testado no Windows nem no Linux. Foi testado no FreeBSD e no Mac OS X.
  2. Use python3.x setup.py build para construir localmente, depois vá para o diretório da biblioteca, encontre a lib e use python3.4 -c "from sniffles import sniffles; sniffles.main()" para executar localmente.

Formatos Suportados:

  • Snort: Regras de alerta do Snort (a regra deve começar com a diretiva Alert). Tags de conteúdo são reconhecidas e analisadas corretamente. Tags PCRE são igualmente analisadas corretamente. Tags HTTP são processadas consecutivamente, então podem não criar o pacote desejado. O conteúdo (e conteúdo PCRE ou HTTP) pode ser modificado por distance, within e offset. Uma regra pode usar uma opção de controle de fluxo, embora apenas a direção dos dados seja derivada disso. A opção nocase é ignorada e o caso apresentado é usado. Todas as outras opções são ignoradas. Os valores do cabeçalho são analisados e um pacote será gerado atendendo a esses valores. Se espaços de endereço de rede Local e Externo forem usados, o espaço correto será usado para as variáveis $HOME_NET e $EXTERNAL_NET, respectivamente. Exemplo:

    alert tcp $EXTERNAL_NET any -> $HOME_NET 8080 (msg:"SERVER-APACHE Apache Tomcat UNIX platform directory traversal"; flow:to_server; content:"/..|5C|/"; content:"/..|5C|/"; http_raw_uri;

  • Expressões regulares: Expressões regulares brutas, 1 por linha, escritas como abc ou /abc/i. Atualmente suporta as opções i, s e m. Outras opções são ignoradas. Exemplo:

    /ab*c(d|e)f/i

  • Formato de Regra Sniffles descrito abaixo.

Opções de Linha de Comando:

  • -a TCP Ack: Envia um acknowledgment TCP para cada pacote de dados enviado. Desligado por padrão. Pacotes de acknowledgment não possuem dados por padrão.

  • -b Bidirectional data: Os dados serão gerados em ambas as direções de um fluxo TCP. ACKs serão ativados. Este recurso está desligado por padrão.

  • -B [Background Traffic Protocol:Percentage]: Define pelo menos um protocolo com valor entre 1 e 100 para produzir Tráfego de Fundo. Este valor representa a porcentagem da quantidade total de tráfego. Protocolos disponíveis: FTP, HTTP, IMAP, POP e SMTP. Por exemplo: "http:20,ftp:30,smtp:10". Digite apenas um número como valor do argumento para gerar tráfego aleatoriamente. Por exemplo: "80".

  • -c Count: Número de fluxos a serem criados. Cada fluxo conterá um mínimo de 1 pacote. O pacote estará entre dois endpoints conforme definido pela regra ou escolhidos aleatoriamente. tcp_handshake, tcp_teardown e packets_per_stream aumentarão o número de pacotes por fluxo. Atualmente, os dados em um fluxo fluem em apenas uma direção. Se a opção -b for usada, os dados devem fluir em ambas as direções. Além disso, as regras Sniffles podem designar dados para fluir em ambas as direções.

Baixar ferramenta