Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
Chrome-App-Bound-Encryption-Decryption — Contorne a criptografia App-Bound do Chromium via Process Hollowing reflexivo baseado em syscalls diretos. Extraia cookies, senhas, métodos de pagamento e tokens do Chrome, Edge, Brave e Avast — sem arquivos, em modo de usuário, sem exigir privilégios de administrador. | Kitploit
Ferramentas/GitHubGitHub/xaitax/chrome-app-bound-encryption-decryption
Ferramentas de Criptografia/DescriptografiaAtaques de SenhaExploraçãoExfiltração de DadosColeta de InformaçõesPós-ExploraçãoCriptografiaRed Teaming

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
GitHub
xaitax/chrome-app-bound-encryption-decryption

Chrome-App-Bound-Encryption-Decryption

Contorne a criptografia App-Bound do Chromium via Process Hollowing reflexivo baseado em syscalls diretos. Extraia cookies, senhas, métodos de pagamento e tokens do Chrome, Edge, Brave e Avast — sem arquivos, em modo de usuário, sem exigir privilégios de administrador.

Ver RepositórioSite
1.7k2924há 7 mesesRevisado pelo Kitploit

ChromElevator (Chrome App-Bound Encryption Decryption)

🚀 Visão Geral

Build Status License Platform Languages Ask DeepWiki

Uma ferramenta de pós-exploração que demonstra uma bypass completa e em memória do App-Bound Encryption (ABE) do Chromium. Este projeto utiliza Reflective Process Hollowing baseado em Syscalls Diretos para iniciar um processo legítimo do navegador em estado suspenso, injetando furtivamente um payload para sequestrar sua identidade e contexto de segurança. Esta técnica Living-off-the-Land (LOTL) subverte o próprio modelo de segurança do navegador. A abordagem sem arquivos permite que a ferramenta opere inteiramente a partir da memória, contornando hooks de API em user-land para descriptografar e exfiltrar dados confidenciais do usuário (cookies, senhas, pagamentos) de navegadores Chromium modernos.

Se você considera esta pesquisa valiosa, eu apreciaria um café:
ko-fi

🛡️ Pilares Técnicos Centrais

A eficácia desta ferramenta está enraizada em uma combinação de técnicas modernas focadas em evasão:

  • Syscalls Diretos para Evasão: Contorna os hooks em user-land de EDR/AV em funções padrão da WinAPI invocando diretamente as funções do kernel. O mecanismo resolve dinamicamente os números de syscall em tempo de execução usando a técnica Hell's Gate com correspondência de funções baseada em hash (sem nomes de syscall em texto puro no binário).

  • Process Hollowing Baseado em Syscalls Diretos: Uma técnica furtiva de criação e injeção de processos. Em vez de injetar em um processo de alto tráfego e potencialmente monitorado, ela cria um novo processo host suspenso. Isso reduz significativamente as chances de detecção, pois todas as manipulações de memória ocorrem antes de o processo iniciar a execução normal.

  • Payload Sem Arquivos na Memória: A DLL do payload nunca toca o disco na máquina alvo. Ela é incorporada como um array de bytes criptografado com ChaCha20 em tempo de compilação, com chaves derivadas em tempo de compilação, descriptografada em memória e carregada reflexivamente, minimizando sua pegada forense e contornando scanners estáticos baseados em arquivos.

  • Injeção Reflexiva de DLL (RDI): Um método furtivo de injeção de processos que contorna LoadLibrary para o payload principal, evitando assim mecanismos de detecção que monitoram cargas de módulos. O loader de bootstrap autossuficiente mapeia seções PE, executa realocações e resolve importações a partir da memória.

  • Invocação COM no Contexto do Alvo: A peça-chave para derrotar o App-Bound Encryption. Ao executar código dentro do processo confiável do navegador, herdamos sua identidade e contexto de segurança, permitindo fazer chamadas de aparência legítima ao servidor COM do ABE e satisfazer suas verificações de segurança de validação de caminho.

