Eu explorei máquinas de teste usando metasploit e pude obter os hashes do arquivo SAM; Eu tentei executar comandos SYSTEM
para obtê-los, mas não consigo. O que é um método mais portátil para extrair os hashes do arquivo SAM?
Eu explorei máquinas de teste usando metasploit e pude obter os hashes do arquivo SAM; Eu tentei executar comandos SYSTEM
para obtê-los, mas não consigo. O que é um método mais portátil para extrair os hashes do arquivo SAM?
Respostas:
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 SAM
arquivo 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 diskshadow
comando. 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 samdump
que 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
HKLM\SYSTEM\CurrentControlSet\Control\HiveList
ver quais subchaves correspondem a quais arquivos.
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 reg
comando 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:::
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:
Execute mimikatz com sekurlsa::logonpasswords
.
Funcionalidade semelhante à mimikatz. Execute-o e os hashes serão despejados nos arquivos locais.
Construído em meterpreter; extrai hashes da memória.
Também é possível extrair do registro (se você tiver SYSTEM
acesso):
reg save hklm\sam %tmp%/sam.reg
e reg save hklm\system %tmp%/system.reg
samdump2 system sam
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 Administrator
privilégios; e a maioria não terá todos os hashes, a menos que o SYSTEM
acesso seja alcançado.
Mimikatz
ou fgdump
mais 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?
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
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.exe
informada 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.py
no pacote do impacket:
https://github.com/SecureAuthCorp/impacket/blob/master/examples/esentutl.py
Imagem PSS esentutl PoC