Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/nccgroup/async-pico-hub
Penetration Testing FrameworksPost-ExploitationCommand and ControlRed TeamingPayload Development
GitHubnccgroup/async-pico-hub

async-pico-hub

Async PICO Hub는 Cobalt Strike를 사용자 정의 이벤트 모니터링 및 프로세스 내 비동기 BOF로 확장하기 위한 작업 진행 중인 프레임워크입니다.

저장소 보기
26373개월 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Async PICO HUB

Async PICOs는 Cobalt Strike Beacon 프로세스 내부에서 장기 실행되는 이벤트 기반 Beacon Object Files를 실행하기 위한 프레임워크입니다. Crystal Palace PICO를 Beacon 측 실행 모델과 결합하여 비동기 실행, 작업 추적, 정상 종료 및 안전한 비동기 출력을 제공합니다.

Cobalt Strike의 기본 비동기 BOF와 달리 Async PICO는 Beacon의 프로세스에서 실행되며, 이벤트가 발생하면 Beacon을 깨워 출력을 표시할 수 있습니다.

왜 Async PICOs인가?

Cobalt Strike 기본 비동기 BOF는 다른 문제를 해결합니다. Async PICO는 Beacon 내부에서 실행되고 결과를 운영자에게 안전하게 즉시 전달할 수 있는 장기 실행 이벤트 기반 작업을 위해 설계되었습니다.

구현 세부 사항 및 설계 근거는 첨부된 블로그 게시물을 참조하십시오:

https://www.nccgroup.com/research/async-picos-and-custom-beacon-wakeups-in-cobalt-strike/

빌드

요구 사항

빌드하기 전에 다음 구성 요소가 필요합니다:

  • 이 저장소의 로컬 복사본

  • 빌드된 Crystal Palace 버전

  • MSVC 및 CMake를 지원하는 Visual Studio

  • Tradecraft Garden

  • 저장소를 클론합니다

저장소를 로컬에 클론 또는 복사:

root@kitploit:~
git clone <repo-url>
cd async-pico-hub

Crystal Palace 설치

Async PICO는 PICO 생성을 위해 Crystal Palace에 의존합니다.

최신 압축 릴리스의 Crystal Palace를 다운로드하고 해당 지침에 따라 빌드합니다. 빌드가 완료되면 Crystal Palace 바이너리를 다음 위치에 배치합니다:

root@kitploit:~
pico-tools/crystal-palace/

예상 레이아웃은 다음과 유사해야 합니다:

root@kitploit:~
pico-tools/
└── crystal-palace/
    ├── src/
    ├── lib/
    └── ...

최신 Tradecraft Garden 릴리스를 다운로드하여 다음 위치에 배치합니다:

root@kitploit:~
pico-tools/tradecraftgarden

예상 레이아웃은 다음과 유사해야 합니다:

root@kitploit:~
pico-tools/
└── tradecraftgarden/
    ├── libtcg/
    ├── simple_pic/
    └── ...

Async PICOs를 빌드하려면 libtcg와 simple_pic 예제를 빌드해야 합니다.

Visual Studio에서 프로젝트 열기

이 프로젝트는 CMake를 사용하여 MSVC로 빌드를 단순화합니다.

저장소 루트에서 폴더를 마우스 오른쪽 버튼으로 클릭하고 다음을 선택합니다:

root@kitploit:~
Open with Visual Studio

그러면 CMake 프로젝트가 로드되고 사용 가능한 빌드 구성이 표시됩니다.

빌드 구성

다음 빌드 구성을 사용할 수 있습니다:

x64 Debug

디버깅을 위한 PICO 및 BOF의 로컬 실행 파일 버전을 빌드합니다.

로컬에서 동작을 디버깅하거나 Visual Studio에서 코드를 단계별로 실행할 때 이 구성을 사용합니다.

x64 Release

최적화된 PICO 및 BOF의 로컬 실행 파일 버전을 빌드합니다.

Beacon 외부에서 릴리스 동작을 테스트하려면 이 구성을 사용합니다.

x64 Release Objects

배포 아티팩트를 빌드합니다:

  • Crystal Palace를 사용하는 위치 독립적 PICO
  • AsyncPICOMgr과 같은 표준 BOF

Cobalt Strike용 객체를 생성할 때 사용되는 구성입니다.

빌드 출력

빌드가 완료되면 생성된 아티팩트는 다음 위치에서 찾을 수 있습니다:

build/x64-ReleaseObject/obj/

이 디렉터리에는 사용 준비가 된 컴파일된 PICO 및 BOF가 포함되어 있습니다.

빠른 시작

사용자 지정 sleepmask 구성

Async PICOs를 사용하려면 Beacon이 사용자 지정 sleepmask를 사용해야 합니다.

Malleable profile에서 Async PICOs를 사용하기 전에 사용자 지정 sleepmask 지원을 활성화하십시오.

picos-cna/sleepmask.cna 스크립트는 비동기 출력 및 Beacon 깨우기 조정을 지원하는 데 사용되는 최소 참조 구현인 async-sleepmask를 로드합니다.

