Skip to main content
Glama
schwarztim

Rubeus MCP Server

by schwarztim

Rubeus MCP Server

A Model Context Protocol (MCP) server for Kerberos abuse operations using Rubeus on Windows or Impacket on Linux/macOS.

Overview

This MCP server provides comprehensive tools for Kerberos-based security testing, wrapping the functionality of Rubeus (Windows) and Impacket (cross-platform) into a unified interface accessible through the Model Context Protocol.

Security Warning: This tool is intended for authorized security testing only. Unauthorized use against systems you do not own or have permission to test is illegal and unethical.

Related MCP server: Vulnerable MCP Server

Features

Ticket Operations

  • asktgt - Request Ticket Granting Tickets (TGT) using passwords, hashes, or certificates

  • asktgs - Request Service Tickets (TGS) for specific SPNs

  • renew - Renew existing TGTs to extend validity

  • ptt - Pass-the-ticket to apply tickets to current session

  • purge - Remove tickets from logon sessions

  • describe - Parse and analyze ticket contents

Roasting Attacks

  • kerberoast - Extract service account password hashes via TGS requests

  • asreproast - Attack accounts without Kerberos pre-authentication

Ticket Extraction

  • dump - Extract all tickets from memory

  • triage - Quick summary of available tickets

  • klist - Detailed ticket listing

  • harvest - Continuously monitor and harvest new TGTs

  • monitor - Watch for new TGT events

  • tgtdeleg - Extract TGT without elevation using delegation trick

Delegation Abuse

  • s4u - Perform S4U2Self/S4U2Proxy constrained delegation attacks

  • Bronze Bit exploitation (CVE-2020-17049)

Ticket Forgery

  • golden - Forge Golden Tickets with krbtgt hash

  • silver - Forge Silver Tickets with service account hash

  • diamond - Forge Diamond Tickets (modified legitimate TGT)

Utilities

  • hash - Calculate Kerberos password hashes (RC4, AES128, AES256, DES)

  • changepw - Change user passwords using TGT

  • createnetonly - Create processes with different network credentials

  • tgssub - Substitute service names in tickets

Installation

Prerequisites

Windows (Native Rubeus):

  • Download Rubeus.exe from GhostPack

  • .NET Framework 4.0+

Linux/macOS (Impacket):

pip install impacket

Setup

# Clone the repository
git clone https://github.com/schwarztim/sec-rubeus-mcp.git
cd sec-rubeus-mcp

# Install dependencies
npm install

# Build
npm run build

Configuration

Configure via environment variables:

Variable

Description

Default

RUBEUS_PATH

Path to Rubeus.exe (Windows)

Rubeus.exe

IMPACKET_PATH

Path to impacket scripts

System PATH

RUBEUS_OUTPUT_DIR

Directory for output files

$TMPDIR/rubeus-mcp

RUBEUS_DOMAIN

Default AD domain

None

RUBEUS_DC

Default domain controller

None

RUBEUS_TIMEOUT

Command timeout (ms)

300000

RUBEUS_USE_IMPACKET

Force impacket mode

Auto-detected

Usage with Claude Desktop

Add to your Claude Desktop configuration (claude_desktop_config.json):

{
  "mcpServers": {
    "rubeus": {
      "command": "node",
      "args": ["/path/to/sec-rubeus-mcp/dist/index.js"],
      "env": {
        "RUBEUS_DOMAIN": "corp.example.com",
        "RUBEUS_DC": "dc01.corp.example.com"
      }
    }
  }
}

Usage with Claude Code

Add to your MCP configuration:

{
  "rubeus": {
    "command": "node",
    "args": ["/path/to/sec-rubeus-mcp/dist/index.js"],
    "env": {
      "RUBEUS_DOMAIN": "corp.example.com"
    }
  }
}

Examples

Check Environment

Use rubeus_check_environment to verify your setup

Request a TGT

Use rubeus_asktgt with:
- user: "admin"
- domain: "corp.example.com"
- password: "Password123"

Kerberoasting

Use rubeus_kerberoast with:
- domain: "corp.example.com"
- outfile: "hashes.txt"

AS-REP Roasting

Use rubeus_asreproast with:
- domain: "corp.example.com"
- format: "hashcat"

S4U Delegation Attack

Use rubeus_s4u with:
- user: "svc_account"
- rc4: "<ntlm_hash>"
- impersonateuser: "Administrator"
- msdsspn: "cifs/fileserver.corp.example.com"

Cross-Platform Support

Feature

Windows (Rubeus)

Linux/macOS (Impacket)

asktgt

Full

Full

asktgs

Full

Full

kerberoast

Full

Full

asreproast

Full

Full

s4u

Full

Full

dump

Full

Via secretsdump

Golden/Silver tickets

Full

Limited

Ticket manipulation

Full

Limited

Development

# Watch mode for development
npm run dev

# Build
npm run build

# Run tests
npm test

Security Considerations

  • All tools require appropriate authorization before use

  • Output files may contain sensitive data (tickets, hashes)

  • Credentials are not logged, but ticket data may be captured

  • Use in isolated test environments when possible

  • Follow responsible disclosure practices

License

MIT License - see LICENSE file for details.

Acknowledgments

Disclaimer

This tool is provided for educational and authorized security testing purposes only. The authors are not responsible for misuse or damage caused by this tool. Always obtain proper authorization before testing systems you do not own.

Available Tools

27 tools
rubeus_asktgsA

Request Service Tickets (TGS) for specified Service Principal Names (SPNs).

Requires a valid TGT (provided as ticket parameter or from current session). Can request tickets for multiple SPNs in one operation.

Use cases:

  • Access specific services after obtaining TGT

  • Kerberoasting alternative (request specific SPN tickets)

  • S4U2Self/S4U2Proxy prerequisite

