New to Claude Skills? Learn how to install them →

mukul975 on GitHub

Active Directory Vulnerability Assessment

Free

Secure your Active Directory with comprehensive assessments.

Get this skill

Free · Opens the source repo

What Active Directory Vulnerability Assessment does

This skill provides a structured approach to assess the security posture of Active Directory (AD) environments, which are often prime targets for cyber attacks. Utilizing three established tools—PingCastle, BloodHound, and Purple Knight—it helps identify vulnerabilities, misconfigurations, and potential attack vectors. By integrating these tools, the skill streamlines the process of evaluating AD security, making it easier for security professionals to pinpoint weaknesses that could be exploited by attackers.

PingCastle offers health checks that evaluate various aspects of AD configuration, focusing on stale objects, privileged accounts, trust relationships, and anomalies. It generates detailed reports that highlight critical security issues, such as accounts with weak password policies or excessive privileges. BloodHound complements this by providing attack path analysis, allowing users to visualize and query potential paths an attacker could take to escalate privileges within the network. Lastly, Purple Knight assesses the overall security posture by checking over 130 indicators, providing a score that helps prioritize remediation efforts.

This skill is particularly useful for security professionals conducting regular assessments, incident response teams investigating security breaches, or organizations aiming to comply with regulatory standards. By leveraging these tools, users can enhance their understanding of AD vulnerabilities and improve their overall security posture, ensuring that their identity management systems are robust against potential threats.

When to use it

Use this skill when performing security assessments, incident response, or regular audits of Active Directory environments.

When not to use it

This skill may not be suitable for environments without Active Directory or for users without the necessary administrative access to perform the assessments.

What you can build with it

Conducting Regular Security Assessments

Use this skill to perform periodic evaluations of your Active Directory environment to identify and mitigate vulnerabilities.

Incident Response Investigation

Leverage the skill during incident response to assess the security posture and identify potential attack vectors used during a breach.

Compliance and Regulatory Audits

Utilize this skill to ensure your Active Directory setup meets compliance requirements by identifying misconfigurations and security gaps.

How to install Active Directory Vulnerability Assessment

View source

1. Install with the skills CLI

npx skills add mukul975/anthropic-cybersecurity-skills/performing-active-directory-vulnerability-assessment --agent claude-code

2. Or install it manually

Download the skill folder and drop it into ~/.claude/skills/ for all projects, or .claude/skills/ to scope it to one repo. Restart Claude Code so it picks up the new skill.

Anthropic's agentic coding CLI, and the reference implementation of Agent Skills. Drop a skill folder into ~/.claude/skills and Claude Code loads it automatically whenever a task matches the skill's description. Claude Code docs

Inside SKILL.md

Written by mukul975

Performing Active Directory Vulnerability Assessment

Overview

Active Directory (AD) is the primary identity and access management system in most enterprise environments, making it a critical attack target. This skill covers comprehensive AD security assessment using PingCastle for health checks, BloodHound for attack path analysis, and Purple Knight for security posture scoring. These tools identify misconfigurations, excessive privileges, Kerberos weaknesses, and lateral movement opportunities.

When to Use

  • When conducting security assessments that involve performing active directory vulnerability assessment
  • When following incident response procedures for related security events
  • When performing scheduled security testing or auditing activities
  • When validating security controls through hands-on testing

