Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
TokenTacticsV2 — Форк отличного TokenTactics с поддержкой CAE и token endpoint v2 | Kitploit
Инструменты/GitHubGitHub/f-bader/tokentacticsv2
Инструменты фишингаТестирование на ПроникновениеБезопасность облачных средУправление идентификацией и доступом (IAM)АутентификацияRed Teaming
GitHubf-bader/tokentacticsv2

TokenTacticsV2

Форк отличного TokenTactics с поддержкой CAE и token endpoint v2

Репозиторий
444513 дней назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
root@kitploit:~
  ______      __                 __             __  _                     ___ 
 /_  __/___  / /_____  ____     / /_____ ______/ /_(_)_________   _   __ |__ \
  / / / __ \/ //_/ _ \/ __ \   / __/ __ `/ ___/ __/ / ___/ ___/  | | / / __/ /
 / / / /_/ / ,< /  __/ / / /  / /_/ /_/ / /__/ /_/ / /__(__  )   | |/ / / __/ 
/_/  \____/_/|_|\___/_/ /_/   \__/\__,_/\___/\__/_/\___/____/    |___(_)____/     

TokenTactics v2

Это обновлённая версия TokenTactics, изначально написанная Стефаном Борошем @rvrsh3ll и Бобби Куком @0xBoku.

Набор инструментов для манипуляции JSON Web Token ("JWT") в Azure

Токены доступа Azure позволяют аутентифицироваться в определённых конечных точках от имени пользователя, который входит с помощью кода устройства. Если у вас есть FOCI (Family of Client IDs) — обновляемый токен, совместимый с FOCI, вы можете использовать его для получения токенов доступа ко всем известным конечным точкам, поддерживающим FOCI. Так как обновляемый токен также содержит информацию о том, прошёл ли пользователь многофакторную аутентификацию, вы можете использовать это. Получив токен доступа пользователя, вы можете получить доступ к определённым приложениям, таким как Outlook, SharePoint, OneDrive, MSTeams и другим.

Например, если у вас есть обновляемый токен Graph или MSGraph, вы можете подключиться к Azure и выгрузить пользователей, группы и т.д. Затем, в зависимости от политик условного доступа, вы можете переключиться на токен Azure Core Management и запустить AzureHound. Затем получить токен доступа Outlook и читать/отправлять электронные письма или токен MS Teams и читать/отправлять сообщения в Teams!

Подробнее о типах токенов Azure: Токены доступа платформы удостоверений Microsoft

В папке resources есть несколько примеров запросов к конечным точкам. Также есть пример фишингового шаблона для фишинга с использованием кода устройства.

Вы также можете использовать эти токены с AAD Internals. Мы настоятельно рекомендуем ознакомиться с этим замечательным инструментом.

Установка и использование

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

Тестирование

Набор тестов требует PowerShell 7 и Pester 5.7.1. Он использует имитированные HTTP-ответы и не требует учётных данных Entra ID или сетевого доступа.

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

Тот же набор тестов запускается на Linux, macOS и Windows для каждого pull request.

Получение обновляемого токена с помощью потока с кодом устройства

root@kitploit:~
Get-EntraIDToken -Client MSGraph

После того как пользователь войдёт, вам будет показан JWT, и он будет сохранён в переменной $response. Чтобы получить токен доступа, используйте $response.access_token в окне PowerShell. Вы также можете отобразить обновляемый токен с помощью $response.refresh_token. Подсказка: вам понадобится обновляемый токен, чтобы продолжать обновлять его до новых токенов!

Код устройства DOD/Mil

root@kitploit:~
Get-EntraIDToken -Client DODMSGraph

Вход с помощью ключа доступа (passkey)

[!IMPORTANT] Эта функция была добавлена в версии 0.2.20 и требует PowerShell 7.0

Если вы создали ключ доступа у стороннего провайдера, такого как KeePassXC, Bitwarden, 1Password или аналогичного, вы можете экспортировать закрытый ключ.

[!CAUTION] Экспорт закрытого ключа крайне опасен. Убедитесь, что вы понимаете риски, прежде чем продолжить.

