Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
tgt-monitor-bof — Async BOF para extraer o renovar automáticamente TGTs de Kerberos en un sistema objetivo. | Kitploit
Herramientas/GitHubGitHub/jakobfriedl/tgt-monitor-bof
Movimiento LateralPost-ExplotaciónPruebas de PenetraciónAutenticaciónRed TeamingDesarrollo de Payloads
GitHubjakobfriedl/tgt-monitor-bof

tgt-monitor-bof

Async BOF para extraer o renovar automáticamente TGTs de Kerberos en un sistema objetivo.

Ver Repositorio
134104hace 1 mesRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Monitorización y Renovación Automática de TGTs Kerberos

Este repositorio contiene dos Archivos de Objetos Beacon Asíncronos (BOF). El primero, tgt-monitor, monitorea el sistema en busca de eventos de inicio de sesión Kerberos y activa el agente cada vez que se captura un nuevo TGT Kerberos. Similar al comando monitor de Rubeus, este BOF se ejecuta indefinidamente y verifica periódicamente la caché de tickets LSA del sistema. Cuando se detecta un nuevo TGT, imprime los metadatos del ticket y genera un blob kirbi codificado en base64 que puede usarse para movimiento lateral mediante ataques pass-the-ticket. El segundo, tgt-renew, renueva automáticamente los TGTs en el sistema si su tiempo de vida restante está por debajo de un umbral especificado (por ejemplo, 15 minutos).

