
Eine Bibliothek zur Erkennung bekannter Geheimnisse in vielen Web-Frameworks
mkdir -p ~/ctools/ cd ~/ctools/ git clone https://github.com/irsdl/crapsecrets/ cd ~/ctools/crapsecrets pip3 install -r requirements.txt export PYTHONPATH=$(pwd):$PYTHONPATH python3 ./crapsecrets/examples/cli.py -u http://update.microsoft.com/ -r python3 ./crapsecrets/examples/cli.py -u http://update.microsoft.com/ -mrd 5 python3 ./crapsecrets/examples/cli.py -mrd 5 -avsk -fvsp -u http://update.microsoft.com/ python3 ./crapsecrets/examples/cli.py -mrd 5 -avsk -fvsp -mkf ./local/aspnet_machinekeys_local.txt -u http://192.168.6.22:8080/ python3 ./crapsecrets/examples/cli.py -mrd 5 -avsk -fvsp -mkf ./local/aspnet_machinekeys_local.txt -mkf ./crapsecrets/resources/aspnet_machinekeys.txt -u http://192.168.6.22:8080/a1/b/c1/
## Tipps für Viewstate
- Führen Sie den Befehl mit `-mrd 5` aus, um die Analyse langer Weiterleitungsantworten zu ermöglichen.
- Verwenden Sie `--allviewstatekeys` oder `-avsk`, um alle Schlüsselkombinationen als Validierungs- und Verschlüsselungsschlüssel auszuprobieren.
- Verwenden Sie `--findviewstatepage` oder `-fvsp`, um eine Reihe von Standardseiten auszuprobieren, wenn .aspx in der URL fehlt.
## Allgemeine Änderungen:
- Verwendet httpx anstelle von requests (Änderungen hauptsächlich von KI vorgenommen und nur minimal getestet, daher können sie falsch sein).
- Fügt Tiefe zur Weiterleitung hinzu (das `--max-redirect-depth`-Argument für manuelle Weiterleitungen).
- Unterstützt zusätzliche Header.
- Das Request-Timeout kann mit dem Argument `--timeout` oder `-t` festgelegt werden.
## Viewstate-Änderungen:
- Enthält einige logische Änderungen.
- Zeigt eine Möglichkeit für AES und 3DES für den Validierungsschlüssel in verschlüsselten .NET 4.0-Viewstates auf.
- Entfernt cookieless-Werte aus dem Pfad.
- Entfernt Parameter nach .aspx.
- Entfernt mehrere Schräg- und Backslash-Zeichen.
- Verbessert die .NET4.5-Logik, um Anwendungsnamen in Unterverzeichnissen zu verwenden.
- Erkennt, wenn „MAC is not enabled“ vorliegt.
- Behandelt lange Weiterleitungen, wenn eine Antwort vorhanden ist (dies ist der Fall, wenn `-r` zum Folgen von Weiterleitungen NICHT verwendet wird).
- Behandelt Weiterleitungen zu einer anderen ASPX-Seite (dies ist der Fall, wenn `-r` zum Folgen von Weiterleitungen verwendet wird).
- Behandelt den Fall, dass Server.Transfer anstelle einer Weiterleitung verwendet wird (Generator unterscheidet sich vom Ziel).
- Erkennt, wenn MaxPageStateFieldLength verwendet wird und wir __VIEWSTATEFIELDCOUNT haben.
- Unterstützt einige vordefinierte ViewStateUserKey zusätzlich zur Prüfung der asp.net_sessionid- und __antixsrftoken-Cookies in der Antwort.
- Erkennt Entschlüsselungsschlüssel für 3DES in ASPNET4.5 korrekt.
- Hinzufügen einer Option, um alle Zeichenfolgen in aspnet_machinekeys.txt einmal als Validierungsschlüssel und einmal als Entschlüsselungsschlüssel zu prüfen. Wenn wir das Flag `--allviewstatekeys` verwenden, versucht das Tool, alle potenziellen EncryptionKeys zu finden und jeden einzelnen in zufälliger Reihenfolge zu testen, um die Daten zu entschlüsseln. Da so viele Schlüssel getestet werden, besteht die Möglichkeit, bei einem einzelnen Durchlauf auf einen ungültigen Schlüssel zu stoßen. Das Tool listet jedoch jeden möglichen Schlüssel auf, den es erkennt. Durch zweimaliges Ausführen des Tools erhöhen Sie die Wahrscheinlichkeit, einen gültigen Verschlüsselungsschlüssel zu finden, erheblich, da das Erscheinen desselben Schlüssels in beiden Durchläufen eine nahezu 100%ige Garantie dafür ist, dass er korrekt ist.
- Verwendet ein Array von Standardseiten, wenn .aspx nicht in der angegebenen URL enthalten ist: `["default.aspx", "index.aspx", "main.aspx", "home.aspx" , "start.aspx", "welcome.aspx", "default2.aspx"]` – Dies erhöht die Testzeit erheblich, kann aber möglicherweise zu mehr Ergebnissen führen.
- Kann `-mkf` oder `--machinekeyfile` als Ressourcendatei für Machinekeys verwenden, sodass wir eine lokale Version verwenden können, wenn sie sensible Schlüssel enthält.
- Verwendet eine angepasste Version der Python-Viewstate-Bibliothek, um beim Parsen von Viewstate mehr Objekte zu unterstützen.
- Das Argument `-evsd` oder `--enable-viewstate-decryption` wurde hinzugefügt, um den Entschlüsselungsschlüssel auch dann zu prüfen, wenn der Validierungsschlüssel nicht gefunden wurde. Dies kann nützlich sein, wenn der Validierungsschlüssel geringfügig vom ursprünglichen in der Liste abweicht.
- Berechnet den `__VIEWSTATEGENERATOR`, indem es seinen Hashcode identifiziert. Es versucht auch, den tatsächlichen Pfad und App-Pfad frühzeitig zu finden, wenn `__VIEWSTATEGENERATOR` und URL bereitgestellt wurden. Dies kann die Leistung potenziell erhöhen, insbesondere wenn eine identifizierbare Standard-ASPX-Seite in der URL fehlt.
- Benutzer können die Anzahl der Threads mit der Option `-nt` oder `--num-threads` festlegen (nur für das Viewstate-Modul anwendbar). Der Standardwert ist 1, was in den meisten Fällen überraschend schneller ist als 10!
- Es sollte Dateien ohne Erweiterungen unterstützen, aber wir müssen Fehler beheben, sobald sie gemeldet werden.
- Es unterstützt IsolateApps (nützlich für .NET40-Legacy). Dies ist der Fall, wenn nach den Validierungs- oder Entschlüsselungsschlüsseln „,IsolateApps“ steht.
- Es reduziert die Anzahl der App-Pfade, indem es aktiv darauf testet, basierend auf https://soroush.me/blog/2019/07/iis-application-vs-folder-detection-during-blackbox-testing/. Dies kann mit `-dap` oder `--disable-active-path-check` deaktiviert werden.
- Prüft auf __VIEWSTATE_KEY im Antworttext und verwendet ihn ebenfalls als ViewstateKey.
- Fügt die öffentliche IP-Adresse zum Viewstate-Schlüssel hinzu, basierend auf der Sitzungs-ID oder dem Anti-XSRF-Token.
- Verwendet __EVENTVALIDATION, wenn __VIEWSTATE fehlt.
- Verwendet die verschlüsselten Ressourcenwerte von `/WebResource.axd?d=` oder `/ScriptResource.axd?d=` unter einem neuen Modul namens „aspnet_resource.py“. Es unterstützt dort auch die IsolateApps-Funktion. Dies ist nützlich, wenn __VIEWSTATE und __EVENTVALIDATION fehlen.