⚙️ Recursos

Funcionalidade Principal

  • 🔓 Descriptografia completa em modo de usuário de cookies, senhas, métodos de pagamento, IBANs e tokens OAuth do Google.
  • 📁 Descobre e processa todos os perfis de usuário (Default, Profile 1, etc.).
  • 📝 Exporta todos os dados extraídos em arquivos JSON estruturados, organizados por perfil.
  • 🔍 Fingerprinting abrangente do navegador com informações do sistema.

Furtividade e Evasão

  • 🛡️ Entrega de Payload Sem Arquivos: Descriptografia em memória e injeção de um payload incorporado criptografado.
  • 🛡️ Mecanismo de Syscalls Diretos: Contorna defesas comuns de endpoint evitando APIs de user-land com hook para todas as operações de processo.
  • 🛡️ Resolução de Syscalls Baseada em Hash: Sem nomes de funções Nt*/Zw* em texto puro no binário—usa hashes DJB2 em tempo de compilação.
  • 🛡️ Derivação de Chaves em Tempo de Compilação: Chaves de criptografia derivadas de metadados de build, únicas por build.
  • 🛡️ Destruição do Cabeçalho PE: Após a injeção, os cabeçalhos PE são obliterados com dados pseudoaleatórios para evadir scanners de memória.
  • 🛡️ Mimetismo de IPC: Padrões de named pipe específicos do navegador que se misturam ao tráfego IPC legítimo do navegador.
  • 🤫 Process Hollowing: Cria um processo host benigno e suspenso para o payload, evitando injeção em processos potencialmente monitorados.
  • 👻 Injeção Reflexiva de DLL: Carrega furtivamente o payload sem chamadas suspeitas a LoadLibrary.
  • 🔒 Bypass Não Intrusivo de Bloqueio de Arquivo: Usa duplicação de handles baseada em syscalls para acessar bancos de dados SQLite bloqueados sem encerrar processos do navegador. A flag opcional --kill está disponível para encerramento completo do processo.
  • 💼 Nenhum Privilégio de Administrador Necessário: Opera inteiramente dentro do contexto de segurança do usuário.

Compatibilidade e Usabilidade

  • 🌐 Funciona em Google Chrome, Brave, Edge e Avast Secure Browser.
  • 💻 Suporta nativamente as arquiteturas x64 e ARM64.
  • 🚀 Operação Autônoma: Cria automaticamente um novo processo do navegador para hospedar o payload, sem exigir instâncias já em execução.
  • 📁 Diretório de saída personalizável para os dados extraídos.
image

📦 Versões Suportadas e Testadas

Nota: Chrome/Brave/Edge 144+ usam a nova interface COM IElevator2. Esta ferramenta usa automaticamente IElevator2 quando disponível e recorre ao IElevator para versões mais antigas. O Avast Secure Browser usa uma interface personalizada IElevatorChrome com uma vtable estendida (12 métodos, DecryptData no offset 104).

🔍 Matriz de Suporte a Recursos

Esta matriz descreve as capacidades de extração para cada navegador suportado.

🔬 Fluxo de Trabalho Técnico

A execução da ferramenta é focada em furtividade e eficiência, construída em torno de um processo de Reflective Hollowing baseado em Syscalls Diretos. Essa abordagem garante que poucas chamadas de API de alto nível sejam feitas e que o payload opere a partir de um processo legítimo de navegador recém-criado.

