Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
rapid-reset-check — CLI in Go che censisce gli endpoint HTTPS che negoziano HTTP/2 tramite ALPN per identificare i sistemi che richiedono una revisione delle mitigazioni per CVE-2023-44487. Controlli TLS non exploitativi, con verifica dei certificati e impostazioni predefinite sicure. | Kitploit
Strumenti/GitHubGitHub/ramonzx6/rapid-reset-check
Scanner di VulnerabilitàAudit di ConfigurazioneRaccolta InformazioniSicurezza WebSicurezza di Rete
GitHubramonzx6/rapid-reset-check

rapid-reset-check

CLI in Go che censisce gli endpoint HTTPS che negoziano HTTP/2 tramite ALPN per identificare i sistemi che richiedono una revisione delle mitigazioni per CVE-2023-44487. Controlli TLS non exploitativi, con verifica dei certificati e impostazioni predefinite sicure.

Vedi Repository
1 giorno faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Rapid Reset Check

rapid-reset-check è una piccola CLI in Go per inventariare rapidamente gli endpoint HTTPS che espongono HTTP/2 e pertanto richiedono una revisione delle mitigazioni per CVE-2023-44487.

Lo scanner è volutamente inoffensivo: risolve ogni target, apre una connessione TLS con verifica del certificato, offre h2 e http/1.1 tramite ALPN, registra ciò che il peer seleziona e chiude la connessione. Non invia alcuna richiesta HTTP, prefazione di connessione HTTP/2, stream, frame RST_STREAM o traffico flood.

[!IMPORTANT] La negoziazione di h2 è un'osservazione di esposizione, non una prova che un servizio sia vulnerabile o non patchato. Un handshake remoto non può verificare i limiti Rapid Reset di un'implementazione HTTP/2, il livello di patch, l'origine a monte o i controlli DDoS.

Perché questo approccio?

CVE-2023-44487 è una tecnica di denial-of-service che abusa della rapida creazione e cancellazione di stream HTTP/2. Tentare di dimostrare la condizione contro un servizio live richiederebbe a sua volta traffico potenzialmente dirompente. Questo strumento risponde invece alla prima domanda sicura:

quali endpoint TLS testati negoziano attualmente HTTP/2 e pertanto richiedono che un operatore ne verifichi la mitigazione?

HTTP/2 su TLS viene pubblicizzato utilizzando l'identificatore ALPN h2 definito da RFC 9113. Google consiglia di verificare o applicare patch a ogni server, proxy e load balancer compatibile con HTTP/2 nel percorso della richiesta; consulta la guida su CVE-2023-44487.

Installare un binario di release

Go non è necessario per eseguire lo strumento. Scarica l'archivio per la tua piattaforma dall'ultima release GitHub:

PiattaformaAsset della release
Linux x86-64rapid-reset-check_<version>_linux_amd64.tar.gz
Linux ARM64rapid-reset-check_<version>_linux_arm64.tar.gz
macOS Intelrapid-reset-check_<version>_darwin_amd64.tar.gz
macOS Apple siliconrapid-reset-check_<version>_darwin_arm64.tar.gz
Windows x86-64rapid-reset-check_<version>_windows_amd64.zip
Windows ARM64rapid-reset-check_<version>_windows_arm64.zip

Estrai l'archivio, quindi esegui rapid-reset-check --version. Su Windows, l'eseguibile si chiama rapid-reset-check.exe.

Ogni release include SHA256SUMS. Su Linux, verifica un archivio scaricato dalla stessa directory con:

root@kitploit:~
sha256sum --ignore-missing --check SHA256SUMS

Su macOS, confronta shasum -a 256 <archive> con la riga corrispondente in SHA256SUMS. Gli archivi pubblicati nelle release pubbliche ricevono anche un'attestazione dell'artefatto GitHub, che può essere verificata con la GitHub CLI:

