Skip to content
Security
Skill

/ad-opsec-telemetry

The telemetry each Active Directory technique generates and what alerts a defender: Kerberoasting produces Event 4769 with RC4 encryption (0x17) and an MDI alert, DCSync produces Event 4662 with the DS-Replication-Get-Changes GUID, AS-REP roasting produces Event 4768 with no

BOOST
From plugin
claude-ad
2128 skills3 agents3 commands
Install
$ npx -y skills add ADScanPro/Claude-AD --skill ad-opsec-telemetry --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/ad-opsec-telemetry

Context preview

The summary Claude sees to decide when to auto-load this skill.

The telemetry each Active Directory technique generates and what alerts a defender: Kerberoasting produces Event 4769 with RC4 encryption (0x17) and an MDI alert, DCSync produces Event 4662 with the DS-Replication-Get-Changes GUID, AS-REP roasting produces Event 4768 with no

SKILL.md

ad-opsec-telemetry.SKILL.md
name: ad-opsec-telemetry
description: >
  The telemetry each Active Directory technique generates and what alerts a defender:
  Kerberoasting produces Event 4769 with RC4 encryption (0x17) and an MDI alert, DCSync
  produces Event 4662 with the DS-Replication-Get-Changes GUID, AS-REP roasting produces
  Event 4768 with no pre-auth, LSASS dumping is blocked by EDR, plus a lateral-movement
  telemetry table by protocol (SMB/WMI/WinRM/RDP/DCOM). Use this whenever you run or plan an
  offensive AD technique and need to know what noise it makes, when writing the engagement's
  detection notes, or when a defender wants to know what to monitor. Teaches red teamers
  what is loud and blue teamers what to watch. Standard-tooling knowledge, no vendor engine.

AD OPSEC and Telemetry

Every technique leaves a trace. The goal here is not evasion. It is knowing the noise profile of each action so you can document it for the client before the engagement, pick the quieter of two functionally equivalent techniques, and correlate what you did with what their SOC saw. For a defender, read the same tables backwards: they are the events to monitor and alert on.

Two rules of engagement throughout:

  • **Document the noise.** Tell the client what each high-signal action generated, with the

event ID and the source IP, so they can find it in their logs.

  • **Coordinate the loud ones.** DCSync, mass spraying, coercion at scale, and LSASS dumps

need explicit client sign-off or an end-of-engagement window when detection no longer matters.

Microsoft Defender for Identity (MDI) is the sensor that matters most in AD; it reads DC traffic directly and ships tuned detections for most of what follows.

---

Kerberoasting: Event 4769, RC4 (0x17)

Requesting service tickets for accounts with SPNs, to crack offline.

  • **Event 4769** (Kerberos service ticket requested) fires for each SPN targeted. The tell

is `Ticket Encryption Type = 0x17 (RC4-HMAC)`. Attackers request RC4 because the resulting hash cracks fastest, but a service that normally uses AES suddenly requested with RC4 is the classic signature.

  • **MDI**: "Suspected Kerberoasting attack" is on by default and triggers on the volume and

RC4 pattern.

  • Requesting all SPNs at once amplifies the signal. Targeting one high-value account is far

quieter than roasting the whole domain.

GetUserSPNs.py corp.local/user:pass -dc-ip <dc_ip> -request -outputfile roast.txt
  • **MITRE**: T1558.003 (Steal or Forge Kerberos Tickets: Kerberoasting).
  • **Defender watch**: 4769 with 0x17 for accounts that otherwise use AES; a single principal

requesting many distinct SPN tickets in a short window.

  • **Remediation**: strong (25+ char) service-account passwords or gMSA; AES-only on service

accounts; monitor 4769 by encryption type.

---

AS-REP Roasting: Event 4768, no pre-auth

Cracking accounts that have Kerberos pre-authentication disabled, no valid credential needed to request the roastable material.

  • **Event 4768** (TGT requested) with `Pre-Authentication Type = 0`. Normal accounts always

pre-authenticate; a 4768 with no pre-auth is the signature.

  • **MDI**: "Suspected AS-REP Roasting attack."
GetNPUsers.py corp.local/ -usersfile users.txt -dc-ip <dc_ip> -no-pass -format hashcat
  • **MITRE**: T1558.004 (AS-REP Roasting).
  • **Defender watch**: 4768 with pre-auth type 0; any account carrying `DONT_REQUIRE_PREAUTH`.
  • **Remediation**: remove `DONT_REQUIRE_PREAUTH` wherever possible; strong passwords on

accounts that genuinely need it; alert on the flag being set.

---

DCSync: Event 4662, replication GUIDs

Replicating credentials out of the DC using directory-replication rights. High severity, never transparent, so coordinate before running.

  • **Event 4662** (operation on a directory object) with the replication rights GUIDs:
  • `1131f6aa-9c07-11d1-f79f-00c04fc2dcd2`: DS-Replication-Get-Changes
  • `1131f6ad-9c07-11d1-f79f-00c04fc2dcd2`: DS-Replication-Get-Changes-All
  • **MDI**: "Suspected DCSync attack (replication of directory services)": a critical alert

in any competent SOC.

  • The source host in the DC logs is your machine's IP, not a real DC. That mismatch (a

non-DC requesting replication) is itself the detection.

secretsdump.py corp.local/user:pass@dc01.corp.local -just-dc-user krbtgt
  • **MITRE**: T1003.006 (OS Credential Dumping: DCSync).
  • **Defender watch**: 4662 with the Get-Changes GUIDs from any principal that is not a DC;

replication requests sourced from non-DC IPs.

  • **Remediation**: audit and minimize who holds Get-Changes / Get-Changes-All; alert on

replication from non-DC sources; tier-0 isolation.

---

LSASS dumping: blocked by EDR

Dumping process memory of `lsass.exe` to extract credentials.

  • Modern EDR in blocking mode (CrowdStrike Falcon, SentinelOne, Defender for Endpoint)

intercepts `MiniDumpWriteDump` against lsass. The result is a blocked/empty dump, a crashed process, or an immediate alert naming your tool.

  • **Event 4688** (process creation) plus EDR-specific handle-to-lsass telemetry.

**Alternatives that avoid touching lsass live:**

  • SAM/SYSTEM/SECURITY registry hive dump (local admin) → offline parsing.
  • DPAPI offline extraction.
  • Volume Shadow Copy of the hive + offline parse.
  • gMSA / LAPS fetch over LDAP (no endpoint touch at all).
# Registry-hive route: avoids a live lsass handle
secretsdump.py -sam sam.save -system system.save LOCAL
  • **MITRE**: T1003.001 (LSASS Memory).
  • **Defender watch**: process handles opened to lsass with read/VM-read access; EDR

memory-access alerts.

  • **Remediation**: Credential Guard; LSASS as a protected process (RunAsPPL); EDR in

blocking mode.

---

BloodHound collection: a recognizable LDAP signature

  • Collector queries have well-known shapes: `(objectCategory=computer)` pulling dozens of

attributes, plus queries for `msDS-AllowedToDelegateTo`, delegation and ACL attributes in bulk. -

Read more
Ships withclaude-ad

Active Directory pentest methodology for Claude Code. Skills, agents and commands that give Claude the playbook for an internal Active Directory assessment: the phase order, the environment constraints that break your tooling, the telemetry each technique

Get the whole plugin

Other skills on claude-ad.