Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
TokenTacticsV2 — Un fork del grande TokenTactics con supporto per CAE e token endpoint v2 | Kitploit
Strumenti/GitHubGitHub/f-bader/tokentacticsv2
Strumenti di PhishingPenetration TestingSicurezza CloudGestione Identità e Accessi (IAM)AutenticazioneRed Teaming
GitHubf-bader/tokentacticsv2

TokenTacticsV2

Un fork del grande TokenTactics con supporto per CAE e token endpoint v2

Vedi Repository
444513 giorni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
root@kitploit:~
  ______      __                 __             __  _                     ___ 
 /_  __/___  / /_____  ____     / /_____ ______/ /_(_)_________   _   __ |__ \
  / / / __ \/ //_/ _ \/ __ \   / __/ __ `/ ___/ __/ / ___/ ___/  | | / / __/ /
 / / / /_/ / ,< /  __/ / / /  / /_/ /_/ / /__/ /_/ / /__(__  )   | |/ / / __/ 
/_/  \____/_/|_|\___/_/ /_/   \__/\__,_/\___/\__/_/\___/____/    |___(_)____/     

TokenTactics v2

Questa è una versione aggiornata di TokenTactics originariamente scritta da Stephan Borosh @rvrsh3ll e Bobby Cooke @0xBoku.

Toolset per la manipolazione dei JSON Web Token ("JWT") di Azure

I token di accesso di Azure consentono di autenticarsi su determinati endpoint come un utente che accede tramite un codice dispositivo. Se si è in possesso di un refresh token compatibile con FOCI (Family of Client IDs), è possibile usarlo per ottenere token di accesso per tutti gli endpoint noti compatibili con FOCI. Poiché il refresh token contiene anche l'informazione se l'utente ha eseguito l'autenticazione a più fattori, è possibile sfruttarlo. Una volta ottenuto il token di accesso di un utente, potrebbe essere possibile accedere a determinate app come Outlook, SharePoint, OneDrive, MSTeams e altro.

Ad esempio, se si dispone di un refresh token di Graph o MSGraph, è possibile connettersi ad Azure ed estrarre utenti, gruppi, ecc. A seconda dei criteri di accesso condizionale, si potrebbe poi passare a un token di Azure Core Management ed eseguire AzureHound. Quindi, ottenere un token di accesso di Outlook e leggere/inviare email oppure di MS Teams e leggere/inviare messaggi di Teams!

Per maggiori informazioni sui tipi di token di Azure: Microsoft identity platform access tokens

Nella cartella resources sono presenti alcuni esempi di richieste agli endpoint. È presente anche un template di phishing di esempio per il phishing tramite codice dispositivo.

Puoi anche usare questi token con AAD Internals. Consigliamo vivamente di dare un'occhiata a questo straordinario strumento.

Installazione e utilizzo

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

Test

La suite di test richiede PowerShell 7 e Pester 5.7.1. Utilizza risposte HTTP simulate e non richiede credenziali di Entra ID o accesso alla rete.

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

La stessa suite viene eseguita su Linux, macOS e Windows per ogni pull request.

Ottenere un refresh token tramite il flusso Device Code

root@kitploit:~
Get-EntraIDToken -Client MSGraph

Dopo che l'utente ha effettuato l'accesso, ti verrà mostrato il JWT e verrà salvato nella variabile $response. Per accedere al token di accesso, usa $response.access_token nella finestra di PowerShell per visualizzare il token. Puoi anche visualizzare il refresh token con $response.refresh_token. Suggerimento: ti servirà il refresh token per continuare a ottenere nuovi token!

Device Code per DOD/Mil

root@kitploit:~
Get-EntraIDToken -Client DODMSGraph

Accesso tramite passkey

[!IMPORTANT] Questa funzionalità è stata introdotta nella v0.2.20 e richiede PowerShell 7.0

Se hai creato una passkey in un provider di terze parti come KeePassXC, Bitwarden, 1Password o simili, puoi esportare il materiale della chiave privata.

[!CAUTION] Esportare il materiale della tua chiave privata è estremamente pericoloso. Assicurati di comprendere il rischio prima di procedere.

