
Herramienta para probar mitigaciones y exposición a DDoS de Rapid Reset (CVE-2023-44487)
Rapid Reset Client es una herramienta para probar mitigaciones y la exposición a CVE-2023-44487 (vector de ataque DDoS Rapid Reset). Implementa un cliente HTTP/2 mínimo que abre un único socket TCP, negocia TLS, ignora el certificado e intercambia tramas SETTINGS. Luego, el cliente envía tramas HEADERS rápidas seguidas de tramas RST_STREAM. Supervisa (pero no gestiona) las tramas del servidor después de la configuración inicial, salvo para enviarlas a stdout. Esta funcionalidad se puede eliminar fácilmente del código fuente si resulta demasiado molesta.
Probado en go1.21.3 en arm64.
git clone https://github.com/secengjeff/rapidresetclient.git
cd rapidresetclient
go get golang.org/x/net/http2
go get golang.org/x/net/http2/hpack
go build -o rapidresetclient
requests: Número de solicitudes a enviar (por defecto es 5)
url: URL del servidor (por defecto es https://localhost:443)
wait: Tiempo de espera en milisegundos entre el inicio de los workers (por defecto es 0)
delay: Retraso en milisegundos entre el envío de tramas HEADERS y RST_STREAM (por defecto es 0)
concurrency: Número máximo de workers concurrentes (por defecto es 0)
Envía 10 solicitudes HTTP/2 (tramas HEADERS y RST_STREAM) a través de una única conexión a https://example.com usando 5 workers, un retraso de 10 ms entre el envío de tramas HEADERS y RST_STREAM, y un tiempo de espera de 100 ms entre cada invocación.
./rapidresetclient -requests=10 -url https://example.com -wait=100 -delay=10 -concurrency=5
http2 - Paquete que expone primitivas HTTP/2 de bajo nivel
http2/hpack - Paquete de compresión de cabeceras HTTP/2
Ver también la lista de contribuidores
Este proyecto está licenciado bajo la Licencia Apache - consulte el archivo LICENSE para más detalles
Este trabajo se basa en el análisis inicial de CVE-2023-44487 por Juho Snellman y Daniele Iamartino en Google.