Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
WonkaVision — Detecta tickets Kerberos forjados ao extrair dados de sessão e tickets, pontuar anomalias e gerar indicadores de log de eventos do Windows para resposta a incidentes baseada em SIEM. | Kitploit
Ferramentas/GitHubGitHub/0xe7/wonkavision
Ferramentas DefensivasGerenciamento de Identidade e Acesso (IAM)AutenticaçãoDetecção de IntrusãoResposta a IncidentesDetecção de AnomaliasAnálise de Logs
GitHub0xe7/wonkavision

WonkaVision

Detecta tickets Kerberos forjados ao extrair dados de sessão e tickets, pontuar anomalias e gerar indicadores de log de eventos do Windows para resposta a incidentes baseada em SIEM.

Ver Repositório
8994há 3 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

WonkaVision


WonkaVision é uma ferramenta de prova de conceito (POC) para analisar tickets Kerberos e tentar determinar se eles são forjados. Esta ferramenta foi criada por Charlie Clark e Andrew Schwartz.

Deve-se notar que esta POC não tem a intenção de ser um aplicativo empresarial pronto para produção, mas sim gerar ideias sobre como detectar melhor tickets forjados enquanto divulga os IOAs descobertos.

Charlie Clark é o principal autor desta base de código.

Grande parte do código para despejar informações de sessão, despejar tickets Kerberos e descriptografar/criptografar tickets Kerberos foi retirada de Rubeus. O código GetNCChanges foi adaptado do MakeMeEnterpriseAdmin de Vincent Le Toux.

Possui 3 funções:

  • /createkeys - Cria um par de chaves pública/privada para uso pelo dumper e pelo analisador
  • /dump - Para ser executado em servidores/estações de trabalho, despeja dados de sessão com os tickets Kerberos associados
  • /analyze - Executado contra um diretório contendo todos os arquivos de dump, analisa todas as sessões e tickets nos dumps, gera pontuações e grava no log de eventos

