Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
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
TotalRecall — Esta ferramenta extrai e exibe dados do recurso Recall no Windows 11, fornecendo uma maneira fácil de acessar informações sobre os instantâneos de atividade do seu PC. | Kitploit
Ferramentas/GitHubGitHub/xaitax/totalrecall
Escalada de PrivilégiosReconhecimentoExploraçãoExfiltração de DadosColeta de InformaçõesPós-ExploraçãoTestes de PenetraçãoRed Teaming
GitHubxaitax/totalrecall

TotalRecall

Esta ferramenta extrai e exibe dados do recurso Recall no Windows 11, fornecendo uma maneira fácil de acessar informações sobre os instantâneos de atividade do seu PC.

1641211há 5 mesesRevisado pelo Kitploit

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
Ver Repositório

TotalRecall Reloaded

Quebrando o Windows Recall. Novamente.

image

Quando a Microsoft redesenhou o Recall com enclaves VBS, criptografia AES-256-GCM, autenticação do Windows Hello e um host Protected Process Light, a mensagem foi clara: os dados estão trancados em um cofre.

O cofre é sólido. O caminhão de entrega não é.

AIXHost.exe, o processo que renderiza a linha do tempo do Recall, não possui PPL, nem AppContainer, nem verificação de integridade de código. Qualquer processo executado como o usuário logado pode injetar código nele e chamar as mesmas APIs COM que a interface legítima usa. Uma vez que o usuário se autentica com o Windows Hello, capturas de tela descriptografadas, texto OCR e metadados fluem através do AIXHost.exe como objetos COM ativos. O TotalRecall Reloaded reside dentro desse processo e extrai tudo.

Nenhum admin necessário. Usuário padrão. Sem exploit de kernel. Sem bypass criptográfico. Apenas chamadas COM.


Como Funciona

A Injeção

O TotalRecall Reloaded consiste em dois arquivos: um injetor (totalrecall.exe) e uma DLL de payload (totalrecall_payload.dll).

O injetor encontra o AIXHost.exe via CreateToolhelp32Snapshot, aloca memória no alvo com VirtualAllocEx, escreve o caminho da DLL com WriteProcessMemory e cria uma thread remota apontando para LoadLibraryW. Injeção clássica de DLL. Nada sofisticado, porque nada sofisticado é necessário. O AIXHost.exe não tem proteção alguma contra isso.

Isso funciona com privilégio de usuário padrão. Sem elevação, sem SeDebugPrivilege. A DACL padrão do Windows permite que processos do mesmo usuário tenham acesso total entre si. Verificado: o token é executado no nível obrigatório Medium com BUILTIN\Administrators definido como deny-only.

Autenticação

O enclave VBS não descriptografa nada sem o Windows Hello. A ferramenta não contorna isso. Ela faz o usuário fazer, acompanha silenciosamente quando o usuário faz ou espera que o usuário faça.

--launch simula Win+J via keybd_event, o atalho de teclado que abre a linha do tempo do Recall. O usuário vê um prompt do Hello (rosto, impressão digital ou PIN), autentica-se e o enclave começa a fornecer dados descriptografados. Da perspectiva do usuário, o Recall abriu normalmente. Da nossa, o payload já está dentro, esperando.

--stealth é o modo totalmente silencioso. Funciona assim:

  1. Injeta no AIXHost.exe (sempre em execução) e aplica um patch em DiscardDataAccess para um no-op
  2. Aguarda silenciosamente o usuário abrir o Recall e autenticar normalmente
  3. Quando o usuário fecha o Recall, o Baker.dll tenta revogar a concessão de acesso aos dados, mas o patch bloqueia
  4. AIXHost.exe morre e reinicia. A ferramenta detecta a reinicialização e reinjeta no novo processo
  5. A concessão de autenticação persiste em aihost.exe (a revogação foi bloqueada). A extração começa imediatamente
  6. Sem Win+J, sem prompt do Hello, sem interface visível. Até 5 tentativas de reinjeção.

--wait é a contraparte passiva de --launch. Em vez de simular Win+J, a ferramenta fica ociosa enquanto o usuário abre o Recall por conta própria — da barra de tarefas, um atalho ou qualquer outro caminho. Quando AIXHost.exe aparece e o usuário completa o Hello naturalmente, o payload é injetado e a extração começa. Útil em uma máquina sendo observada, ou quando a sessão do Recall precisa parecer totalmente iniciada pelo usuário, sem entrada de teclado sintética.

