
BloodHound에 표시된 Active Directory 권한 상승 경로를 자동으로 익스플로잇하는 도구
autobloodyautobloody는 BloodHound가 보여주는 Active Directory 권한 상승 경로를 자동으로 악용하는 도구입니다.
이 도구는 BloodHound 데이터베이스에 권한 상승 경로가 존재할 경우 두 AD 개체(소유한 소스와 대상) 간의 AD 권한 상승을 자동화합니다. 자동화는 두 단계로 구성됩니다:
bloodyAD 패키지를 사용하여 찾은 경로 실행autobloody는 bloodyAD에 의존하기 때문에, 일반 텍스트 비밀번호, 패스더해시, 패스더티켓 또는 인증서를 사용한 인증을 지원하며 도메인 컨트롤러의 LDAP 서비스에 바인딩하여 AD 권한 상승을 수행합니다.
Python 패키지가 제공됩니다:
pip install autobloody
또는 저장소를 복제할 수 있습니다:
git clone --depth 1 https://github.com/CravateRouge/autobloody
pip install .
성능 향상을 위해 Neo4j에 GDS 라이브러리를 설치하는 것이 좋습니다. 설치하지 않으면 autobloody는 기본 CYPHER 쿼리를 사용하며, 이는 느리지만 여전히 작동합니다.
GDS 플러그인이 포함된 경량 BloodHound 환경은 https://github.com/CravateRouge/Single-User-BloodHound에서 ./bloodhound-ce를 실행하여 설치할 수 있습니다.
먼저 BloodHound에 데이터를 가져와야 합니다(예: SharpHound 또는 BloodHound.py 사용). Neo4j가 실행 중이어야 합니다.
⚠️ -ds 및 -dt 값은 대소문자를 구분합니다
간단한 사용법:
autobloody -p 'Password123!' --host 192.168.10.2 -dp 'neo4jP@ss' -ds '[email protected]' -dt 'BLOODY.LOCAL'
전체 도움말:
[bloodyAD]$ ./autobloody.py -h
usage: autobloody.py [-h] [--dburi DBURI] [-du DBUSER] -dp DBPASSWORD -ds DBSOURCE -dt DBTARGET [-d DOMAIN] [-u USERNAME] [-p PASSWORD] [-k] [-c CERTIFICATE] [-s] --host HOST [-y] [-v] [--timeout TIMEOUT]
AD Privesc Automation
options:
-h, --help show this help message and exit
--dburi DBURI The host neo4j is running on (default is "bolt://localhost:7687")
-du DBUSER, --dbuser DBUSER
Neo4j username to use (default is "neo4j")
-dp DBPASSWORD, --dbpassword DBPASSWORD
Neo4j password to use
-ds DBSOURCE, --dbsource DBSOURCE
Case sensitive label of the source node (name property in bloodhound)
-dt DBTARGET, --dbtarget DBTARGET
Case sensitive label of the target node (name property in bloodhound)
-d DOMAIN, --domain DOMAIN
Domain used for NTLM authentication (optional, default is dbsource domain)
-u USERNAME, --username USERNAME
Username used for NTLM authentication (optional, default is dbsource sAMAccountName)
-p PASSWORD, --password PASSWORD
Cleartext password or LMHASH:NTHASH for NTLM authentication
-k, --kerberos
-c CERTIFICATE, --certificate CERTIFICATE
Certificate authentication, e.g: "path/to/key:path/to/cert"
-s, --secure Try to use LDAP over TLS aka LDAPS (default is LDAP)
--host HOST Hostname or IP of the DC (ex: my.dc.local or 172.16.1.3)
-y, --yes Assume yes to apply the generated privesc
-v, --verbose Enable verbose output (-v for INFO, -vv for DEBUG)
--timeout TIMEOUT Connection timeout in seconds (default is 60)
먼저 Neo4j의 GDS 라이브러리에 구현된 Dijkstra 알고리즘을 사용하여 권한 상승 경로를 찾습니다. Dijkstra 알고리즘은 가중치 그래프에서 최단 경로 문제를 해결합니다. 기본적으로 BloodHound가 생성한 에지에는 가중치가 없지만 유형(예: MemberOf, WriteOwner)이 있습니다. 그런 다음 에지 유형과 도달한 노드 유형(예: 사용자, 그룹, 도메인)에 따라 각 에지에 가중치가 추가됩니다.
경로가 생성되면 autobloody는 DC에 연결하여 경로를 실행하고 되돌릴 수 있는 부분(ForcePasswordChange 및 setOwner 제외)을 정리합니다.
현재 자동 악용을 위해 다음 BloodHound 에지만 지원됩니다:
개인 맞춤 지원이 필요하신가요? 교육이나 맞춤 기능에 대해 이메일을 보내주세요.