Estágio 1: O Injetor (chromelevator.exe)

  1. Pré-voo e Inicialização: O injetor começa inicializando seu mecanismo de syscalls diretos, analisando dinamicamente ntdll.dll para resolver números de syscall (SSNs) usando correspondência baseada em hash e localizar gadgets de transição de kernel (syscall/ret ou svc/ret). Se a flag --kill for especificada, ele usa os syscalls NtGetNextProcess e NtTerminateProcess para encerrar todas as instâncias em execução do navegador alvo, liberando bloqueios de arquivo nos bancos de dados SQLite.
  2. Preparação do Payload: A DLL principal do payload, que é incorporada como um array de bytes criptografado com ChaCha20 em tempo de compilação, com chaves derivadas em tempo de compilação, é descriptografada inteiramente em memória.
  3. Process Hollowing: Em vez de atingir um processo existente, o injetor cria uma nova instância do navegador alvo em estado CREATE_SUSPENDED (CreateProcessW). Esse processo suspenso e limpo serve como host para o nosso payload.
  4. Injeção Reflexiva via Syscalls: Usando o mecanismo de syscalls diretos, o injetor executa uma série de ações furtivas no processo suspenso:
    • Aloca memória usando NtAllocateVirtualMemory (syscall direto).

Estágio 2: O Payload Injetado (Em Memória)

  1. Bootstrapping: O loader reflexivo Bootstrap executa, funcionando como um loader de PE personalizado em memória com furtividade aprimorada:
    • Aloca nova memória para o payload usando syscalls diretos para NtAllocateVirtualMemory (contornando VirtualAlloc com hook).
    • Mapeia corretamente as seções da DLL e executa realocações de base.
    • Resolve sua Import Address Table (IAT) analisando o PEB e aplicando hash aos nomes das funções.
    • Define as permissões das seções usando syscalls diretos para NtProtectVirtualMemory.
    • Destrói os cabeçalhos PE sobrescrevendo os cabeçalhos DOS/NT com dados pseudoaleatórios, eliminando a assinatura MZ da memória.
    • Por fim, invoca o DllMain do payload.
  2. Conexão e Configuração: O DllMain cria uma nova thread que imediatamente se conecta ao handle do named pipe passado pelo injetor. Ela lê a configuração, incluindo o caminho de saída, enviada pelo injetor. Todos os logs e atualizações de status subsequentes são retransmitidos por esse pipe.
  3. Sequestro COM no Contexto do Alvo: Agora executando nativamente dentro do processo do navegador, o payload instancia o servidor COM interno do navegador (IElevator2 para Chrome/Brave 144+, IElevator para versões anteriores, IEdgeElevatorFinal para Edge, ou para Avast Secure Browser). Como a chamada se origina de um caminho de processo confiável, todas as verificações de segurança do servidor são aprovadas.

🔧 Instruções de Build

Este projeto usa um script de build simples e robusto que cuida automaticamente de toda a compilação e incorporação do payload.

  1. Clone este repositório.

  2. Abra um Prompt de Comando do Desenvolvedor para VS (ou qualquer shell habilitado para MSVC).

  3. Execute o script de build make.bat a partir da raiz do projeto.

Opções de Build:

  • make.bat - Build completo (padrão)
  • make.bat clean - Remove todos os artefatos de build
  • make.bat build_encryptor_only - Build apenas do encryptor (usado por CI)
  • make.bat build_target_only - Build do payload e do injetor (usado por CI)

Builds Automatizados com GitHub Actions

Este projeto usa GitHub Actions para compilar automaticamente o executável do injetor (chromelevator.exe) para as arquiteturas x64 e ARM64.

Você pode encontrar os binários pré-compilados mais recentes na página de Releases. Os executáveis para ambas as arquiteturas são empacotados juntos em um único arquivo .zip conveniente.

Conteúdo do Pacote de Release:

  • chromelevator_x64.exe
  • chromelevator_arm64.exe