Prerequisites

  • Domain-joined workstation or domain admin access for scanning
  • PingCastle (https://github.com/netwrix/pingcastle)
  • BloodHound Community Edition with SharpHound collector
  • Purple Knight from Semperis (free community tool)
  • Python 3.9+ for analysis scripts
  • .NET Framework 4.7+ for PingCastle on Windows

Tool 1: PingCastle Health Check

Installation and Execution

# Download PingCastle
Invoke-WebRequest -Uri "https://github.com/netwrix/pingcastle/releases/latest/download/PingCastle.zip" `
  -OutFile "PingCastle.zip"
Expand-Archive PingCastle.zip -DestinationPath C:\Tools\PingCastle

# Run health check against current domain
cd C:\Tools\PingCastle
.\PingCastle.exe --healthcheck

# Run health check against specific domain
.\PingCastle.exe --healthcheck --server dc01.corp.local --user CORP\scanner_account --password P@ssw0rd

# Run in scanner mode for multiple domains
.\PingCastle.exe --scanner --scannerlp

# Generate consolidated report
.\PingCastle.exe --healthcheck --level Full

PingCastle Scoring Categories

CategoryDescriptionRisk Areas
Stale ObjectsInactive accounts, old passwords, obsolete OSGhost accounts, expired credentials
Privileged AccountsExcessive admin rights, nested groupsDomain Admin sprawl, SID history
TrustsForest and domain trust configurationsTransitive trust abuse, SID filtering
AnomaliesSecurity setting deviationsGPO misconfigurations, schema issues

Key PingCastle Checks

# Critical items to review in PingCastle report:
- Accounts with "Password Never Expires" flag
- Accounts with Kerberos pre-authentication disabled (AS-REP roastable)
- Accounts with Kerberos delegation (unconstrained/constrained)
- Domain Controllers running unsupported OS versions
- AdminSDHolder permission modifications
- Accounts in privileged groups (Domain Admins, Enterprise Admins, Schema Admins)
- Trust relationships with SID filtering disabled
- GPO vulnerabilities allowing privilege escalation

Tool 2: BloodHound Attack Path Analysis

SharpHound Data Collection

# Download SharpHound collector
# https://github.com/SpecterOps/BloodHound/tree/main/packages/csharp/SharpHound

# Run SharpHound collection (all methods)
.\SharpHound.exe --collectionmethods All --domain corp.local --zipfilename bloodhound_data.zip

# Stealthy collection (minimal noise)
.\SharpHound.exe --collectionmethods Session,LoggedOn --domain corp.local --stealth

# Collection with specific domain controller
.\SharpHound.exe --collectionmethods All --domain corp.local --domaincontroller dc01.corp.local

# Run via PowerShell
Import-Module .\SharpHound.ps1
Invoke-BloodHound -CollectionMethod All -Domain corp.local -OutputDirectory C:\BH_Data

BloodHound CE Setup

# Deploy BloodHound Community Edition with Docker
curl -L https://ghst.ly/getbhce -o docker-compose.yml
docker compose up -d

# Access BloodHound CE at http://localhost:8080
# Default credentials shown in docker compose logs

# Upload SharpHound data through web UI or API
curl -X POST "http://localhost:8080/api/v2/file-upload/start" \
  -H "Authorization: Bearer $BH_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"fileName": "bloodhound_data.zip"}'

Critical BloodHound Queries

# Find shortest path to Domain Admin
MATCH p=shortestPath((u:User)-[*1..]->(g:Group {name:"DOMAIN ADMINS@CORP.LOCAL"}))
WHERE u.name <> "ADMINISTRATOR@CORP.LOCAL"
RETURN p

# Find Kerberoastable accounts with admin privileges
MATCH (u:User {hasspn:true})-[:MemberOf*1..]->(g:Group)
WHERE g.name CONTAINS "ADMIN"
RETURN u.name, u.serviceprincipalnames

# Find computers where Domain Admins are logged in
MATCH (c:Computer)-[:HasSession]->(u:User)-[:MemberOf*1..]->(g:Group {name:"DOMAIN ADMINS@CORP.LOCAL"})
RETURN c.name, u.name

# Find AS-REP roastable accounts
MATCH (u:User {dontreqpreauth:true})
RETURN u.name, u.description

# Find unconstrained delegation hosts
MATCH (c:Computer {unconstraineddelegation:true})
WHERE NOT c.name CONTAINS "DC"
RETURN c.name

# Find GPO abuse paths
MATCH p=(u:User)-[:GenericAll|GenericWrite|WriteOwner|WriteDacl]->(g:GPO)
RETURN p

Tool 3: Purple Knight Assessment

# Download Purple Knight from https://www.purple-knight.com/
# Run as domain admin or with appropriate read permissions

.\PurpleKnight.exe

# Purple Knight checks 130+ security indicators across:
# - Account Security (password policies, privileged accounts)
# - AD Infrastructure (replication, DNS, LDAP signing)
# - Group Policy (GPO permissions, security settings)
# - Kerberos Security (delegation, encryption types, SPN)
# - AD Delegation (AdminSDHolder, OU permissions)

Purple Knight Score Categories

Score RangeRatingAction Required
90-100ExcellentMaintain current posture
75-89GoodAddress high-risk findings
60-74FairPrioritize remediation plan
40-59PoorImmediate remediation required
0-39CriticalEmergency response needed

Common AD Vulnerabilities

1. Kerberoasting Exposure

# Find SPNs assigned to user accounts (Kerberoasting targets)
Get-ADUser -Filter {ServicePrincipalName -ne "$null"} -Properties ServicePrincipalName |
  Select-Object Name, ServicePrincipalName, PasswordLastSet, Enabled

2. AS-REP Roasting Exposure

# Find accounts with pre-auth disabled
Get-ADUser -Filter {DoesNotRequirePreAuth -eq $true} -Properties DoesNotRequirePreAuth |
  Select-Object Name, DoesNotRequirePreAuth, Enabled

3. LLMNR/NBT-NS Poisoning Risk

# Check if LLMNR is disabled via GPO
Get-ItemProperty "HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\DNSClient" -Name EnableMulticast -ErrorAction SilentlyContinue

4. Excessive Privileged Group Membership

# Count members in critical groups
$groups = @("Domain Admins", "Enterprise Admins", "Schema Admins", "Account Operators", "Backup Operators")
foreach ($group in $groups) {
    $count = (Get-ADGroupMember -Identity $group -Recursive).Count
    Write-Output "$group : $count members"
}

Remediation Priorities

FindingRiskRemediation
Kerberoastable admin accountsCriticalRemove SPNs or use MSA/gMSA
Unconstrained delegation on non-DCsCriticalSwitch to constrained/RBCD
Password Never Expires on adminsHighEnable password rotation policy
AS-REP roastable accountsHighEnable Kerberos pre-authentication
AdminSDHolder modificationHighAudit and restore default ACLs
Stale computer accounts (90+ days)MediumDisable and move to quarantine OU
LDAP signing not enforcedMediumEnable via GPO on all DCs

References

Frequently asked questions about Active Directory Vulnerability Assessment

Similar skills