root@kitploit:~
gh attestation verify <archive> --repo ramonzx6/http-script-json

Compilare dal sorgente

  • Go 1.22 o successivo

Non è richiesta alcuna installazione di Node.js, cURL, nghttp2 o WHOIS.

root@kitploit:~
go test ./...
go build -o rapid-reset-check ./cmd/rapid-reset-check

Le build dal sorgente riportano dev con --version; le build di release ricevono la loro versione dal tag della release.

Avvio rapido

Scansiona solo endpoint che possiedi o che sei autorizzato a valutare.

Scansiona uno o più endpoint pubblici:

root@kitploit:~
./rapid-reset-check example.com api.example.com:8443

I nomi host senza schema vengono normalizzati su HTTPS sulla porta 443. Sono accettati anche URL HTTPS con la sola authority:

root@kitploit:~
./rapid-reset-check https://example.com https://api.example.com:8443

Scansiona l'elenco di target JSON del repository:

root@kitploit:~
./rapid-reset-check --input json/urls.json

Usa l'input standard per l'automazione:

root@kitploit:~
printf '["example.com", "api.example.com"]' | ./rapid-reset-check --input -

Esegui ./rapid-reset-check --help per tutti i limiti e le opzioni di output.

Input

--input accetta il formato originale di array JSON:

root@kitploit:~
[
  "example.com",
  "api.example.com:8443",
  "https://www.example.net"
]

Sono supportate anche le forme a oggetto {"urls": [...]} e {"targets": [...]}. I target posizionali e --input sono intenzionalmente mutuamente esclusivi. Gli endpoint normalizzati duplicati vengono scansionati una sola volta e ogni esecuzione è limitata a 4.096 target di input.

Solo gli endpoint HTTPS sono in scope. Credenziali, percorsi non root, query, frammenti, schemi non supportati, porte malformate e nomi host ambigui vengono rifiutati invece di essere riscritti silenziosamente.

Valutazioni

ValutazioneSignificato
h2_observed_review_requiredAlmeno un peer TLS verificato ha selezionato h2. Esamina ogni componente HTTP/2 in quel percorso; questo non è un verdetto di vulnerabilità.
h2_not_observed_on_tested_pathOgni indirizzo selezionato ha completato un handshake verificato senza selezionare h2. Questa è un'osservazione del percorso in un dato momento, non una garanzia di sicurezza.
indeterminateUn problema di DNS, connessione, timeout, TLS, certificato o limite di indirizzi ha impedito un'osservazione completa.
not_scanned_policyGli indirizzi risolti sono stati esclusi dalla policy di sicurezza di rete dello scanner.
invalid_targetL'input era malformato o al di fuori dell'ambito delle authority HTTPS supportate.

Il report include ogni indirizzo risolto tentato, ALPN negoziato, versione TLS e cipher, dati limitati di identità/validità del certificato, tempistiche, decisioni di policy, conteggi degli indirizzi omessi, un flag esplicito di completezza e un riepilogo. Non raccoglie body di risposta, header di risposta, cookie o certificati grezzi.

Default sicuri

  • I certificati TLS e i nomi host vengono verificati. Usa --ca-file per aggiungere una CA privata; non esiste una modalità di verifica non sicura.
  • Gli indirizzi loopback, privati, link-local, multicast, non specificati, CGNAT, di documentazione, benchmark e altri indirizzi riservati sono bloccati per impostazione predefinita. Usa --allow-private solo per endpoint interni che sei autorizzato a valutare.
  • I risultati DNS vengono fissati per ogni connessione, mentre il nome host originale viene mantenuto per la verifica SNI e del certificato.
  • La concorrenza delle connessioni, i timeout per indirizzo e gli indirizzi per target sono limitati.
  • Lo scanner non ritenta automaticamente e non segue i redirect perché non invia mai una richiesta HTTP. Invia ogni authority HTTPS che devi valutare.

Opzioni di esempio:

