Microsoft Office (arquivos recentes, documentos confiáveis, configurações de macro)¶
O que o Office registra¶
O Microsoft Office mantém, por usuário em NTUSER.DAT e por versão e aplicativo:
- Arquivos e locais recentes:
File MRU, os documentos que um aplicativo abriu, ePlace MRU, as pastas a partir das quais os abriu, cada item com o horário em que foi aberto pela última vez. O Microsoft 365 também mantém uma lista por conta conectada (User MRU\<account>). - Documentos confiáveis: quando um usuário clica em Habilitar Edição (Enable Editing) ou Habilitar Conteúdo (Enable Content) em um documento,
o Office o guarda em
TrustRecords: o caminho do documento, quando ele foi considerado confiável e se suas macros foram habilitadas. - Configurações de macro:
VBAWarnings(quais macros são executadas),BlockContentExecutionFromInternet(se as macros em arquivos vindos da Internet são bloqueadas),AccessVBOM(se programas podem alterar projetos VBA) e os Locais Confiáveis, pastas cujos documentos têm as macros executadas sem perguntar. A Política de Grupo pode definir o mesmo emSoftware\Policies.
Um documento malicioso geralmente precisa que o usuário habilite suas macros: um registro de confiança cujas macros foram habilitadas vincula o documento, o usuário e um horário.
Melhor conclusão: o usuário abriu este documento neste aplicativo (e pela última vez neste horário); o usuário habilitou a edição ou as macros deste documento neste horário; o Office estava configurado para executar macros desta forma.
Localização¶
C:\Users\<user>\NTUSER.DAT
Software\Microsoft\Office\<version>\<application>\File MRU Item 1, Item 2, …
Software\Microsoft\Office\<version>\<application>\Place MRU
Software\Microsoft\Office\<version>\<application>\User MRU\<account>\File MRU
Software\Microsoft\Office\<version>\<application>\Security\Trusted Documents\TrustRecords
Software\Microsoft\Office\<version>\<application>\Security VBAWarnings, …
Software\Microsoft\Office\<version>\<application>\Security\Trusted Locations\LocationN
Software\Policies\Microsoft\Office\<version>\<application>\Security by policy
Versões: 16.0 é o Office 2016 e posteriores (2019, 2021, 2024, Microsoft 365), 15.0 o Office 2013,
14.0 o Office 2010, 12.0 o Office 2007.
Um item tem a forma [F00000000][T01D86AF6D3C287B0][O00000000]*C:\Users\alice\report.docx: T
é o horário da última abertura (um FILETIME em hexadecimal), e o caminho vem depois de *. Um registro de confiança tem 24
bytes: o FILETIME em que o documento foi considerado confiável e, em seguida, seus flags nos últimos 4 bytes, 0x7FFFFFFF
quando suas macros foram habilitadas e 0x00000001 quando apenas sua edição foi.
Cuidados para o analista¶
- Horários.
LastOpenedUTCé o horário próprio de cada item.TrustedAtUTCé quando o usuário considerou o documento confiável, o momento em que Habilitar Edição ou Habilitar Conteúdo foi clicado, o que pode ser anterior à abertura mais recente. - Macros habilitadas, não executadas.
MacrosEnabledindica que o usuário habilitou as macros do documento; isso não prova que uma macro foi executada nem o que ela fez. Correlacione com a criação de processos, o Prefetch, os logs do PowerShell e o próprio documento. - Caminhos como o Office os armazena. Os registros de confiança identificam o documento por um caminho que pode usar
%USERPROFILE%, barras normais, uma URLfile:///e codificação de URL (%20). Os itens MRU de documentos na nuvem são URLs. - Padrões e política efetiva. O Office cria locais confiáveis padrão (
Templates,XLSTART,STARTUP, …). ADatede um local é uma pista útil, não uma prova de quem o criou: administradores, scripts, políticas e configurações de Registro copiadas também podem preenchê-lo. A ausência deVBAWarnings, por si só, não estabelece a política de macros efetiva. A versão do Office, a marcação de arquivos vindos da Internet e outras configurações de gerenciamento também importam. A Microsoft explica o bloqueio de macros da Internet. - Documentos excluídos. As listas sobrevivem aos documentos; um arquivo ausente ainda pode aparecer aqui. As listas são curtas e são limpas pela opção Limpar itens não fixados (Clear unpinned items) do Office e por ferramentas de limpeza.
Analisar com o Juntei¶
Usage: juntei parse-registry office <INPUT> [OPTIONS]
Input:
-d, --directory <DIR> Recursively find NTUSER.DAT hives
-f, --file <FILE> Parse one NTUSER.DAT
--log1/--log2 Supply transaction logs explicitly
--no-logs Do not replay logs
Output:
-o, --output <FILE> Save records
-t, --output-type <TYPE> csv, json, or jsonl
juntei parse-registry office -d evidence/ -o office.csv
juntei parse-registry office -f NTUSER.DAT -t jsonl | jq 'select(.MacrosEnabled == true)'
O resumo lista os documentos cujas macros foram habilitadas, as configurações que permitem que as macros sejam executadas com mais
liberdade (VBAWarnings 1, BlockContentExecutionFromInternet 0, AccessVBOM 1,
AllowNetworkLocations 1), os locais confiáveis adicionados por usuários ou definidos por política, e os documentos
abertos por último.
Campos de saída¶
| Campo | Interpretação |
|---|---|
Host, User, UserSID, SourcePath |
Host, o dono do perfil (a partir do caminho ou das pastas do shell), o SID a partir do ProfileList do sistema e o hive. |
OfficeVersion, App |
A chave da versão (16.0) e o aplicativo (Word, Excel, …). |
List |
File MRU, Place MRU, TrustRecords, Security ou Trusted Locations. |
Account |
A conta do Microsoft 365 de uma lista User MRU. |
Policy |
Se a configuração ou o local é definido por política. |
MRU-Position, IsMostRecent |
A posição de um item em sua lista (Item 1 é 0, o mais recente). |
Path |
O documento ou a pasta; o caminho de um documento confiável conforme armazenado; o Path de um local confiável. |
LastOpenedUTC |
Quando o item foi aberto pela última vez. |
TrustedAtUTC, MacrosEnabled, TrustFlags |
Quando o documento foi considerado confiável, se suas macros foram habilitadas e os flags do registro. Flags desconhecidos deixam MacrosEnabled vazio e geram um diagnóstico. |
Setting, Value |
Uma configuração de macro e seu valor com o respectivo significado (1 (all macros enabled)); a chave de um local confiável (Location3) e seus outros valores (AllowSubFolders=1; Date=…; Description=…). |
KeyPath, KeyLastWrittenUTC |
A chave e sua última gravação. |
DataRaw |
Os bytes do valor (hex) quando não são decodificados. |
TransactionLogStatus, LogsApplied |
Contexto de recuperação do Registro. |
Problems |
Itens sem * ou com um horário inválido, registros de confiança que não têm 24 bytes, locais sem Path, tipos errados. |
Estratégia de investigação¶
- Comece pelos registros com
MacrosEnabledverdadeiro: quais documentos, quando e por quem. Encontre os arquivos ($MFT, Diário USN,Zone.Identifier), sua origem (histórico do navegador e de e-mail) e o que foi executado em seguida. - Verifique as configurações de macro e os locais confiáveis: todas as macros habilitadas, macros da Internet não
bloqueadas, acesso a projetos VBA ou um local adicionado pelo usuário (em
Downloads,Temp, um compartilhamento de rede) enfraquecem os padrões. - Coloque
LastOpenedUTCna linha do tempo com arquivos LNK, Jump Lists e RecentDocs para os caminhos dos documentos, incluindo locais removíveis e de rede.