
CVE-2025-10035_GoAnywhere Ottieni RCE

Descrizione
Un checker Python leggero che rileva se un'istanza GoAnywhere è vulnerabile a CVE‑2025‑10035.
Questo strumento invia una richiesta GET appositamente costruita con uno User-Agent casuale (usando fake-useragent con una lista di fallback), non segue i redirect (impostando allow_redirects=False per ispezionare l'header Location), e classifica l'istanza come Non aggiornata (vulnerabile) o Aggiornata (non vulnerabile).
Nota: questo repository contiene attualmente solo il checker. Un PoC potrebbe essere aggiunto in seguito in una posizione separata e chiaramente etichettata, se e quando appropriato — per ora questo progetto è solo di rilevamento.
CVE‑2025‑10035 (riassunto per questo checker)
Un AdminErrorHandlerServlet di GoAnywhere non aggiornato può generare un token di richiesta licenza valido e restituirlo incorporato in un URL di redirect. Tale token appare comunemente come parametro query bundle nell'header Location (spesso con redirect a my.goanywhere.com).
my.goanywhere.com (o a un altro host) con un parametro query bundle. La presenza di bundle = vulnerabile./license/Unlicensed.xhtml senza bundle, oppure non reindirizza affatto.Promemoria etico: esegui questo checker solo su sistemi di tua proprietà o su cui hai esplicita autorizzazione a testare. La scansione non autorizzata può essere illegale e/o dannosa.
User-Agent casuale per ogni richiesta (fake-useragent + lista di fallback).allow_redirects=False) così l'header Location può essere ispezionato.multiprocessing.dummy.Pool.colorama.requestsfake-useragentcoloramaurllib3 (di solito installato con requests)requirements.txt
python -m venv .venv # opzionale ma consigliato source .venv/bin/activate # macOS / Linux .venv\Scripts\activate # Windows pip install -r requirements.txt
Di seguito trovi esempi pratici che puoi copiare/incollare per eseguire il checker in diversi scenari: test rapido su un singolo target, scansione in batch, scansione a bassa velocità per la sicurezza in produzione, esecuzione dentro Docker e un frammento minimale di GitHub Actions per eseguire il checker periodicamente o a ogni push.
Questi esempi presuppongono che il tuo file di script si chiami
check_goanywhere.pye sia eseguibile conpython check_goanywhere.py. Adatta nomi di file, percorsi e numero di thread al tuo ambiente.
# Scansiona i target elencati in examples/targets.txt e aggiungi gli host vulnerabili a results.txt
python check_goanywhere.py examples/targets.txt results.txt
# Usa 10 thread di lavoro per una scansione più veloce (attenzione alla concorrenza in produzione)
python check_goanywhere.py examples/targets.txt results.txt 10
----
## Esempio di output
Di seguito sono riportati esempi realistici di output che puoi aspettarti eseguendo il checker. Tutti gli esempi presuppongono che il banner predefinito venga stampato all'avvio; le righe in `[]` mostrano i messaggi di stato colorati che lo script stampa sul terminale. Dopo la scansione, gli host vulnerabili vengono aggiunti al file dei risultati.
- [-] Not Vulnerable: https://0.0.0.0:443 - n/N
- [-] Erorr: http://0.0.0.0:8000 - n/N
- [-] Erorr: https://0.0.0.0:443 - n/N
- [-] Erorr: https://0.0.0.0:443 - n/N
- [-] Erorr: https://0.0.0.0:443 - n/N
- [-] Not Vulnerable: https://0.0.0.0:443 - n/N
- [+] Vulnerable: https://0.0.0.0:443 - n/N