Enumeration

Proper enumeration is the foundation of successful privilege escalation on Windows systems. This document outlines key areas to examine and commands to use when enumerating a Windows machine.

System Information

# Basic system information
systeminfo
systeminfo | findstr /B /C:"OS Name" /C:"OS Version" /C:"System Type"

# Hotfixes and patches
wmic qfe get Caption,Description,HotFixID,InstalledOn

# Environment variables
set
Get-ChildItem Env: | Format-Table -AutoSize

# Connected drives
wmic logicaldisk get caption,description,providername
Get-PSDrive | Where-Object {$_.Provider -like "Microsoft.PowerShell.Core\FileSystem"}

# Network information
ipconfig /all
route print
arp -a

User Information

Network Information

Running Processes and Services

Scheduled Tasks

File System Information

Registry Settings

Installed Applications

Antivirus and Security Products

Interesting Directories and Files

Automated Enumeration Tools

For more thorough enumeration, consider using specialized tools if you can upload them to the target system:

Combining PowerShell Commands

Create custom PowerShell scripts to perform multiple checks:

Remember

  • Always check what commands are available and usable in your specific context.

  • Take notes of findings for later analysis.

  • Look for unusual or non-standard configurations.

  • Correlate information between different sources to identify privilege escalation vectors.

  • Be methodical and thorough in your enumeration process.

This enumeration process will help identify potential privilege escalation vectors. After completing enumeration, analyze your findings to determine the most promising attack paths.

Identifying Suspicious Processes

Analyzing running processes is critical for identifying potential security issues or opportunities for privilege escalation. Non-standard processes can indicate compromise or misconfigurations that you can exploit.

Listing and Analyzing Processes

Suspicious Process Characteristics

When analyzing processes, look for:

  1. Unusual locations: Processes running from temp directories, user directories, or non-standard program paths

  2. Uncommon names: Processes with misspelled names (e.g., svch0st.exe instead of svchost.exe)

  3. High privileges: Processes running as SYSTEM or Administrator unnecessarily

  4. Missing descriptions: Legitimate Windows processes typically have proper descriptions

  5. Unusual parent-child relationships: Use Process Explorer to identify abnormal process hierarchies

Suspicious Process Examples

These processes might indicate potential compromise or misconfiguration:

  • seatbelt.exe: Part of the GhostPack toolkit, used for security assessments; presence may indicate ongoing penetration testing or compromise

  • nc.exe/netcat: Network utility commonly used for creating backdoors or reverse shells

  • psexec.exe: Legitimate SysInternals tool, but often abused for lateral movement

  • mimikatz.exe: Credential dumping tool

  • powershell.exe with unusual parent processes or command line parameters

  • cmd.exe running as SYSTEM or with unusual parent processes

  • wmic.exe used for remote execution or suspicious queries

Detailed Analysis with Seatbelt

Ironically, Seatbelt itself is a powerful enumeration tool used by penetration testers. If you find it installed, you might be able to use it for your own enumeration:

Process Analysis with PowerShell

Investigating Process Command Lines

Command line parameters can reveal suspicious behavior:

Exploiting Weak Process Permissions

If you find a process running with high privileges but with weak file permissions:

Service Enumeration

Last updated