Como despejar o arquivo SAM do Windows enquanto o sistema está em execução?

14

Eu explorei máquinas de teste usando metasploit e pude obter os hashes do arquivo SAM; Eu tentei executar comandos SYSTEMpara obtê-los, mas não consigo. O que é um método mais portátil para extrair os hashes do arquivo SAM?


fonte

Respostas:

12

Não é um problema de permissão - o Windows mantém um bloqueio exclusivo no arquivo SAM (que, tanto quanto eu sei, é um comportamento padrão para as seções do registro carregadas), por isso é impossível para qualquer outro processo abri-lo.

No entanto, as versões recentes do Windows têm um recurso chamado "Volume Shadow Copy", projetado para criar instantâneos somente leitura de todo o volume, principalmente para backups. Os bloqueios de arquivo existem para garantir a consistência dos dados, portanto, são desnecessários se for feito um instantâneo de todo o sistema de arquivos. Isso significa que é possível criar um instantâneo C:, montá-lo, copiar seu SAMarquivo e descartar o instantâneo.

A maneira exata de fazer isso depende da sua versão do Windows: o XP precisa de um programa externo, o Vista e o 7 têm vssadmin create shadow, e o Server 2008 tem o diskshadowcomando. A página Despejos de hash com segurança de controladores de domínio ativo contém mais detalhes sobre esse processo, além de instruções e scripts.

Como alternativa, existem ferramentas como as samdumpque abusam do processo LSASS de várias direções para extrair todos os hashes de senha diretamente da memória. Eles podem ser muito mais rápidos do que os instantâneos do VSS, mas têm um risco maior de travar o sistema.

Por fim, o Google traz esse trecho, cuja utilidade não posso avaliar por nunca ter usado o metaploit:

meterpreter> use priv
meterpreter> hashdump
user1686
fonte
Qual é a diferença entre os arquivos SAM \ SYSTEM e as subchaves do Registro SAM \ SYSTEM (refiro-me à resposta do vmarquet )? O conteúdo é o mesmo?
GordonAitchJay
1
Sim, esses arquivos são realmente onde o banco de dados do registro está armazenado - o arquivo "SYSTEM" contém os dados de HKLM \ SYSTEM. (Quero dizer, ele precisa ser armazenado em algum arquivo em algum lugar, não é?) Você pode HKLM\SYSTEM\CurrentControlSet\Control\HiveListver quais subchaves correspondem a quais arquivos.
user1686 24/02
12

Existe uma solução mais simples que não precisa gerenciar volumes de sombra ou usar ferramentas externas. Você pode simplesmente copiar SAM e SYSTEM com o regcomando fornecido pela microsoft (testado no Windows 7 e Windows Server 2008):

reg save hklm\sam c:\sam
reg save hklm\system c:\system

(o último parâmetro é o local em que você deseja copiar o arquivo)


Você pode então extrair os hashes em um sistema Linux com o pacote samdump2 (disponível no Debian:) apt-get install samdump2:

$ samdump2 system sam
Administrator:500:aad3b435b51404eeaad3b435b51404ee:c0e2874fb130015aec4070975e2c6071:::
*disabled* Guest:501:aad3b435b51404eeaad3b435b51404ee:d0c0896b73e0d1316aeccf93159d7ec0:::
vmarquet
fonte
Em quais tipos de janelas isso funciona (ou melhor, em quais não)? tentou dizer a partir do site MSDN mas esquentar lista (pelo menos eu não vê-lo)
n00b
isso apenas despeja contas locais. Para obter creds de domínio em cache, você também precisa obter SEGURANÇA a partir do registro. então você pode executar: python /usr/share/doc/python-impacket/examples/secretsdump.py -sam SAM -security SECURITY -system SYSTEM LOCAL para despejar todos os cleds em cache.
N00b
5

Edit: Decidi editar depois de muitos anos de abandono.


O arquivo SAM do Windows está impedido de copiar / ler, diferente /etc/shadow dos sistemas Linux. Em vez disso, para contornar essas ferramentas extrairá hashes da memória.

Existem maneiras de contornar isso que abordarei abaixo:

Mimikatz

Execute mimikatz com sekurlsa::logonpasswords.

fgdump

Funcionalidade semelhante à mimikatz. Execute-o e os hashes serão despejados nos arquivos locais.

hashdump

Construído em meterpreter; extrai hashes da memória.

Registro

Também é possível extrair do registro (se você tiver SYSTEMacesso):

  1. reg save hklm\sam %tmp%/sam.reg e reg save hklm\system %tmp%/system.reg
  2. Copie os arquivos e execute: samdump2 system sam

Backups

O arquivo SAM também pode ser armazenado em um local de backup: C:\Windows\Repair\SAM

Também devo mencionar que as ferramentas exigirão no mínimo Administratorprivilégios; e a maioria não terá todos os hashes, a menos que o SYSTEMacesso seja alcançado.


fonte
Talvez eu tenha entendido errado, mas de que maneira as ferramentas são Mimikatzou fgdumpmais portáteis que a C&A ou diferentes? Pelo que sei, são todas as ferramentas de terceiros que não são fornecidas com o Windows e precisam ser carregadas separadamente. Além disso, para minha própria curiosidade, qual é o caso de uso das ferramentas de descarte de hash quando existem ferramentas como o Ophcrack?
Hashim
O mimikatz pode ser usado para decifrar hashes locais em um sistema desligado por meio de um disco inicializável ou foi projetado apenas para ser executado em um sistema ligado?
Hashim 11/10
1

O método Obscuresec supera suas dificuldades localmente em qualquer máquina com Windows PowerShell 1.0. Deixa de fora alguns objetivos que eu conheço, mas ei, bom trabalho! (obrigado Chris).

Nota: Privilégios de administrador sempre são necessários para executar essa operação

Você poderia usar

http://gallery.technet.microsoft.com/scriptcenter/Get-PasswordFile-4bee091d

ou de outra fonte (mais recente devo acrescentar)

https://github.com/obscuresec/PowerShell/blob/master/Get-PasswordFile

Leitura recomendada:

Para pegar sistemas remotos, as colmeias SAM e SYSTEM usam o mencionado acima em conjunto com

Marco Vaz
fonte
1

Gostaria de especificar um método adicional que não é descrito aqui, pois muito tempo no Red Teaming / Penetration Testing as maneiras mais óbvias não são acessíveis (negadas, são monitoradas pelo Blue Team, etc.) e é bom conhecer todas as técnicas disponíveis.

Uma das soluções alternativas para acessar arquivos, nas quais o sistema possui identificadores (não é possível copiar / remover normalmente), é vssshadow.exeinformada acima.

Segundo - esentutil.exe.

Comando exato para tirar uma cópia do arquivo com o identificador:

esentutl.exe /y /vss c:\windows\ntds\ntds.dit /d c:\folder\ntds.dit

Isso se aplica a SAM, SYSTEM, SECURITY, NTDS.DIT ​​etc.

PS Há esentutl.pyno pacote do impacket: https://github.com/SecureAuthCorp/impacket/blob/master/examples/esentutl.py

Imagem PSS esentutl PoC

dtrizna
fonte