ParametersJSON Schema
NameRequiredDescriptionDefault
ticketNoBase64 encoded TGT or path to .kirbi file
serviceYesTarget SPN(s), comma-separated for multiple
domainNoTarget domain
dcNoDomain controller IP/hostname
outfileNoOutput file for ticket
pttNoPass-the-ticket to current session
nowrapNoDon't wrap base64 output
enctypeNoPreferred encryption type
opsecNoUse OPSEC-safe options
enterpriseNoEnterprise principal name format
u2uNoUser-to-User authentication
targetuserNoTarget user for U2U
tgsNoProvide TGS for renewal
servicekeyNoService key for decryption
asrepkeyNoAS-REP key for decryption
keylistNoRequest using key list

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description must cover all behavioral traits. It only states requirement for valid TGT and ability to request multiple SPNs, but omits details like side effects, authentication requirements, or output format for a 16-parameter tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is brief, uses bullet points for use cases, and front-loads the main purpose. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 16 parameters and no output schema, the description covers core purpose but fails to explain return values or how to interpret results, leaving a gap for complete understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 100% coverage, so parameters are well-documented. Description provides no additional meaning beyond summarizing that service takes comma-separated SPNs, which is already in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description states specific verb 'request' and resource 'Service Tickets (TGS)' for specified SPNs. Clearly distinguishes from sibling 'rubeus_asktgt' which handles TGT requests.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit use cases (e.g., access services after TGT, kerberoasting alternative, S4U prereq). Lacks explicit when-not-to-use or alternatives, but context is clear enough.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rubeus_asktgtA

Request a Ticket Granting Ticket (TGT) using user credentials.

Supports multiple authentication methods:

  • Password-based (cleartext or encrypted)

  • Hash-based (RC4/NTLM, AES128, AES256, DES)

  • Certificate-based (PKINIT)

The TGT can be saved to a file, applied to the current session (PTT), or returned as base64.

Example use cases:

  • Obtain TGT for lateral movement

  • Test credential validity

  • Support subsequent ticket operations

ParametersJSON Schema
NameRequiredDescriptionDefault
userYesTarget username
domainNoTarget domain (FQDN or NetBIOS)
passwordNoUser's plaintext password
rc4NoRC4/NTLM hash of user password
aes256NoAES256 key for authentication
aes128NoAES128 key for authentication
desNoDES key for authentication
dcNoDomain controller IP/hostname
outfileNoOutput file for ticket (.kirbi)
pttNoPass-the-ticket to current session
nowrapNoDon't wrap base64 output
opsecNoUse OPSEC-safe options
nopacNoRequest TGT without PAC
enctypeNoPreferred encryption type
certificateNoCertificate for PKINIT auth (file path or thumbprint)
certificatepasswordNoCertificate password if encrypted
proxyurlNoKDC proxy URL

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description explains that the TGT can be saved to a file, applied to the current session (PTT), or returned as base64. It lists multiple authentication methods and flags like opsec. Without annotations, it carries the full burden but does not discuss side effects or error conditions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with bullet points and example use cases, conveying essential information without unnecessary verbosity. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 17 parameters and no output schema, the description covers authentication methods, output options, and use cases adequately. It could mention prerequisites like domain controller connectivity or error handling, but overall is fairly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds value by grouping authentication methods (password, hash, certificate) and providing context for output options (outfile, ptt) through example use cases, exceeding the schema-only information.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool requests a Ticket Granting Ticket (TGT) using user credentials. It distinguishes from sibling tools like rubeus_asktgs (which requests service tickets) by focusing on TGT acquisition.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description includes example use cases (lateral movement, test credential validity, support subsequent ticket operations) that indicate when to use the tool. However, it does not explicitly state when not to use or mention alternatives among sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rubeus_asrep2kirbiB

Convert an AS-REP response to kirbi ticket format.

Takes a raw AS-REP response and converts it to a usable kirbi ticket using the provided key.

ParametersJSON Schema
NameRequiredDescriptionDefault
asrepYesBase64 AS-REP or file path
keyNoDecryption key (password)
keyhexNoDecryption key (hex)
enctypeNoEncryption type
pttNoPass-the-ticket after conversion
luidNoTarget LUID for PTT
outfileNoOutput file for kirbi
nowrapNoDon't wrap base64 output

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description does not disclose behavioral traits such as whether the conversion writes to a file or returns data, whether it is destructive, or any error conditions. The tool likely modifies state (e.g., creating a file), but this is not clarified.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, with two short sentences that state purpose and basic action. No unnecessary details, and the key information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Without an output schema, the description should explain what the agent receives after conversion (e.g., base64 string, file path). It only says 'usable kirbi ticket' without specifics. Additionally, interplay of optional parameters like ptt or outfile is not explained.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema covers all 8 parameters with descriptions, achieving 100% coverage. The description does not add new meaning beyond what the schema provides, but the schema itself is adequate, so a baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool converts an AS-REP response to kirbi ticket format, with a specific verb and resource. The tool name itself is descriptive, and the purpose is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like rubeus_kirbi or other conversion utilities. The description does not mention prerequisites or exclusions, leaving the agent to infer usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rubeus_asreproastB

Perform AS-REP Roasting against accounts that don't require pre-authentication.

Targets accounts with "Do not require Kerberos preauthentication" enabled. The AS-REP response contains data encrypted with the user's password hash.

Features:

  • Target specific users or enumerate vulnerable accounts

  • Output in hashcat or John format

  • OU-based targeting

Output format: hashcat mode 18200 or John (jumbo).

ParametersJSON Schema
NameRequiredDescriptionDefault
userNoTarget specific user
domainNoTarget domain
dcNoDomain controller IP/hostname
ouNoTarget specific OU
outfileNoOutput file for hashes
formatNoOutput format (default: john)
ldapsNoUse LDAPS for queries
nowrapNoDon't wrap hash output
creduserNoAlternate credential username
credpasswordNoAlternate credential password
desNoRequest DES encryption (weak)
ldapfilterNoCustom LDAP filter

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It explains that the AS-REP response contains encrypted data with the user's password hash, but omits critical details such as required permissions, side effects (if any), stealthiness, rate limits, or any consequences of using the tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose in the first sentence, followed by concise bullet points. It is efficient but slightly verbose with repeated details; overall no wasted content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (12 parameters, no output schema), the description covers the main use case but lacks details on return values, typical output examples, and behavior under different scenarios. It is adequate but not comprehensive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with parameter descriptions, so the baseline is 3. The description adds context for a few parameters (output format, OU targeting) but does not explain others like creduser, des, or ldapfilter beyond what the schema already provides.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool performs AS-REP Roasting against accounts lacking Kerberos preauthentication, specifies the target vulnerability, and lists features like per-user targeting, output formats, and OU filtering. This distinctively differentiates it from siblings like rubeus_kerberoast.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for accounts with 'Do not require Kerberos preauthentication' enabled, but does not explicitly compare with sibling tools or provide when-not-to-use guidance. No exclusion criteria or prerequisites are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rubeus_changepwA