WonkaVision tem as seguintes dependências:

  • Newtonsoft.Json - Para serializar/desserializar objetos json
  • dnMerge - Para mesclar a DLL Newtonsoft.Json em um único binário para facilitar a implantação ao despejar tickets
  • Os slides da apresentação estão aqui.

    WonkaVision é licenciado sob a licença BSD 3-Clause.

    Índice

    • WonkaVision
      • Criar Chaves
      • Dump
      • Analyze
        • Exemplo de Log de Eventos
        • Exemplo de Encaminhamento de Log para SIEM
          • Exemplo com Splunk
          • Exemplo com Sentinel
    • Demonstrações da Palestra
    • Sniffer Kerberos
    • Agradecimentos
    • TODO

    CreateKeys

    Gera um par de chaves pública e privada usando o algoritmo de troca de chaves Elliptic Curve Diffie-Hellman (ECDH) com a curva P-256. Por padrão, ele envia as chaves para o terminal como blobs codificados em base64, mas possui o argumento /outdir:PATH para gravar as chaves em arquivos.

    SE FOR GRAVAR EM ARQUIVOS, O ARQUIVO private.key DEVE SER PROTEGIDO COMO SE FOSSE A CHAVE KRBTGT

    Exemplo 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==================
    

    Exemplo 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
    

    Dump

    Despeja informações de sessão de sessões que contêm tickets Kerberos, incluindo os próprios tickets Kerberos no formato KERB-CRED. Isso é feito executando LsaCallAuthenticationPackage para solicitar informações de sessão, informações sobre o cache de tickets e solicitar tickets como KERB-CREDs (da mesma forma que o comando dump do Rubeus).

    São necessários 2 argumentos principais:

    • /publickey:KEY - chave pública a ser usada para criptografia dos dados despejados
    • /dumpdir:DIR - diretório para armazenar os dados despejados

    Depois que os dados são despejados, o WonkaVision faz o seguinte:

    1. Armazena os dados em uma string Json
    2. Gera um par de chaves pública/privada para o dumper
    3. Usa sua chave privada juntamente com a chave pública fornecida a ele por meio do argumento /publickey:KEY para derivar uma chave simétrica
    4. Criptografa a string Json com AES usando a chave simétrica
    5. Armazena os dados criptografados, sua chave pública e o IV em uma string Json e grava isso no diretório especificado pelo argumento /dumpdir:DIR

    É possível especificar sessões específicas (com o argumento /luid:X), usuários (com o argumento /user:USER), serviços (com o argumento /service:SVC) e/ou servidores (com o argumento /server:Y), mas esses ainda não foram muito testados.

    Exemplo:

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

    Analyze

    Analisa dumps criados com o comando /dump. Ele percorre recursivamente todos os subdiretórios apontados por /dumpdir:DIR e lê todos os arquivos .json que encontrar. Depois de desserializar o arquivo json, ele percorre todas as sessões armazenadas nele e todos os tickets nas sessões e os analisa com o máximo de profundidade possível, atribuindo uma pontuação para cada desvio do esperado encontrado. Em seguida, soma essas pontuações para produzir uma pontuação total e gera 2 tipos diferentes de eventos do Windows, 9988 e 9989, para WonkaVision Session e WonkaVision Ticket, respectivamente, contendo todos os problemas descobertos.

    É possível especificar /creduser:USER, /creddomain:DOMAIN e /credpass:PASSWORD para usar credenciais alternativas para as consultas LDAP e DCsync. No entanto, isso não é recomendado em uso em produção; elas foram implementadas para facilitar um pouco a depuração de problemas.

    São necessários 2 argumentos principais:

    • /privatekey:KEY - chave privada usada para descriptografar os dumps criptografados
    • /dumpdir:DIR - diretório onde os dumps criptografados estão armazenados

    Exemplo:

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

    Exemplo de Log de Eventos

    Embora o WonkaVision retorne a saída da análise pelo terminal, uma descrição mais detalhada da análise de Indicador de Ataque (IOA) pode ser encontrada no canal de Log de Eventos do Aplicativo Windows. É aqui que um analista receberá maior visão e contexto em termos da Pontuação Total, dos IOAs específicos, do(s) motivo(s) dos IOAs e das pontuações das ferramentas. Dois eventos são gravados, 9988 (Evento de Sessão) e 9989 (Evento de Ticket), respectivamente. Uma amostra de eventos pode ser encontrada aqui.

    A seguir está um exemplo de um Evento de Sessão WonkaVision (9988): Evento 9988

    A seguir está um exemplo de um Evento de Ticket WonkaVision (9989):

    Exemplo de possível Golden Ticket forjado com Mimikatz em logs EVTX: Evento 9989

    Evento 9989 2

    Exemplo de Encaminhamento de Log para SIEM

    Conforme observado acima, os logs do WonkaVision são gravados no canal de Log de Eventos do Aplicativo Windows. Se configurados, esses logs podem ser encaminhados para um SIEM (por exemplo, Splunk, Sentinel, etc.).

    Exemplo com Splunk

    Uma consulta sugerida usando o registro WinEvnet "Clássico" do Splunk também pode ser usada:

    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
    

    Exemplo de possível Golden Ticket forjado com Mimikatz WonkaVision no Splunk: Mimikatz WonkaVisvion Splunk

    Exemplo de possível Golden Ticket forjado com Rubeus do WonkaVision no Splunk:Rubeus WonkaVisvion Splunk

    Exemplo com Sentinel

    O registro com o Sentinel também pode ser feito. No entanto, isso pode exigir análise adicional. Um exemplo de consulta de Jonathan Johnson (@jsecurity101) está abaixo de como o WonkaVision pode aparecer analisado no 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"
    

    Exemplo de possível Golden Ticket forjado do WonkaVision no Sentinel: WonkaVisvion Sentinel

    Demonstrações da Palestra

    Demonstração 1 - Criação de Golden Ticket:

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

    Demonstração 2 - Criação de Par de Chaves e Despejo de Sessão/Ticket:

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

    Demonstração 3 - Análise de Dump e Saída de Eventos do Windows:

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

    Demonstração 4 - Sniffer de Rede Kerberos:

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

    KrbSniffer POC

    A POC do Sniffer de Tráfego Kerberos que demonstramos em nossa palestra (Demonstração 4) foi implementada com SharpPCap, mas poderia ser facilmente modificada para usar raw sockets, removendo essa dependência, bem como a necessidade de instalar npcap no sistema.

    Como era apenas uma POC mínima, a maioria dos indicadores implementados foram os indicadores não criptografados mencionados na palestra de Charlie na YASCON 2020, detalhados no slide 18 de desta apresentação, embora muitos outros pudessem ser implementados.

    Agradecimentos

    • Will Schroeder (@harmj0y) pela base de código do Rubeus
    • Vincent Le Toux (@mysmartlogon) pela base de código do 'Make Me Enterprise Admin'
    • Jared Atkinson (@jaredcatkinson) pela base de código do 'Get-KerberosTicketGrantingTicket.ps1' e 'Test-KerberosTicketGrantingTicket.ps1'
    • Jonathan Johnson (@jsecurity101) por ajudar na solução de um erro de DCSync :), testes da POC, testes com Microsoft Sentinel e conselhos/orientações sobre como gravar no log de eventos do Windows
    • Elad Shamir (@elad_shamir) por conselhos/orientações
    • A equipe 'sisoc-tokyo' (Universidade de Tóquio, Wataru Matsuda, Mariko Fujimoto e Takuho Mitsunaga), que apresentou 'Real-time detection of attacks leveraging Domain Administrator privilege' na BlackHat Europe 2018, cujo trabalho encontramos após a POC. O projeto deles pode ser encontrado aqui
    • Semperis (@SemperisTech) e Trustedsec (@TrustedSec) por nos permitirem concluir este projeto

    TODO

    • Refatorar e limpar o código
    • Implementar a recuperação da chave de confiança
    Baixar ferramenta