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
TokenTacticsV2 — Un fork del excelente TokenTactics con soporte para CAE y token endpoint v2 | Kitploit
Herramientas/GitHubGitHub/f-bader/tokentacticsv2
Herramientas de PhishingPruebas de PenetraciónSeguridad en la NubeGestión de Identidad y Acceso (IAM)AutenticaciónRed Teaming
GitHubf-bader/tokentacticsv2

TokenTacticsV2

Un fork del excelente TokenTactics con soporte para CAE y token endpoint v2

Ver Repositorio
444516hace 23 díasRevisado 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
root@kitploit:~
  ______      __                 __             __  _                     ___ 
 /_  __/___  / /_____  ____     / /_____ ______/ /_(_)_________   _   __ |__ \
  / / / __ \/ //_/ _ \/ __ \   / __/ __ `/ ___/ __/ / ___/ ___/  | | / / __/ /
 / / / /_/ / ,< /  __/ / / /  / /_/ /_/ / /__/ /_/ / /__(__  )   | |/ / / __/ 
/_/  \____/_/|_|\___/_/ /_/   \__/\__,_/\___/\__/_/\___/____/    |___(_)____/     

TokenTactics v2

Esta es una versión actualizada de TokenTactics escrita originalmente por Stephan Borosh @rvrsh3ll y Bobby Cooke @0xBoku.

Herramienta de manipulación de JSON Web Tokens ("JWT") de Azure

Los tokens de acceso de Azure te permiten autenticarte en determinados endpoints como un usuario que inicia sesión con un código de dispositivo. Si posees un token de actualización capaz de FOCI (Familia de IDs de Cliente), puedes usarlo para obtener tokens de acceso a todos los endpoints capaces de FOCI conocidos. Dado que el token de actualización también contiene información sobre si el usuario ha realizado autenticación multifactor, puedes aprovecharlo. Una vez que tienes el token de acceso de un usuario, es posible acceder a ciertas aplicaciones como Outlook, SharePoint, OneDrive, MSTeams y más.

Por ejemplo, si tienes un token de actualización de Graph o MSGraph, puedes conectarte a Azure y volcar usuarios, grupos, etc. Luego, dependiendo de las políticas de acceso condicional, podrías cambiar a un token de Azure Core Management y ejecutar AzureHound. Después, obtener un token de acceso de Outlook y leer/enviar correos electrónicos, o de MS Teams y leer/enviar mensajes de Teams!

Para más información sobre los tipos de tokens de Azure: Tokens de acceso de la plataforma de identidad de Microsoft

Hay algunos ejemplos de solicitudes a endpoints en la carpeta resources. También hay una plantilla de phishing de ejemplo para el phishing con código de dispositivo.

También puedes usar estos tokens con AAD Internals. Recomendamos encarecidamente echarle un vistazo a esta increíble herramienta.

Instalación y uso

root@kitploit:~
Import-Module .\TokenTactics.psd1
Get-Help Get-EntraIDToken
Invoke-RefreshToSubstrateToken -Domain "myclient.org"

Pruebas

El conjunto de pruebas requiere PowerShell 7 y Pester 5.7.1. Utiliza respuestas HTTP simuladas y no requiere credenciales de Entra ID ni acceso a la red.

root@kitploit:~
Install-Module Pester -RequiredVersion 5.7.1 -Scope CurrentUser
pwsh ./tests/Invoke-Tests.ps1

El mismo conjunto se ejecuta en Linux, macOS y Windows para cada pull request.

Obtener token de actualización mediante el flujo de código de dispositivo

root@kitploit:~
Get-EntraIDToken -Client MSGraph

Una vez que el usuario haya iniciado sesión, se te presentará el JWT y se guardará en la variable $response. Para acceder al token de acceso, usa $response.access_token desde tu ventana de PowerShell para mostrar el token. También puedes mostrar el token de actualización con $response.refresh_token. Pista: ¡querrás el token de actualización para seguir renovando a nuevos tokens!

Código de dispositivo DOD/Mil

root@kitploit:~
Get-EntraIDToken -Client DODMSGraph

Iniciar sesión usando una clave de acceso (passkey)

[!IMPORTANT] Esta funcionalidad se introdujo en v0.2.20 y requiere PowerShell 7.0

Si has creado una clave de acceso en un proveedor de terceros como KeePassXC, Bitwarden, 1Password o similar, puedes exportar el material de la clave privada.

[!CAUTION] Exportar tu material de clave privada es extremadamente peligroso. Asegúrate de entender el riesgo antes de continuar.

