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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
AD_Miner — AD Miner는 #Bloodhound 그래프 데이터베이스에서 데이터를 처리하여 보안 취약점을 발견하기 위해 cypher 쿼리를 활용하는 Active Directory 감사 도구입니다. | Kitploit
도구/GitHubGitHub/ad-security/ad_miner
Privilege EscalationReconnaissanceVulnerability AnalysisLateral MovementConfiguration AuditingInformation GatheringPenetration TestingMisconfigurationLearning & Education
GitHubad-security/ad_miner

AD_Miner

AD Miner는 #Bloodhound 그래프 데이터베이스에서 데이터를 처리하여 보안 취약점을 발견하기 위해 cypher 쿼리를 활용하는 Active Directory 감사 도구입니다.

1.6k1635개월 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
저장소 보기
AD_Miner
Latest AD_Miner version Latest release Latest commit in dev Rawsec's CyberSecurity Inventory badge
Discord

AD Miner는 Active Directory(온프레미스 및 Entra ID) 감사 도구로, 다음을 수행합니다:

  • BloodHound 그래프 데이터베이스(Neo4j)의 데이터를 분석하기 위해 Cypher 쿼리를 활용합니다.
  • 정적 웹 기반 보고서를 통해 기존 취약점에 대한 포괄적인 개요를 제공합니다.

웹 기반 보고서 기능:

  • 식별된 취약점에 대한 상세 목록
  • 시각적 분석을 위한 동적 그래프
  • 시간에 따른 변화를 추적하는 과거 주요 지표
  • 위협 및 조치의 우선순위를 지정하는 위험 등급

보고서 빠른 개요

Active Directory 위험에 대한 포괄적인 완화 경로

Active Directory 취약점에 대한 위험 기반 등급과 함께 포괄적인 완화 경로를 제공합니다.

메인 페이지

동적 웹 인터페이스

가장 위험한 잘못된 구성을 식별하도록 신중하게 조정된 검색 창과 컨트롤입니다.

메인 페이지

진화하는 인터페이스를 통한 진행 상황 모니터링

시간에 따른 지표를 관찰하여 완화 효율성을 측정하는 데 도움을 줄 수도 있습니다.

메인 페이지

AD Miner는 Forvis Mazars가 처음 만들었으며, 현재 Grant Thornton 사이버 보안 감사 및 자문 팀이 유지 관리하고 있습니다.

전제 조건

AD Miner를 실행하려면 먼저 Active Directory 개체가 포함된 neo4j 데이터베이스가 필요합니다.

  1. 도메인에서 데이터를 추출하려면 SharpHound, RustHound-CE 또는 BloodHound.py와 같은 도구를 사용할 수 있으며, EntraID 환경의 경우 AzureHound를 사용할 수 있습니다.

[!CAUTION] BloodHound Automation 사용을 강력히 권장합니다. 이 도구는 Graph Data Science Neo4j 플러그인을 설치하여 다음을 제공합니다:

  • 계산 시간과 전반적인 성능을 크게 향상시킵니다.
  • 기본 제공 Neo4j shortestPath() 대신 Smartest Path 사용을 활성화합니다(예: 노드 홉이 가장 적은 경로보다는 익스플로잇하기 쉬운 경로).
  1. BloodHound 환경(GUI 및 Neo4j 데이터베이스 포함)을 설정하려면 BloodHound Automation이 Graph Data Science 플러그인과의 원활한 통합으로 인해 매우 권장됩니다. 기본 BloodHound CE 설치를 사용해도 완전히 괜찮지만, GDS의 이점(예: 더 스마트한 경로 찾기, 향상된 실행 속도 등)을 놓치게 됩니다.

  2. 기본적으로 BloodHound는 포트 7687에서 액세스 가능한 neo4j 베이스를 생성합니다.

설치 및 설정

가장 쉬운 방법은 pipx를 사용하여 다음 명령을 실행하는 것입니다:

root@kitploit:~
pipx install 'git+https://github.com/AD-Security/AD_Miner.git'

ADMiner는 일부 Linux 배포판에서도 사용할 수 있습니다:

Packaging status

  • BlackArch: pacman -S ad-miner
  • NixOS: nix-env -iA nixos.ad-miner

Docker 이미지를 빌드할 수 있습니다. 다음 명령으로 이미지를 빌드하세요:

root@kitploit:~
docker build -t ad-miner .

Windows에서 BloodHound Community Edition 데이터로 실행하려면 아래 명령을 사용하세요:

root@kitploit:~
docker run -v ${PWD}:/tmp ad-miner AD-miner -b bolt://host.docker.internal:7687 -u neo4j -p mypassword -cf YOUR_PREFIX

Linux에서 BloodHound Community Edition 데이터로 실행하려면 아래 명령을 사용하세요:

root@kitploit:~
docker run -v ${PWD}:/tmp --network host ad-miner AD-miner -b bolt://localhost:7687 -u neo4j -p mypassword -cf YOUR_PREFIX

