Attacking and Defending Active Directory [CRTP]
  • 📔CRTP Notes
  • Mind Map
  • Methodology
  • Command Pallette
  • Mimikatz
  • Active Directory Security Logging
  • Critical event IDs cheatsheet
  • Persistence Attacks Explained!
Powered by GitBook
On this page
  • Modules -
  • Commands -
  • crypto
  • dpapi
  • event
  • kerberos
  • lsadump
  • misc
  • net
  • privilege
  • process
  • rpc
  • sekurlsa
  • service
  • sid
  • standard
  • token
  • ts
  • vault

Mimikatz

About Modules and Commands

PreviousCommand PalletteNextActive Directory Security Logging

Last updated 1 year ago

Modules -

  • : This modules deals with the Microsoft Crypto Magic world.

  • : The Data Protection Application Programming Interface module. Consider this as an opsec safe option for getting credentials.

  • : this module deals with the Windows Event logs (to clear footprints after compromise).

  • : This module deals with the kerberos lol.

  • : this module contains some well known functionalities of Mimikatz such as DCSync, DCShadow, dumping of SAM and LSA Secrets.

  • : The miscellaneous module contains functionalities such as PetitPotam, PrintNightmare RPC Print Spooler and others.

  • : some functionalities in this module are similar to the Windows net commands. Enumerating sessions and servers configured with different types of Kerberos delegations is also included.

  • : This module deals with the Windows privileges. It includes the favorite debug privilege which holds the keys to LSASS.

  • : This module deal with Windows processes. It can also be used for process injection and parent process spoofing.

  • : The Remote Procedure Call module of Mimikatz. It can also be used for controlling Mimikatz remotely.

  • : The most beloved module of Mimikatz. Even the maker of Mimikatz (Benjamin) has mentioned in the past that one day people will discover that Mimikatz is more than sekurlsa::logonpasswords.

  • : This module can interact with Windows services plus installing the mimikatzsvc service.

  • : This module deals with the Security Identifier.

  • : This module contains some general functionalities which are not related to exploitation.

  • : This module deals with the Windows tokens (who does not really like elevating to NT AUTHORITY\ SYSTEM).

  • : This module deals with the Terminal Services. It can be an alternative for getting clear-text passwords.

  • : This module dumps passwords saved in the Windows Vault.

Commands -

crypto

  • crypto::certificates lists or exports certificates

  • crypto::certtohw tries to export a software CA to a crypto (virtual) hardware

  • crypto::hash hashes a password in the main formats (NT, DCC1, DCC2, LM, MD5, SHA1, SHA2) with the username being an optional value

  • crypto::keys lists or exports key containers

  • crypto::providers lists cryptographic providers

  • crypto::sc lists smartcard/token reader(s) on, or deported to, the system. When the CSP (Cryptographic Service Provider) is available, it tries to list keys on the smartcard

  • crypto::scauth it creates a authentication certificate (smartcard like) from a CA

  • crypto::stores lists cryptographic stores

  • crypto::system it describes a Windows System Certificate

  • crypto::tpminfo displays information for the Microsoft's TPM Platform Crypto Provider

dpapi

  • dpapi::blob describes a DPAPI blob and unprotects/decrypts it with API or Masterkey

  • dpapi::cache displays the credential cache of the DPAPI module

  • dpapi::capi decrypts a CryptoAPI private key file

  • dpapi::chrome dumps stored credentials and cookies from Chrome

  • dpapi::cloudapkd is undocumented at the moment

  • dpapi::cloudapreg dumps azure credentials by querying the following registry location

  • dpapi::cng decrypts a given CNG private key file

  • dpapi::create creates a DPAPI Masterkey file from raw key and metadata

  • dpapi::credhist describes a Credhist file

  • dpapi::luna decrypts Safenet LunaHSM KSP

  • dpapi::masterkey describes a Masterkey file and unprotects each Masterkey (key depending). In other words, it can decrypt and request masterkeys from active directory

  • dpapi::protect protects data via a DPAPI call

  • dpapi::ps decrypts PowerShell credentials (PSCredentials or SecureString)

  • dpapi::rdg decrypts Remote Desktop Gateway saved passwords

  • dpapi::sccm is used to decrypt saved SCCM credentials

  • dpapi::ssh extracts OpenSSH private keys

  • dpapi::wifi decrypts saved Wi-Fi passwords

  • dpapi::wwman decrypts Wwan credentials

event

  • event::clear clears a specified event log