Формат файла ключа доступа KeePassXC поддерживается изначально, и вы можете указать путь к файлу напрямую. Процедура начального входа получит только необходимый cookie ESTSAUTH, после чего нужно использовать Get-EntraIDTokenFromESTSCookie для обмена этого cookie на токен-носитель (токен доступа, обновляемый токен и ID-токен).

root@kitploit:~
# Получить значение cookie ESTSAUTH
Invoke-EntraIDPasskeyLogin -Verbose -KeyFilePath "C:\Users\Fabian\Microsoft.passkey"
# Обменять cookie ESTSAUTH на токены-носители
Get-EntraIDTokenFromESTSCookie -CookieValue $Global:ESTSAUTH

Если у вас неподдерживаемый формат файла, вы можете указать необходимые значения вручную и достичь той же цели.

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

Получение токенов доступа с помощью cookie SCCAUTH

Если вы получили cookie sccauth из аутентифицированной сессии на security.microsoft.com (например, через Evilginx или инструменты разработчика браузера), вы можете использовать его для получения токенов доступа Entra ID для большого набора ресурсов через портал Microsoft Defender XDR.

root@kitploit:~
# Получить токен Microsoft Graph с помощью cookie sccauth
Get-EntraIDTokenFromSCCAUTHCookie -SCCAuth "your_sccauth_value" -ResourceName MicrosoftGraph

# Явно указать XSRF-токен, чтобы пропустить запрос начальной загрузки
Get-EntraIDTokenFromSCCAUTHCookie -SCCAuth "your_sccauth_value" -XSRF "your_xsrf_value" -ResourceName Azure

# Использовать собственный URL ресурса
Get-EntraIDTokenFromSCCAUTHCookie -SCCAuth "your_sccauth_value" -Resource "https://management.core.windows.net/"

Поддерживаемые значения -ResourceName: Azure, LogAnalytics, MATP, MCAS, MicrosoftGraph, MicrosoftOffice, Purview, PurviewACC, ThreatIntelligencePortal.

Получение обновляемого токена из cookie ESTSAuth*

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

Этот модуль использует поток кода авторизации для получения токена доступа и обновляемого токена с помощью cookie ESTSAuth (или ESTSAuthPersistent). Полезно, если вы перехватили сессию через Evilginx или иным образом получили этот cookie.

Обязательно используйте правильный cookie! ESTSAuthPersistent полезен только в том случае, если политика CA действительно предоставляет постоянную сессию. В противном случае используйте ESTSAuth. Обычно можно определить, какой использовать, по длине: длиннее cookie — тот, который вам нужен :)

Примечание: Это может работать не во всех случаях, так как может потребоваться взаимодействие с пользователем. Если это так, используйте поток с кодом устройства выше или попробуйте roadtx interactiveauth --estscookie

Эта функция была перенесена из pull request от rotarydrone в оригинальном репозитории.

Получение обновляемого токена с помощью потока кода авторизации

Одним из наиболее известных примеров этого потока oauth2 (по крайней мере, на начало 2025 года) является Intune Company Portal, который для некоторых ресурсов позволяет обходить требования к соответствию устройств.

Эта информация была впервые опубликована @dirkjan, а затем представлена на Black Hat Europe более широкой аудитории @TEMP43487580

JumpsecLabs опубликовали статью в блоге и PoC в виде TokenSmith вскоре после этого.

Теперь те же возможности доступны в TokenTacticsV2.

Get-AzureAuthorizationCode создаст URL, который вы затем сможете использовать для аутентификации.

Get-EntraIDTokenFromAuthorizationCode использует либо полный URL, либо может быть использован с параметрами AuthorizationCode и RedirectUrl для обмена кода авторизации на токен доступа и обновляемый токен. После этого вы можете попытаться получить доступ к другим ресурсам как обычно.

Как использовать новые командлеты

Обновление до нового токена доступа

Если вы не укажете обновляемый токен, командлеты по умолчанию будут использовать $response.refresh_token.

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

$OutlookToken.access_token

Подключение к AzureAD с помощью токена доступа

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

Подключение к MgGraph с помощью токена доступа

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

Очистка токенов

Это удалит все переменные токенов.

root@kitploit:~
Clear-Token -Token All

Непрерывная оценка доступа (CAE)