Change/reset a user's password using a TGT.

Uses the Kerberos Set Password protocol (Aorato technique) to change a user's password with just their TGT.

Can target other users with appropriate permissions.

ParametersJSON Schema
NameRequiredDescriptionDefault
ticketYesTGT for authentication
newYesNew password to set
dcNoDomain controller
targetuserNoTarget user (if different from ticket principal)
targetdomainNoTarget domain (if different)

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description carries the full burden. It mentions using a TGT, the Kerberos Set Password protocol, and targeting other users with permissions. However, it does not disclose potential side effects, authentication requirements, or whether the operation is destructive. The phrase 'just their TGT' is ambiguous.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences, concise and front-loaded with the main action. It could be slightly more structured (e.g., separate bullet for permissions) but is efficient overall.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and the tool's security-sensitive nature, the description should explain return values, success/failure indications, and prerequisites. It lacks information on what happens after the password change, and the complexity of Kerberos protocols warrants more context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% (all 5 parameters have descriptions). The description restates the target user capability but adds no new semantic information beyond the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool changes/resets a user's password using a TGT via the Kerberos Set Password protocol. It specifies the verb (change/reset) and resource (password), and the technique is distinct from sibling tools like rubeus_asktgt or rubeus_kerberoast.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when you have a TGT and want to change a password, including targeting other users with permissions. However, it lacks explicit guidance on when not to use it, prerequisites beyond a TGT, or alternatives like using a service ticket.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rubeus_check_environmentA

Check the current environment and available tools.

Detects whether running on Windows (native Rubeus) or Linux/macOS (impacket mode). Lists available tools and configuration.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It discloses that it detects OS/mode and lists tools/config, which is sufficient for a read-only operation. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, very concise, and front-loaded with the core purpose. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter tool with no output schema, the description covers the main purpose. It could mention that no arguments are required, but overall it is complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, so the description does not need to add meaning beyond the schema. It provides context about what is checked, which is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the tool checks the environment and lists available tools, detecting OS and mode. It clearly distinguishes from sibling tools, which perform specific Kerberos actions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

As a no-parameter diagnostic tool, its use case is self-evident: it is for initial environment assessment. However, it does not explicitly state when to use it vs. alternatives or provide exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rubeus_createnetonlyA

Create a new process with network credentials (logon type 9).

Creates a process that uses different credentials for network authentication. Useful for applying tickets to a separate process.

The process can be hidden or visible.

ParametersJSON Schema
NameRequiredDescriptionDefault
programYesProgram to execute
showNoShow the window (default: hidden)
ticketNoTicket to apply to new process
domainNoDomain for credentials
usernameNoUsername for credentials
passwordNoPassword for credentials

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses that 'The process can be hidden or visible,' which is a behavioral trait. However, it does not mention other important details like whether the tool requires administrative privileges, what happens to the parent process, or if network credentials are stored. Some behavioral information is given but not comprehensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description consists of three brief, front-loaded sentences. The first sentence states the core purpose, the second explains the utility, and the third adds a behavioral detail. No redundant or irrelevant information. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the complexity (6 parameters, no output schema, many sibling tools), the description provides a good overview: purpose, use case, and a behavioral option. However, it does not explain the 'logon type 9' concept or clarify behavior when parameters like 'ticket' are omitted. Still, for an agent familiar with Rubeus, it is largely sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds only one meaningful elaboration: 'The process can be hidden or visible,' which relates to the 'show' parameter. For other parameters, the description does not add beyond what the schema already specifies (e.g., 'Ticket to apply to new process' is already in the schema description). Limited additional semantic value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action: 'Create a new process with network credentials (logon type 9).' It identifies the resource (a new process) and the specific context of network credentials and applying tickets, which differentiates it from sibling tools like rubeus_ptt (injects into current process) or rubeus_s4u (impersonation). No ambiguity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use the tool: 'Useful for applying tickets to a separate process.' However, it does not provide explicit guidance on when not to use it or mention alternative tools (e.g., rubeus_ptt for immediate ticket injection). The usage context is clear but lacks exclusions or comparisons.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rubeus_currentluidA

Display the current user's Logon Unique ID (LUID).

Returns the LUID of the current logon session, which is needed for various ticket operations.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description fully covers behavior. It indicates a read operation ('Display') that returns a value, with no side effects. The behavior is transparent given the tool's simplicity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise at two sentences, front-loads the main action in the first sentence, and avoids unnecessary details. Every word contributes value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no parameters, no output schema, and a simple read operation, the description is complete. It explains what is returned and why it is useful, meeting all informational needs.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, so schema coverage is 100%. The description correctly omits parameter details, as none exist. The baseline score of 4 is appropriate since no additional parameter info is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Display the current user's Logon Unique ID (LUID).' It uses a specific verb ('Display') and identifies the exact resource (LUID), which differentiates it from sibling tools that handle ticket operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides usage context by stating that the LUID is 'needed for various ticket operations,' indicating when this tool should be used as a prerequisite. However, it does not explicitly state when not to use it or list alternatives, but the context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rubeus_describeA

Parse and display detailed information about a Kerberos ticket.

Can decrypt ticket contents if the appropriate key is provided. Useful for analyzing captured tickets.

ParametersJSON Schema
NameRequiredDescriptionDefault
ticketYesBase64 encoded ticket or path to .kirbi file
servicekeyNoService key for decryption
krbkeyNoKerberos key for decryption
asrepkeyNoAS-REP key for decryption
serviceuserNoService user context
servicedomainNoService domain context

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden. It states it can decrypt ticket contents if a key is provided, but does not clarify whether any state changes occur or what happens on failure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences that front-load the main purpose and add a key capability (decryption) and usage context without unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and no annotations, the description lacks details on return format, error handling, or what specific ticket information is displayed, leaving gaps for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% parameter description coverage, so the tool's description adds only marginal value by grouping decryption keys; it does not enhance understanding beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool parses and displays detailed information about a Kerberos ticket, and distinguishes it from sibling tools like rubeus_dump or rubeus_klist by focusing on analysis of captured tickets.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions it is 'useful for analyzing captured tickets' but provides no explicit guidance on when to use it versus alternatives or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rubeus_diamondA