이 sleepmask는 의도적으로 단순하며 제한 사항 섹션에 설명된 제한이 있습니다. 이는 완성된 프로덕션 준비 구성 요소가 아니라 프레임워크를 시연하고 테스트를 단순화하기 위해 제공됩니다.

스택 조작과 같은 OPSEC 기법이 포함된 사용자 지정 sleepmask가 이미 있는 경우 기존 sleepmask를 Async sleepmask로 수정을 참조하여 기존 구현에 Async PICO 지원을 통합하십시오.

Aggressor 스크립트 로드

x64 Release Objects 구성으로 프로젝트를 빌드한 후 picos.cna 및 sleepmask.cna Aggressor 스크립트를 Cobalt Strike에 로드합니다:

root@kitploit:~
Script Manager → Load → picos-cna/picos.cna
Script Manager → Load → picos-cna/sleepmask.cna

로드되면 picos 명령을 통해 Async PICOs를 관리할 수 있습니다.

Async PICO 시작

PICO를 시작하려면:

root@kitploit:~
picos start [path to pico] [arguments]

예:

root@kitploit:~
picos start C:\temp\MonitorTGT.pico

또는 인수와 함께:

root@kitploit:~
picos start C:\temp\MonitorTGT.pico DOMAIN\serviceaccount

실행 중인 PICO 목록

실행 중인 Async PICOs를 보려면:

root@kitploit:~
picos

현재 실행 중인 작업과 해당 식별자가 표시됩니다.

실행 중인 PICO 중지

Async PICO를 중지하려면:

root@kitploit:~
picos stop [pico id]

예:

root@kitploit:~
picos stop 3

PICO는 중지 신호를 수신하고 정리 작업을 수행한 후 정상적으로 종료됩니다.

도움말

추가 사용 정보는 Cobalt Strike 내부의 picos 명령에 대한 기본 제공 도움말 메뉴에서 확인할 수 있습니다.

사용자 지정 Async PICO 작성

자세한 내용은 docs/writing_custom_async_pico.md를 확인하십시오.

기존 sleepmask를 Async Sleepmask로 수정

자세한 내용은 docs/modifying_existing_sleepmask.md를 확인하십시오.

포함된 예제

  • tgt-monitor-pico: 로그인을 수신하고 Kerberos 티켓을 출력하는 async pico. https://github.com/jakobfriedl/tgt-monitor-bof 기반
  • example-pico: Beacon의 메인 스레드를 멈추지 않고 창을 여는 것과 같은 비동기 기능과 출력 전송을 보여주는 매우 간단한 PICO

OPSEC 고려 사항

공개 구현은 고급 회피 기법 없이 의도적으로 단순하게 유지됩니다. 변경 없이 배포하기보다는 적용할 수 있는 기반으로 설계되었습니다.

스레드 생성

Async PICOs는 CreateThread를 사용하여 실행됩니다. 이는 실행 모델을 단순하고 이해하기 쉽게 유지하지만 탐지 표면을 도입합니다. 공개 구현에서 스레드는 모듈 이미지에 의해 지원되지 않는 메모리에서 실행을 시작하므로 스레드 시작 주소를 검사하는 제품이나 휴리스틱에 탐지될 수 있습니다.

사용자는 대체 스레드 생성 또는 실행 전략이 자신의 환경에 더 적합한지 평가해야 합니다.

Sleepmask 통합

프레임워크는 비동기 출력을 Beacon에 중계하고 깨우기 이벤트를 조정하기 위해 수정된 sleepmask에 의존합니다. 여기에 포함된 구현은 의도적으로 최소화되었으며 운영 사용 전에 검토해야 합니다.

sleepmask는 단순한 편의 계층이 아니라 실행 모델의 일부입니다. 출력이 큐에 추가되거나, 비워지거나, 신호되는 방식의 변경은 동시성 문제나 Beacon 내부와의 지원되지 않는 상호 작용을 유발하지 않도록 신중하게 평가해야 합니다.

제한 사항

공개 구현에는 사용 전에 이해해야 하는 몇 가지 실질적인 제한 사항이 있습니다.

공유 전역 변수 저장소

Crystal Palace는 PICO가 전역 변수를 사용할 수 있게 하지만, 공개 구현은 전역 상태 저장을 위해 단순한 공유 저장소 모델을 사용합니다. 결과적으로 전역 변수는 스레드별로 격리되지 않습니다.

실제로 이는 여러 Async PICOs를 동시에 실행할 때 전역 변수에 의존하는 경우 추가 주의가 필요할 수 있음을 의미합니다.

Sleepmask 의존성

Async PICOs는 비동기 출력 및 Beacon 깨우기 조정을 위해 수정된 sleepmask에 의존합니다. 따라서 프레임워크는 완전히 자급자족하지 않으며 즉시 사용 가능한 BOF로 취급할 수 없습니다.

완전히 완성된 배포 아티팩트가 아님

이 저장소는 완성된 프로덕션 준비 구성 요소를 제공하기보다는 프레임워크와 구현 접근 방식을 시연하도록 설계되었습니다. 포함된 예제는 개별 사용 사례에 맞게 확장, 수정 및 적용되도록 의도되었습니다.

도구 다운로드