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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
ghosthound — GhostHound는 BloodHound OpenGraph 확장 프로그램으로, Active Directory tombstone 재활성화를 일급 공격 경로로 표면화합니다. SHOW_DELETED를 통해 삭제된 개체를 열거하고, 이를 복원할 수 있는 대상을 매핑하며, 재활성화된 ID가 권한 있는 그룹의 구성원 자격을 다시 획득하는 시점을 밝혀냅니다. | Kitploit
도구/GitHubGitHub/jvbotelho/ghosthound
Privilege EscalationReconnaissanceExploitationLateral MovementInformation GatheringPost-ExploitationPenetration TestingRed Teaming
GitHubjvbotelho/ghosthound

ghosthound

GhostHound는 BloodHound OpenGraph 확장 프로그램으로, Active Directory tombstone 재활성화를 일급 공격 경로로 표면화합니다. SHOW_DELETED를 통해 삭제된 개체를 열거하고, 이를 복원할 수 있는 대상을 매핑하며, 재활성화된 ID가 권한 있는 그룹의 구성원 자격을 다시 획득하는 시점을 밝혀냅니다.

저장소 보기
42211일 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

GhostHound

Crates.io docs.rs OpenSSF Scorecard

GhostHound는 Active Directory용 BloodHound OpenGraph 확장입니다. SharpHound와 그 외 모든 AD 수집기는 CN=Deleted Objects를 건너뜁니다. 삭제된 개체(툼스톤)는 표준 BloodHound 공격 경로 분석에서 보이지 않지만, AD 휴지통(Recycle Bin)과 툼스톤 재활성화 메커니즘을 통해 충분한 권한을 가진 주체가 툼스톤을 복원하고 그 개체가 나타내는 정체성을 장악할 수 있습니다. GhostHound는 SHOW_DELETED 컨트롤로 LDAP를 통해 툼스톤을 열거하고, 각각을 재활성화할 수 있는 주체를 판별한 다음, OpenGraph JSON 페이로드와 model.json 확장 정의를 출력하여 BloodHound CE v8+가 이를 그래프의 일급(first-class) 구성 요소로 렌더링할 수 있게 합니다.

승인된 용도로만 사용하세요. 이 도구는 공격 보안/레드팀 도구로, 승인된 침투 테스트와 탐지 랩 연구를 위해 제작되었습니다. 명시적으로 테스트 승인을 받은 Active Directory 환경에서만 실행하세요.

사전 요구 사항

  • 대상 도메인에 대한 Administrators에 준하는 권한(또는 CN=Deleted Objects에 대한 읽기 권한의 명시적 위임). 권한이 없는 계정은 어떤 인증 방식을 사용하든 해당 컨테이너를 전혀 볼 수 없습니다 — 이는 GhostHound가 우회할 수 없는 AD가 강제하는 제한입니다.
  • LDAP(389) 또는 LDAPS(636) 포트로 도메인 컨트롤러에 네트워크로 연결할 수 있어야 합니다.
  • 결과 그래프를 가져오려면 BloodHound CE v8+가 필요합니다(수집 및 JSON 출력은 BloodHound CE 없이도 단독으로 동작합니다).

사용법

root@kitploit:~
ghosthound -d ghost.local --dc-ip 10.0.0.10 -u alice -o tombstones.json