Forge a Diamond Ticket (modified legitimate TGT).

Requests a legitimate TGT and then modifies it with new PAC data. More stealthy than golden tickets as it starts with a real ticket.

Requires krbtgt key for re-signing.

ParametersJSON Schema
NameRequiredDescriptionDefault
userNoUsername to authenticate as
domainYesDomain FQDN
passwordNoUser password
rc4NoUser RC4/NTLM hash
aes256NoUser AES256 key
krbkeyYeskrbtgt key for re-signing
ticketuserNoUsername to put in modified ticket
ticketuseridNoUser ID for modified ticket
groupsNoGroup SIDs for modified PAC
sidsNoExtra SIDs for SID history
dcNoDomain controller
outfileNoOutput file for ticket
pttNoPass-the-ticket to current session
nowrapNoDon't wrap base64 output
certificateNoCertificate for PKINIT
certificatepasswordNoCertificate password
tgtdelegNoUse tgtdeleg trick for initial TGT
createnetonlyNoProgram to spawn

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses that the tool requests a real TGT and modifies it, requiring the krbtgt key. However, it does not explain side effects (e.g., network calls, ticket caching) or output behavior, leaving gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise at four sentences, front-loading the core purpose. It avoids unnecessary details but could be slightly more structured for clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 18 parameters and no output schema, the description covers the tool's function and prerequisites but omits details on return values or output format. It is adequate for understanding the main behavior but incomplete for full usage context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema adequately describes parameters. The description only adds context about the krbtgt key requirement, which is already in the schema. It does not provide additional semantic guidance beyond that.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool forges a Diamond Ticket (modified legitimate TGT), and distinguishes it from golden tickets by highlighting stealthiness. This helps the agent differentiate from siblings like rubeus_golden.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage as a stealthier alternative to golden tickets and notes the requirement for the krbtgt key. However, it does not explicitly state when not to use or list alternatives beyond golden tickets.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rubeus_dumpA

Dump all Kerberos tickets from memory (current or all sessions).

Extracts tickets from the current logon session or, with elevation, from all logon sessions on the system.

Tickets are output as base64-encoded kirbi format.

ParametersJSON Schema
NameRequiredDescriptionDefault
luidNoTarget specific LUID (requires elevation)
userNoFilter by username
serviceNoFilter by service name
serverNoFilter by server name
nowrapNoDon't wrap base64 output

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description discloses key behaviors: extraction from current or all sessions (with elevation) and output format (base64 kirbi). It does not mention side effects or detailed auth requirements, but is relatively transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences: first states purpose, second explains scope, third describes output format. No wasted words, front-loaded with core action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers primary behavior and output, but lacks guidance on parameter combinations (e.g., when to use filters). For a dump tool, it is fairly complete but could benefit from a usage note.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with each parameter described briefly (e.g., 'Target specific LUID'). The tool description adds no further parameter context beyond the schema, so a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool dumps Kerberos tickets from memory (current or all sessions). It distinguishes from sibling tools like rubeus_klist and rubeus_ptt by focusing on extraction rather than listing or injection.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for extracting tickets, mentioning elevation for all sessions, but does not explicitly advise when to use alternatives or provide exclusions. Among many sibling tools, some guidance would be helpful.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rubeus_goldenA

Forge a Golden Ticket (forged TGT with krbtgt hash).

Creates a TGT that grants domain-wide access. Requires:

  • Domain SID

  • krbtgt account hash (RC4 or AES)

  • Target username and domain

The golden ticket bypasses normal authentication and can be used for persistent domain access.

ParametersJSON Schema
NameRequiredDescriptionDefault
userYesUsername for the forged ticket
domainYesDomain FQDN
sidNoDomain SID
rc4Nokrbtgt RC4/NTLM hash
aes256Nokrbtgt AES256 key
aes128Nokrbtgt AES128 key
desNokrbtgt DES key
dcNoDomain controller
ldapNoRetrieve info via LDAP (requires auth)
groupsNoGroup SIDs to include (comma-separated)
sidsNoExtra SIDs for SID history
idNoUser ID (RID)
pgidNoPrimary group ID
outfileNoOutput file for ticket
pttNoPass-the-ticket to current session
nowrapNoDon't wrap base64 output
starttimeNoTicket start time
endtimeNoTicket end time
renewtillNoRenewable until time
rangeendNoEnd of time range for ticket
rangeintervalNoInterval for ticket time range

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden. It discloses that the tool creates a TGT granting domain-wide access, bypasses authentication, and enables persistence. However, it does not detail side effects (e.g., whether the ticket is injected into memory without ptt), required privileges, or behavioral effects of optional parameters like ldap or outfile.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (4 sentences) and front-loaded with the main action. It efficiently conveys requirements and consequences without unnecessary detail. It could be slightly improved by ordering the requirements inline rather than a bullet list, but overall it is well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite 21 parameters and no output schema, the description only covers 3 requirements. It ignores many key parameters (e.g., groups, sids, starttime, ptt) that affect behavior. An agent would lack guidance on how to configure these or interpret results, making the description incomplete for a complex tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with good parameter descriptions. The description adds context by grouping required parameters and mentioning hash types (RC4, AES), which aids interpretation. However, it does not substantially extend beyond the schema, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool forges a Golden Ticket (a forged TGT) using the krbtgt hash, specifying the verb 'forge' and the resource 'Golden Ticket/TGT'. It distinguishes from siblings like rubeus_asktgt (which requests a TGT) and other Rubeus tools by its unique purpose of creating a persistent, domain-wide access ticket.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description lists prerequisites (Domain SID, krbtgt hash, target username, domain) but does not explicitly state when to use this tool versus alternatives like rubeus_diamond or rubeus_asktgt. It lacks when-not-to-use guidance and does not mention situational context such as privilege requirements or detection risks.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rubeus_harvestB