El formato de archivo de clave de acceso de KeePassXC es compatible de forma nativa y puedes apuntar el cmdlet directamente al archivo. El procedimiento de inicio de sesión inicial solo obtendrá la cookie ESTSAUTH necesaria, y luego debes usar Get-EntraIDTokenFromESTSCookie para intercambiar esta cookie por un token de portador (token de acceso, token de actualización y token de identificación).

root@kitploit:~
# Recuperar el valor de la cookie ESTSAUTH
Invoke-EntraIDPasskeyLogin -Verbose -KeyFilePath "C:\Users\Fabian\Microsoft.passkey"
# Intercambiar la cookie ESTSAUTH por tokens de portador
Get-EntraIDTokenFromESTSCookie -CookieValue $Global:ESTSAUTH

Si tienes un formato de archivo no compatible, puedes especificar los valores necesarios manualmente y lograr el mismo objetivo.

root@kitploit:~
Invoke-EntraIDPasskeyLogin -Verbose -UserPrincipalName "[email protected]" -UserHandle "XYZ" -CredentialId "9e9c8297-0cde-4726-8852-16c141e15bd3" -PrivateKey $PrivateKey
Get-EntraIDTokenFromESTSCookie -CookieValue $Global:ESTSAUTH

Obtener tokens de acceso usando la cookie SCCAUTH

Si has obtenido una cookie sccauth de una sesión autenticada en security.microsoft.com (por ejemplo, a través de Evilginx o las herramientas de desarrollo del navegador), puedes usarla para recuperar tokens de acceso de Entra ID para un amplio conjunto de recursos a través del portal de Microsoft Defender XDR.

root@kitploit:~
# Recuperar un token de Microsoft Graph usando la cookie sccauth
Get-EntraIDTokenFromSCCAUTHCookie -SCCAuth "your_sccauth_value" -ResourceName MicrosoftGraph

# Proporcionar un token XSRF explícitamente para omitir la solicitud de arranque
Get-EntraIDTokenFromSCCAUTHCookie -SCCAuth "your_sccauth_value" -XSRF "your_xsrf_value" -ResourceName Azure

# Usar una URL de recurso personalizada
Get-EntraIDTokenFromSCCAUTHCookie -SCCAuth "your_sccauth_value" -Resource "https://management.core.windows.net/"

Valores admitidos de -ResourceName: Azure, LogAnalytics, MATP, MCAS, MicrosoftGraph, MicrosoftOffice, Purview, PurviewACC, ThreatIntelligencePortal.

Obtener un token de actualización a partir de la cookie ESTSAuth*

root@kitploit:~
Get-EntraIDTokenFromESTSCookie -ESTSAuthCookie "0.AbcApTk..."

Este módulo utiliza el flujo de código de autorización para obtener un token de acceso y un token de actualización usando la cookie ESTSAuth (o ESTSAuthPersistent). Útil si has suplantado una sesión a través de Evilginx u obtenido esta cookie de otro modo.

¡Asegúrate de usar la cookie correcta! ESTSAuthPersistent solo es útil cuando una política de CA realmente otorga una sesión persistente. De lo contrario, debes usar ESTSAuth. Por lo general, puedes saber cuál usar por la longitud; la cookie más larga es la que quieres usar :)

Nota: Esto puede no funcionar en todos los casos, ya que podría requerir interacción del usuario. Si es así, usa el flujo de código de dispositivo anterior o prueba roadtx interactiveauth --estscookie

Esta funcionalidad fue retroportada del pull request de rotarydrone en el repositorio original.

Obtener un token de actualización usando el flujo de código de autorización

Uno de los ejemplos más destacados de este flujo oauth2 (al menos a principios de 2025) es el Portal de empresa de Intune, que permite, para algunos recursos, omitir los requisitos de cumplimiento del dispositivo.

Esta inteligencia fue publicada por primera vez por @dirkjan y luego presentada en Black Hat Europe a un público más amplio por @TEMP43487580

JumpsecLabs publicó un artículo de blog y un POC en forma de TokenSmith poco después.

Ahora las mismas capacidades están disponibles en TokenTacticsV2.

Get-AzureAuthorizationCode creará una URL que luego puedes usar para autenticarte.

Get-EntraIDTokenFromAuthorizationCode usa la URL completa o se puede usar con los parámetros AuthorizationCode y RedirectUrl para intercambiar el código de autorización por un token de acceso y actualización. Después de eso, puedes intentar acceder a otros recursos como siempre.

Cómo usar los nuevos cmdlets

Renovar a un nuevo token de acceso

Si no especificas un token de actualización, los cmdlets usarán $response.refresh_token por defecto.