A Cadeia de Extração

Uma vez dentro de AIXHost.exe, o payload inicializa um apartamento COM com CoInitializeEx(COINIT_APARTMENTTHREADED) e configura o encaminhamento de identidade do proxy com CoSetProxyBlanket(EOAC_DYNAMIC_CLOAKING). Isso é crítico. Sem o cloaking dinâmico, o proxy COM não carrega a identidade autenticada para o servidor.

A extração segue o mesmo caminho que a interface legítima do Recall usa:

  1. Inicialização do enclave: DataManager.Load() aciona o carregamento da chave do enclave. DataStoreManager.DecryptDatabase() (slot 37) prepara visualizações descriptografadas. O payload consulta DataManager.DataStatus até retornar 3 (desbloqueado).

  2. Enumeração de entidades: MemoryEntityStatics.GetLightMemoryItemsBefore() (slot 9) retorna um vetor de referências de entidades leves. Cada uma carrega um ID de contexto no offset +8. Em uma máquina típica, isso retorna centenas de entidades abrangendo dias ou semanas de atividade.

  3. Extração por entidade: Para cada ID de contexto, o payload carrega a entidade completa via ContextEngine2.TryGetEntityForId() (slot 6), desempacota-a através de IEntityWrapper (slot 6) e QueryInterface para IMemoryEntity. A partir daí:

    • Metadados (síncrono): título (slot 8), ID do modelo do aplicativo (slot 9), nome do aplicativo (slot 10), caminho do processo (slot 11), URL (slot 12), domínio (slot 13), URI do arquivo (slot 15), timestamp (slot 7), limites da janela (slot 16). Via QI para IMemoryEntity2/3: capacidade de restauração, tempo de permanência do aplicativo, tempo de permanência na web
    • Captura de tela (assíncrono): TryGetBitmapCaptureAsync() (slot 19) retorna um SoftwareBitmap. QueryInterface para ISoftwareBitmapNative, chame GetData(IID_IWICBitmap) para obter um bitmap WIC, codifique como PNG via IWICBitmapEncoder
    • OCR + NER + IA (assíncrono): ContextEngine2.TryGetMemoryEntityDetailsForIdAsync() (slot 8) retorna detalhes da entidade. QI para IMemoryEntityDetails para OcrLines (slot 7), IMemoryEntityDetails2 para entidades de texto NER (pessoas, e-mails, endereços) e IMemoryEntityDetails4 para descrições de atividades da IA
  4. Rodadas de repetição: Baker.dll (a biblioteca da interface do Recall) preenche o cache do ContextEngine de forma assíncrona. Após a passagem inicial, o payload bombeia mensagens do Windows por 3 segundos (loop PeekMessage/DispatchMessage) e tenta novamente quaisquer entidades que não estavam disponíveis. Cada rodada normalmente produz ~12 entidades adicionais. Até 10 rodadas de repetição.

Cada chamada é encapsulada em __try/__except porque uma única violação de acesso em uma chamada proxy COM mata permanentemente o canal RPC para aihost.exe. Não há recuperação. Você teria que reiniciar o AIXHost.exe. Os wrappers SEH capturam travamentos de tipos de parâmetros errados e mantêm a sessão ativa.

Capacidades Pré-Autenticação

Várias operações funcionam sem qualquer autenticação do Hello:

Extração de Captura de Tela: RecallPrivacyIndicatorSettings (CLSID {42C63551-...}) expõe GetRecentCaptureThumbnail(width, height) no slot 13. O nome do método diz "thumbnail", mas o servidor não impõe um limite de resolução. Passar 3840x3840 retorna a captura mais recente do Recall em resolução total. O resultado IRandomAccessStream é convertido para um IStream via CreateStreamOverRandomAccessStream (shcore.dll) e salvo como BMP.

Destruição de Dados: IDataStoreManager::DeleteEvents() (slot 12) limpa todo o histórico de capturas. Sem parâmetros, sem autenticação. A análise do Ghidra confirmou: o manipulador de exclusão em FUN_1802ddd10 não contém chamadas para a função de gate de autorização. A verificação de autenticação nunca foi conectada.

Divulgação de Metadados: Caminhos de armazenamento (incluindo o GUID UKP específico do usuário), tamanho do banco de dados, política de retenção, estado da captura e o ID de contexto da captura mais recente são todos legíveis sem autenticação via IDataStoreManagerStatics e RecallPrivacyIndicatorSettings.


Uso

Baixar ferramenta