Detecting Pass-the-Ticket Attacks
Overview
Pass-the-Ticket (PtT) is a credential theft technique (MITRE ATT&CK T1550.003) where adversaries steal Kerberos tickets (TGT or TGS) from one system and replay them on another to authenticate without knowing the user's password. This skill teaches detection of PtT attacks by correlating Windows Security Event IDs 4768 (TGT request), 4769 (TGS request), and 4771 (pre-authentication failure) for anomalies such as ticket reuse across different hosts, RC4 encryption downgrades, and unusual service ticket request volumes.
When to Use
Trigger phrases:
"detecting pass the ticket attacks"
"Detect Kerberos Pass-the-Ticket (PtT) attacks by analyzing Windows Event IDs 476"
When investigating security incidents that require detecting pass the ticket attacks
When building detection rules or threat hunting queries for this domain
When SOC analysts need structured procedures for this analysis type
When validating security monitoring coverage for related attack techniques
Prerequisites
- Windows Domain Controller with advanced audit policy enabled (Audit Kerberos Authentication Service, Audit Kerberos Service Ticket Operations)
- Splunk or Elastic SIEM ingesting Windows Security event logs
- Sysmon deployed on endpoints for supplementary process telemetry
- Python 3.8+ with
requests library
Steps
# Example: IOC detection
import re
IOC_PATTERNS = {
"ip": r"\b(?:\d{1,3}\.){3}\d{1,3}\b",
"domain": r"\b[a-z0-9-]+\.[a-z]{2,}\b",
"hash_md5": r"\b[a-f0-9]{32}\b",
"hash_sha256": r"\b[a-f0-9]{64}\b",
}
def extract_iocs(text: str) -> dict:
return {k: re.findall(v, text) for k, v in IOC_PATTERNS.items()}
- Enable Kerberos audit logging on Domain Controllers via Group Policy
- Forward Event IDs 4768, 4769, and 4771 to SIEM platform
- Deploy detection rules for RC4 encryption downgrade (TicketEncryptionType 0x17)
- Create correlation rule for ticket reuse across multiple source IPs
- Build baseline of normal TGS request volume per user/host
- Alert on standard deviation anomalies in ticket request patterns
- Investigate flagged events with enrichment from Active Directory
Expected Output
JSON report containing detected PtT indicators including anomalous ticket requests, RC4 downgrades, cross-host ticket reuse events, and risk-scored users with MITRE ATT&CK technique mapping.
When NOT to Use
- You need to perform the attack to test detection (use performing-* skills)
- Task is about analyzing past incidents (use analyzing-* skills)
- You need to implement detection rules (use implementing-* skills)
- Task is about threat hunting proactively (use hunting-* skills)
- You don't have access to logs or monitoring data
- Task requires incident response (use IR skills)
Red Flags
- Performing actions without explicit written authorization from the asset owner
- Testing against production systems without a defined scope and rules of engagement
- Capturing traffic on networks without authorization or privacy considerations
- Leaving packet captures containing sensitive data unencrypted on disk
- Deploying inline blocking rules without testing for false positives first
Process
- Reconnaissance — Gather target information, identify attack surface, enumerate services
- Analysis/Exploitation — Execute the technique, analyze results, document findings
- Reporting — Document IOCs, write findings, provide remediation recommendations
Verification
- All steps executed successfully against a test environment before production use
- Output documented with screenshots or logs demonstrating expected behavior
- Captures verified as complete with no dropped packets
- Detection rules tested against known-benign traffic for false positive rate
- Alert thresholds validated and tuned to reduce noise
Anti-Rationalization Table
| Rationalization |
Reality |
| "We are too small to be targeted" |
Automated attacks target everyone. Size does not matter. |
| "Security slows us down" |
A breach slows you down 100x more. Build security in from the start. |
| "We will fix it after launch" |
Vulnerabilities in production are exploited within hours. Fix before deploy. |
1---2name: detecting-pass-the-ticket-attacks3description: Use when detect Kerberos Pass-the-Ticket (PtT) attacks by analyzing Windows Event IDs 4768, 4769, and 4771 for anomalous ticket usage patterns in Splunk and Elastic SIEM. Use when detecting kerberos pass-the-ticket (ptt) attacks by analyzing windows event ids.4license: Apache-2.05---678# Detecting Pass-the-Ticket Attacks910## Overview1112Pass-the-Ticket (PtT) is a credential theft technique (MITRE ATT&CK T1550.003) where adversaries steal Kerberos tickets (TGT or TGS) from one system and replay them on another to authenticate without knowing the user's password. This skill teaches detection of PtT attacks by correlating Windows Security Event IDs 4768 (TGT request), 4769 (TGS request), and 4771 (pre-authentication failure) for anomalies such as ticket reuse across different hosts, RC4 encryption downgrades, and unusual service ticket request volumes.131415## When to Use16**Trigger phrases:**17- "detecting pass the ticket attacks"18- "Detect Kerberos Pass-the-Ticket (PtT) attacks by analyzing Windows Event IDs 476"192021- When investigating security incidents that require detecting pass the ticket attacks22- When building detection rules or threat hunting queries for this domain23- When SOC analysts need structured procedures for this analysis type24- When validating security monitoring coverage for related attack techniques2526## Prerequisites2728- Windows Domain Controller with advanced audit policy enabled (Audit Kerberos Authentication Service, Audit Kerberos Service Ticket Operations)29- Splunk or Elastic SIEM ingesting Windows Security event logs30- Sysmon deployed on endpoints for supplementary process telemetry31- Python 3.8+ with `requests` library3233## Steps3435```python36# Example: IOC detection37import re3839IOC_PATTERNS = {40 "ip": r"\b(?:\d{1,3}\.){3}\d{1,3}\b",41 "domain": r"\b[a-z0-9-]+\.[a-z]{2,}\b",42 "hash_md5": r"\b[a-f0-9]{32}\b",43 "hash_sha256": r"\b[a-f0-9]{64}\b",44}4546def extract_iocs(text: str) -> dict:47 return {k: re.findall(v, text) for k, v in IOC_PATTERNS.items()}48```49501. Enable Kerberos audit logging on Domain Controllers via Group Policy512. Forward Event IDs 4768, 4769, and 4771 to SIEM platform523. Deploy detection rules for RC4 encryption downgrade (TicketEncryptionType 0x17)534. Create correlation rule for ticket reuse across multiple source IPs545. Build baseline of normal TGS request volume per user/host556. Alert on standard deviation anomalies in ticket request patterns567. Investigate flagged events with enrichment from Active Directory5758## Expected Output5960JSON report containing detected PtT indicators including anomalous ticket requests, RC4 downgrades, cross-host ticket reuse events, and risk-scored users with MITRE ATT&CK technique mapping.61## When NOT to Use6263- You need to perform the attack to test detection (use performing-* skills)64- Task is about analyzing past incidents (use analyzing-* skills)65- You need to implement detection rules (use implementing-* skills)66- Task is about threat hunting proactively (use hunting-* skills)67- You don't have access to logs or monitoring data68- Task requires incident response (use IR skills)697071## Red Flags7273- Performing actions without explicit written authorization from the asset owner74- Testing against production systems without a defined scope and rules of engagement75- Capturing traffic on networks without authorization or privacy considerations76- Leaving packet captures containing sensitive data unencrypted on disk77- Deploying inline blocking rules without testing for false positives first7879## Process80811. **Reconnaissance** — Gather target information, identify attack surface, enumerate services821. **Analysis/Exploitation** — Execute the technique, analyze results, document findings831. **Reporting** — Document IOCs, write findings, provide remediation recommendations8485## Verification8687- All steps executed successfully against a test environment before production use88- Output documented with screenshots or logs demonstrating expected behavior89- Captures verified as complete with no dropped packets90- Detection rules tested against known-benign traffic for false positive rate91- Alert thresholds validated and tuned to reduce noise9293## Anti-Rationalization Table9495| Rationalization | Reality |96|---|---|97| "We are too small to be targeted" | Automated attacks target everyone. Size does not matter. |98| "Security slows us down" | A breach slows you down 100x more. Build security in from the start. |99| "We will fix it after launch" | Vulnerabilities in production are exploited within hours. Fix before deploy. |