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
http2-rst-stream-attacker — Ferramenta altamente configurável para verificar a vulnerabilidade de um servidor contra o CVE-2023-44487 enviando rapidamente frames HEADERS e RST_STREAM e documentando as respostas do servidor. | Kitploit
Ferramentas/GitHubGitHub/ndrscodes/http2-rst-stream-attacker
Análise de VulnerabilidadesExploraçãoSegurança WebTestes de Penetração
GitHubndrscodes/http2-rst-stream-attacker

http2-rst-stream-attacker

Ferramenta altamente configurável para verificar a vulnerabilidade de um servidor contra o CVE-2023-44487 enviando rapidamente frames HEADERS e RST_STREAM e documentando as respostas do servidor.

Ver Repositório
621há 2 anosAinda não revisado

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

CVE-2023-44487 e http2-rst-stream-attacker

CVE-2023-44487

CVE-2023-44487 é uma exploração contra o próprio protocolo HTTP2. No HTTP2, as solicitações de dados são iniciadas enviando um frame HEADERS. Após receber este frame, um servidor começará a processar sua solicitação, enviando posteriormente frames DATA até que todos os dados sejam transmitidos. O HTTP2 também especificou um frame RST_STREAM, que pode ser usado para fechar um stream a qualquer momento. Para prevenir ataques, os servidores geralmente limitam o número máximo de streams abertos simultaneamente (para 100 por padrão). Se os clientes realmente esperarem que todos os recursos sejam consumidos, esse limite raramente é atingido. O ataque funciona por uma razão simples: um cliente pode enviar um frame RST_STREAM em qualquer momento. Um frame RST_STREAM fecha um stream, e streams fechados não são contados como um stream simultâneo. Isso significa que um cliente pode enviar solicitações rapidamente, sem nunca atingir esse limite, simplesmente fechando uma conexão imediatamente após enviar uma solicitação. O servidor sendo atacado, em alguns casos, ainda começará a carregar os dados, criando uma carga excessiva.

Esta ferramenta visa verificar a vulnerabilidade de um servidor a esse ataque. Ela estabelece uma ou mais conexões HTTP2 concorrentes e subsequentemente envia os números especificados de frames HEADER, seguidos por frames RST_STREAM.

Ela também fornece várias outras opções de configuração, como atraso entre frames HEADERS e RST_STREAM, o número de streams a abrir, a quantidade de frames a enviar por stream e assim por diante. Após o ataque ser concluído, ela imprime um resumo contendo informações sobre o número de frames recebidos, bem como o número de erros e frames GOAWAY recebidos. Isso pode ajudá-lo a identificar se seus serviços são vulneráveis ao CVE-2023-44487.

Executando

Atualmente, esta ferramenta é distribuída apenas como código-fonte, o que significa que é necessário um . A ferramenta pode ser executada rodando . Há também um script python que pode ser usado para plotar informações de latência escritas no arquivo .

go install
go run main.go <opções>
monitor.log

Ferramentas

Além disso, criei um novo conjunto de ferramentas python para medições mais precisas e extensas. O arquivo runner.py localizado na pasta tooling lerá os valores definidos no seu config.py (veja config-sample.py para detalhes) e executará todos os testes para todos os contêineres docker definidos. Em seguida, executará o teste mais bem-sucedido (maior mediana + latência média) para todos os caminhos definidos no array paths. Ele gerará gráficos e arquivos de log para cada teste executado. Este conjunto de ferramentas ainda está em desenvolvimento. Só o criei porque estava com preguiça de realmente executar todos esses testes manualmente para o nosso artigo de pesquisa. Sinta-se à vontade para enviar um PR para limpá-lo ou torná-lo utilizável para mais do que apenas nosso caso de uso.

Flags da CLI

Atualmente, as seguintes opções de CLI estão implementadas:

FlagPadrãoSignificado
frames1o número de frames HEADERS e RST_STREAM a enviar em qualquer stream
connections1o número de conexões TLS para executar o ataque (concorrentemente)
consecutiveSends1número de frames HEADERS a enviar antes de enviar frames RST_STREAM (por fluxo)
connectAttempts1número de conexões consecutivas para executar o teste (por rotina de conexão)
delay0o tempo (em ms) a esperar entre o envio de frames HEADERS e RST_STREAM
ignoreGoAwayfalsese true, streams GOAWAY não farão com que a rotina de recebimento termine. Em vez disso, aguardará até que nenhum frame seja recebido por mais de 10 segundos.
monitorfalseativar monitoramento de desempenho
monitorDelay100o tempo (em ms) a esperar entre testar a latência de resposta
monitorLog./monitor.logo arquivo para escrever logs de atraso do monitor
routines1o número de streams a atacar
skipValidationtruese true, o certificado do servidor não será validado (este é o padrão - não nos importamos com segurança, já que somos o atacante de qualquer forma)
timeout1000tempo a esperar por novos frames antes de considerar a tentativa de conexão como inválida e interrompê-la
urlhttps://localhost:433/a url para executar o ataque

Exemplo de saída

A ferramenta imprimirá muitas informações de depuração, bem como um resumo. As informações de depuração contêm informações sobre a forma como a conexão foi estabelecida e sobre o progresso atual e o tipo de frames atualmente sendo enviados.

O resumo será algo assim (dependendo da sua configuração)

root@kitploit:~
####################SUMMARY####################
Packet types received:
	PING: 2
	HEADERS: 12
	SETTINGS: 0
	DATA: 11
	GOAWAY: 3
	RSTSTREAM: 0
	WINDOWUPDATE: 0
	UNKNOWN: 0
Attack ending reasons (per receiving thread):
	GoAway events: 3
	Timeout events: 0
	Error events: 0
Summary for connection 2
	PING: 1
	HEADERS: 9
	SETTINGS: 0
	DATA: 6
	GOAWAY: 1
	RSTSTREAM: 0
	WINDOWUPDATE: 0
	UNKNOWN: 0
	Reason for stopping to listen for more packets: GoAway - the server responded as expected.
Summary for connection 1
	PING: 1
	HEADERS: 3
	SETTINGS: 0
	DATA: 5
	GOAWAY: 1
	RSTSTREAM: 0
	WINDOWUPDATE: 0
	UNKNOWN: 0
	Reason for stopping to listen for more packets: GoAway - the server responded as expected.
Summary for connection 0
	PING: 0
	HEADERS: 0
	SETTINGS: 0
	DATA: 0
	GOAWAY: 1
	RSTSTREAM: 0
	WINDOWUPDATE: 0
	UNKNOWN: 0
	Reason for stopping to listen for more packets: GoAway - the server responded as expected.

Se você acha que há outras estatísticas que precisam ser coletadas - não hesite em me contatar ou criar uma issue!

TAREFAS

  • calcular o atraso médio entre o envio de HEADERS e o recebimento do primeiro frame para esta solicitação
  • calcular o atraso médio entre o envio de HEADERS e o recebimento de frames GOAWAY, se houver
  • calcular a porcentagem de conexões às quais o servidor respondeu corretamente
  • calcular a porcentagem de streams às quais o servidor respondeu corretamente (por conexão e no total)
  • incluir a quantidade de pacotes enviados no resumo

AVISO

Esta ferramenta é destinada APENAS para fins de pesquisa. Não se destina a executar ataques contra servidores que não sejam de sua propriedade ou gerenciados por você. Não me responsabilizo pela precisão das estatísticas fornecidas, nem por ataques e suas consequências para servidores e serviços.

Baixar ferramenta