С помощью непрерывной оценки доступа Microsoft реализует дополнительные меры безопасности, но также продлевает максимальное время жизни токена доступа до 24 часов. Некоторые службы, поддерживающие CAE, такие как MSGraph, Exchange, Teams и SharePoint, могут блокировать токены доступа на основе определённых событий, инициированных Azure AD. В настоящее время такими критическими событиями являются:

  • Учётная запись пользователя удалена или отключена
  • Пароль пользователя изменён или сброшен
  • Для пользователя включена многофакторная аутентификация
  • Администратор явно отозвал все обновляемые токены для пользователя
  • Обнаружен высокий риск для пользователя с помощью Azure AD Identity Protection (кроме Teams и SharePoint Online)
root@kitploit:~
Invoke-RefreshToMSGraphToken -Domain "myclient.org" -UseCAE
if ((Parse-JWTtoken $MSGraphToken.access_token).ValidForHours -gt 23) { "Токен MSGraph поддерживает CAE" }

Использование с AAD Internals

Если у вас также установлен AADInternals, вы можете использовать созданные токены доступа.

root@kitploit:~
Invoke-RefreshToMSTeamsToken -UseCAE -Domain "myclient.org"
Set-AADIntTeamsStatusMessage -Message "Моё крутое сообщение статуса" -AccessToken $MSTeamsToken.access_token -Verbose

Команды

root@kitploit:~
Get-Command -Module TokenTactics

Экспортируются только поддерживаемые пользовательские команды; вспомогательные функции для парсинга, PKCE, общего обновления и криптографические помощники FIDO остаются закрытыми деталями реализации.

Авторы и участники

  • @rvrsh3ll — автор TokenTactics (оригинальная версия)
  • @0xBoku — соавтор TokenTactics (оригинальная версия) и исследователь
  • @f-bader — обновил TokenTactics для поддержки конечной точки V2 и дополнительных функций, таких как CAE. Поддерживает TokenTacticsV2
  • @Pri3st — добавил функции для получения токенов доступа к Storage и Key Vault, а также пользовательский User-Agent

Методы TokenTactics во многом основаны на замечательных исследованиях доктора Нестори Сюнимаа на https://o365blog.com/.

Журнал изменений

0.3.0 (2026-07-13)

  • Добавлен закреплённый тестовый запуск Pester 5, кросс-платформенные проверки GitHub Actions, отчёты о тестах и обязательный базовый уровень покрытия.
  • Добавлено детерминированное имитированное покрытие для потоков с кодом устройства, cookie, кодом авторизации, SCCAUTH, обновляемого токена и ключа доступа.
  • Исправлены: очистка токенов, декодирование URL, временные метки JWT в UTC, проверка PEM, область Yammer, поддержка cookie CAE, заголовки арендатора PurviewACC и создание утверждения для ключа доступа.
  • Экспортируются только поддерживаемые пользовательские команды и псевдонимы для обратной совместимости. Вспомогательные функции реализации, ранее экспортируемые через подстановочный знак, теперь являются закрытыми; скрипты должны вместо этого использовать соответствующие публичные команды.

0.2.22 (2026-04-03)

  • Добавлен Get-EntraIDTokenFromSCCAUTHCookie для получения токенов доступа Entra ID для различных ресурсов (Azure, MicrosoftGraph, MATP, MCAS, Purview и т.д.) с использованием cookie sccauth с security.microsoft.com. Опционально принимает XSRF-токен; если он опущен, выполняется автоматическая начальная загрузка. Поддерживает необязательный параметр TenantId для вставки заголовка и создания ресурса PurviewACC.

0.2.20 (2026-01-01)

  • Переименованы все командлеты Get-Azure в Get-EntraID
  • Добавлены псевдонимы для обратной совместимости
  • Улучшена обработка ошибок при прерываниях ConvergedSignIn
  • Добавлен Invoke-EntraIDPasskeyLogin для автоматизации потоков входа с ключом доступа. Это сохраняет cookie ESTSAUTH и веб-сессию как глобальные переменные для повторного использования в других командлетах, таких как Get-EntraIDTokenFromESTSCookie
  • Добавлена поддержка прокси для Invoke-EntraIDPasskeyLogin, Get-EntraIDTokenFromCookie, Get-EntraIDTokenFromRefreshTokenCredentialCookie и Get-EntraIDTokenFromESTSCookie