[!Important] Los BOFs en este repositorio requieren capacidades de carga de archivos de objetos asíncronos. Esta funcionalidad es proporcionada por el framework Conquest.

  • Monitorización y Renovación Automática de TGTs Kerberos
    • Cómo funciona
      • Monitorización de Tickets
      • Renovación de Tickets
    • Uso
      • tgt-monitor
      • tgt-renew
    • Instalación
  • Agradecimientos
  • Cómo funciona

    Ambos BOFs requieren ejecutarse en un contexto NT AUTHORITY\SYSTEM. Los privilegios se verifican siguiendo la misma lógica.

    1. El BOF verifica el token del proceso actual para acceso SYSTEM.
    2. Si el token del proceso no es SYSTEM, el BOF escanea todos los hilos del proceso actual en busca de un token de suplantación con privilegios SYSTEM y lo duplica. Esto permite su uso desde un proceso agente de baja integridad que haya robado un token SYSTEM (p. ej. mediante SeImpersonatePrivilege). El BOF finaliza si esto tampoco otorga acceso de nivel SYSTEM.
    3. Se obtienen los identificadores de LSA y del paquete de autenticación Kerberos.

    Los pasos siguientes se repiten en un bucle hasta que el BOF se cancela mediante el evento de parada. Un intervalo definido por el usuario establece la demora entre sondeos.

    Monitorización de Tickets

    1. Se enumeran todas las sesiones de inicio de sesión activas. Para cada sesión, se consulta la caché de tickets Kerberos y se filtra para obtener TGTs. Si se proporcionó un argumento --user, solo se consideran las sesiones que coinciden con ese nombre de usuario.
    2. La caché de tickets actual se compara con la instantánea anterior. Los nuevos TGTs disparan la impresión de metadatos y la salida kirbi codificada en base64, seguida de una llamada a BeaconWakeup() para forzar al agente a registrarse y devolver la salida.

    Workflow TGT Monitor

    Renovación de Tickets

    1. Se enumeran todas las sesiones de inicio de sesión activas. Para cada sesión, se consulta la caché de tickets Kerberos y se filtra para obtener TGTs. Si se proporcionó un argumento --user, solo se consideran las sesiones que coinciden con ese nombre de usuario.
    2. Cada TGT se verifica contra dos condiciones:
      • Si el ticket ha superado su tiempo RenewUntil, se marca como caducado y se requiere reautenticación.
      • Si el tiempo de vida restante del ticket está dentro del umbral definido por el usuario, el TGT se renueva e importa. En caso de éxito, se imprimen los metadatos actualizados del ticket y la salida kirbi codificada en base64, seguido de una llamada a BeaconWakeup().

    Workflow TGT Renew

    El proceso de renovación de tickets involucra los siguientes pasos:

    1. Extraer el TGT Kerberos codificado en ASN.1 mediante ExtractTicket() usando el LUID y SPN de la estructura PTICKET_ENTRY.
    2. Decodificar ASN.1 el ticket y recuperar la credencial Kerberos.
    3. Crear un paquete TGS-REQ para solicitar la renovación del ticket usando el ticket que expira para preautenticación.
    4. Enviar los bytes TGS-REQ al controlador de dominio en el puerto 88.
    5. Recuperar, decodificar ASN.1 y analizar la respuesta TGS-REP.
    6. Construir el ticket renovado, eliminar el ticket antiguo de la caché e importar el ticket renovado usando Pass-the-Ticket.
    7. Actualizar startTime, endTime, renewUntil, ticketFlags y encryptionType en la estructura PTICKET_ENTRY, imprimir la información del ticket y base64.

    Uso

    Este repositorio incluye un Módulo de Conquest que implementa los siguientes dos comandos.

    tgt-monitor

    El BOF tgt-monitor alerta cuando se capturan nuevos TGTs y los devuelve como un blob codificado en Base64. Los siguientes argumentos deben pasarse al archivo de objeto:

    NameTypeDescription
    intervalintTiempo de espera entre comprobaciones en segundos.
    targetUsersstringLista separada por comas de nombres de usuario objetivo (insensible a mayúsculas/minúsculas). Cuando este campo está establecido, solo se recuperan TGTs para los usuarios especificados. De lo contrario, se recogen TGTs para todos los usuarios. Tenga en cuenta que las cuentas de equipo deben terminar con $.
    root@kitploit:~
    Usage: tgt-monitor [--interval interval] [--user user]
    Example: tgt-monitor --interval 5 --user DC01$
    
    Optional arguments:
      --interval interval       INT        Polling interval in seconds (default: 60).
      --user user               STRING     Comma-separated list of target usernames (default: all users).
    

    TGT Monitor

    El ticket codificado se puede usar directamente con Rubeus.exe ptt /ticket:<base64> o impacket-ticketConverter para movimiento lateral adicional, como se muestra en la captura de pantalla a continuación. En Conquest, es posible usar el comando ptt para inyectar directamente el ticket en la sesión de inicio de sesión actual y suplantar al usuario objetivo.

    Stealing tickets with TGT Monitor

    tgt-renew

    El BOF tgt-renew renueva automáticamente los tickets que expiran pronto hasta que ya no puedan ser renovados. Los siguientes argumentos deben pasarse al archivo de objeto:

    NameTypeDescription
    intervalintTiempo de espera entre comprobaciones en segundos.
    thresholdintUmbral de renovación en minutos. El ticket se renueva cuando el tiempo hasta EndTime es menor que este umbral.
    targetUsersstringLista separada por comas de nombres de usuario objetivo (insensible a mayúsculas/minúsculas). Cuando este campo está establecido, solo se renuevan TGTs para los usuarios especificados. De lo contrario, se renuevan TGTs para todos los usuarios. Tenga en cuenta que las cuentas de equipo deben terminar con $.
    targetLuidsstringLista separada por comas de LUIDs objetivo (insensible a mayúsculas/minúsculas). Cuando este campo está establecido, solo se renuevan TGTs para los LUIDs especificados.
    root@kitploit:~
    Usage: tgt-renew [--interval seconds] [--threshold minutes] [--user user] [--luid luid]
    Example: tgt-renew --luid 0x3e4 --interval 300 --threshold 30
    
    Optional arguments:
      --interval seconds        INT        Polling interval in seconds (default: 60).
      --threshold minutes       INT        Ticket renewal threshold in minutes (default: 15).
      --user user               STRING     Comma-separated list of target usernames (default: all users).
      --luid luid               STRING     Comma-separated list of target LUIDs (default: all LUIDs).
    

    Las banderas --user y --luid son mutuamente excluyentes.

    TGT Renew

    Instalación

    root@kitploit:~
    git clone https://github.com/jakobfriedl/tgt-monitor-bof
    cd tgt-monitor-bof
    make
    

    Desde allí, use el Administrador de Scripts de Conquest para cargar el módulo dist/tgt-monitor.py.

    Agradecimientos

    Esta implementación de este Archivo de Objeto Beacon se basa en los siguientes proyectos:

    • https://github.com/Ghostpack/Rubeus
    • https://github.com/RalfHacker/Kerbeus-BOF
      • Implementación de codificación/decodificación ASN.1
    • https://github.com/wavvs/nanorobeus
    Descargar herramienta