Continuously monitor for and harvest new TGTs.

Runs in a loop, extracting new TGTs as they appear and optionally auto-renewing them to maintain access.

Useful for capturing tickets from other users logging in.

ParametersJSON Schema
NameRequiredDescriptionDefault
monitorintervalNoInterval to check for new tickets (seconds)
displayintervalNoInterval to display harvested tickets (seconds)
targetuserNoOnly harvest tickets for specific user
nowrapNoDon't wrap base64 output
registryNoStore tickets in registry
runforNoRun for specified duration (seconds)

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It mentions looping and optional auto-renewal, but does not disclose side effects (e.g., whether tickets are removed from the source), authorization needs, or destructive potential, which is insufficient for a monitoring/ticket extraction tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise, with three short sentences. Every sentence adds value—first states the action, second elaborates on loop and auto-renewal, third gives use case. No fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 6 parameters and no output schema. The description lacks details on return values or output format, which is critical for an agent to process results. It also does not explain how 'runfor' interacts with the loop or what 'harvested' means in terms of output, leaving significant gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description does not add meaning beyond the schema; it does not explain how parameters like 'monitorinterval' or 'registry' affect behavior, relying entirely on the already documented schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool monitors and harvests TGTs continuously, with specific verb 'harvest' and resource 'TGTs'. It distinguishes from siblings like rubeus_asktgt or rubeus_dump by focusing on capturing new tickets from other users.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides a usage scenario: 'Useful for capturing tickets from other users logging in.' However, it lacks explicit when-not-to-use guidance or comparison with alternatives, leaving the agent to infer context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rubeus_hashA

Calculate Kerberos password hashes from plaintext.

Computes the various Kerberos encryption keys from a password:

  • RC4_HMAC (NTLM)

  • AES128_CTS_HMAC_SHA1

  • AES256_CTS_HMAC_SHA1

  • DES_CBC_MD5

These hashes can be used for ticket requests and other operations.

ParametersJSON Schema
NameRequiredDescriptionDefault
passwordYesPassword to hash
userNoUsername (required for AES salt)
domainNoDomain (required for AES salt)

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description adequately conveys the tool's behavior: it computes hashes and lists output hash types. No destructive or hidden side effects are indicated, and the read-only nature is implied.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is three sentences long, front-loads the core functionality, and contains no unnecessary words. Every sentence is meaningful.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Although no output schema exists, the description lists the hash types returned. It gives context on usage for ticket requests. Missing details like error handling or exact output format, but sufficient for a simple computation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, so baseline is 3. The description adds value by explaining that user and domain are required for AES salt, which goes beyond schema parameter descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it calculates Kerberos password hashes from plaintext and lists specific hash types, which distinguishes it from sibling tools like rubeus_asktgt that use hashes for ticket requests.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions that hashes can be used for ticket requests, providing context for when to use this tool. However, it does not explicitly state when not to use it or compare to alternatives, leaving some inference to the agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rubeus_kerberoastA

Perform Kerberoasting attack to extract service account password hashes.

Requests TGS tickets for accounts with SPNs, which are encrypted with the service account's password hash. These can be cracked offline.

Features:

  • Target specific users or all SPN accounts

  • AES vs RC4 OPSEC considerations

  • Statistics mode for reconnaissance

  • LDAP filtering for targeted attacks

  • Password age filtering

Output format compatible with hashcat (mode 13100/19700) or John.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainNoTarget domain
dcNoDomain controller IP/hostname
userNoTarget specific user account
spnNoTarget specific SPN
spnsNoFile containing target SPNs
ouNoTarget specific OU
outfileNoOutput file for hashes
simpleNoSimple output format
nowrapNoDon't wrap hash output
aesNoRequest AES tickets (stealthier)
rc4opsecNoOnly roast RC4-enabled accounts (OPSEC)
statsNoShow statistics only, don't request tickets
creduserNoAlternate credential username
credpasswordNoAlternate credential password
ldapfilterNoCustom LDAP filter
pwdsetafterNoOnly accounts with password set after date
pwdsetbeforeNoOnly accounts with password set before date
resultlimitNoLimit number of results
delayNoDelay between requests (ms)
jitterNoJitter percentage for delay
ticketNoUse existing TGT
tgtdelegNoUse tgtdeleg trick to obtain TGT
enterpriseNoUse enterprise principal names

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description carries the full burden. It explains that the tool requests TGS tickets encrypted with password hashes, mentions OPSEC considerations (AES vs RC4), and notes the output format for hashcat/John. It does not disclose prerequisites like domain credentials or potential alerts, but covers key behavioral aspects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with three short paragraphs and bullet points for features. It is front-loaded with the primary purpose. While not as lean as one sentence, it efficiently communicates key details without unnecessary verbosity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 23 parameters and no output schema, the description covers the overall goal, key features, and output format. It addresses targeting, stealth, filtering, and output compatibility. Minor gaps like exact return structure or credential requirements exist, but completeness is high for a complex offensive security tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description adds meaningful context beyond the schema by grouping features (e.g., targeting, stealth, filtering) and explaining the purpose of advanced options like aes, stats, and ldapfilter. This extra value justifies a 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool performs a Kerberoasting attack to extract service account password hashes, using the specific verb 'Perform' and resource. It distinguishes from sibling tools like rubeus_asreproast by focusing on TGS ticket requests for SPN accounts, leaving no ambiguity about its unique purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for offline cracking of service account passwords and lists relevant features, providing clear context for when to use the tool. However, it lacks explicit exclusions or alternative tool references, though the sibling list makes the distinction apparent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rubeus_kirbiB

Modify a kirbi ticket's session key.

Changes the session key in an existing kirbi ticket. Useful for advanced ticket manipulation.

