
.NET 4.0 CLR-Projekt zum Abrufen von Chromium-Daten wie Cookies, Verlauf und gespeicherte Anmeldedaten.
SharpChromium ist ein .NET 4.0+ CLR-Projekt zum Abrufen von Daten aus Google Chrome, Microsoft Edge und Microsoft Edge Beta. Derzeit können folgende Daten extrahiert werden:
Hinweis: Alle zurückgegebenen Cookies liegen im JSON-Format vor. Wenn Sie die Erweiterung Cookie Editor installiert haben, können Sie die Cookies einfach kopieren und in den Abschnitt „Import“ dieses Browser-Add-Ons einfügen, um die extrahierte Sitzung zu nutzen.
Diese Neuschreibung bietet mehrere Vorteile gegenüber früheren Implementierungen, darunter:
Usage:
.\SharpChromium.exe arg0 [arg1 arg2 ...]
Arguments:
all - Retrieve all Chromium Cookies, History and Logins.
full - The same as 'all'
logins - Retrieve all saved credentials that have non-empty passwords.
history - Retrieve user's history with a count of each time the URL was
visited, along with cookies matching those items.
cookies [domain1.com domain2.com] - Retrieve the user's cookies in JSON format.
If domains are passed, then return only
cookies matching those domains. Otherwise,
all cookies are saved into a temp file of
the format ""%TEMP%\$browser-cookies.json""
Cookies abrufen, die mit Google Docs und Github verknüpft sind
.\SharpChromium.exe cookies docs.google.com github.com

Verlaufseinträge und deren zugehörige Cookies abrufen.
.\SharpChromium.exe history

Gespeicherte Anmeldungen abrufen (Hinweis: Es werden nur solche mit nicht leeren Passwörtern angezeigt):
.\SharpChromium.exe logins

Der SQLite-Datenbank-Parser ist leicht fehlerbehaftet. Dies liegt daran, dass der Parser Daten-Blobs korrekt als Typ System.Byte[] erkennt, aber Spalten vom Typ System.Byte[] nicht korrekt erkennt. Infolgedessen werden die Byte-Arrays in das Zeichenfolgenliteral "System.Byte[]" umgewandelt, was falsch ist. Ich bin der Ursache noch nicht auf den Grund gegangen, aber als schnelle und schmutzige Problemumgehung habe ich alle Blob-Werte als Base64-Zeichenfolgen codiert. Wenn Sie also einen Wert aus einer Spalte abrufen möchten, deren reguläre Datenwerte ein Byte-Array wären, müssen Sie diese zuerst Base64-dekodieren.
Ein großer Dank geht an @plainprogrammer für ihr C#-SQLite-Projekt, das ein natives Parsen der SQLite-Dateien ermöglichte, ohne eine DLL reflektierend laden zu müssen. Ohne ihre Arbeit wäre dieses Projekt bei weitem nicht so sauber, wie es ist. Dieses Projekt ist hier zu finden: https://github.com/plainprogrammer/csharp-sqlite
Dank an @gentlekiwi, dessen Arbeit an Mimikatz die Neuschreibung des Entschlüsselungsschemas in v80+ geleitet hat.
Dank an @harmj0y, der den erforderlichen PInvoke-BCrypt-Code herausgearbeitet hat, sodass ich zusätzliche Abhängigkeiten aus diesem Projekt entfernen und es wieder leichtgewichtig machen konnte.