Skip to main content
Artifacts Generated: WindowsAPIInvoke

Summary

Lists all Kerberos tickets in the current logon session using LSA APIs. When executed from an elevated context, can enumerate tickets from all logon sessions or target a specific session by LUID. Provides filtering options for system tickets.
  • Needs Admin: False (elevated context enables cross-session enumeration)
  • Version: 2
  • Author: @drago-qcc

Arguments

  • luid (String, Optional) - Target LUID to filter tickets (requires elevation)
  • getSystemTickets (Boolean, Optional) - Include system context tickets (default: true)

Usage

Output:

Detailed Summary

Agent Execution Flow

1. Parameter Processing and Validation

  • Requires JSON parameter format only
  • LUID parameter is optional for targeting specific sessions
  • getSystemTickets parameter controls system ticket filtering

2. Display Parameter Configuration

  • Shows getSystemTickets setting in display parameters
  • Includes LUID in display when specified
  • Provides clear operation summary

3. Ticket Enumeration Process (C#)

  • Enumerates all logon sessions on the system
  • Filters by target LUID when specified
  • Applies system ticket filtering based on session ID
  • Aggregates tickets from all matching sessions

4. LSA Connection and Session Enumeration

  • Uses LsaEnumerateLogonSessions to get all session LUIDs
  • Iterates through session array with proper pointer arithmetic
  • Handles duplicate LUID detection and filtering
  • Properly frees LSA memory resources

5. Session Data Retrieval

  • Retrieves detailed session information for each LUID
  • Extracts username, domain, session ID, and other metadata
  • Converts Windows structures to managed objects
  • Handles null pointer checks for optional fields

6. Ticket Cache Querying

  • Queries ticket cache for specific logon session
  • Clears LUID for non-elevated contexts to use current session
  • Processes ticket cache response structure
  • Extracts detailed ticket information including timing and encryption

7. System Ticket Filtering Logic

  • Retrieves session data to check session ID
  • Session ID 0 indicates system/service context
  • Skips system tickets when getSystemTickets is false
  • Allows filtering out service account tickets

Filtering and LUID Handling

Target LUID Filtering

  • Compares session LUID with target LUID parameter
  • Skips sessions that don’t match target when specified
  • Allows precise targeting of specific logon sessions

Integrity Level Considerations

  • Uses null LUID for non-elevated contexts
  • Limits enumeration to current session when not elevated
  • Prevents access to other users’ sessions without elevation

Browser Script Integration

UI Features

  • Provides interactive table display for ticket information
  • Enables sorting and filtering of ticket data
  • Shows detailed ticket metadata in structured format

Parameter Configuration

Default Values

  • getSystemTickets defaults to true (includes system tickets)
  • LUID defaults to empty string (all accessible sessions)
  • Optional parameters for flexible enumeration

Integration with TicketManager

Interface Methods

  • Provides clean interface to enumeration functionality
  • Handles parameter passing to helper methods
  • Returns list of KerberosTicket objects

Error Handling

Connection Initialization Errors

  • Validates LSA connection establishment
  • Checks authentication package lookup success
  • Ensures logon sessions were enumerated
  • Returns empty list on initialization failures

Resource Cleanup

  • Ensures LSA connection cleanup
  • Generates artifacts for cleanup operations
  • Prevents resource leaks on errors

APIs Used

MITRE ATT&CK Mapping

  • T1550 - Use Alternate Authentication Material

Security Considerations

  • Session Enumeration: Enumerates all logon sessions on system when elevated
  • Ticket Exposure: Reveals Kerberos ticket metadata for accessible sessions
  • Cross-Session Access: Can view other users’ tickets when elevated
  • System Ticket Access: Can enumerate service account tickets
  • LSA Interaction: Direct interaction with Local Security Authority

Limitations

  1. JSON Format Only: Requires JSON parameter format
  2. Elevation for Cross-Session: Multi-session enumeration requires elevated context
  3. LSA Dependencies: Requires functional LSA subsystem
  4. Session Access: Limited to accessible logon sessions
  5. Metadata Only: Shows ticket information but not encoded ticket data
  6. System Filtering: System ticket filtering based on session ID only

Error Conditions

  • Invalid JSON: Malformed JSON parameters
  • LSA Connection Failed: Cannot connect to Local Security Authority
  • Session Enumeration Failed: Cannot enumerate logon sessions
  • Package Lookup Failed: Kerberos authentication package not found
  • Ticket Query Failed: Cannot query ticket cache for session
  • Access Denied: Insufficient privileges for target sessions
  • Invalid LUID: Specified LUID does not exist or is inaccessible

Best Practices

  1. Parameter Awareness: Understand filtering implications of getSystemTickets setting
  2. Session Targeting: Use LUID parameter for focused enumeration when elevated
  3. Error Monitoring: Check for enumeration failures and access issues
  4. Resource Management: Monitor system impact of full session enumeration
  5. Context Understanding: Be aware of elevation requirements for cross-session access