ParametersJSON Schema
NameRequiredDescriptionDefault
kirbiYesBase64 kirbi or file path
sessionkeyYesNew session key
sessionetypeNoSession key encryption type
pttNoPass-the-ticket after modification
luidNoTarget LUID for PTT
outfileNoOutput file
nowrapNoDon't wrap base64 output

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so the description must carry the full burden. It discloses that the tool modifies a session key but omits any side effects, prerequisites, or error conditions. For a tool modifying a security token, this is insufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with purpose, and contains no unnecessary words. It is efficiently concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 7 parameters and no output schema. The description fails to explain return values, workflow, or error handling, leaving gaps for an agent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with each parameter having a description. The tool description adds no additional meaning beyond what the schema provides, so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'modify' and the resource 'kirbi ticket's session key'. It is specific and distinct from sibling tools like rubeus_golden or rubeus_dump.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions 'useful for advanced ticket manipulation', which implies usage context but does not provide explicit when-to-use or when-not-to-use guidance, nor alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rubeus_klistA

List detailed information about Kerberos tickets.

Similar to the native klist command but with more detail and filtering options.

ParametersJSON Schema
NameRequiredDescriptionDefault
luidNoTarget specific LUID
userNoFilter by username
serviceNoFilter by service name
serverNoFilter by server name

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description bears full burden. It correctly indicates a read-only listing operation, but omits details like required permissions, potential side effects, or output format. For a list tool, the behavior is adequately implied but not fully transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the core action, and contains no unnecessary words. Every sentence adds value: what it does and how it compares to the native command.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with four optional parameters and no output schema, the description is mostly sufficient but lacks details on output format or further behavioral context. It does not fully cover the complexity of differentiating from many sibling tools.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the description adds no extra parameter meaning beyond the existing field descriptions. The baseline of 3 is appropriate; the description does not enhance or clarify parameter usage further.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists detailed Kerberos ticket information, and distinguishes it from the native klist by noting more detail and filtering options. While it doesn't specify the exact type of tickets or differentiate from siblings like rubeus_triage, the purpose is specific and actionable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for inspecting tickets in more detail than the native klist, but lacks explicit guidance on when to choose this tool over siblings (e.g., for obtaining tickets vs. listing cached tickets). No exclusion or alternative contexts are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rubeus_logonsessionC

Display information about logon sessions.

Shows detailed information about the current or specified logon session.

ParametersJSON Schema
NameRequiredDescriptionDefault
currentNoShow current session only
luidNoShow specific LUID

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, and the description only states the tool displays information, implying a read-only behavior. It does not disclose any permissions needed, side effects, or output format, leaving significant gaps for an agent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is very concise, with two sentences that convey the core purpose. It is front-loaded and avoids unnecessary detail, making it easy to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with no required parameters and a clear purpose, the description is adequate. However, it could benefit from mentioning what information is displayed (e.g., user, domain, logon type) given the tool's security context and lack of output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the parameters are well-defined in the schema. The description adds the context of 'current or specified logon session', which aligns with the parameters but does not provide additional semantic depth beyond what the schema already offers.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it displays information about logon sessions, with options for current or specified sessions. It distinguishes from sibling tools that perform actions like 'ask', 'dump', or 'golden', but does not explicitly differentiate beyond the core action of displaying.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives. The sibling tools cover many related Kerberos operations, but no context is given for when 'rubeus_logonsession' is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rubeus_monitorA

Monitor for new TGTs without harvesting/renewal.

Watches for new TGT events and displays them as they occur. Lighter weight than harvest - just observation.

ParametersJSON Schema
NameRequiredDescriptionDefault
intervalNoCheck interval (seconds, default 60)
targetuserNoOnly monitor specific user
nowrapNoDon't wrap base64 output
registryNoStore tickets in registry
runforNoRun for specified duration (seconds)

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description must bear full burden. Says 'just observation' implying read-only, but does not explicitly disclose if it modifies state, requires privileges, or what happens on interval completion. Adequate but not fully explicit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Efficient two-sentence description that is front-loaded with primary purpose. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, description explains real-time display behavior. Could mention continuous monitoring until 'runfor' expires, but parameter covers duration. Largely complete for a monitoring tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline 3. Description does not add any extra meaning to parameters; the schema already describes each parameter adequately.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it monitors for new TGT events, distinguishes from harvest by being lightweight and observation-only. Gives specific verb 'monitor' and resource 'new TGTs'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides clear context that it is for observation without harvesting/renewal, implying use when only monitoring is needed. But does not explicitly state when not to use or list alternatives beyond harvest.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rubeus_pttA

Pass-the-ticket: Apply a Kerberos ticket to the current logon session.

Imports a ticket (from base64 or .kirbi file) into the current session, enabling access to resources as the ticket's principal.

ParametersJSON Schema
NameRequiredDescriptionDefault
ticketYesBase64 encoded ticket or path to .kirbi file
luidNoTarget LUID (requires elevation)

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must fully convey behavior. It mentions importing a ticket and enabling access, but does not disclose side effects like ticket replacement, permission requirements, or error scenarios. It lacks detail for a security-sensitive operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences: the first states the purpose and the second explains the mechanism. No redundancy, front-loaded key information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the core action and input, but lacks details on output (e.g., success/failure indication) and potential errors. Given no output schema, more information would help an agent handle the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already provides high-coverage descriptions for both parameters (ticket format, luid elevation). The tool description does not add additional meaning beyond what is in the schema, so baseline score applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it passes a Kerberos ticket to the current session, specifying the action, input format, and result. It distinguishes itself from sibling tools like rubeus_asktgt or rubeus_golden by focusing on applying an existing ticket.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage when you have a Kerberos ticket to use, but does not explicitly state when to avoid this tool or mention alternatives. It is self-explanatory within the context of sibling tools with distinct purposes.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rubeus_purgeA

Purge Kerberos tickets from a logon session.

Removes all tickets from the current session, or with elevation, from a specific LUID.