볼륨을 -v로 마운트하는 것이 데이터 출력을 얻는 데 중요합니다. BHCE 서버가 기본 설정으로 Docker 호스트에서 실행 중이라고 가정합니다.

사용법

도구 실행:

root@kitploit:~
AD-miner [-h] [-b BOLT] [-u USERNAME] [-p PASSWORD] [-e EXTRACT_DATE] [-r RENEWAL_PASSWORD] [-a] [-c] [-l LEVEL] -cf CACHE_PREFIX [-ch NB_CHUNKS] [-co NB_CORES] [--rdp] [--evolution EVOLUTION] [--cluster CLUSTER]

예시:

root@kitploit:~
AD-miner -cf My_Report -u neo4j -p mypassword

각 Neo4j 요청이 완료될 때 캐시 파일이 생성됩니다. 이 기능을 사용하면 AD Miner를 프로세스 중 언제든지 일시 중지하거나 중단해도 이전에 계산된 결과를 잃지 않습니다. 캐시를 활용하려면 -c 매개변수를 사용하세요. 캐시 파일은 현재 저장소의 cache_neo4j 폴더에 저장됩니다. 캐시를 사용하려면 보고서 이름이 캐시 파일 이름 접두사와 일치해야 합니다:

root@kitploit:~
AD-miner -c -cf My_Report -u neo4j -p mypassword

대규모 데이터 세트를 더 잘 처리하기 위해 멀티스레딩을 활성화하고 neo4j 데이터베이스 클러스터를 사용할 수도 있습니다. 다음 예제와 같습니다(server1이 32개 스레드, server2가 16개 스레드 처리):

root@kitploit:~
AD-miner -c -cf My_Report -b bolt://server1:7687 -u neo4j -p mypassword  --cluster server1:7687:32,server2:7687:16

암호 갱신 정책을 알고 있는 경우 -r 매개변수를 사용하여 암호 갱신 제어가 환경 설정과 일치하도록 지정할 수 있습니다(기본값은 90일). 예를 들어 암호 정책이 180일로 설정된 경우 다음을 사용할 수 있습니다:

root@kitploit:~
AD-miner -c -cf My_Report -b bolt://server:7687 -u neo4j -p mypassword -r 180

[!TIP] Bloodhound CE neo4j 데이터베이스의 기본 암호는 bloodhoundcommunityedition이거나, BloodHound Automation을 사용하는 경우 neo5j입니다.

옵션:

root@kitploit:~
  -h, --help            도움말 메시지를 표시하고 종료합니다.
  -b BOLT, --bolt BOLT  Neo4j bolt 연결 (기본값: bolt://127.0.0.1:7687)
  -u USERNAME, --username USERNAME
                        Neo4j 사용자 이름 (기본값: neo4j)
  -p PASSWORD, --password PASSWORD
                        Neo4j 암호 (기본값: bloodhoundcommunityedition)
  -e EXTRACT_DATE, --extract_date EXTRACT_DATE
                        추출 날짜 (예: 20220131). 기본값: 마지막 로그온 날짜
  -r RENEWAL_PASSWORD, --renewal_password RENEWAL_PASSWORD
                        암호 갱신 정책(일). 기본값: 90
  -c, --cache           neo4j 데이터에 로컬 파일 사용
  -l LEVEL, --level LEVEL
                        경로 쿼리의 재귀 수준
  -cf CACHE_PREFIX, --cache_prefix CACHE_PREFIX
                        사용할 캐시 파일 (여러 회사 캐시 파일의 경우)
  --gpo_low             GPO에 대해 더 빠르지만 완전하지 않은 쿼리 수행 (일반 쿼리보다 빠름)
  -ch NB_CHUNKS, --nb_chunks NB_CHUNKS
                        병렬 neo4j 요청의 청크 수. 기본값: CPU 수 * 20
  -co NB_CORES, --nb_cores NB_CORES
                        병렬 neo4j 요청의 코어 수. 기본값: CPU 수
  --rdp                 그래프에 CanRDP 에지 포함
  --evolution EVOLUTION
                        시간에 따른 진화: json 데이터 파일의 위치. 예: '../../tests/'
  --cluster CLUSTER     병렬 neo4j 쿼리를 실행할 클러스터 노드. 예: host1:port1:nCore1,host2:port2:nCore2,...

그래프 페이지에서 그래프 노드를 마우스 오른쪽 버튼으로 클릭하여 클러스터링하거나 클러스터를 열 수 있습니다.

진화

시간이 지남에 따라 여러 AD-Miner 보고서가 있는 경우 --evolution 인수를 사용하여 진화를 쉽게 추적할 수 있습니다. 각 AD-Miner 보고서는 index.html 파일과 함께 JSON 데이터 파일을 생성합니다. 이 다양한 JSON 파일을 단일 폴더에 모은 다음 --evolution 인수 뒤에 해당 폴더의 경로를 지정하기만 하면 됩니다.

root@kitploit:~
AD-miner -c -cf My_Report -b bolt://server:7687 -u neo4j -p mypassword -r 180 --evolution evolution_folder/

메인 페이지에 '시간에 따른 진화' 탭이 나타나 각 범주(권한, 암호, Kerberos, 기타)에 대한 진화 그래프를 제공합니다.

각 제어에 대한 자세한 진화도 제공되며, 각 범주의 "진화 표시" 버튼을 통해 액세스할 수 있습니다. 로그 스케일을 사용하여 시간에 따른 미묘한 변화를 더 잘 강조할 수 있습니다.

스마트 경로

AD Miner는 실제 익스플로잇 가능성을 기반으로 경로를 계산할 수 있습니다. 실제로 가장 짧은 경로가 익스플로잇하기 어려운 경우가 있습니다(여기서는 ExecuteDCOM이 HasSession보다 먼저 오기 때문).

그러나 더 길지만 더 간단한 경로가 존재합니다(여기서는 ExecuteDCOM 대신 MemberOf와 AdminTo 사용).

AD Miner는 neo4j 데이터베이스에 Graph Data Science 플러그인(https://neo4j.com/docs/graph-data-science/current/)이 설치되어 있을 때 자동으로 스마트 경로 모드로 전환합니다. 이 플러그인을 설치하는 가장 쉬운 방법은 neo4j 도커에 환경 변수를 정의하는 것입니다: NEO4J_PLUGINS=["graph-data-science"] (기본적으로 BloodHound Automation과 함께 설치됩니다).

현재 10개의 제어가 전체 그래프 적용 범위를 사용하고 분석을 위해 스마트 경로를 최적화합니다.

구현된 제어

다음은 AD Miner에 이미 구현된 제어 목록입니다:

온프레미스 제어

Entra ID 제어

기여하기

기여 방법은 여기를 확인하세요.

도구 다운로드
범주설명범주설명
KerberosAS-REP Roastable 계정기타구버전 OS를 사용하는 컴퓨터
KerberosKerberoastable 계정기타휴면 계정
KerberosKerberos 제약 위임기타도메인의 기능 수준
Kerberos컴퓨터에 대한 Kerberos RBCD기타유령 컴퓨터 (Ghost computers)
KerberosKerberos 무제한 위임기타멤버가 없는 그룹
Kerberos오래된 KRBTGT 암호기타멤버가 없는 OU
Kerberos권한 계정에 대한 섀도 자격 증명기타도메인 컨트롤러에 대한 섀도 자격 증명
Kerberos일반 계정에 대한 섀도 자격 증명기타예상치 못한 PrimaryGroupID
암호LAPS 암호에 대한 액세스기타사용자 FGPP
암호LAPS가 없는 컴퓨터권한ACL 이상
암호개체가 관리자 GMSA 암호를 읽을 수 있음권한공격 경로 병목 지점
암호암호 요구 사항 우회권한다른 컴퓨터의 관리자인 컴퓨터
암호일반 텍스트 암호를 가진 사용자권한도메인 관리자로 가는 교차 도메인 경로
암호오래된 암호를 가진 사용자권한게스트 계정
암호암호 만료가 없는 사용자권한DCSync 권한에 대한 부적절한 액세스
권한부적절한 AdminCount 설정권한부적절한 GPO 수정 권한
권한부적절한 도메인 관리자 수권한부적절한 권한을 가진 머신 계정
권한부적절한 권한을 가진 머신 계정권한ADCS에 대한 비계층 0 로컬 관리자 권한
권한SID 기록이 있는 개체권한DNS 관리자로 가는 경로
권한도메인 관리자로 가는 경로권한운영자 그룹으로 가는 경로
권한조직 구성 단위(OU)로 가는 경로권한서버로 가는 경로
권한AdminSDHolder 컨테이너로 가는 경로권한"Pre-Windows 2000 Compatible Access" 그룹
권한보호된 사용자 그룹 외부의 권한 계정권한RDP 액세스 (컴퓨터)
권한RDP 액세스 (사용자)권한계층 0 위반 (세션)
권한강력한 교차 도메인 권한을 가진 사용자권한로컬 관리자 권한을 가진 사용자
범주설명범주설명
Entra ID 기타Azure 휴면 계정Entra ID MS GraphMS Graph의 직접 컨트롤러
Entra ID 암호Entra ID 암호 재설정 권한Entra ID MS Graph온프레미스와 동기화되지 않은 Entra ID 계정
Entra ID 암호일관되지 않은 마지막 암호 변경Entra ID MS Graph비활성화된 트윈 계정이 있는 동기화된 계정
Entra ID 권한권한 있는 Entra ID 역할에 대한 액세스Entra ID 권한온프레미스 및 Azure 모두에서 권한 있는 계정
Entra ID 권한온프레미스/Entra ID 교차 경로에서 계층 0으로Entra ID 권한AADConnect와 관련된 사용자
Entra ID 권한높은 가치 대상으로 가는 경로를 가진 Entra ID 사용자