0.2.14 (2025-09-11)

  • Добавлен параметр -Username для предварительного заполнения параметра login_hint в командлете Get-AzureAuthorizationCode
  • Добавлен параметр -CopyToClipboard в командлет Get-AzureAuthorizationCode

0.2.13 (2025-07-29)

  • Исправление для параметра пользовательского User-Agent

0.2.12 (2025-06-22)

  • Добавлена осведомлённость о текущем пространстве выполнения и минимизация вывода, если запущено как PSTask (например, при выполнении в Foreach-Object -parallel)

0.2.11 (2025-06-08)

  • Добавлена возможность свободного определения любого UserAgent с помощью нового свойства -CustomUserAgent. Спасибо Pri3st

0.2.10 (2025-02-25)

  • Исправление ошибки: неправильная инициализация типа

0.2.9 (2025-02-17)

  • Добавлен ResourceTenant для Get-EntraIDToken для поддержки B2B-фишинга с кодом устройства
  • Заменён идентификатор клиента Azure Management
  • Добавлен UseCodeVerifier для поддержки Proof Key for Code Exchange (PKCE)
  • Добавлен UseV1Endpoint в некоторые функции для поддержки более широкого спектра тестов конечных точек

0.2.8 (2025-01-18)

  • Добавлен Get-AzureTokenFromRefreshTokenCredentialCookie ("x-ms-RefreshTokenCredential") и модульный Get-AzureTokenFromCookie
  • Добавлен параметр для выбора типа cookie (ESTSAuth, ESTSAUTHPERSISTENT) для Get-AzureTokenFromESTSCookie
  • Добавлен пример вывода для Get-AzureTokenFromAuthorizationCode в вывод Get-AzureAuthorizationCode
  • Улучшен вывод и более подробная обработка ошибок

0.2.7 (2025-01-08)

  • Расширение Get-AzureTokenFromESTSCookie для поддержки конечной точки appverify
  • Улучшение управления cookie для Get-AzureTokenFromESTSCookie

0.2.6 (2025-01-04)

  • Исправление ошибки с пользовательскими областями в Get-AzureAuthorizationCode и Get-AzureTokenFromAuthorizationCode
  • Изменён URI перенаправления по умолчанию для Get-AzureAuthorizationCode

0.2.5 (2025-01-04)

  • Добавлены новые командлеты Get-AzureAuthorizationCode и Get-AzureTokenFromAuthorizationCode
    Эти командлеты сильно вдохновлены TokenSmith, поддерживаемым @gladstomych
  • Добавлен новый командлет Invoke-RefreshToDeviceRegistrationToken, который является версией TokenTactics для AADInternals командлета Get-AccessTokenForAADJoin
  • Добавлена поддержка конечной точки v1 для Invoke-RefreshToToken с помощью UseV1Endpoint. Это требовалось для добавления Invoke-RefreshToDeviceRegistrationToken
  • Добавлена поддержка конвейера для ConvertFrom-JWTtoken
  • Добавлены значения по умолчанию для Get-ForgedUserAgent

0.2.1 (2023-07-21)

  • Поддержка Linux в качестве платформы устройства
  • Поддержка OS/2 в качестве платформы устройства 😁

0.2.2 (2023-07-22)

  • Перенесена поддержка токенов Yammer
  • Перенесён переход на разрешённые глаголы PowerShell, добавлен псевдоним для обратной совместимости

0.2.3 (2023-07-23)

  • Перенесён pull request от rotarydrone для преобразования ESTSAuth в токен доступа

Новые функции в v2

  • Переход на v2.0 конечной точки OAuth2 Azure AD
  • Поддержка непрерывной оценки доступа с помощью нового параметра -UseCAE
  • ClientId теперь является параметром
  • Изменён client_id для MSTeams
  • Добавлена поддержка OneDrive и SharePoint
  • Добавлены IssuedAt, NotBefore, ExpirationDate и ValidForHours в вывод ConvertFrom-JWTtoken в удобочитаемом формате
  • Поддержка входа с ключом доступа (passkey)
  • Модернизирована кодовая база для упрощения сопровождения
Скачать инструмент