🚀 Uso```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:~
### Options

- `--output-path <path>` ou `-o <path>`
  Especifica o diretório base para os arquivos de saída.
  O padrão é `.\output\` relativo à localização do injetor.
  Os dados serão organizados em subpastas: `<path>/<BrowserName>/<ProfileName>/`.

- `--verbose` ou `-v`
  Ativa a saída extensa de depuração do injetor.

- `--fingerprint` ou `-f`
  Extrai dados abrangentes de fingerprinting do navegador, incluindo versão, extensões, configurações de segurança e informações do sistema.
  Os resultados são salvos em `fingerprint.json` no diretório de saída do navegador.

- `--kill` ou `-k`
  **Mata todos os processos do navegador antes da extração.** Usa chamadas de sistema diretas (`NtTerminateProcess`) para encerrar todas as instâncias em execução do(s) navegador(es) alvo antes de tentar a extração de dados. Isso é útil quando os navegadores estão em execução e mantêm bloqueios em arquivos de banco de dados, impedindo que a ferramenta acesse cookies ou outros dados criptografados.

- `--help` ou `-h`
  Mostra esta mensagem de ajuda.

### Execução Normal```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:~
## 📂 Extração de Dados

Quando a descriptografia é concluída, os dados são salvos no caminho de saída especificado (padrão `.\output\` se não for especificado via `--output-path`). Os arquivos são organizados da seguinte forma:

**Caminho base:** `YOUR_CHOSEN_PATH` (ex.: `.\output\` ou o caminho que você fornecer)
**Estrutura:** <Base Path>/<BrowserName>/<ProfileName>/<data_type>.json

Exemplos de caminhos (assumindo o local de saída padrão):

- 🍪 **Cookies (perfil padrão do Chrome):** .\output\Chrome\Default\cookies.json
- 🔑 **Senhas (Perfil 1 do Edge):** .\output\Edge\Profile 1\passwords.json
- 💳 **Métodos de Pagamento (perfil padrão do Brave):** .\output\Brave\Default\payments.json
- 🏦 **IBANs (Perfil 1 do Chrome):** .\output\Chrome\Profile 1\iban.json

### 🍪 Extração de Cookies

Cada arquivo de cookie é uma matriz JSON de objetos:```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…"
  },
  …
]

🔑 Extração de Senhas

Cada arquivo de senha é um array JSON de objetos:```json [ { "url": "https://example.com/login", "user": "[email protected]", "pass": "••••••••••" }, … ]

root@kitploit:~
### 💳 Extração de Métodos de Pagamento

Cada arquivo de pagamento é um array JSON de objetos:```json
[
  {
    "name": "John Doe",
    "month": 12,
    "year": 2030,
    "number": "••••••••••1234",
    "cvc": "•••"
  },
  …
]

🏦 Extração de IBAN

Cada arquivo IBAN é um array JSON de objetos:```json [ { "nickname": "UK Test", "iban": "GB33BUKB20201555555555" } ]

root@kitploit:~
### 🎟️ Extração de Token

Cada arquivo de token é um array JSON de objetos contendo o serviço, o token descriptografado e a chave de vinculação (se presente):```json
[
  {
    "service": "AccountId-112823413702122221871",
    "token": "1//03VJGN_vL2FR5CgYIARAAGAMSNwF-L9IrtiyH_tmtOneETFya5GEGiewlEMrLwDMuOl56zRoShNE77DfyOXhofn5Ryo_...",
    "binding_key": ""
  }
]

🔍 Fingerprinting do navegador