root@kitploit:~
./rapid-reset-check \
  --format json \
  --timeout 5s \
  --concurrency 4 \
  --max-addresses 8 \
  example.com > report.json

Per un endpoint autorizzato con PKI privata:

root@kitploit:~
./rapid-reset-check \
  --allow-private \
  --ca-file ./internal-root-ca.pem \
  service.internal:8443

Il codice di uscita 0 significa che ogni target ha prodotto un'osservazione ALPN completa. Il codice di uscita 1 significa che almeno un target non era valido, è stato bloccato dalla policy o è indeterminato; il report viene comunque scritto. Gli errori di utilizzo della CLI e di configurazione restituiscono 2. Osservare h2 non modifica di per sé il codice di uscita, perché è un segnale di inventario, non un verdetto di vulnerabilità.

Interpretare e agire sui risultati

Per ogni risultato h2_observed_review_required:

  1. Identifica il terminatore TLS visibile esternamente e tutti i proxy, load balancer, gateway e server di origine compatibili con HTTP/2 dietro di esso.
  2. Controlla ogni prodotto e versione rispetto all'avviso CVE-2023-44487 del rispettivo fornitore.
  3. Applica le patch correnti e le linee guida del fornitore su reset/rate-limiting.
  4. Conferma che i controlli DDoS perimetrali proteggano l'origine e non possano essere aggirati tramite un nome host, un indirizzo o una porta alternativi.
  5. Valida la configurazione e lo stato delle patch da inventario o telemetria attendibili. Non utilizzare il risultato ALPN di questo scanner come prova di mitigazione.

Limitazioni

I risultati sono specifici del nome host, delle risposte DNS, del percorso di rete, dell'endpoint TLS e del momento della scansione. CDN, anycast, DNS split-horizon, load balancing, porte alternative e indirizzi non testati possono produrre risultati diversi. Lo scanner non:

  • determinare se un server è vulnerabile, aggiornato, mitigato o sicuro;
  • testare il comportamento di Rapid Reset o inviare frame di reset;
  • ispezionare HTTP/2 in chiaro (h2c), QUIC/HTTP/3, redirect, origini nascoste dietro un edge o servizi non HTTPS;
  • dedurre lo stato delle patch da header Server falsificabili o fingerprint CDN;
  • sostituire la revisione della configurazione, l'inventario degli asset, le indicazioni del fornitore o i test di carico autorizzati in un ambiente isolato.

Sviluppo

root@kitploit:~
gofmt -w ./cmd ./internal
go vet ./...
go test ./...
go test -race ./...
go build ./...

La suite di test utilizza fixture TLS locali e non scansiona servizi pubblici.

Release automatizzate

Release Please gestisce le versioni delle release e i tag vX.Y.Z dai messaggi dei Conventional Commit. Lo sviluppo normale non richiede la creazione o il push di tag:

  1. I commit uniti a main fanno sì che Release Please apra o aggiorni una PR di release contenente la versione e le modifiche al changelog.
  2. L'unione di quella PR di release crea il tag di versione e una bozza di release GitHub.
  3. Lo stesso workflow testa il sorgente taggato, esegue la cross-compilazione di tutti e sei gli archivi, crea checksum e provenance, carica gli asset e pubblica la bozza.

Usa fix: per le modifiche patch, feat: per le modifiche minori e un indicatore di breaking change (!) o il footer BREAKING CHANGE: per le modifiche maggiori. I maintainer devono abilitare una volta Settings > Actions > General > Workflow permissions > Allow GitHub Actions to create and approve pull requests affinché Release Please possa gestire la sua PR.

Se la pubblicazione degli asset fallisce dopo che Release Please ha creato un tag, la release rimane una bozza. Esegui di nuovo manualmente il workflow Release con quel tag vX.Y.Z esistente dopo aver corretto il problema. Non creare né pushare un tag sostitutivo.

Scarica lo strumento