1. Forense em Windows
Análise de Registro
Sandro Süffert - http://suffert.com
CTO, Techbiz Forense Digital
Versão:3
Criação: 07/03/2009 – Última atualização: 26/09/2010
2. Forense em Windows
• Temas:
– A: Aquisição e Análise de Memória (8hs)
– B: Análise de Registro (8hs)
3. Tema B: Material de Referência
Livros:
I - Windows Forensic Analysis v2, Harlan Carvey
Capítulos 3 – Windows Memory Analysis, Capítulo 4 – Registry Analysis
II - EnCE – The Official Encase Certified Examiner Study Guide, 2nd Edition, Steve Bunting
Capítulos 3 – First Response e 9 – Windows Operating System Artifacts e 10 – Advanced Windows - Registry
III - Malware Forensics – Investigating and Analyzing Malicious Code, James Aquilina, - Eoghan Casey, Cameron Malin
Capítulos 3 – Memory Forensics: Analyzing Physical and Process Memory Dumps e 9 – Analysis of a Suspect Program
IV – Microsoft Windows Registry Guide, 2nd Edition
V - Windows Registry Forensics – Harlan Carvey
4. Tema B: Material de Referência
Papers / Documentações:
“Inside the Registry” Windows NT Magazine – Mark Russinovich
http://technet.microsoft.com/en-us/library/cc750583.aspx
Windows 7 UserAssist Registry Keys - Didier Stevens: Into The Box Magazine.
http://intotheboxes.wordpress.com/2010/04/05/into-the-boxes-issue-0x1/
Guide To Profiling USB Device Thumbdrives and Drive Enclosure on Win7, Vista, and XP – DVD 3
http://blogs.sans.org/computer-forensics/files/2009/09/USBKEY-Guide.pdf
http://blogs.sans.org/computer-forensics/files/2009/09/USB_Drive_Enclosure-Guide.pdf
RegRipper Documentation - http://regripper.net/RR/Documents/Documents.zip - DVD 3
Registry Reference Deleted Apps ACMRU Windows Forensic Analysis - RegRipper version 2.02 Cheat Sheet
AccessData Registry Viewer Documentation - DVD 3: http://www.accessdata.com/supplemental.html
Registry Quick Find Chart Registry Offset UserAssist Registry Key
Forensic Analysis of the Windows Registry in Memory - Brendan Dolan-Gavitt: http://www.dfrws.org/2008/proceedings/p26-dolan-gavitt.pdf
Recovering Deleted Data From the Windows Registry - Timothy Morgan: http://www.dfrws.org/2008/proceedings/p33-morgan.pdf
Forensic Analysis of Unnalocated Space in Windows Registry Hive Files – Jolantha Thomasen (University of Liverpool)
http://www.sentinelchicken.com/data/JolantaThomassenDISSERTATION.pdf
5. Tema B: Ferramentas
1) Virtual Machines:
1.0) VMWare Workstation, Server ou Player: http://www.vmware.com - DVD 2
1.1) VM SIFT Workstation 2.0: https://computer-forensics2.sans.org/community/siftkit/ - DVD 0
1.2) VM de Laboratório: “XPDUMMY” – DVD 1 e 2
2) Ferramentas Free/GPL:
2.1 - FTKImager - http://www.accessdata.com/downloads.html#FTKImager – DVD 2
2.2 - Process Monitor - Sysinternals - http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx - DVD 3
2.4 – Reg Ripper (+ RegSlack, + RegScan, +RipXp) - http://regripper.net/?page_id=150 - DVD 3
2.5 – Registry Viewer - AccessData: http://www.accessdata.com/downloads.html#ForensicProducts – DVD 3
2.6 – Registry Summary Report Files - AccessData: http://www.accessdata.com/downloads/rsrfiles/AllRSRFiles.zip - DVD 3
2.7 – RegExtract (GUI/CLI) – WoanWare: http://www.woanware.co.uk/downloads/ - DVD 3
2.8 – RegShot - http://sourceforge.net/projects/regshot/files/ - DVD 3
2.9 – RegLookup - http://projects.sentinelchicken.org/reglookup/download/ - DVD 3
2.10 – USBDeview - http://www.nirsoft.net/utils/usb_devices_view.html - DVD 3
2.11 – USBDeviceForensics - http://www.woanware.co.uk/usbdeviceforensics/ - DVD 3
2.12 – UserAssist - http://blog.didierstevens.com/programs/userassist/ - DVD 3
2.12 – FGET – https://www.hbgary.com/community/free-tools/ – DVD 2
2.13 – TimeLord - http://computerforensics.parsonage.co.uk/timelord/timelord.htm - DVD 3
2.14 – MiTec Windows Registry Recovery – http://www.mitec.cz/wrr.html DVD 3
3) Ferramentas Comerciais:
3.1 – AccessData FTK 3.1 + Registry Viewer – http://www.accessdata.com
3.2 – Encase Forensics 6.17 – http://www.guidancesoftware.com
UserAssist Decoder V3.3 Enscript - https://support.guidancesoftware.com/forum/downloads.php?do=file&id=832 – DVD 3
Registry Examiner Enpack - https://support.guidancesoftware.com/forum/downloads.php?do=file&id=752 – DVD 3
6. Organização e Ordenação de dados
• Bases: binária (0,1) /decimal (0-9) / hexadecimal (0-F):
“Dezoito” = decimal 18 (10+8), hexadecimal 12 (16 + 2), binário = 00010010 (2^2 + 2^4) = (4+16)
• Bit/Byte/Word/Dword/Qword:
– 1 bit 1
– 4 bits = 1 nibble 0001
– 8 bits = 2 nibbles = 1byte 0000-0001
– 16 bits = 2 bytes = 1 word 0000-0000 0000-0001
– 32 Bits = 4 bytes = 2 words = 1 Dword 0000-0000 0000-0000 0000-0000 0000-0001
– 64 Bits = 8 bytes = 4 words = 2 Dwords = 1 Qword 0000-0000 0000-0000 0000-0000 0000-0000
0000-0000 0000-0000 0000-0000 0000-0001
• Ordenação das Unidades (Bit..Word)
– Big Endian: leitura a partir do bit mais significativo – esquerda pra direita (Intel)
– Little Endian: leitura a partir do bit menos significativo – direita pra esquerda (Motorola)
• ASCII (1 byte): 1=0x31, A=0x41 / Unicode (2 bytes) a=0x0061, β = 0x03B2
7. Registro - definição
“A central hierarchical database used in Microsoft Windows
9x,Windows CE, Windows NT, and Windows 2000 * used to store
information necessary to configure the system for one or more
users, applications and hardware devices.”
Microsoft Computer Dictionary, 5th edition
* todas versões modernas do Windows possuem Registro
8. Registro - definição
– Banco de dados hierárquico que contém informações
de configuração
• Registro em disco (ex: c:windowssystem32config*)
• Registro LIVE (Memória)
• Registro presente em espaço não alocado e arq. hibernação
– Exemplos de informações armazenadas em registro:
– Configurações de inicialização
– Configurações de Hardware
– Configurações de Drivers
– Configurações de Usuários
– Configurações de aplicações
– Dados do usuário logado (current user)
9. Registro - história
– Informações de configuração no DOS e versões
iniciais do Windows (até 3.11) eram controladas
por arquivos:
• autoexec.bat
• config.sys
• win.ini
• system.ini
– Definiam que programas eram executados
automaticamente e o ambiente do sistema e
interação com os usuários
10. Registro
– Nas versões modernas do Windows, estes
arquivos em texto claro foram substituídos por um
banco de dados central e hierárquico responsável
por manter as configurações de:
• Sistema Operacional
• Aplicações
• Dispositivos de Hardware
• Usuários
11. Registro
• Administradores podem modificar o registro:
– Registry Editor (c:windowsRegedit.exe, ..system32Regedt32.exe)
– C:windowssystem32Reg.exe
– Group Policy (MMC - )
– System Policy
– Registry (.reg) files
– WMIC (Windows Management Instrumentation)
– VisualBasic script files (Métodos RegRead, RegDelete, RegWrite)
http://support.microsoft.com/kb/256986
12. Registro
• No Windows NT e 2000:
– o regedit era usado para procurar por chaves de
registro, mas não tinha suporte à certos tipos de
dados (REG_EXPAND_SZ e REG_MULTI_SZ)
– o regedt32.exe não permitia a importação e
exportação de arquivos “.reg” (hive files)
• A partir do Windows XP e 2003, o regedit.exe
possui todas as funcionalidades, e o
regedt32.exe apenas o executa.
13. Registro
• Regedit permite que o administrador navegue
pela estrutura do registro, a partir de cinco
“root hives”:
16. Registro - Localizações
HKCR: Configurações relacionadas a aplicações responsáveis por abertura de
diferentes tipos de aplicação / extensões *
HKCU: contém o perfil ativo do usuário logado
HKLM: informações de configuração de harware e softwares do sistema
HKU: contém todos os profiles de usuários do sistema
HKCC: contém o perfil de harware utilizado pelo sistema na inicialização
HKLMSystem %WINDIR%system32configSystem
HKLMSAM %WINDIR%system32configSAM
HKLMSecurity %WINDIR%system32configSecurity
HKLMSoftware %WINDIR%system32configSoftware
* HKCR = HKCUSoftwareClasses + HKLMSoftwareClasses
HKLMHardware hive volátil
HKLMSystemClone hive volátil
HKUDefault %WINDIR%system32configDefault
HKEY_USERS<User SID> NTUSER.DAT em
Documents and Settings<User> (2000/XP/2003)
Users<User> (Vista/7/2008)
17. Tipos de Dados (Data Types):
• REG_BINARY Dados Binários (raw)
• REG_DWORD Inteiro de 4-bytes (32-bit)
• REG_SZ String de tamanho fixo
• REG_EXPAND_SZ String de tamanho variável
• REG_MULTI_SZ Múltiplas Strings separadas por espaço ou vírgula
• REG_NONE Sem tipo de dados
• REG_QWORD Inteiro de 8 bytes (64-bit)
• REG_LINK String Unicode nomeando um link simbólico
• REG_RESOURCE_LIST Arrays listando uma lista de recursos
• REG_RESOURCE_REQUIREMENTS_LIST Arrays listando recursos de hardware para drivers
• REG_FULL_RESOURCE_DESCRIPTOR Arrays listando listas de recursos de um dispositivo de harware
18. Estruturas dos Hives de Registro
• Útil para extração de dados relacionados ao
registro do arquivo de paginação, memória e
espaço não alocado.
– Melhor documentação: Inside the Registry, Mark Russinovich -
http://technet.microsoft.com/en-us/library/cc750583.aspx
19. Registro - Estruturas
Célula Descrição
Célula que contém uma chave de registro, também chamada de ‘key node’. A chave (key cell) contém
Key cell uma assinatura (kn = chave, kl = link simbólico), o timestamp do update mais recente, o índice
de sua chave-pai, o índice da chave ‘sub-key-list’ que identifica suas sub-chaves, um índice para
a ‘security descriptor’ da chave, um índice para uma chave string que especidica o nome de
classe da chave, e o nome da chave (ex: CurrentControlSet).
Value cell Célula que contém informações sobre o valor da chave. Contém uma assinatura (kv), o tipo do
valor (ex: REG_DWORD, REG_BINARY), e o nome do valor (ex: Boot-Execute). A ‘value cell’
também contém o índice para a célula que contém os dados do valor.
Subkey-list cell
Célula composta por uma lista de indices para ‘key cells’ que são sub-chaves de um pai comum.
Value-list cell
Célula composta por uma lista de índices para ‘value cells’ que são valores de um pai comum.
Security-
descriptor cell Célula que contém um ‘security descriptor’. Contém uma assinatura (ks) e um contador de
referência que registra o número de ‘key nodes’ que compartilham este ‘security descriptor’.
20. Estrutura do Hive de Registro
fonte: Forensic Analysis of Unnalocated Space in Windows Registry Hive Files – Jolantha Thomasen (University of Liverpool)
21. Assinaturas de células de registro
• Assinaturas (headers)de células:
– key cell "nk"
– security descriptor cell "sk"
– subkey list cell "lk", "lh", "ri", "li"
– value cell "vk“
• Sem assinatura:
– class name cell
– value list cell
– value data cell
fonte: Forensic Analysis of Unnalocated Space in Windows Registry Hive Files – Jolantha Thomasen (University of Liverpool)
22. Estrutura do Hive - exemplo
“The figure shows one base block and two bins. The first bin is
empty, and the second bin contains several cells. Logically, the
hive has only two keys: the Root key, and a Subkey of Root.
Root has two values, Val 1 and Val 2. A subkey-list cell locates
the root key's subkey, and a value-list cell locates the root
key's values. The free spaces in the second bin are empty cells.”
fonte: http://technet.microsoft.com/en-us/library/cc750583.aspx
23. Estrutura do Hive
semelhança com a página de memória
“To deal with noncontiguous memory buffers storing hive data in memory, the Configuration Manager adopts a
strategy similar to what NT's Memory Manager uses to map virtual memory addresses to physical memory
addresses.
The Configuration Manager employs a two-level scheme, that takes as input a cell index (i.e., a hive file offset)
and returns as output both the address in memory of the block the cell index resides in and the address in
memory of the bin the cell resides in. Remember that a bin can contain one or more blocks and that hives grow
in bins, so NT always represents a bin with a contiguous memory buffer. Therefore, all blocks within a bin occur
within the same portion of a paged pool.”
fonte: http://technet.microsoft.com/en-us/library/cc750583.aspx
27. Chaves de Registro - referências
• Registry Quick Find Chart 7-22-08.pdf (AD)
• DVD3AccessData_Registry_ViewerRegistry...pdf
• Windows Forensics Analysis 2 - regref.xls
• DVD3WFA2_Registry_ChartWFA2_ch4_regref.xls
• Categorias:
28. Análise de Registro
Algumas chaves de registro contém informações
importantes para várias investigações.
Outras chaves contém informações relevantes a
alguns tipos de investigações, como fraudes,
invasões ou uso indevido de recursos
computacionais.
29. Lab 0 – Visualização de Arquivos
Windows XP:
Control Panel -> Folder Options -> View
Windows 7:
Control Panel -> Appearance and Personalization ->
-> Folder Options -> Show hidden files and folders
1
2
3
30. Lab 0 - Teste do ambiente
– Logar na máquina virtual “XPDUMMY”
• Usuário: administrator
• Senha: password
– Configurar rede:“host-only / private network”
31. Lab 0 – Teste do ambiente
– Logar na máquina virtual “SIFT 2.0”
• Usuário: sansforensics
• Senha: forensics
– Configurar rede:“host-only / private network”
32. Lab 1 – FTK Imager (XPDUMMY)
Obtenha os arquivos de registro da máquina XPDUMMY
33. Lab 1 – FTKImager – Máquina Host
Obtenha os arquivos de registro da máquina HOST (notebook)
39. LAB 2 – Registry Ripper - plugins
NTUSER.DAT – TypedURLs: URLs Digitadas no Internet Explorer:
SOFTWARE – Current Version: Dados do sistema e registro:
41. Lab 2 - MuiCache
Presente no arquivo NTUSER.DAT – possui lista de aplicações executadas por um usuário
XP: HKCUSoftwareMicrosoftWindowsShellNoRoamMUICache
Vista/7: HKCUSoftwareClassesLocal SettingsSoftwareMicrosoftWindowsShellMuiCache
Ferramenta para análise de Windows “Live”: http://www.nirsoft.net/utils/muicache_view.html
49. Lab 2 – Tools - UserAssist
Estatísticas da execução de programas via Windows Explorer (NTUSER.DAT)
XP – pode ser desabilidado: Vista/7:
HKEY_CURRENT_USER
Software
Microsoft
Windows
CurrentVersion
Explorer
UserAssist
Settings
Nolog
(DWORD=1)
http://blog.didierstevens.com
51. Lab 2 – Tools – UserAssist
HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerUserAssist
Windows XP – UserAssist:
Cifra - ROT13 (A->N, B->O, ...)
Inicia o contador em 5.
Windows 7/2008 beta – UserAssist:
Cifra – Vignère (key: BWHQNKTEZYFSLMRGXADUJOPIVC)
Windows 7/2008 – UserAssist:
Cifra – ROT13 / inicia o contador em 0 / contador de foco em aplicações
fonte: Windows 7 UserAssist Registry Keys - Didier Stevens: Into The Box Magazine.
53. Lab 2 – UserAssist
HKEY_CLASSES_ROOT -
HKEY_LOCAL_MACHINESOFTWAREClassesCLSID
GUID Name
0D6D4F41-2994-4BA0-8FEF-620E43CD2812 Internet Explorer 7
75048700-EF1F-11D0-9888-006097DEACF9 system32shell32.dll
... ...
“A GUID (globally unique identifier) is a 128-bit integer (16 bytes) that can be
used across all computers and networks wherever a unique identifier is required.
Such an identifier has a very low probability of being duplicated.”
http://msdn.microsoft.com/en-us/library/system.guid.aspx
70. Lab 6: Live Registry
root@SIFT-Workstation:/usr/local/src/volatility# perl rip.pl -r
/media/usb/fdpro_dump/20100817_fdpro_xpdummy_dump.bin@0xe17c9888 -f sam
Parsed Plugins file.
Launching samparse v.20080415
User Information
-------------------------
Username : Administrator [500]
Full Name :
User Comment : Built-in account for administering the computer/domain
Last Login Date : Fri Aug 13 21:47:26 2010 Z
Pwd Reset Date : Wed Jun 27 22:54:58 2007 Z
Pwd Fail Date : Fri Aug 13 00:59:01 2010 Z
Login Count : 55
--> Password does not expire
(...)
71. Lab 7 – regslack
Análise de estruturas no espaço não alocado (slack) de registro
Jolanta Thomassen (University of Liverpool)
72. Lab 8 – System Restore Points
– O Windows XP possui uma funcionalidade
chamada System Restore, que mantém pontos de
restauração – inclusive do registro - para que seja
possível a restauração de configurações no caso
de um problema ou pane
• Por default um ponto de restauração é criado
diariamente pelo serviço System Restore.
• Pontos de restauração também são criados quando
aplicações ou drivers não assinados são instalados e
durante o AutoUpdate.
73. Lab 8 – System Restore Points
• HKLMSOFTWAREMicrosoftWindows
NTCurrent VersionSystemRestore
– Chave RPGlobalInterval - Valor em segundos
(86400 = 1 dia) periodicidade da execução
– http://support.microsoft.com/kb/295659
74. Lab 8 – System Restore Points
<= XP
Vista/7 =>
76. Lab 8 – Usrclass.dat - Virtualização
– A partir do Windows Vista, quando um usuário sem
privilégios de administrador executa uma aplicação que
os requer, e tenta escrever em uma chave e registro
• Ex: tentativa de escrita em HKLMSoftwareApp,
automaticamente será redirecionada para HKEY_USERS{User
SID}_ClassesVirtualStoreMachineSoftware
– Estas chaves não estão no hive NTUSER.DAT, mas sim
em AppDataLocalMicrosoftWindowsusrclass.dat