CommunityProgramación y desarrollogithub.com

yaklang/kernel-exploitation

Manual de explotación del kernel de Linux. Útil para explotar vulnerabilidades del kernel (UAF, OOB, condición de carrera, confusión de tipos) para escalar privilegios mediante commit_creds, sobrescritura de modprobe_path o cadenas ROP del kernel en entornos CTF y del mundo real.

¿Qué es kernel-exploitation?

Este skill proporciona un playbook completo para la explotación del kernel de Linux, dirigido a desarrolladores y entusiastas de la seguridad que trabajan en entornos CTF o en escenarios reales. Se centra en vulnerabilidades comunes del kernel como use-after-free (UAF), out-of-bounds (OOB), condiciones de carrera y confusión de tipos, y detalla técnicas de escalada de privilegios como commit_creds, sobrescritura de modprobe_path y cadenas ROP del kernel. Es compatible con plataformas de análisis de seguridad como Cursor y Codex, integrando ejemplos prácticos y comandos de shell. El skill explica paso a paso cómo identificar una vulnerabilidad, preparar un exploit, y ejecutarlo para obtener privilegios elevados, incluyendo consejos para depuración y evasión de mitigaciones. Su utilidad radica en ahorrar tiempo de investigación al proporcionar un marco estructurado y reutilizable para atacar debilidades del kernel, permitiendo a los usuarios aplicar técnicas avanzadas de explotación de manera sistemática.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/yaklang/hack-skills/tree/main/skills/kernel-exploitation

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 kernel-exploitation?

Manual de explotación del kernel de Linux. Útil para explotar vulnerabilidades del kernel (UAF, OOB, condición de carrera, confusión de tipos) para escalar privilegios mediante commit_creds, sobrescritura de modprobe_path o cadenas ROP del kernel en entornos CTF y del mundo real.

Introducción

Este playbook cubre las técnicas más comunes para explotar vulnerabilidades del kernel de Linux. Está diseñado para ser utilizado en laboratorios CTF y en entornos controlados de pruebas de penetración.

Requisitos

  • Conocimientos básicos de seguridad informática y explotación de vulnerabilidades.
  • Entorno de desarrollo con herramientas como gcc, gdb, pwntools y un kernel Linux de prueba.
  • Acceso a una máquina virtual o contenedor con permisos para depurar el kernel.

Vulnerabilidades Cubiertas

  • Use-After-Free (UAF): Ocurre cuando se accede a memoria previamente liberada. Explotación típica mediante heap spraying.
  • Out-of-Bounds (OOB): Acceso a memoria fuera de los límites de un buffer. Permite lectura/escritura arbitraria.
  • Condición de Carrera (Race Condition): Vulnerabilidad en operaciones concurrentes que permite corrupción de datos.
  • Confusión de Tipos (Type Confusion): Cuando un objeto es tratado como un tipo incorrecto, permitiendo manipular metadatos del kernel.

Técnicas de Explotación

1. commit_creds

Técnica clásica para escalar privilegios. Consiste en llamar a commit_creds(prepare_kernel_cred(0)) para asignar privilegios de root. Ejemplo en C:

void *(*commit_creds)(void *cred);
void *(*prepare_kernel_cred)(void *daemon);

commit_creds = (void *)0xffffffff81000001; // Dirección de ejemplo
prepare_kernel_cred = (void *)0xffffffff81000002;

commit_creds(prepare_kernel_cred(0));

2. Sobrescritura de modprobe_path

Técnica que explota el binario modprobe_path. Al sobrescribir esta ruta con un script malicioso y ejecutar un archivo con formato desconocido, el kernel ejecutará nuestro script como root. Pasos:

  1. Sobrescribir /proc/sys/kernel/modprobe_path con la ruta de un script.
  2. Crear un script que otorgue privilegios (ej. chmod 4777 /bin/bash).
  3. Ejecutar un archivo con extensión desconocida para que el kernel invoque modprobe_path.

3. Cadenas ROP del Kernel (KROP)

Cuando no es posible ejecutar código arbitrario, se utilizan cadenas ROP para redirigir el flujo de control. Ejemplo con pwntools:

from pwn import *

rop = ROP(kernel_elf)
rop.call('commit_creds', [rop.find_gadget(['prepare_kernel_cred'])])
rop.call('swapper_pg_dir', [0])
print(rop.dump())

Herramientas Recomendadas

  • gdb con módulo kernel_gdb
  • pwntools para automatización de exploits
  • qemu para emular el kernel de forma segura
  • SYM o vmlinux-to-elf para extraer símbolos del kernel

Ejemplo de Explotación Completa

A continuación se muestra un flujo típico para explotar una vulnerabilidad UAF:

  1. Identificar la vulnerabilidad en el módulo del kernel.
  2. Preparar un exploit en C que incluya la técnica commit_creds.
  3. Compilar el exploit: gcc -o exploit exploit.c -static.
  4. Transferir el exploit al sistema objetivo (por ejemplo, mediante HTTP).
  5. Ejecutar: ./exploit.
  6. Verificar privilegios: id debe mostrar uid=0(root).
$ ./exploit
[+] Exploit ejecutado exitosamente
$ id
uid=0(root) gid=0(root) groups=0(root)

Consejos de Depuración

  • Usar dmesg para monitorear mensajes del kernel durante la explotación.
  • Desactivar KASLR en entornos de prueba para facilitar el desarrollo: nokaslr en línea de comandos del kernel.
  • Si el exploit falla, revisar direcciones de funciones y gadgets ROP.
  • Utilizar gdb en modo remoto con QEMU para depurar paso a paso.

Mitigaciones y Evasión

  • SMEP/SMAP: Se pueden evitar usando gadgets ROP que no ejecuten en espacio de usuario o mapeando memoria ejecutable en kernel.
  • KASLR: Requiere fugas de información para obtener direcciones base.
  • CFI: Dificulta la redirección de flujo, pero no es infalible.

Referencias

Nota Legal

Este playbook es únicamente con fines educativos y para pruebas de seguridad autorizadas. No utilice estas técnicas en sistemas sin permiso explícito.

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-acl-abuse

Active Directory ACL abuse playbook. Use when exploiting misconfigured AD permissions including GenericAll, WriteDACL, DCSync rights, shadow credentials, LAPS reading, GPO abuse, and BloodHound-guided attack paths.

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.

Skills relacionados