root@kitploit:~
Invoke-RefreshToOutlookToken -domain "myclient.org"

$OutlookToken.access_token

Conectarse a AzureAD usando un token de acceso

root@kitploit:~
Connect-AzureAD -AadAccessToken $response.access_token -AccountId [email protected]

Conectarse a MgGraph usando un token de acceso

root@kitploit:~
Invoke-RefreshToMSGraphToken -Domain "myclient.org"
Connect-MgGraph -AccessToken $MSGraphToken.access_token -Scopes "User.Read.All","Group.ReadWrite.All"

Limpiar tokens

Esto eliminará cualquier variable de token.

root@kitploit:~
Clear-Token -Token All

Evaluación continua de acceso

Con la evaluación continua de acceso, Microsoft implementa medidas de seguridad adicionales, pero también extiende la vida útil máxima de un token de acceso a 24 horas. Ciertos servicios capaces de CAE como MSGraph, Exchange, Teams y SharePoint pueden bloquear tokens de acceso basándose en ciertos eventos desencadenados por Azure AD. Actualmente, estos eventos críticos son:

  • La cuenta de usuario se elimina o desactiva
  • La contraseña de un usuario se cambia o restablece
  • La autenticación multifactor está habilitada para el usuario
  • El administrador revoca explícitamente todos los tokens de actualización de un usuario
  • Se detecta un riesgo elevado de usuario por Azure AD Identity Protection (no en Teams y SharePoint Online)
root@kitploit:~
Invoke-RefreshToMSGraphToken -Domain "myclient.org" -UseCAE
if ((Parse-JWTtoken $MSGraphToken.access_token).ValidForHours -gt 23) { "El token de MSGraph es capaz de CAE" }

Usar con AAD Internals

Si también tienes instalado AADInternals, puedes usar los tokens de acceso creados.

root@kitploit:~
Invoke-RefreshToMSTeamsToken -UseCAE -Domain "myclient.org"
Set-AADIntTeamsStatusMessage -Message "Mi mensaje de estado genial" -AccessToken $MSTeamsToken.access_token -Verbose

Comandos

root@kitploit:~
Get-Command -Module TokenTactics

Solo se exportan los comandos orientados al usuario compatibles; los ayudantes de análisis, PKCE, renovación genérica y criptografía FIDO siguen siendo detalles de implementación privados.

Autores y colaboradores

  • @rvrsh3ll Autor de TokenTactics (original)
  • @0xBoku Coautor de TokenTactics (original) e investigador.
  • @f-bader Actualizó TokenTactics para admitir el endpoint V2 y funcionalidades adicionales como CAE. Mantenedor de TokenTacticsV2
  • @Pri3st Agregó funciones para obtener tokens de acceso de Storage y Key Vault, y un agente de usuario personalizado

Los métodos de TokenTactics están fuertemente influenciados por la gran investigación del Dr. Nestori Syynimaa en https://o365blog.com/.

Registro de cambios

0.3.0 (2026-07-13)

  • Agregar un ejecutor de pruebas Pester 5 anclado, comprobaciones de GitHub Actions multiplataforma, informes de prueba y una línea base de cobertura obligatoria.
  • Agregar cobertura simulada determinista para flujos de código de dispositivo, cookie, código de autorización, SCCAUTH, token de actualización y passkey.
  • Corregir limpieza de tokens, decodificación de URL, marcas de tiempo UTC de JWT, validación de PEM, ámbito de Yammer, soporte de cookie CAE, encabezados de tenant de PurviewACC y construcción de aserción de passkey.
  • Exportar solo los comandos orientados al usuario compatibles y los alias de compatibilidad. Los ayudantes de implementación previamente expuestos por el comodín de exportación ahora son privados; los scripts deben usar los comandos públicos correspondientes en su lugar.

0.2.22 (2026-04-03)

  • Agregar Get-EntraIDTokenFromSCCAUTHCookie para recuperar tokens de acceso de Entra ID para varios recursos (Azure, MicrosoftGraph, MATP, MCAS, Purview, etc.) usando una cookie sccauth de security.microsoft.com. Opcionalmente acepta un token XSRF; si se omite, arranca automáticamente. Admite un parámetro TenantId opcional para inyección de encabezados y construcción del recurso PurviewACC.

0.2.20 (2026-01-01)

  • Renombrar todos los cmdlets Get-Azure a Get-EntraID
  • Agregar alias para compatibilidad hacia atrás
  • Agregar mejor manejo de errores para interrupciones de ConvergedSignIn
  • Agregar Invoke-EntraIDPasskeyLogin para automatizar flujos de inicio de sesión con passkey. Esto guardará la cookie ESTSAUTH y la sesión web como variables globales para reutilizar en otros cmdlets como Get-EntraIDTokenFromESTSCookie
  • Agregar soporte de proxy para Invoke-EntraIDPasskeyLogin, Get-EntraIDTokenFromCookie, Get-EntraIDTokenFromRefreshTokenCredentialCookie y Get-EntraIDTokenFromESTSCookie

