Skip to main content

Basic Usage

Getting Help

Running Single Commands

Command Groups

System Enumeration

User Enumeration

Comprehensive Enumeration

Selective Group Execution

Commands with Arguments

Many commands accept arguments to customize behavior:

Time-Based Commands

Directory Listing

Registry Queries

File Information

Search Index

Remote Enumeration

Basic Remote Execution

Authenticated Remote Execution

Remote Command Groups

Output Options

Console Output

Text File Output

JSON Output

Practical Scenarios

Initial Compromise Enumeration

After gaining initial access, enumerate system context:
1

Basic System Info

Determine OS version, domain membership, architecture
2

Current User Context

Understand current privileges and group membership
3

Quick Wins

Look for easy credential wins
4

Defensive Products

Identify defensive tools

Privilege Escalation Enumeration

Looking for privilege escalation vectors:

Post-Exploitation Enumeration

Comprehensive enumeration after privilege escalation:

Network Enumeration

Understand network positioning:

Credential Hunting

Focused credential enumeration:

Defensive Assessment

Security posture evaluation:

Lateral Movement Planning

Identify lateral movement opportunities:

Remote System Triage

Quickly assess remote systems:

Automation and Integration

PowerShell Wrapper

Batch Script

Python Parser

Performance Considerations

Fast Enumeration

For quick checks, avoid time-intensive commands:

Time-Intensive Commands

Commands that take significant time:
  • InterestingFiles - Searches entire file system
  • LOLBAS - Searches for Living Off The Land binaries
  • SearchIndex - Queries Windows Search index
  • ScheduledTasks -full - Enumerates all scheduled tasks
  • Services -full - Enumerates all services
  • Processes -full - Detailed process enumeration
Use -full flag sparingly in operational environments as it increases runtime and output volume significantly.

OPSEC Considerations

Stealthy Enumeration

Rename the executable:
Run only necessary commands to reduce noise:
Write to disk instead of console:
Execute remotely to avoid local logging:

Detection Risk by Command

Low Risk:
  • OSInfo, TokenGroups, TokenPrivileges (normal system calls)
Medium Risk:
  • LocalUsers, LocalGroups, Processes (standard enumeration)
High Risk:
  • LOLBAS, InterestingFiles (extensive file system access)
  • Event log queries (security log access may be monitored)
  • Credential commands (accessing sensitive resources)

Troubleshooting

Symptoms: Commands fail with “Access Denied”Solutions:
  • Run with elevated privileges
  • Check user permissions for specific resources
  • Use appropriate credentials for remote execution
Symptoms: Remote commands timeout or failSolutions:
  • Verify network connectivity (test WMI access)
  • Check Windows Firewall on target
  • Ensure WMI service is running
  • Verify credentials have appropriate permissions
Symptoms: Specific command doesn’t existSolutions:
  • Check Seatbelt version (some commands added in newer versions)
  • Verify command name spelling
  • Run without arguments to see available commands
Symptoms: Output files are unexpectedly largeSolutions:
  • Avoid -full flag unless necessary
  • Use selective commands instead of groups
  • Filter output after generation
  • Use text output instead of JSON for human reading

Best Practices

1

Start Small

Begin with basic commands before running full groups
2

Document Version

Track which Seatbelt version was used for reproducibility
3

Save Output

Always save results to file for offline analysis
4

Use JSON for Automation

JSON output enables programmatic parsing and integration
5

Clean Up

Remove output files and binaries after use

Next Steps

Command Reference

Explore individual commands

Compilation Guide

Build from source

GitHub Repository

Source code and issues

GhostPack Tools

Other GhostPack tools