kerberos

  • kerberos::hash computes the different types of Kerberos keys for a given password

  • kerberos::tgt retrieves a TGT (Ticket-Granting Ticket) for the current user

lsadump

  • lsadump::cache can be used to enumerate Domain Cached Credentials from registry. It does so by acquiring the SysKey to decrypt NL$KM (binary protected value) and then MSCache(v1/v2)

  • lsadump::changentlm can be used to change the password of a user

  • lsadump::dcshadow TODO

  • lsadump::lsa extracts hashes from memory by asking the LSA server. The patch or inject takes place on the fly

  • lsadump::mbc dumps the Machine Bound Certificate. Devices on which Credential Guard is enabled are using Machine Bound Certificates

  • lsadump::packages lists the available Windows authentication mechanisms

  • lsadump::postzerologon is a procedure to update AD domain password and its local stored password remotely mimic netdom resetpwd

  • lsadump::trust can be used for dumping the forest trust keys. Forest trust keys can be leveraged for forging inter-realm trust tickets. Since most of the EDRs are paying attention to the KRBTGT hash, this is a stealthy way to compromise forest trusts

misc

net

  • net::alias displays more information about the local group memberships including Remote Desktop Users, Distributed COM Users, etc

  • net::group displays the local groups

  • net::if displays the available local IP addresses and the hostname

  • net::serverinfo displays information about the logged in server

  • net::share displays the available shares

  • net::stats displays when the target was booted

  • net::tod displays the current time

  • net::trust displays information for the active directory forest trust(s)

  • net::user displays the local users

privilege

  • privilege::backup requests the backup privilege (SeBackupPrivilege)

  • privilege::debug requests the debug privilege (SeDebugPrivilege)

  • privilege::driver requests the load driver privilege (SeLoadDriverPrivilege)

  • privilege::id requests a privilege by its id

  • privilege::name requests a privilege by its name

  • privilege::restore requests the restore privilege (SeRestorePrivilege)

  • privilege::security requests the security privilege (SeSecurityPrivilege)

  • privilege::sysenv requests the system environment privilege (SeSystemEnvironmentPrivilege)

  • privilege::tcb requests the tcb privilege (SeTcbPrivilege)

process

rpc

  • rpc::close closes remote RPC sessions

  • rpc::connect connects to an RPC endpoint

  • rpc::enum enumerates RPC endpoints on a system

  • rpc::server starts an RPC server

sekurlsa

  • sekurlsa::backupkeys lists the preferred Backup Master keys

  • sekurlsa::bootkey sets the SecureKernel Boot Key and attempts to decrypt LSA Isolated credentials

  • sekurlsa::dpapi lists DPAPI cached masterkeys

  • sekurlsa::dpapisystem lists the DPAPI_SYSTEM secret key

  • sekurlsa::ekeys lists Kerberos encryption keys

  • sekurlsa::kerberos lists Kerberos credentials

  • sekurlsa::krbtgt retrieves the krbtgt RC4 (i.e. NT hash), AES128 and AES256 hashes

  • sekurlsa::livessp lists LiveSSP credentials. According to Microsoft, the LiveSSP provider is included by default in Windows 8 and later and is included in the Office 365 Sign-in Assistant

  • sekurlsa::logonpasswords lists all available provider credentials. This usually shows recently logged on user and computer credentials

  • sekurlsa::minidump can be used against a dumped LSASS process file and it does not require administrative privileges. It's considered as an "offline" dump

  • sekurlsa::trust retrieves the forest trust keys

  • sekurlsa::tspkg lists TsPkg credentials. This credentials provider is used for Terminal Server Authentication

service

  • service::- removes the mimikatzsvc service

  • service::+ installs the mimikatzsvc service by issuing rpc::server service::me exit

  • service::preshutdown pre-shuts down a specified service by sending a SERVICE_CONTROL_PRESHUTDOWN signal

  • service::remove removes the specified service (It must be used with caution)

  • service::resume resumes a specified service, after successful suspending, by sending a SERVICE_CONTROL_CONTINUE signal

  • service::shutdown shuts down a specified service by sending a SERVICE_CONTROL_SHUTDOWN signal

  • service::start starts a service

  • service::stop stops a specified service by sending a SERVICE_CONTROL_STOP signal

  • service::suspend suspends the specified service. It sends a SERVICE_CONTROL_PAUSE signal

