
Ein forensischer Beweissammler

Kompiliert und getestet mit Rust 1.50+. Öffnen Sie ein Terminal im Projektverzeichnis und geben Sie zum Kompilieren eines Release-Builds Folgendes ein:
cargo build --release
Ein Debug-Build kann mit folgendem Befehl kompiliert werden:
cargo build
Die kompilierte ausführbare Datei befindet sich in target/release/gargamel.exe bzw. target/debug/gargamel.exe.
Wenn Sie die Protokollierungsebene ändern möchten:
src/main.rsLevelFilter::Info in (beispielsweise) LevelFilter::Trace für detailliertere Protokollierung.
LevelFilter::Trace alles protokolliert, einschließlich Passwörter.Derzeit funktioniert diese App nur unter Windows und der Zielcomputer muss Windows oder Linux verwenden.
Stellen Sie sicher, dass sich die folgenden Programme im selben Verzeichnis wie Gargamel befinden.
psexec, Downloadpaexec, eine Open-Source-Alternative zu PsExec, Downloadwinpmem, ein Open-Source-Tool für Arbeitsspeicherabbilder, Download.
plink und pscp, Open-Source-CLI-SSH/SCP-Clients, DownloadSharpRDP, ein Open-Source-Befehlsausführer mit RDP, DownloadWMImplant, ein Open-Source-PowerShell-WMI-Befehlsausführer, Download7za.exe, eine eigenständige Konsolenversion des 7zip-Archivierers, DownloadHinweis: Wir benötigen sowohl psexec als auch paexec. Obwohl beide Anwendungen funktional äquivalent sein sollen, verhalten sie sich unter bestimmten Umständen tatsächlich unterschiedlich.
Gargamel muss von einer erhöhten Eingabeaufforderung gestartet werden, um voll funktionsfähig zu sein. Derzeit wird weder der UAC-Dialog noch eine Benachrichtigung bei der Ausführung mit eingeschränkten Berechtigungen unterstützt. Wenn das Programm mit eingeschränkten Benutzerrechten ausgeführt wird, funktionieren einige Vorgänge wie das Erstellen von Speicherabbildern des Ziels nicht.
Angenommen, Sie möchten eine Verbindung zu einem Computer mit den folgenden Parametern herstellen:
192.168.42.47Janonbusr123Der folgende Befehl erfasst den Firewall-Status, den Netzwerkstatus, angemeldete Benutzer, laufende Prozesse,
aktive Netzwerkverbindungen, Registrierung, System- und Anwendungsereignisprotokolle mithilfe der PsExec-Methode.
Die Beweise werden im Verzeichnis testResults relativ zum Speicherort von Gargamel gespeichert.
gargamel.exe -c 192.168.42.47 -u Jano --psexec -o testResults
Gargamel fragt nach dem Passwort des entfernten Benutzers – in unserem Beispiel lautet das Passwort nbusr123.
Beachten Sie, dass das Passwort bei der Eingabe verborgen wird.
Es ist auch möglich, das Passwort direkt als Programmargument anzugeben.
gargamel.exe -c 192.168.42.47 -u Jano --psexec -p nbusr123 -o testResults
Angenommen, Sie möchten eine Verbindung zu einem Computer in einer Domäne mit den folgenden Parametern herstellen:
WORKSPACEJanovPCJanonbusr123Der folgende Befehl erfasst den Firewall-Status, den Netzwerkstatus, angemeldete Benutzer, laufende Prozesse, aktive Netzwerkverbindungen, Registrierung, System- und Anwendungsereignisprotokolle mithilfe der PsExec-Methode.
gargamel.exe -c JanovPC -u Jano -d WORKSPACE --psexec -o testResults
Oder geben Sie das Passwort direkt an, um die Passwortabfrage zu überspringen.
gargamel.exe -c JanovPC -u Jano -d WORKSPACE --psexec -p nbusr123 -o testResults
PsExec ist eine der 5 unterstützten Verbindungsmethoden.
Sie können --psexec durch die folgenden Optionen ersetzen:
--psexec--psrem, wenn PowerShell-Remoting auf dem Zielcomputer konfiguriert ist.--rdp, wenn RDP auf dem Zielcomputer aktiviert ist.--wmi.--ssh, wenn der Zielcomputer Linux verwendet.Es ist möglich, mehrere Methoden gleichzeitig zu verwenden. Um beispielsweise sowohl PsExec als auch RDP zu verwenden, kann der folgende Befehl verwendet werden.
gargamel.exe -c 192.168.42.47 -u Jano --psexec --rdp -o testResults
Es gibt auch einen speziellen Schalter --all, der der Angabe von --psexec --rdp --psrem --wmi entspricht.
Hinweis: Die Startparameter sind reihenfolgeunabhängig, d. h. es spielt keine Rolle, in welcher Reihenfolge die Parameter angegeben werden.
Um auch ein Speicherabbild zu erfassen, fügen Sie einfach das Flag -m zu den Programparametern hinzu, d. h.
gargamel.exe -c 192.168.42.47 -u Jano --psexec -o testResults -m
Wenn Sie NUR das Speicherabbild erfassen möchten, ohne andere Beweise, verwenden Sie den folgenden Befehl.
gargamel.exe -c 192.168.42.47 -u Jano --psexec -o testResults -m --no-events-search --no-evidence-search --no-registry-search
Diese Funktionalität ist nur für Windows-Ziele verfügbar.
Gargamel kann benutzerdefinierte Windows-CMD- oder Linux-Shell-Befehle auf dem entfernten Computer ausführen.
Erstellen Sie zunächst eine Datei custom-commands.txt mit folgendem Inhalt.
# Wird mit jeder Methode ausgeführt
ipconfig
# Wird nur ausgeführt, wenn mit mindestens einer der Methoden --all, --psexec, --wmi gestartet wird
:psexec:wmi ipconfig -all
Die Ergebnisse der obigen Befehle werden im durch die Option -o angegebenen Verzeichnis gespeichert.
Um die oben in custom-commands.txt geschriebenen Befehle auszuführen, verwenden Sie den Schalter -e, d. h.
gargamel.exe -c 192.168.42.47 -u Jano --psexec -o testResults -e custom-commands.txt
Gargamel kann entfernte Dateien herunterladen.
Erstellen Sie zunächst eine Datei custom-files.txt mit folgendem Inhalt.
C:\Users\Public\sss*
C:\Users\Jano\danove.pdf
# Diese Zeile und die nächste werden ignoriert
# C:\Users\Jano\somBajecny.pptx
C:\Users\J*\danove.pdf wird höchstwahrscheinlich nicht funktionieren.Die Ergebnisse der obigen Befehle werden im durch die Option -o angegebenen Verzeichnis gespeichert.
Um die oben in custom-files.txt geschriebenen Befehle auszuführen, verwenden Sie den Schalter -s, d. h.
gargamel.exe -c 192.168.42.47 -u Jano --psexec -o testResults -s custom-files.txt
Alle unterstützten Schalter werden unten beschrieben.
USAGE:
gargamel.exe [FLAGS] [OPTIONS] --user <user>