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
tgt-monitor-bof — Async BOF para extrair ou renovar automaticamente TGTs Kerberos em um sistema alvo. | Kitploit
Ferramentas/GitHubGitHub/jakobfriedl/tgt-monitor-bof
Movimento LateralPós-ExploraçãoTestes de PenetraçãoAutenticaçãoRed TeamingDesenvolvimento de Payloads
GitHubjakobfriedl/tgt-monitor-bof

tgt-monitor-bof

Async BOF para extrair ou renovar automaticamente TGTs Kerberos em um sistema alvo.

Ver Repositório
134104há 1 mêsRevisado 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

Monitoramento e Renovação Automática de TGT Kerberos

Este repositório contém dois Arquivos de Objetos Beacon Assíncronos (BOF). O primeiro, tgt-monitor, monitora o sistema em busca de eventos de logon Kerberos e ativa o agente sempre que um novo TGT Kerberos é capturado. Semelhante ao comando monitor do Rubeus, este BOF é executado indefinidamente e verifica periodicamente o cache de tickets LSA no sistema. Quando um novo TGT é detectado, ele imprime os metadados do ticket e gera um blob kirbi codificado em base64 que pode ser usado para movimento lateral através de ataques pass-the-ticket. O segundo, tgt-renew, renova automaticamente TGTs no sistema se seu tempo de vida restante estiver abaixo de um limite especificado (por exemplo, 15 minutos).

[!Important] Os BOFs neste repositório exigem capacidades de carregamento de arquivos de objeto assíncronos. Essa funcionalidade é fornecida pelo framework Conquest.

  • Monitoramento e Renovação Automática de TGT Kerberos
    • Como Funciona
      • Monitoramento de Tickets
      • Renovação de Tickets
    • Uso
      • tgt-monitor
      • tgt-renew
    • Instalação
    • Agradecimentos

Como Funciona

Ambos os BOFs exigem execução a partir de um contexto NT AUTHORITY\SYSTEM. Os privilégios são verificados seguindo a mesma lógica.

  1. O BOF verifica o token do processo atual para acesso SYSTEM.
  2. Se o token do processo não for SYSTEM, o BOF verifica todas as threads no processo atual em busca de um token de personificação com privilégios SYSTEM e o duplica. Isso permite o uso a partir de um processo agente de baixa integridade que roubou um token SYSTEM (por exemplo, via SeImpersonatePrivilege). O BOF termina se isso também não produzir acesso em nível SYSTEM.
  3. Os handles do pacote de autenticação LSA e Kerberos são recuperados.

As etapas abaixo são repetidas em um loop até que o BOF seja cancelado pelo evento de parada. Um intervalo definido pelo usuário define o atraso entre as verificações.

Monitoramento de Tickets

  1. Todas as sessões de logon ativas são enumeradas. Para cada sessão, o cache de tickets Kerberos é consultado e filtrado por TGTs. Se um argumento --user foi fornecido, apenas as sessões correspondentes a esse nome de usuário são consideradas.
  2. O cache de tickets atual é comparado com o instantâneo anterior. Novos TGTs acionam a impressão de metadados e a saída kirbi codificada em base64, seguida por uma chamada BeaconWakeup() para forçar o agente a verificar e retornar a saída.

Workflow TGT Monitor

Renovação de Tickets

  1. Todas as sessões de logon ativas são enumeradas. Para cada sessão, o cache de tickets Kerberos é consultado e filtrado por TGTs. Se um argumento --user foi fornecido, apenas as sessões correspondentes a esse nome de usuário são consideradas.
  2. Cada TGT é verificado em relação a duas condições:
    • Se o ticket passou do tempo RenewUntil, ele é marcado como expirado e é necessária uma reautenticação.
    • Se o tempo de vida restante do ticket estiver dentro do limite definido pelo usuário, o TGT é renovado e importado. Em caso de sucesso, os metadados do ticket atualizado e a saída kirbi codificada em base64 são impressos, seguidos por uma chamada BeaconWakeup().

Workflow TGT Renew

O processo de renovação de tickets envolve as seguintes etapas:

  1. Extrair o TGT Kerberos codificado em ASN.1 via ExtractTicket() usando o LUID e SPN da estrutura PTICKET_ENTRY.
  2. Decodificar o ticket em ASN.1 e recuperar a credencial Kerberos.
  3. Criar um pacote TGS-REQ para solicitar a renovação do ticket usando o ticket expirante para pré-autenticação.
  4. Enviar os bytes TGS-REQ para o controlador de domínio na porta 88.
  5. Recuperar, decodificar em ASN.1 e analisar a resposta TGS-REP.
  6. Construir o ticket renovado, limpar o ticket antigo do cache e importar o ticket renovado usando Pass-the-Ticket.
  7. Atualizar startTime, endTime, renewUntil, ticketFlags e encryptionType na estrutura PTICKET_ENTRY, imprimir as informações do ticket e base64.

Uso

Este repositório apresenta um Módulo Conquest que implementa os dois comandos a seguir.

tgt-monitor

O BOF tgt-monitor alerta quando novos TGTs são capturados e os retorna como um blob codificado em Base64. Os seguintes argumentos precisam ser passados para o arquivo de objeto:

NomeTipoDescrição
intervalintTempo limite entre verificações em segundos.
targetUsersstringLista de nomes de usuário alvo separados por vírgula e insensível a maiúsculas/minúsculas. Quando este campo é definido, apenas TGTs para os usuários especificados são recuperados. Caso contrário, TGTs são coletados para todos os usuários. Observe que contas de computador precisam terminar com $.
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

O ticket codificado pode ser usado diretamente com Rubeus.exe ptt /ticket:<base64> ou impacket-ticketConverter para movimento lateral adicional, conforme mostrado na captura de tela abaixo. No Conquest, é possível usar o comando ptt para injetar diretamente o ticket na sessão de logon atual para personificar o usuário alvo.

Stealing tickets with TGT Monitor

tgt-renew

O BOF tgt-renew renova automaticamente tickets que expiram em breve até que não possam mais ser renovados. Os seguintes argumentos precisam ser passados para o arquivo de objeto:

NomeTipoDescrição
intervalintTempo limite entre verificações em segundos.
thresholdintLimite de renovação em minutos. O ticket é renovado quando o tempo até o EndTime é menor que este limite.
targetUsersstringLista de nomes de usuário alvo separados por vírgula e insensível a maiúsculas/minúsculas. Quando este campo é definido, apenas TGTs para os usuários especificados são renovados. Caso contrário, TGTs são renovados para todos os usuários. Observe que contas de computador precisam terminar com $.
targetLuidsstringLista de LUIDs alvo separados por vírgula e insensível a maiúsculas/minúsculas. Quando este campo é definido, apenas TGTs para os LUIDs especificados são renovados.
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).

As flags --user e --luid são mutuamente exclusivas.

TGT Renew

Instalação

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

A partir daí, use o Gerenciador de Scripts do Conquest para carregar o módulo dist/tgt-monitor.py.

Agradecimentos

Esta implementação deste Arquivo de Objeto Beacon é baseada nos seguintes projetos:

  • https://github.com/Ghostpack/Rubeus
  • https://github.com/RalfHacker/Kerbeus-BOF
    • Implementação de codificação/decodificação ASN.1
  • https://github.com/wavvs/nanorobeus
Baixar ferramenta