
CVE-2025-10035_GoAnywhere Get RCE

Beschreibung
Ein leichtgewichtiger Python-Prüfer, der erkennt, ob eine GoAnywhere-Instanz anfällig für CVE‑2025‑10035 ist.
Dieses Tool sendet eine manipulierte GET-Anfrage mit einem randomisierten User-Agent (unter Verwendung von fake-useragent mit einer Fallback-Liste), folgt nicht Weiterleitungen, untersucht den Location-Header und klassifiziert die Instanz als ungepatcht (anfällig) oder gepatcht (nicht anfällig).
Hinweis: Dieses Repository enthält derzeit nur den Prüfer. Ein PoC kann später an einem separaten, klar gekennzeichneten Ort hinzugefügt werden, falls/wann angebracht – derzeit ist dieses Projekt nur auf Erkennung ausgelegt.
CVE‑2025‑10035 (Zusammenfassung für diesen Prüfer)
Ein ungepatchtes GoAnywhere AdminErrorHandlerServlet kann ein gültiges Lizenzanforderungstoken generieren und es in eine Weiterleitungs-URL eingebettet zurückgeben. Dieses Token erscheint üblicherweise als bundle-Abfrageparameter im Location-Header (oft mit Weiterleitung zu my.goanywhere.com).
my.goanywhere.com (oder einem anderen Host) mit einem bundle-Abfrageparameter. Vorhandensein von bundle = anfällig./license/Unlicensed.xhtml ohne bundle weiter oder leitet nicht weiter.Ethischer Hinweis: Führen Sie diesen Prüfer nur gegen Systeme aus, die Ihnen gehören oder für die Sie ausdrücklich autorisiert sind. Unbefugtes Scannen kann illegal und/oder störend sein.
User-Agent pro Anfrage (fake-useragent + Fallback-Liste).allow_redirects=False), sodass der Location-Header untersucht werden kann.multiprocessing.dummy.Pool.colorama.requestsfake-useragentcoloramaurllib3 (normalerweise mit requests installiert)requirements.txt
python -m venv .venv # optional but recommended source .venv/bin/activate # macOS / Linux .venv\Scripts\activate # Windows pip install -r requirements.txt
Im Folgenden finden Sie praktische Beispiele, die Sie kopieren und einfügen können, um den Prüfer in verschiedenen Szenarien auszuführen: Einzeltest für schnelle Tests, Batch-Scanning, Scan mit niedriger Rate für Produktionssicherheit, Ausführung in Docker und ein minimales GitHub Actions-Snippet, um den Prüfer regelmäßig oder bei Push auszuführen.
Diese Beispiele gehen davon aus, dass Ihre Skriptdatei
check_goanywhere.pyheißt und mitpython check_goanywhere.pyausführbar ist. Passen Sie Dateinamen, Pfade und Threadanzahlen an Ihre Umgebung an.
# Scan targets listed in examples/targets.txt and append vulnerable hosts to results.txt
python check_goanywhere.py examples/targets.txt results.txt
# Use 10 worker threads for faster scanning (be careful with concurrency against production)
python check_goanywhere.py examples/targets.txt results.txt 10
----
## Beispielausgabe
Im Folgenden finden Sie realistische Beispielausgaben, die Sie beim Ausführen des Prüfers erwarten können. Alle Beispiele gehen davon aus, dass das Standard-Banner zu Beginn ausgegeben wird; Zeilen in `[]` zeigen die farbigen Statusmeldungen, die das Skript an die Konsole ausgibt. Nach dem Scan werden anfällige Hosts an die Ergebnisdatei angehängt.
- [-] Nicht anfällig: https://0.0.0.0:443 - n/N
- [-] Fehler: http://0.0.0.0:8000 - n/N
- [-] Fehler: https://0.0.0.0:443 - n/N
- [-] Fehler: https://0.0.0.0:443 - n/N
- [-] Fehler: https://0.0.0.0:443 - n/N
- [-] Nicht anfällig: https://0.0.0.0:443 - n/N
- [+] Anfällig: https://0.0.0.0:443 - n/N