Ao usar a flag --fingerprint ou -f, é gerado um relatório abrangente de metadados:```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:~
Estes dados fornecem inteligência sobre a configuração do navegador, sua postura de segurança e o contexto do sistema.

## 📚 Análise Técnica e Pesquisa Aprofundada

Para uma compreensão abrangente da Criptografia App-Bound (ABE) do Chrome, das complexidades de sua implementação, da mecânica detalhada da abordagem desta ferramenta e de uma discussão mais ampla sobre vetores de segurança relacionados, consulte meu artigo de pesquisa detalhado:

1.  ➡️ **[Criptografia App-Bound (ABE) do Chrome - Análise Técnica Aprofundada e Notas de Pesquisa](https://github.com/xaitax/chrome-app-bound-encryption-decryption/blob/main/docs/RESEARCH.md)**

    Este documento aborda:

    - A evolução de DPAPI para ABE.
    - Uma decomposição passo a passo do mecanismo ABE, incluindo interações COM `IElevator`/`IElevator2` e encapsulamento de chaves.
    - Metodologia detalhada da estratégia de injeção de DLL usada por esta ferramenta.
    - Análise de estruturas de dados criptografadas e insights relevantes do código-fonte do Chromium.
    - Discussão sobre vetores alternativos de descriptografia e as defesas em evolução do Chrome.

2.  ➡️ **[O Curioso Caso do COM Irritadiço: Descriptografando a Criptografia App-Bound do Microsoft Edge](https://github.com/xaitax/chrome-app-bound-encryption-decryption/blob/main/docs/The_Curious_Case_of_the_Cantankerous_COM_Decrypting_Microsoft_Edge_ABE.md)**

    Este artigo detalha os desafios específicos e a jornada de engenharia reversa realizada para alcançar uma descriptografia ABE confiável para o Microsoft Edge. Ele inclui:

    - Um relato dos problemas iniciais e dos códigos de erro enganosos (`E_INVALIDARG`, `E_NOINTERFACE`).
    - O processo de uso da introspecção da biblioteca de tipos COM (com Python `comtypes`) para descobrir a estrutura e herança exclusivas da vtable `IElevatorEdge` do Edge.
    - Como esse insight levou a stubs de interface C++ personalizados para uma interação bem-sucedida com o serviço ABE do Edge.
    - Uma visão prática da depuração de problemas complicados de interoperabilidade COM.

3.  ➡️ **[O Elevador Ganha uma Atualização: Chrome 144, IElevator2 e o Horizonte Mojo](https://github.com/xaitax/chrome-app-bound-encryption-decryption/blob/main/docs/The_Elevator_Gets_an_Upgrade_Chrome_144_IElevator2_and_the_Mojo_Horizon.md)**

    Este artigo aborda a nova interface COM `IElevator2` do Chrome 144 e o que ela significa para a ABE:

    - Comparação técnica entre as interfaces `IElevator` do Chrome 143 e `IElevator2` do Chrome 144.
    - Análise dos dois novos métodos (`RunIsolatedChrome`, `AcceptInvitation`) e sua conexão com a migração planejada do Mojo IPC do Chromium.
    - Comparação do layout da VTable mostrando a preservação da compatibilidade retroativa.
    - Adoção parcial das interfaces `IElevator2` e novas interfaces Copilot pelo Edge 144.
    - Avaliação honesta do que a migração Mojo muda (e não muda) para a segurança da ABE.

4.  ➡️ **[COMrade ABE: Seu Manual de Campo para o Submundo COM da Criptografia App-Bound](https://github.com/xaitax/chrome-app-bound-encryption-decryption/blob/main/docs/COMrade_ABE_Field_Manual.md)**

    Este manual de campo apresenta o **COMrade ABE**, um analisador dinâmico baseado em Python para interfaces COM de ABE, e mergulha em suas aplicações práticas:

    - Explica a necessidade da análise dinâmica de interfaces COM devido a variações e atualizações dos navegadores.
    - Detalha a metodologia do COMrade ABE: varredura do registro para descoberta de serviços, carregamento e análise da Type Library, e correspondência heurística de assinaturas de métodos ABE.
    - Fornece um guia abrangente para interpretar a saída do COMrade ABE, incluindo CLSIDs, IIDs (padrão e estilo C++), e a importância dos detalhes de saída verbosa, como offsets de VTable, interfaces definidoras e cadeias completas de herança.
    - Destaca a utilidade dos stubs C++ gerados automaticamente (`--output-cpp-stub`) para desenvolvimento e pesquisa rápidos.
    - Discute como o COMrade ABE auxilia na adaptação a mudanças na ABE, na análise de novos navegadores Chromium e na compreensão de personalizações COM específicas de fornecedores.

## 🔗 Recursos Adicionais e Pesquisa

Este projeto se baseia no trabalho e na análise da comunidade de segurança em geral.

- **Documentação Oficial e Anúncios:**

  - [Google Security Blog: Melhorando a segurança dos cookies do Chrome no Windows](https://security.googleblog.com/2024/07/improving-security-of-chrome-cookies-on.html)
  - [Design Doc: Serviço de criptografia app-bound do Chrome](https://drive.google.com/file/d/1xMXmA0UJifXoTHjHWtVir2rb94OsxXAI/view)

- **Pesquisa da Comunidade e Agradecimento:**
  - Prova de conceito por [snovvcrash](https://gist.github.com/snovvcrash/caded55a318bbefcb6cc9ee30e82f824)

## 🗒️ Registro de Alterações

Todas as mudanças notáveis neste projeto estão documentadas no arquivo [**CHANGELOG**](https://github.com/xaitax/chrome-app-bound-encryption-decryption/blob/main/CHANGELOG.md). Isso inclui histórico de versões, novos recursos, correções de bugs e melhorias de segurança.

## 📜 Licença

Este projeto é licenciado sob a Licença MIT - consulte o arquivo [LICENSE](https://github.com/xaitax/chrome-app-bound-encryption-decryption/blob/main/LICENSE) para obter detalhes.

## 💡 Filosofia do Projeto e Aviso Legal

> [!IMPORTANT]
> Este é um projeto de hobby criado para fins educacionais e de pesquisa em segurança. Ele serve como uma experiência de aprendizado pessoal e um campo de exploração para conceitos avançados do Windows.
>
> **Esta ferramenta NÃO se destina a ser um infostealer completo ou uma ferramenta garantida de evasão de EDR.** Embora empregue técnicas avançadas, seu objetivo principal é demonstrar e dissecar o mecanismo ABE, não fornecer furtividade operacional para uso malicioso. Certifique-se de cumprir todas as diretrizes legais e éticas relevantes.
Baixar ferramenta
BrowserTested 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
RecursoGoogle ChromeMicrosoft EdgeBraveAvast Secure Browser
Cookies✅ ABE✅ ABE✅ ABE✅ ABE
Senhas✅ ABE✅ ABE✅ ABE✅ ABE
Métodos de Pagamento✅ ABE✅ ABE✅ ABE✅ ABE
IBANs✅ ABE❌ N/A✅ ABE✅ ABE
Tokens de Autenticação✅ Google❌ N/A❌ N/A❌ N/A
  • Escreve a DLL do payload descriptografada no espaço alocado com NtWriteVirtualMemory.
  • Altera as permissões da região de memória para executável usando NtProtectVirtualMemory (syscall direto).
  • Cria um named pipe para comunicação e escreve o nome do pipe na memória do alvo.
  • Execução e Controle: Uma nova thread é criada no processo alvo usando NtCreateThreadEx. O endereço inicial da thread aponta diretamente para o export Bootstrap do payload, com o endereço do nome remoto do pipe como argumento. A thread principal original do navegador permanece suspensa e nunca é retomada. O injetor então aguarda o payload se conectar de volta ao pipe.
  • IAvastElevator
  • Descriptografia da Chave Mestra: O payload chama o método DecryptData na interface COM, fornecendo a app_bound_encrypted_key que lê do arquivo Local State. O servidor COM obedientemente descriptografa a chave e retorna a chave mestra AES-256 em texto puro para o payload.
  • Exfiltração de Dados: Munido da chave AES, o payload enumera todos os perfis de usuário (Default, Profile 1, etc.). Para cada perfil, ele consulta os bancos de dados SQLite relevantes (Cookies, Login Data, Web Data), descriptografa os blobs de dados usando AES-256-GCM e formata os segredos como JSON. Os resultados são gravados diretamente no diretório de saída especificado pelo injetor.
  • Desligamento: Após processar todos os perfis, o payload envia um sinal de conclusão ao injetor pelo pipe e chama FreeLibraryAndExitThread para fazer a limpeza. O injetor, ao receber o sinal, encerra o processo host pai com NtTerminateProcess.