Il formato file delle passkey di KeePassXC è supportato nativamente e puoi indicare direttamente il file al cmdlet. La procedura di accesso iniziale recupererà solo il cookie ESTSAUTH necessario e dovrai usare Get-EntraIDTokenFromESTSCookie per scambiare questo cookie con un bearer token (access token, refresh token e id token).

root@kitploit:~
# Retrieve the ESTSAUTH cookie value
Invoke-EntraIDPasskeyLogin -Verbose -KeyFilePath "C:\Users\Fabian\Microsoft.passkey"
# Exchange the ESTSAUTH cookie for bearer tokens
Get-EntraIDTokenFromESTSCookie -CookieValue $Global:ESTSAUTH

Se hai un formato di file non supportato, puoi specificare manualmente i valori richiesti e raggiungere lo stesso obiettivo.

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

Ottenere token di accesso usando il cookie SCCAUTH

Se hai ottenuto un cookie sccauth da una sessione autenticata su security.microsoft.com (ad esempio tramite Evilginx o DevTools del browser), puoi usarlo per recuperare token di accesso Entra ID per un'ampia serie di risorse attraverso il portale Microsoft Defender XDR.

root@kitploit:~
# Retrieve a Microsoft Graph token using the sccauth cookie
Get-EntraIDTokenFromSCCAUTHCookie -SCCAuth "your_sccauth_value" -ResourceName MicrosoftGraph

# Provide an XSRF token explicitly to skip the bootstrapping request
Get-EntraIDTokenFromSCCAUTHCookie -SCCAuth "your_sccauth_value" -XSRF "your_xsrf_value" -ResourceName Azure

# Use a custom resource URL
Get-EntraIDTokenFromSCCAUTHCookie -SCCAuth "your_sccauth_value" -Resource "https://management.core.windows.net/"

Valori supportati per -ResourceName: Azure, LogAnalytics, MATP, MCAS, MicrosoftGraph, MicrosoftOffice, Purview, PurviewACC, ThreatIntelligencePortal.

Ottenere un refresh token dal cookie ESTSAuth*

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

Questo modulo usa il flusso del codice di autorizzazione per ottenere un access token e un refresh token tramite il cookie ESTSAuth (o ESTSAuthPersistent). Utile se hai rubato una sessione tramite Evilginx o hai ottenuto questo cookie in altro modo.

Assicurati di usare il cookie giusto! ESTSAuthPersistent è utile solo quando un criterio CA concede effettivamente una sessione persistente. In caso contrario, dovresti usare ESTSAuth. Di solito puoi capire quale usare in base alla lunghezza: il cookie più lungo è quello che ti serve :)

Nota: potrebbe non funzionare in tutti i casi perché richiede l'interazione dell'utente. In tal caso, usa il flusso Device Code qui sopra oppure prova roadtx interactiveauth --estscookie

Questa funzionalità è stata backportata dalla pull request di rotarydrone nel repository originale.

Ottenere un refresh token tramite il flusso del codice di autorizzazione

