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
WonkaVision — Detecta tickets Kerberos falsificados mediante el volcado de datos de sesión y tickets, la puntuación de anomalías y la generación de indicadores de registros de eventos de Windows para la respuesta a incidentes basada en SIEM. | Kitploit
Herramientas/GitHubGitHub/0xe7/wonkavision
Herramientas DefensivasGestión de Identidad y Acceso (IAM)AutenticaciónDetección de IntrusionesRespuesta a IncidentesDetección de AnomalíasAnálisis de Registros
GitHub0xe7/wonkavision

WonkaVision

Detecta tickets Kerberos falsificados mediante el volcado de datos de sesión y tickets, la puntuación de anomalías y la generación de indicadores de registros de eventos de Windows para la respuesta a incidentes basada en SIEM.

Ver Repositorio
8997hace 3 añosRevisado 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

WonkaVision


WonkaVision es una herramienta de prueba de concepto (POC) para analizar tickets de Kerberos e intentar determinar si son falsificados. Esta herramienta fue creada por Charlie Clark y Andrew Schwartz.

Cabe señalar que esta POC no está pensada para ser una aplicación empresarial lista para producción, sino para generar ideas sobre cómo detectar mejor los tickets falsificados y, al mismo tiempo, publicar los IOAs descubiertos.

Charlie Clark es el autor principal de esta base de código.

Gran parte del código para volcar la información de sesión, volcar los tickets de Kerberos y descifrar/cifrar los tickets de Kerberos se tomó de Rubeus. El código de GetNCChanges se adaptó del MakeMeEnterpriseAdmin de Vincent Le Toux.

Tiene 3 funciones:

  • /createkeys - Crea un par de claves pública/privada para que lo utilicen el volcador y el analizador
  • /dump - Se ejecuta en servidores/estaciones de trabajo, vuelca los datos de sesión con los tickets de Kerberos asociados
  • /analyze - Se ejecuta contra un directorio que contiene todos los archivos de volcado, analiza todas las sesiones y tickets dentro de los volcados, genera puntuaciones y escribe en el registro de eventos

WonkaVision tiene las siguientes dependencias:

  • Newtonsoft.Json - Para serializar/deserializar objetos json
  • dnMerge - Para fusionar la DLL de Newtonsoft.Json en un único binario para facilitar la implementación al volcar tickets

La presentación de diapositivas de la charla está aquí.

WonkaVision está licenciado bajo la licencia BSD 3-Clause.

Tabla de Contenidos

  • WonkaVision
    • Crear claves
    • Volcado
    • Análisis
      • Ejemplo de registro de eventos
      • Ejemplo de reenvío de registros a SIEM
        • Ejemplo con Splunk
        • Ejemplo con Sentinel
  • Demostraciones de la charla
  • Sniffer de Kerberos
  • Agradecimientos
  • TODO

Crear claves

Genera un par de claves pública y privada utilizando el algoritmo de intercambio de claves Diffie-Hellman de Curva Elíptica (ECDH) con la curva P-256. De forma predeterminada, escribe las claves en la terminal como blobs codificados en base64, pero tiene el argumento /outdir:PATH para escribir las claves en archivos.

SI SE ESCRIBEN EN ARCHIVOS, EL ARCHIVO private.key DEBE PROTEGERSE COMO SI FUERA LA CLAVE KRBTGT

Ejemplo 1:

root@kitploit:~
C:\WonkaVision>WonkaVision.exe /createkeys
====================PublicKey====================
RUNLMSAAAABN/odC5C5W7meBvf6rKmWOoVW9qRTRcyCJBFuvRbEvMFuMa8cV20W1e+rRd4f9jSfr5vDVJ0+I/SJsZI1ondws
==================End PublicKey==================


====================PrivateKey====================
RUNLMiAAAABN/odC5C5W7meBvf6rKmWOoVW9qRTRcyCJBFuvRbEvMFuMa8cV20W1e+rRd4f9jSfr5vDVJ0+I/SJsZI1ondwsto7Fc/J4akdJdCix51F0ELLKWlsdMDlkYx2shFEV3AA=
==================End PrivateKey==================

Ejemplo 2:

root@kitploit:~
C:\WonkaVision>WonkaVision.exe /createkeys /outdir:.
[!] Writing key files to ., be sure to protect the private key as if it was the krbtgt key!
[*] Written public key to .\public.key
[*] Written private key to .\private.key

C:\WonkaVision>dir
 Volume in drive C is System
 Volume Serial Number is 22BC-4361

 Directory of C:\WonkaVision