ParametersJSON Schema
NameRequiredDescriptionDefault
luidNoTarget LUID (requires elevation)

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must cover behavioral traits. It states that removing tickets requires elevation for a specific LUID, which discloses a requirement. However, it does not mention side effects (e.g., loss of authentication) or confirm destructive nature beyond the verb 'Purge'.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, each carrying essential information: the first states the action and resource, the second elaborates on the two scenarios. No redundant or extraneous text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one optional parameter and no output schema, the description is fairly complete. It covers the core functionality, the two usage modes, and the elevation requirement. It lacks details about success indicators or error conditions, but these are minor given the tool's simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema covers 100% of parameters with a description for 'luid'. The description adds value by explaining the two modes (current session vs. elevated LUID), which goes beyond the schema's simple wording.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'Purge' and resource 'Kerberos tickets', clearly distinguishing it from sibling tools like rubeus_dump or rubeus_ptt. It specifies the scope: from a logon session, either current or specific LUID.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use for clearing Kerberos tickets but does not explicitly state when not to use it or mention alternative tools. No guidance on prerequisites or context is provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rubeus_renewA

Renew an existing TGT to extend its validity period.

Can optionally auto-renew continuously until the renewable lifetime expires. Useful for maintaining persistent access without re-authentication.

ParametersJSON Schema
NameRequiredDescriptionDefault
ticketYesBase64 encoded TGT or path to .kirbi file
dcNoDomain controller IP/hostname
outfileNoOutput file for renewed ticket
pttNoPass-the-ticket to current session
nowrapNoDon't wrap base64 output
autorenewNoAutomatically renew ticket periodically

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It explains the core behavior (renewal, optional autorenew) but lacks details on prerequisites (e.g., network access to DC), side effects, output format, or error conditions. The mention of 'renewable lifetime' is vague.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description consists of three short, front-loaded sentences. Every sentence provides value: first states the core action, second adds an optional behavior, third gives usage context. No redundancy or waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 6 parameters but no output schema. The description does not specify what the tool returns (e.g., renewed ticket, success message). It also fails to explain parameter interactions or constraints (e.g., ticket renewal requires domain controller). This is insufficient for a complex tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, with all parameters described in the schema. The description adds only the context of 'auto-renew continuously' for the autorenew parameter. Overall, it adds minimal meaning beyond the schema, so baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool renews an existing TGT, specifying the verb 'renew' and the resource 'existing TGT'. This distinguishes it from sibling tools like rubeus_asktgt (create new TGT) and rubeus_asktgs (service tickets).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions it is useful for maintaining persistent access without re-authentication, implying when to use. However, it does not explicitly exclude its use for initial TGT acquisition or provide direct alternatives, only implied context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rubeus_s4uA

Perform S4U (Service for User) constrained/unconstrained delegation abuse.

Implements:

  • S4U2Self: Obtain service ticket to yourself on behalf of another user

  • S4U2Proxy: Use constrained delegation to obtain ticket to target service

This is a powerful technique for privilege escalation when you control an account with delegation rights.

Supports:

  • User-based authentication (password/hash)

  • Ticket-based authentication

  • Bronze Bit exploitation (CVE-2020-17049)

  • OPSEC-safe options

ParametersJSON Schema
NameRequiredDescriptionDefault
userNoAccount with delegation rights
domainNoDomain name
rc4NoRC4/NTLM hash of delegating account
aes256NoAES256 key of delegating account
aes128NoAES128 key of delegating account
ticketNoTGT of delegating account
impersonateuserYesUser to impersonate
msdsspnNoTarget SPN for S4U2Proxy
altserviceNoAlternative service(s) for SPN substitution
dcNoDomain controller IP/hostname
outfileNoOutput file for ticket
pttNoPass-the-ticket to current session
nowrapNoDon't wrap base64 output
selfNoOnly perform S4U2Self
opsecNoUse OPSEC-safe options
forceNoForce with non-AES256 keys
bronzebitNoExploit CVE-2020-17049
nopacNoRequest ticket without PAC
createnetonlyNoProgram to spawn in netonly session
s4uproxytargetNoFinal delegation target
s4utransitedservicesNoTransited services for PAC
targetdomainNoTarget domain if different
targetdcNoTarget DC if different

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It describes functionality and supported features (e.g., Bronze Bit, OPSEC-safe options) but does not disclose side effects like ticket creation in memory/disk or permission requirements beyond delegation rights.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured with bullet points, front-loading the core purpose and listing key features without extraneous text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 23 parameters and no output schema, the description lacks information about return values (e.g., ticket output format). It covers high-level functionality but misses details on what the tool actually produces.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema handles parameter details. The description adds no additional semantic value beyond the high-level functionality; it does not explain parameter relationships or usage specifics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool performs S4U constrained/unconstrained delegation abuse, specifying S4U2Self and S4U2Proxy implementations. It distinguishes itself from sibling Rubeus tools by focusing on delegation abuse and privilege escalation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions using this when you control an account with delegation rights, providing some context. However, it does not explicitly exclude alternatives or provide when-not-to-use guidance relative to sibling tools like rubeus_asktgs or rubeus_tgtdeleg.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rubeus_silverA

Forge a Silver Ticket (forged TGS with service account hash).

Creates a service ticket for a specific service. Requires:

  • Service account hash

  • Service SPN

  • Domain information

Silver tickets grant access to a specific service without touching the DC.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoUser ID (RID)
desNoService account DES key
pttNoPass-the-ticket to current session
rc4NoService account RC4/NTLM hash
sidNoDomain SID
ldapNoRetrieve info via LDAP
sidsNoExtra SIDs for SID history
userYesUsername for the forged ticket
cnameNoClient name
aes128NoService account AES128 key
aes256NoService account AES256 key
crealmNoClient realm
domainYesDomain FQDN
groupsNoGroup SIDs to include
krbkeyNoKerberos session key
nowrapNoDon't wrap base64 output
outfileNoOutput file for ticket
serviceYesTarget service SPN
s4uproxytargetNoS4U proxy target
s4utransitedservicesNoS4U transited services

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must convey behavioral traits. It states the tool creates a ticket without contacting the DC, implying it's a post-exploitation attack. It lists required secrets, indicating the need for prior compromise. However, it does not detail side effects (e.g., overwriting existing tickets) or permissions required.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise (4 sentences) and well-structured. It starts with a clear action verb ('Forge'), then lists prerequisites in a bullet-like format, and finally states the benefit. No unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 20 parameters, 3 required, and no output schema, the description covers the core functionality and prerequisites. It mentions output options (outfile) but does not describe the return format (e.g., base64 ticket). For a complex security tool, this is adequate though could be enhanced with output details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All 20 parameters have descriptions in the schema, so the baseline is 3. The description adds value by summarizing that the 'service account hash' is required (referencing rc4/aes128/aes256/des) and clarifying the purpose of the service SPN and domain. It does not explain every parameter but provides high-level meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool's purpose: to forge a Silver Ticket (a forged Ticket-Granting Service ticket) using a service account hash. It specifies the resource (service ticket) and the action (forge/create), distinguishing it from siblings like golden tickets (domain-wide) or asktgs (legitimate request).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description lists the required inputs (service account hash, service SPN, domain information) and explains the benefit (grants access without touching the DC). It does not explicitly mention when not to use it or compare with alternatives, but the context and prerequisites provide sufficient guidance for an experienced agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rubeus_tgssubA