0.2.14 (2025-09-11)

  • Agregar parámetro -Username para rellenar previamente el parámetro login_hint en el cmdlet Get-AzureAuthorizationCode
  • Agregar parámetro -CopyToClipboard en el cmdlet Get-AzureAuthorizationCode

0.2.13 (2025-07-29)

  • Corrección para el parámetro de Agente de Usuario Personalizado

0.2.12 (2025-06-22)

  • Agregar conciencia del espacio de ejecución actual y minimizar la salida si se ejecuta como PSTask (por ejemplo, si se ejecuta en Foreach-Object -parallel)

0.2.11 (2025-06-08)

  • Agregar la capacidad de definir libremente cualquier UserAgent usando la nueva propiedad -CustomUserAgent. Gracias a Pri3st

0.2.10 (2025-02-25)

  • Corrección de error: Inicialización incorrecta de tipo

0.2.9 (2025-02-17)

  • Agregar ResourceTenant para Get-EntraIDToken para admitir phishing con código de dispositivo B2B
  • Cambiar el ID de cliente de Azure Management
  • Agregar UseCodeVerifier para admitir Prueba de Clave para Intercambio de Código (PKCE)
  • Agregar UseV1Endpoint a algunas funciones para admitir una variedad más amplia de pruebas de endpoints

0.2.8 (2025-01-18)

  • Agregar Get-AzureTokenFromRefreshTokenCredentialCookie ("x-ms-RefreshTokenCredential") y agregar Get-AzureTokenFromCookie modularizado
  • Agregar parámetro para elegir el tipo de cookie (ESTSAuth, ESTSAUTHPERSISTENT) a Get-AzureTokenFromESTSCookie
  • Agregar salida de ejemplo para Get-AzureTokenFromAuthorizationCode a la salida de Get-AzureAuthorizationCode
  • Salida mejorada y manejo de errores más detallado

0.2.7 (2025-01-08)

  • Expandir Get-AzureTokenFromESTSCookie para admitir el endpoint appverify
  • Mejorar la gestión de cookies de Get-AzureTokenFromESTSCookie

0.2.6 (2025-01-04)

  • Corregir error de ámbitos personalizados en Get-AzureAuthorizationCode y Get-AzureTokenFromAuthorizationCode
  • Cambiar la URI de redireccionamiento predeterminada para Get-AzureAuthorizationCode

0.2.5 (2025-01-04)

  • Agregar nuevos cmdlets Get-AzureAuthorizationCode y Get-AzureTokenFromAuthorizationCode
    Estos cmdlets están fuertemente inspirados en TokenSmith mantenido por @gladstomych
  • Agregar nuevo cmdlet Invoke-RefreshToDeviceRegistrationToken, que es una versión de TokenTactics del cmdlet AADInternals Get-AccessTokenForAADJoin
  • Agregar soporte de endpoint v1 para Invoke-RefreshToToken con UseV1Endpoint. Esto fue necesario para agregar Invoke-RefreshToDeviceRegistrationToken
  • Agregar soporte de pipeline para ConvertFrom-JWTtoken
  • Agregar valores predeterminados a Get-ForgedUserAgent

0.2.1 (2023-07-21)

  • Soporte para Linux como plataforma de dispositivo
  • Soporte para OS/2 como plataforma de dispositivo 😁

0.2.2 (2023-07-22)

  • Retroportado soporte de token de Yammer
  • Retroportado cambio a verbos permitidos de PowerShell, agregado alias para compatibilidad hacia atrás

0.2.3 (2023-07-23)

  • Retroportado pull request de rotarydrone para convertir ESTSAuth en token de acceso

Nuevas características en v2

  • Cambiado al endpoint v2.0 de OAuth2 de Azure AD
  • Soporte para evaluación continua de acceso usando el nuevo modificador -UseCAE
  • Convertido ClientId en un parámetro
  • Cambiado client_id para MSTeams
  • Agregado soporte para OneDrive y SharePoint
  • Agregados IssuedAt, NotBefore, ExpirationDate y ValidForHours en la salida de ConvertFrom-JWTtoken en formato legible para humanos
  • Soporte de inicio de sesión con passkey
  • Refactorización del código base para un mantenimiento más sencillo
Descargar herramienta