sid

  • sid::add adds a SID to sIDHistory of an object

  • sid::clear clears the sIDHistory of a target object

  • sid::lookup looks up an object by its SID or name

  • sid::modify modifies an object's SID

  • sid::patch patchs the NTDS (NT Directory Services). It's useful when running id::modify or sid::add

  • sid::query queries an object by its SID or name

standard

  • standard::base64 or base64 switches file input/output to base64

  • standard::cd or cd can change or display the current directory. The changed directory is used for saving files

  • standard::cls or cls clears the screen

  • standard::coffee or coffee is the most important command of all

  • standard::exit or exit quits Mimikatz after clearing routines

  • standard::hostname or hostname displays system local hostname

  • standard::localtime or localtime displays system local date and time

  • standard::log or log logs mimikatz input/output to a file

  • standard::sleep or sleep make Mimikatz sleep an amount of milliseconds

  • standard::version or version displays the version in use of Mimikatz

token

  • token::elevate can be used to impersonate a token. By default it will elevate permissions to NT AUTHORITY\SYSTEM

  • token::list lists all tokens on the system

  • token::revert reverts to the previous token

  • token::run executes a process with its token

  • token::whoami displays the current token

ts

  • ts::logonpasswords extracts clear text credentials from RDP running sessions (server side)

  • ts::mstsc extracts cleartext credentials from the mstsc process (client side)

  • ts::multirdp enables multiple RDP connections on the target server

  • ts::remote performs RDP takeover/hijacking of active sessions

  • ts::sessions lists the current RDP sessions. It comes in handy for RDP hijacking

vault

  • vault::cred enumerates vault credentials

  • vault::list lists saved credentials in the Windows Vault such as scheduled tasks, RDP, Internet Explorer for the current user

crypto::capi patches CryptoAPI layer for easy export (Experimental )

crypto::cng patches the CNG (Cryptography API: Next Generation) service for easy export (Experimental )

crypto::extract extracts keys from the CAPI RSA/AES provider (Experimental )

dpapi::cred decrypts DPAPI saved credential such as RDP, Scheduled tasks, etc (cf. )

dpapi::tpm decrypts TPM PCP key file ( (PCP))

dpapi::vault decrypts DPAPI vault credentials from the

event::drop patches event services to avoid new events ( experimental)

kerberos::ask can be used to obtain Service Tickets. The Windows native command is

kerberos::clist lists tickets in / ccache format. It can be useful with other tools (i.e. ones that support )

kerberos::golden can be used to . It can also be used for forging inter-realm trust keys

kerberos::list has a similar functionality to command without requiring elevated privileges. Unlike sekurlsa::tickets, this module does not interact with LSASS

kerberos::ptc can be used to . This is similar to that does pass the ticket but is different in the sense that the ticket used is a .ccache ticket instead of a .kirbi one

kerberos::ptt is used for by injecting one or may Kerberos tickets in the current session. The ticket can either be a TGT (Ticket-Granting Ticket) or an ST (Service Ticket)

kerberos::purge purges all kerberos tickets similar to

lsadump::backupkeys dumps the DPAPI backup keys from the Domain Controller (cf. )

lsadump::dcsync can be used to do a and retrieve domain secrets. This command uses the Directory Replication Service Remote protocol () to request from a domain controller to synchronize a specified entry

lsadump::netsync can be used to act as a Domain Controller on a target by doing a . It then leverages the to request the RC4 key (i.e. NT hash) of the target computer account

lsadump::RpData can retrieve private data (at the time of writing, Nov 1st 2021, we have no idea what this does or refers to )

lsadump::sam dumps the local Security Account Manager (SAM) NT hashes (cf. )

lsadump::secrets can be used to from the registries. It retrieves the SysKey to decrypt Secrets entries

lsadump::setntlm can be used to perform a password reset without knowing the user's current password. It can be useful during an active directory scenario

lsadump::zerologon detects and exploits the vulnerability

can be used to dump the Azure Panel's session cookie from login.microsoftonline.com

monitors clipboard. CTRL+C stops the monitoring

launches the command prompt

performs a self compression of mimikatz

is experimental and it tries to enumerate all modules with

is Mimikatz's implementation of the , an authentication coercion technique

locks the screen. It can come in handy with

patches LSASS by injecting a new Security Support Provider (a DLL is registered)

identifies Windows minifilters inside mimikatz, without using fltmc.exe. It can also assist in fingerprinting security products, by altitude too (Gathers details on loaded drivers, including driver altitude)

displays Juniper network connect (without route monitoring)