Uno degli esempi più noti di questo flusso oauth2 (almeno all'inizio del 2025) è il portale aziendale di Intune, che consente, per alcune risorse, di aggirare i requisiti di conformità dei dispositivi.

Queste informazioni sono state pubblicate per la prima volta da @dirkjan e poi diffuse a un pubblico più ampio al Black Hat Europe da @TEMP43487580

Poco dopo, JumpsecLabs ha pubblicato un articolo del blog e un POC sotto forma di TokenSmith.

Ora le stesse funzionalità sono disponibili in TokenTacticsV2.

Get-AzureAuthorizationCode creerà un URL che potrai poi usare per autenticarti.

Get-EntraIDTokenFromAuthorizationCode usa l'URL completo oppure può essere usato con i parametri AuthorizationCode e RedirectUrl per scambiare il codice di autorizzazione con un access token e un refresh token. Dopodiché puoi provare ad accedere ad altre risorse come al solito.

Come usare i nuovi cmdlet

Refresh per ottenere un nuovo access token

Se non specifichi un refresh token, i cmdlet useranno $response.refresh_token come predefinito.

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

$OutlookToken.access_token

Connettersi ad AzureAD usando un access token

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

Connettersi a MgGraph usando un access token

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

Cancellare i token

Questa operazione rimuoverà eventuali variabili dei token.

root@kitploit:~
Clear-Token -Token All

Valutazione dell'accesso continuo

Con la valutazione dell'accesso continuo Microsoft implementa misure di sicurezza aggiuntive, ma estende anche la durata massima di un access token a 24 ore. Alcuni servizi compatibili con CAE come MSGraph, Exchange, Teams e SharePoint possono bloccare gli access token in base a determinati eventi generati da Azure AD. Attualmente questi eventi critici sono:

  • L'account utente viene eliminato o disabilitato
  • La password di un utente viene modificata o reimpostata
  • L'autenticazione a più fattori viene abilitata per l'utente
  • L'amministratore revoca esplicitamente tutti i refresh token di un utente
  • Elevato rischio utente rilevato da Azure AD Identity Protection (non in Teams e SharePoint Online)
root@kitploit:~
Invoke-RefreshToMSGraphToken -Domain "myclient.org" -UseCAE
if ((Parse-JWTtoken $MSGraphToken.access_token).ValidForHours -gt 23) { "MSGraph token is CAE capable" }

Utilizzo con AAD Internals

Se hai installato anche AADInternals, puoi usare gli access token creati.

root@kitploit:~
Invoke-RefreshToMSTeamsToken -UseCAE -Domain "myclient.org"
Set-AADIntTeamsStatusMessage -Message "My cool status message" -AccessToken $MSTeamsToken.access_token -Verbose

Comandi

root@kitploit:~
Get-Command -Module TokenTactics

Vengono esportati solo i comandi supportati rivolti all'utente; parsing, PKCE, refresh generico e helper crittografici FIDO rimangono dettagli implementativi privati.

Autori e contributori

  • @rvrsh3ll Autore di TokenTactics (originale)
  • @0xBoku co-autore di TokenTactics (originale) e ricercatore.
  • @f-bader ha aggiornato TokenTactics per supportare l'endpoint V2 e funzionalità aggiuntive come CAE. Maintainer di TokenTacticsV2
  • @Pri3st ha aggiunto funzioni per recuperare gli access token di Storage e Key Vault e un user agent personalizzato

I metodi di TokenTactics sono fortemente influenzati dall'ottima ricerca del Dr. Nestori Syynimaa su https://o365blog.com/.

Registro delle modifiche

0.3.0 (2026-07-13)

  • Aggiunto un test runner fisso per Pester 5, controlli GitHub Actions multipiattaforma, report dei test e una baseline di copertura obbligatoria.
  • Aggiunta copertura simulata deterministica per i flussi device code, cookie, codice di autorizzazione, SCCAUTH, refresh-token e passkey.
  • Corretti la pulizia dei token, il decoding degli URL, i timestamp JWT UTC, la validazione PEM, lo scope di Yammer, il supporto ai cookie CAE, gli header tenant di PurviewACC e la costruzione delle asserzioni passkey.
  • Esporta solo i comandi supportati rivolti all'utente e gli alias di compatibilità. Gli helper implementativi precedentemente esposti dall'esportazione con caratteri jolly sono ora privati; gli script devono usare i corrispondenti comandi pubblici.

0.2.22 (2026-04-03)

  • Aggiunto Get-EntraIDTokenFromSCCAUTHCookie per recuperare access token Entra ID per varie risorse (Azure, MicrosoftGraph, MATP, MCAS, Purview, ecc.) usando un cookie sccauth da security.microsoft.com. Accetta opzionalmente un token XSRF; se omesso, esegue il bootstrap automaticamente. Supporta un parametro opzionale TenantId per l'iniezione negli header e la costruzione della risorsa PurviewACC.

0.2.20 (2026-01-01)

  • Rinominati tutti i cmdlet Get-Azure in Get-EntraID
  • Aggiunti alias per la compatibilità con le versioni precedenti
  • Aggiunta una migliore gestione degli errori per le interruzioni di ConvergedSignIn
  • Aggiunto Invoke-EntraIDPasskeyLogin per automatizzare i flussi di accesso Passkey. Salva il cookie ESTSAUTH e la websession come variabili globali per il riutilizzo in altri cmdlet come Get-EntraIDTokenFromESTSCookie
  • Aggiunto supporto proxy per Invoke-EntraIDPasskeyLogin, Get-EntraIDTokenFromCookie, Get-EntraIDTokenFromRefreshTokenCredentialCookie e Get-EntraIDTokenFromESTSCookie

0.2.14 (2025-09-11)

  • Aggiunto il parametro -Username per precompilare il parametro login_hint nel cmdlet Get-AzureAuthorizationCode
  • Aggiunto il parametro -CopyToClipboard nel cmdlet Get-AzureAuthorizationCode

0.2.13 (2025-07-29)

  • Correzione per il parametro Custom User Agent

0.2.12 (2025-06-22)

  • Aggiunta la consapevolezza del runspace corrente e output minimizzato se eseguito come PSTask (ad esempio se eseguito in Foreach-Object -parallel)

0.2.11 (2025-06-08)

  • Aggiunta la possibilità di definire liberamente qualsiasi UserAgent usando la nuova proprietà -CustomUserAgent. Grazie a Pri3st

0.2.10 (2025-02-25)

  • Bugfix: inizializzazione del tipo errata

0.2.9 (2025-02-17)

  • Aggiunto ResourceTenant per Get-EntraIDToken per supportare il phishing tramite device code B2B
  • Sostituito l'ID client di Azure Management
  • Aggiunto UseCodeVerifier per supportare Proof Key for Code Exchange (PKCE)
  • Aggiunto UseV1Endpoint ad alcune funzioni per supportare una più ampia varietà di test sugli endpoint

0.2.8 (2025-01-18)

  • Aggiunto Get-AzureTokenFromRefreshTokenCredentialCookie ("x-ms-RefreshTokenCredential") e aggiunto Get-AzureTokenFromCookie modularizzato
  • Aggiunto il parametro per scegliere il tipo di cookie (ESTSAuth, ESTSAUTHPERSISTENT) a Get-AzureTokenFromESTSCookie
  • Aggiunto un output di esempio per Get-AzureTokenFromAuthorizationCode all'output di Get-AzureAuthorizationCode
  • Output migliorato e gestione degli errori più dettagliata

0.2.7 (2025-01-08)

  • Esteso Get-AzureTokenFromESTSCookie per supportare l'endpoint appverify
  • Migliorata la gestione dei cookie di Get-AzureTokenFromESTSCookie

0.2.6 (2025-01-04)

  • Corretto il bug degli scope personalizzati in Get-AzureAuthorizationCode e Get-AzureTokenFromAuthorizationCode
  • Modificato l'URI di reindirizzamento predefinito per Get-AzureAuthorizationCode

0.2.5 (2025-01-04)

  • Aggiunti i nuovi cmdlet Get-AzureAuthorizationCode e Get-AzureTokenFromAuthorizationCode
    Questi cmdlet sono fortemente ispirati da TokenSmith mantenuto da @gladstomych
  • Aggiunto il nuovo cmdlet Invoke-RefreshToDeviceRegistrationToken, una versione TokenTactics del cmdlet AADInternals Get-AccessTokenForAADJoin
  • Aggiunto il supporto dell'endpoint v1 per Invoke-RefreshToToken con UseV1Endpoint. Questo è stato necessario per aggiungere Invoke-RefreshToDeviceRegistrationToken
  • Aggiunto il supporto alla pipeline per ConvertFrom-JWTtoken
  • Aggiunti valori predefiniti a Get-ForgedUserAgent

0.2.1 (2023-07-21)

  • Supporto per Linux come piattaforma dispositivo
  • Supporto per OS/2 come piattaforma dispositivo 😁

0.2.2 (2023-07-22)

  • Backport del supporto ai token Yammer
  • Backport del passaggio ai verbi PowerShell consentiti, aggiunto alias per la compatibilità con le versioni precedenti

0.2.3 (2023-07-23)

  • Backport della pull request di rotarydrone per convertire ESTSAuth in access token

Nuove funzionalità nella v2

  • Passaggio all'endpoint v2.0 di Azure AD OAuth2
  • Supporto per la valutazione dell'accesso continuo tramite il nuovo switch -UseCAE
  • Reso ClientId un parametro
  • Modificato client_id per MSTeams
  • Aggiunto il supporto per OneDrive e SharePoint
  • Aggiunti IssuedAt, NotBefore, ExpirationDate e ValidForHours nell'output di ConvertFrom-JWTtoken in formato leggibile
  • Supporto all'accesso tramite passkey
  • Refactoring del codebase per una manutenzione più semplice
Scarica lo strumento