10/14/2022  01:10 PM    <DIR>          .
10/14/2022  01:10 PM    <DIR>          ..
10/14/2022  01:10 PM               104 private.key
10/14/2022  01:10 PM                72 public.key
10/14/2022  01:08 PM         1,383,424 WonkaVision.exe
               3 File(s)      1,383,600 bytes
               2 Dir(s)  71,813,464,064 bytes free

Volcado

Vuelca la información de sesión de las sesiones que contienen tickets de Kerberos, incluidos los propios tickets de Kerberos en formato KERB-CRED. Lo hace ejecutando LsaCallAuthenticationPackage para solicitar información de sesión, información sobre la caché de tickets y solicitar tickets como KERB-CREDs (de la misma manera que lo hace el comando dump de Rubeus).

Se requieren 2 argumentos principales:

  • /publickey:KEY - clave pública que se utilizará para el cifrado de los datos volcados
  • /dumpdir:DIR - directorio para almacenar los datos volcados

Una vez que los datos han sido volcados, WonkaVision hace lo siguiente:

  1. Almacena los datos en una cadena Json
  2. Genera un par de claves pública/privada para el volcador
  3. Utiliza su clave privada junto con la clave pública que se le pasa mediante el argumento /publickey:KEY para derivar una clave simétrica
  4. Cifra la cadena Json con AES utilizando la clave simétrica
  5. Almacena los datos cifrados, su clave pública y el IV dentro de una cadena Json y lo escribe en el directorio especificado por el argumento /dumpdir:DIR

Es posible especificar sesiones concretas (con el argumento /luid:X), usuarios (con el argumento /user:USER), servicios (con el argumento /service:SVC) y/o servidores (con el argumento /server:Y), pero estos aún no han sido muy probados.

Ejemplo:

root@kitploit:~
WonkaVision.exe /dump /publickey:\\server\dumpshare\public.key /dumpdir:\\server\dumpshare\dumps

Análisis

Analiza los volcados creados con el comando /dump. Recorre recursivamente todos los subdirectorios a los que apunta /dumpdir:DIR y lee cualquier archivo .json que encuentre. Una vez que deserializa el archivo json, recorre todas las sesiones almacenadas en él y todos los tickets dentro de las sesiones y los analiza con la mayor profundidad posible, asignando una puntuación a cada desviación de lo esperado que encuentre. Después, suma estas puntuaciones para producir una puntuación total y genera 2 tipos diferentes de eventos de Windows, 9988 y 9989, para WonkaVision Session y WonkaVision Ticket respectivamente, que contienen todos los problemas descubiertos.

Es posible especificar /creduser:USER, /creddomain:DOMAIN y /credpass:PASSWORD para usar credenciales alternativas para las consultas LDAP y la sincronización con DC. Sin embargo, esto no se recomienda en producción; se implementaron para facilitar un poco la depuración de problemas.

Se requieren 2 argumentos principales:

  • /privatekey:KEY - clave privada utilizada para descifrar los volcados cifrados
  • /dumpdir:DIR - directorio donde se almacenan los volcados cifrados

Ejemplo:

root@kitploit:~
WonkaVision.exe /analyze /privatekey:C:\keys\private.key /dumpdir:C:\dumpshare\dumps

Ejemplo de registro de eventos

Aunque WonkaVision devolverá el resultado del análisis a través de la terminal, se puede encontrar una descripción más detallada del análisis de Indicadores de Ataque (IOA) en el canal de Registro de Eventos de Aplicaciones de Windows. Es aquí donde un analista obtendrá una mayor visión y contexto en cuanto a la Puntuación Total, los IOAs específicos, la(s) razón(es) de los IOAs y las puntuaciones de las herramientas. Se escriben dos eventos, 9988 (Evento de Sesión) y 9989 (Evento de Ticket), respectivamente. Se puede encontrar una muestra de eventos aquí.

El siguiente es un ejemplo de un Evento de Sesión de WonkaVision (9988): Evento 9988

El siguiente es un ejemplo de un Evento de Ticket de WonkaVision (9989):

Ejemplo de un posible Golden Ticket falsificado con Mimikatz en registros EVTX: Evento 9989

Evento 9989 2

Ejemplo de reenvío de registros a SIEM

Como se indicó anteriormente, los registros de WonkaVision se escriben en el canal de Registro de Eventos de Aplicaciones de Windows. Si se configura, estos registros pueden reenviarse a un SIEM (por ejemplo, Splunk, Sentinel, etc.).

Ejemplo con Splunk

También se puede utilizar una consulta sugerida con el registro de eventos WinEvnet "Classic" de Splunk:

root@kitploit:~
index="wv_demo_wineventlog" source="WinEventLog:Application" (Total_Score>=8) | table _time,Total_Score,User,Machine_Name,Service_Principal_Name,Mimikatz_Score,Rubeus_Score,Impacket_Score,Cobalt_Strike_Score,IOA_Reasons

Ejemplo de un posible Golden Ticket falsificado con Mimikatz en WonkaVision dentro de Splunk: Mimikatz WonkaVisvion Splunk

Ejemplo de un posible Golden Ticket falsificado con Rubeus desde WonkaVision en Splunk:Rubeus WonkaVisvion Splunk

Ejemplo con Sentinel

El registro con Sentinel también se puede realizar. Sin embargo, esto puede requerir un análisis adicional. A continuación se muestra un ejemplo de consulta de Jonathan Johnson (@jsecurity101) sobre cómo puede aparecer WonkaVision analizado en Sentinel:

root@kitploit:~
Event
    | where Computer contains "asgard" and Source contains "Wonka"
    | extend ParsedEventData=parse_xml(EventData)
    | extend Data=ParsedEventData.DataItem.EventData.Data
    | parse-where Data with *
            "Total Score: " TotalScore:string
            "Session: " Session:string
            "Machine Name: " MachineName:string
            "User: " User:string
            "Service Principal Name: " ServicePrincipalName:string
            "IOAs: " IOAs:string
            "SessionUser: " IOA_SessionUser:string
            "KDCCalled: " IOA_KDCCalled:string
            "Mimikatz Score: " TScore_MimikatzScore:string 
            "Impacket Score: " TScore_ImpacketScore:string 
            "Rubeus Score: " TScore_RubeusScore:string 
            "Cobalt Strike Score: " TScore_CobaltStrikeScore:string 
            "IOA Reasons: " IOA_Reasons:string
    | where IOA_SessionUser contains "thor"

Ejemplo de un posible Golden Ticket falsificado desde WonkaVision en Sentinel: WonkaVisvion Sentinel

Demostraciones de la charla

Demo 1 - Creación de Golden Ticket:

https://user-images.githubusercontent.com/13423848/202441525-aec75260-a991-4a4d-8df1-6fbf92ddbb4c.mp4

Demo 2 - Creación de par de claves y volcado de sesión/ticket:

https://user-images.githubusercontent.com/13423848/202441775-b753ae06-d012-4258-9ea0-25d88dc80549.mp4

Demo 3 - Análisis de volcado y salida de eventos de Windows:

https://user-images.githubusercontent.com/13423848/202441909-04bd1b2a-f204-41c4-a13a-dcfa42eebcf3.mp4

Demo 4 - Sniffer de red de Kerberos:

https://user-images.githubusercontent.com/13423848/202442125-822cc4a4-1c87-447f-88ae-2e5c2fbf58d3.mp4

POC de KrbSniffer

El POC de Sniffer de Tráfico Kerberos que demostramos en nuestra charla (Demo 4) se implementó con SharpPCap, pero podría modificarse fácilmente para usar sockets sin procesar, eliminando esa dependencia y la necesidad de instalar npcap en el sistema.

Como solo era un POC mínimo, la mayoría de los indicadores que se implementaron fueron los indicadores no cifrados mencionados en la charla de Charlie en YASCON 2020, detallados en la diapositiva 18 de esta presentación, aunque se podrían implementar muchos más.

Agradecimientos

  • Will Schroeder (@harmj0y) por la base de código de Rubeus
  • Vincent Le Toux (@mysmartlogon) por la base de código de 'Make Me Enterprise Admin'
  • Jared Atkinson (@jaredcatkinson) por la base de código de 'Get-KerberosTicketGrantingTicket.ps1' y 'Test-KerberosTicketGrantingTicket.ps1'
  • Jonathan Johnson (@jsecurity101) por su ayuda en la resolución de un error de DCSync :), pruebas del POC, pruebas con Microsoft Sentinel y consejos/orientación sobre cómo escribir en el registro de eventos de Windows
  • Elad Shamir (@elad_shamir) por sus consejos/orientación
  • El equipo 'sisoc-tokyo' (Universidad de Tokio, Wataru Matsuda, Mariko Fujimoto y Takuho Mitsunaga), que presentó 'Real-time detection of attacks leveraging Domain Administrator privilege' en BlackHat Europe 2018 y cuyo trabajo encontramos después del POC. Su proyecto se puede encontrar aquí
  • Semperis (@SemperisTech) y Trustedsec (@TrustedSec) por permitirnos completar este proyecto

TODO

  • Refactorizar y limpiar el código
  • Implementar la recuperación de claves de confianza
Descargar herramienta