can be used to dump the NGC key (Windows Hello keys) signed with the symmetric pop key.

can be used to exploit the vulnerability in both [] and []. The bug was discovered by Zhiniang Peng () & Xuefeng Li ()

launches the registry editor

decrypts the password field in the SC_UserAccount table in the SCCM database

is used to list the available shadow copies on the system

injects a "" into the LSASS process on the domain controller

is Mimikat's implementation of the , an authentication coercion technique

launches the task manager

sets up a wallpaper

performs XOR decoding/encoding on a provided file with 0x42 default key

net::deleg checks for the following types of

net::session displays the active sessions through Win32 API function

net::wsession displays the active sessions through Win32 API function

lists all the exported functions from the DLLs each running process is using. If a** **/pid is not specified, then exports for mimikatz.exe will be displayed

lists all the imported functions from the DLLs each running process is using. If a** **/pid is not specified, then imports for mimikatz.exe will be displayed

lists all the running processes. It uses the Windows Native API function

resumes a suspended process by using the Windows Native API function

creates a process by using the Win32 API function. The is also utilized

runs a subprocess under a parent process (Default parent process is LSASS.exe). It can also be used for lateral movement and process spoofing

starts a process by using the Win32 API function. The PID of the process is also displayed

terminates a process by using the Windows Native API function. The Win32 API equal one is

suspends a process by using the Windows Native API function

sekurlsa::cloudap lists Azure (Primary Refresh Token) credentials based on the following research: . :

sekurlsa::credman lists Credentials Manager by targeting the Microsoft Local Security Authority Server DLL ()

sekurlsa::msv dumps and lists the NT hash (and other secrets) by targeting the

sekurlsa::process switches (or reinits) to LSASS process context. It can be used after

sekurlsa::pth performs , and . Upon successful authentication, a program is run (n.b. defaulted to cme.exe)

sekurlsa::ssp lists (SSP) credentials

sekurlsa::tickets lists Kerberos tickets belonging to all authenticated users on the target server/workstation. Unlike , sekurlsa uses memory reading and is not subject to key export restrictions. Sekurlsa can also access tickets of others sessions (users)

sekurlsa::wdigest lists WDigest credentials. According to Microsoft, was introduced in the Windows XP operating system

standard::answer or answer provides an answer to

credits -

⚠️
⚠️
⚠️
⚠️
🤷‍♂️
dumping DPAPI secrets
Microsoft's TPM Platform Crypto Provider
Credential Store
klist get
MIT
Heimdall
Pass the Cache
forge golden and silver tickets
klist
pass the cache
kerberos::ptt
passing the ticket
klist purge
dumping DPAPI secrets
DCSync
MS-DRSR
Silver Ticket
Netlogon
SAM secrets dump
dump LSA secrets
Access Control (ACL) abuse
ZeroLogon
misc::aadcookie
misc::clip
misc::cmd
misc::compress
misc::detours
Detours-like hooks
misc::efs
MS-EFSR abuse (PetitPotam)
misc::lock
misc::memssp
misc::memssp
misc::mflt
misc::ncroutemon
misc::ngcsign
misc::printnightmare
PrintNightMare
MS-RPRN RpcAddPrinterDriverEx
MS-PAR AddPrinterDriverEx
@edwardzpeng
@lxf02942370
misc::regedit
misc::sccm
misc::shadowcopies
misc::skeleton
Skeleton Key
misc::spooler
MS-RPRN abuse (PrinterBug)
misc::taskmgr
misc::wp
misc::xor
Kerberos delegations
NetSessionEnum()
NetWkstaUserEnum()
process::exports
process::imports
process::list
NtQuerySystemInformation
process::resume
NtResumeProcess
process::run
CreateProcessAsUser
CreateEnvironmentBlock
process::runp
process::start
CreateProcess
process::stop
NtTerminateProcess
TerminateProcess
process::suspend
NtSuspendProcess
Digging further into the Primary Refresh Token
According to Benjamin
lsasrv.dll
MSV1_0 Authentication Package
sekurlsa::minidump
Pass-the-Hash
Pass-the-Key
Over-Pass-the-Hash
Security Support Provider
kerberos::list
WDigest.dll
🌠
The Ultimate Question of Life, the Universe, and Everything!
https://tools.thehacker.recipes/mimikatz/modules
crypto
dpapi
event
kerberos
lsadump
misc
net
privilege
process
rpc
sekurlsa
service
sid
standard
token
ts
vault