Substitute the service name in a service ticket.

Replaces the SPN in an existing TGS with a different service name. Useful when you have a ticket for one service but need access to another on the same server (requires same service account).

ParametersJSON Schema
NameRequiredDescriptionDefault
ticketYesBase64 encoded ticket or path to .kirbi file
altserviceYesNew service name to substitute
srealmNoService realm
pttNoPass-the-ticket after substitution
luidNoTarget LUID for PTT
nowrapNoDon't wrap base64 output

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It explains that the SPN is replaced and requires the same service account, but it does not disclose whether the original ticket is modified or a new one is created, nor does it describe output format, error conditions, or side effects like pass-the-ticket behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, with a clear one-line summary followed by a brief elaboration. It uses two paragraphs effectively without redundancy or unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description covers the main purpose and a key use case, but it lacks details about output (no output schema) and the implications of parameters like ptt, luid, and nowrap. Given the tool's complexity and zero annotations, the description should provide more context about behavior and return values.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for all six parameters. The description adds minimal extra meaning beyond the schema, merely reiterating the concept of service name substitution. Since schema already documents parameters, baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'Substitute the service name in a service ticket' and explains it replaces the SPN in an existing TGS with a new service name. It clearly distinguishes itself from other Rubeus tools (e.g., asktgs, s4u) by focusing on ticket modification rather than acquisition or delegation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly indicates when to use the tool: when you have a ticket for one service but need access to another on the same server, requiring the same service account. It does not explicitly list when not to use or name alternatives, but the context makes the intended scenario evident.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rubeus_tgtdelegA

Extract a usable TGT for the current user without elevation.

Uses Kerberos GSS-API to abuse the delegation mechanism and retrieve the current user's TGT. This is the "tgt::deleg" technique from Kekeo.

No admin/elevation required - works with standard user permissions. The extracted TGT can be used for pass-the-ticket attacks.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetNoTarget SPN for the delegation trick (optional)
nowrapNoDon't wrap base64 output

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden. It discloses that the tool uses Kerberos GSS-API, abuses delegation, and works with standard permissions. However, it does not detail potential side effects or network requests, though as a read-only extraction tool, the transparency is adequate.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with four sentences, front-loaded with the main purpose, followed by key technical details and use cases. No unnecessary words; every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity and lack of output schema, the description is largely complete: it explains what the tool does, its advantage (no elevation), and the resulting artifact (TGT for pass-the-ticket). However, it could mention how to inject or use the extracted TGT, but overall it's sufficient for advanced users.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with both parameters described in the input schema. The description adds no new meaning beyond restating that 'target' is the target SPN for delegation and 'nowrap' controls base64 wrapping. Thus, parameter semantics score is baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool 'extracts a usable TGT for the current user without elevation,' providing a specific verb and resource. It references the 'tgt::deleg' technique from Kekeo, distinguishing it from other Rubeus tools like asktgt or asktgs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions no elevation is required and that the TGT can be used for pass-the-ticket, but it lacks explicit guidance on when to use this tool versus alternatives like asktgt or s4u. The context is implied rather than explicitly stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

rubeus_triageA

Display a quick summary of all tickets in current/all sessions.

Shows ticket information without full extraction - useful for reconnaissance of what tickets are available.

ParametersJSON Schema
NameRequiredDescriptionDefault
luidNoTarget specific LUID
userNoFilter by username
serviceNoFilter by service name
serverNoFilter by server name

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It states 'without full extraction', indicating a non-destructive, lightweight operation. However, it does not disclose other behavioral traits such as whether it modifies state, permissions required, or side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences, front-loaded with the primary action, and provides additional context in the second sentence. Every word earns its place with no fluff or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool is simple (4 optional params, no required, no output schema, read-only), the description covers the main action adequately. It could mention return format or behavior with no results, but overall it is fairly complete for a triage tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and each parameter has a basic description in the schema. The tool description adds no additional meaning beyond what is already in the schema, so a baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it displays a quick summary of tickets in sessions, using specific verbs (display/show) and resource (tickets). It distinguishes from siblings like rubeus_dump by noting 'without full extraction', making the purpose unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions 'useful for reconnaissance', which implies usage context, but it does not explicitly state when to use this tool versus siblings like rubeus_klist or rubeus_dump, nor does it provide when-not-to-use guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A3.7/5.0
Disambiguation5/5

Each tool targets a distinct Kerberos operation (e.g., asktgt, asktgs, kerberoast, golden) with detailed descriptions that clearly differentiate them; no two tools overlap in purpose.

Naming Consistency5/5

All tools follow a consistent snake_case pattern with the 'rubeus_' prefix and descriptive verbs or nouns (e.g., asktgt, asreproast, tgtdeleg) with no mixing of conventions.

Tool Count4/5

26 tools is on the higher side but appropriate for the comprehensive Kerberos attack and ticket manipulation domain; each tool corresponds to a real Rubeus command and is justified.

Completeness4/5

The toolset covers major Kerberos attack techniques (TGT/TGS, roasting, forging, pass-the-ticket, S4U, etc.) but lacks a dedicated silver ticket tool, which is a minor gap.

Maintenance

ActivityInactive
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    C
    maintenance
    A Model Context Protocol server for the Sliver C2 framework that exposes operator tools like listeners, implant generation, sessions, command execution, and file operations for LLM-driven adversary emulation.
    37
    1
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/schwarztim/sec-rubeus-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server