Stealing Windows Credentials
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Encontre outras coisas que o Mimikatz pode fazer em esta página.
Saiba mais sobre algumas possíveis proteções de credenciais aqui. Essas proteções podem impedir que o Mimikatz extraia algumas credenciais.
Use o Credentials Plugin que eu criei para procurar por senhas e hashes dentro da vítima.
Como Procdump do SysInternals é uma ferramenta legítima da Microsoft, não é detectado pelo Defender. Você pode usar esta ferramenta para extrair o processo lsass, baixar o dump e extrair as credenciais localmente do dump.
Este processo é feito automaticamente com SprayKatz: ./spraykatz.py -u H4x0r -p L0c4L4dm1n -t 192.168.1.0/24
Nota: Alguns AV podem detectar como malicioso o uso de procdump.exe para despejar lsass.exe, isso ocorre porque eles estão detectando a string "procdump.exe" e "lsass.exe". Portanto, é mais discreto passar como um argumento o PID de lsass.exe para procdump em vez de usar o nome lsass.exe.
Uma DLL chamada comsvcs.dll encontrada em C:\Windows\System32
é responsável por despejar a memória do processo em caso de falha. Esta DLL inclui uma função chamada MiniDumpW
, projetada para ser invocada usando rundll32.exe
.
É irrelevante usar os dois primeiros argumentos, mas o terceiro é dividido em três componentes. O ID do processo a ser despejado constitui o primeiro componente, o local do arquivo de despejo representa o segundo, e o terceiro componente é estritamente a palavra full. Não existem opções alternativas.
Ao analisar esses três componentes, a DLL é acionada para criar o arquivo de despejo e transferir a memória do processo especificado para este arquivo.
A utilização de comsvcs.dll é viável para despejar o processo lsass, eliminando assim a necessidade de fazer upload e executar procdump. Este método é descrito em detalhes em https://en.hackndo.com/remote-lsass-dump-passwords/.
O seguinte comando é empregado para execução:
Você pode automatizar esse processo com lssasy.
Clique com o botão direito na Barra de Tarefas e clique em Gerenciador de Tarefas
Clique em Mais detalhes
Procure pelo processo "Local Security Authority Process" na aba Processos
Clique com o botão direito no processo "Local Security Authority Process" e clique em "Criar arquivo de despejo".
Procdump é um binário assinado pela Microsoft que faz parte do conjunto sysinternals.
PPLBlade é uma ferramenta de despejo de processo protegido que suporta a ofuscação de despejos de memória e a transferência em estações de trabalho remotas sem gravá-los no disco.
Funcionalidades principais:
Contornar a proteção PPL
Ofuscar arquivos de despejo de memória para evadir mecanismos de detecção baseados em assinatura do Defender
Fazer upload de despejos de memória com métodos de upload RAW e SMB sem gravá-los no disco (despejo sem arquivo)
Esses arquivos devem estar localizados em C:\windows\system32\config\SAM e C:\windows\system32\config\SYSTEM. Mas você não pode apenas copiá-los de uma maneira regular porque estão protegidos.
A maneira mais fácil de roubar esses arquivos é obter uma cópia do registro:
Baixe esses arquivos para sua máquina Kali e extraia os hashes usando:
Você pode realizar cópias de arquivos protegidos usando este serviço. Você precisa ser Administrador.
O binário vssadmin está disponível apenas nas versões do Windows Server.
Mas você pode fazer o mesmo a partir do Powershell. Este é um exemplo de como copiar o arquivo SAM (o disco rígido usado é "C:" e está salvo em C:\users\Public), mas você pode usar isso para copiar qualquer arquivo protegido:
Finalmente, você também pode usar o script PS Invoke-NinjaCopy para fazer uma cópia do SAM, SYSTEM e ntds.dit.
O arquivo NTDS.dit é conhecido como o coração do Active Directory, contendo dados cruciais sobre objetos de usuário, grupos e suas associações. É onde os hashes de senha para usuários de domínio são armazenados. Este arquivo é um banco de dados Extensible Storage Engine (ESE) e reside em %SystemRoom%/NTDS/ntds.dit.
Dentro deste banco de dados, três tabelas principais são mantidas:
Tabela de Dados: Esta tabela é responsável por armazenar detalhes sobre objetos como usuários e grupos.
Tabela de Links: Ela rastreia relacionamentos, como associações de grupos.
Tabela SD: Descritores de segurança para cada objeto são mantidos aqui, garantindo a segurança e o controle de acesso para os objetos armazenados.
Mais informações sobre isso: http://blogs.chrisse.se/2012/02/11/how-the-active-directory-data-store-really-works-inside-ntds-dit-part-1/
O Windows usa Ntdsa.dll para interagir com esse arquivo e é utilizado por lsass.exe. Então, parte do arquivo NTDS.dit pode ser localizada dentro da memória do lsass
(você pode encontrar os dados acessados mais recentemente provavelmente devido à melhoria de desempenho ao usar um cache).
O hash é cifrado 3 vezes:
Descriptografar a Chave de Criptografia de Senha (PEK) usando a BOOTKEY e RC4.
Descriptografar o hash usando PEK e RC4.
Descriptografar o hash usando DES.
PEK tem o mesmo valor em cada controlador de domínio, mas é cifrado dentro do arquivo NTDS.dit usando a BOOTKEY do arquivo SYSTEM do controlador de domínio (é diferente entre controladores de domínio). É por isso que para obter as credenciais do arquivo NTDS.dit você precisa dos arquivos NTDS.dit e SYSTEM (C:\Windows\System32\config\SYSTEM).
Disponível desde o Windows Server 2008.
Você também pode usar o truque de cópia de sombra de volume para copiar o arquivo ntds.dit. Lembre-se de que você também precisará de uma cópia do arquivo SYSTEM (novamente, extraia-o do registro ou use o truque de cópia de sombra de volume).
Uma vez que você tenha obtido os arquivos NTDS.dit e SYSTEM, você pode usar ferramentas como secretsdump.py para extrair os hashes:
Você também pode extraí-los automaticamente usando um usuário administrador de domínio válido:
Para grandes arquivos NTDS.dit, é recomendável extraí-los usando gosecretsdump.
Finalmente, você também pode usar o módulo metasploit: post/windows/gather/credentials/domain_hashdump ou mimikatz lsadump::lsa /inject
Objetos NTDS podem ser extraídos para um banco de dados SQLite com ntdsdotsqlite. Não apenas segredos são extraídos, mas também todos os objetos e seus atributos para extração de informações adicionais quando o arquivo NTDS.dit bruto já foi recuperado.
O hive SYSTEM
é opcional, mas permite a descriptografia de segredos (hashes NT e LM, credenciais suplementares como senhas em texto claro, chaves kerberos ou de confiança, históricos de senhas NT e LM). Juntamente com outras informações, os seguintes dados são extraídos: contas de usuário e de máquina com seus hashes, flags UAC, timestamp do último logon e mudança de senha, descrição das contas, nomes, UPN, SPN, grupos e associações recursivas, árvore de unidades organizacionais e associação, domínios confiáveis com tipo de confiança, direção e atributos...
Baixe o binário aqui. Você pode usar este binário para extrair credenciais de vários softwares.
Esta ferramenta pode ser usada para extrair credenciais da memória. Baixe-a em: http://www.ampliasecurity.com/research/windows-credentials-editor/
Extraia credenciais do arquivo SAM
Extrair credenciais do arquivo SAM
Baixe-o de: http://www.tarasco.org/security/pwdump_7 e apenas execute-o e as senhas serão extraídas.
Saiba mais sobre algumas proteções de credenciais aqui.
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)