비밀번호 확인 순서: --password(사용하지 말 것 — ps//proc/<pid>/cmdline 및 셸 히스토리를 통해 노출됨), 그다음 LDAP_PASSWORD 환경 변수, 둘 다 설정되지 않은 경우 대화형 프롬프트입니다.

기본적으로 GhostHound는 인증서 검증을 켠 상태로 LDAPS(636)를 통해 연결합니다. 이러한 방식이 맞지 않는 환경을 위해 두 가지 플래그가 있습니다:

  • --disable-ldaps — 평문 LDAP(389)로 폴백합니다. 바인드 비밀번호가 평문으로 전송되므로 격리된 랩 외의 환경에서는 사용하지 마세요.
  • --insecure-tls — LDAPS(암호화 전송)를 유지하되, 신뢰 저장소에 없는 자체 서명/랩 인증서를 위해 인증서 검증을 건너뜁니다. DC 인증서가 유일한 문제라면 --disable-ldaps보다 이 옵션을 사용하세요.

--timeout-secs(기본값 30)는 초기 연결과 이후의 모든 LDAP 작업에 시간 상한을 두므로, 연결할 수 없는 DC나 잘못된 --dc-ip가 멈추지 않고 해당 시간 안에 실패합니다.

전체 플래그 목록은 ghosthound --help를 실행하세요.

워크스페이스 구조

GhostHound는 라이브러리 우선(library-first) 워크스페이스로 구축되었습니다 — 근거는 docs/adr/0001-language-rust-library-first.md를 참조하세요:

  • bloodhound-opengraph: BloodHound OpenGraph JSON 빌더(Python의 bhopengraph에 해당하는 Rust 구현).
  • ad-secdesc: 허용적(permissive) 라이선스의 ntSecurityDescriptor/DACL/ACE 파서를 처음부터 구현한 것입니다(유일한 기존 Rust 대안이 GPL-3.0이므로 이를 의존성으로 사용하지 않는 이유는 docs/adr/0003-security-descriptor-parsing-strategy.md를 참조하세요).
  • ad-secdesc-oracle: ad-secdesc를 블랙박스 오라클로 사용하여 해당 GPL-3.0 크레이트와 비교하는 내부용(미공개) 차등 테스트 하네스 — 기본 빌드와 모든 게시 크레이트의 의존성 그래프에서 격리되어 있습니다.
  • ad-tombstone: LDAP SHOW_DELETED 열거, AD 휴지통(Recycle Bin) 상태 모델링, 재활성화 권한 분석.
  • ghosthound: 위 구성 요소를 조율하는 CLI.

BloodHound로 가져오기

  1. BloodHound CE의 OpenGraph 관리 페이지에서 crates/ad-tombstone/model.json을 한 번 업로드하여 GhostHound_TombstoneUser/GhostHound_TombstoneComputer/GhostHound_TombstoneGroup 노드 종류와 GhostHound_CanReanimate/GhostHound_WasMemberOf/GhostHound_SameAs 관계 종류를 등록합니다(모두 순회 가능(traversable)으로 등록되므로 최단 경로 쿼리에 참여할 수 있습니다).
  2. GhostHound가 생성한 JSON을 UI 또는 ingest API를 통해 일반 OpenGraph 데이터 페이로드로 업로드합니다.
  3. crates/ad-tombstone/bridge_shadow_nodes.cypher를 Neo4j에 직접 실행합니다(BloodHound CE의 자체 Cypher 검색 창은 읽기 전용이라 이를 거부합니다):
    root@kitploit:~
    docker exec -i <graph-db-container> cypher-shell -u neo4j -p <password> < crates/ad-tombstone/bridge_shadow_nodes.cypher
    
    GhostHound가 기존 AD 주체(Domain Admins 등)에 연결하는 엣지는 BloodHound가 이미 보유한 실제 노드가 아닌 자리표시자(placeholder) 노드에 도달합니다 — 이는 이 데이터의 버그가 아니라 OpenGraph 수집(ingest)의 제한입니다. docs/adr/0006-opengraph-cross-source-node-identity.md를 참조하세요. 이 스크립트는 해당 노드들을 브리지(bridge)하여 경로가 실제로 순회 가능하게 만듭니다. 모든 가져오기 후 다시 실행해도 안전합니다.

브리지가 완료되면 재활성화 경로는 일반적인 순회 가능 경로로 렌더링됩니다 — 삭제 전에 Domain Admins 구성원이었던 툼스톤이 Reanimate-Tombstones 권한을 가진 모든 주체로부터 도달 가능해지고, 실제 Domain Admins 노드로 브리지됩니다:

홈랩 테스트 실행 결과의 GhostHound 재활성화 경로: GhostHound_CanReanimate 권한을 가진 여러 주체가 툼스톤 처리된 사용자를 가리키고, 해당 사용자는 자리표시자 노드로의 GhostHound_WasMemberOf 엣지를 가지며, GhostHound_SameAs를 통해 실제 Domain Admins 그룹으로 브리지됩니다.

공급망 보안 태세

이 프로젝트는 첫날부터 신뢰도 높은 보안을 최우선으로 합니다(docs/adr/0005-supply-chain-openssf-posture.md):

  • 엄격한 카피레프트/GPL 금지 및 취약점 감사를 위한 cargo deny.
  • OpenSSF Scorecard 워크플로우.
  • 원시 바이너리 설명자 파싱의 패닉 안전성을 위한 cargo fuzz.
  • 기반 라이브러리에 unsafe 없음.

설계 근거

docs/adr/ 디렉터리는 이 설계의 배경이 된 결정 사항(언어 선택, 인증 범위, ad-secdesc 라이선스 제약, AD 휴지통 데이터 모델, 공급망 보안 태세)을 기록하고 있으며, docs/research/tombstone-viability-findings.md에는 기반 연구가 담겨 있습니다.

도구 다운로드
  • crates/ad-tombstone/queries.json의 스타터 쿼리를 가져오고, 선택적으로 crates/ad-tombstone/privilege_zones.cypher를 한 번 실행하여 Tier Zero OU 아래의 툼스톤을 고가치로 태그할 수 있습니다 — 이 역시 3단계와 같은 이유로 검색 창이 아닌 cypher-shell이 필요합니다(SET도 업데이트 절이기 때문입니다).