
SharpHound/AzureHound JSON용 오프라인 AD/Entra 공격 경로 분석기. BloodHound 또는 Neo4j 없이 우선순위가 매겨진 권한 상승, 자격 증명, 잘못된 구성 관련 발견 사항을 표면화합니다.
A SquidSec Open Source Project
SquidOffense.com ·
GitHub
BloodBash는 **SquidSec**에서 만들고 관리하는 오픈 소스 오프라인 SharpHound 및 AzureHound JSON 분석기입니다. 그래프를 구축하고 AD/Entra 공격 경로와 잘못된 구성을 드러내며, 우선순위가 지정된 발견 사항을 출력합니다. Neo4j나 BloodHound UI가 필요하지 않습니다.
| Organization | SquidSec |
| Website | https://squidoffense.com/ |
| App version | v1.4.2 |
| Latest binary | |
| License | MIT |
| Runtime (source) | Python 3.9+ |
main에 병합되면 자동으로 Linux 및 Windows 바이너리를 빌드하고 GitHub Release(태그 v1.4.2-build.N)를 게시합니다.
BloodBash는 **SquidSec**에서 보안 커뮤니티를 위해 만들고 유지 관리합니다. 즉, BloodHound 인프라를 구축하지 않고도 빠른 오프라인 AD/Entra 분석이 필요한 레드 팀원, 펜테스터, 방어자들을 위한 도구입니다.
독립 실행형 SquidSec BloodBash 실행 파일 - Python, pip 또는 venv가 필요하지 않습니다:
| Platform | Latest download |
|---|---|
| Linux x64 | bloodbash-linux-x64 |
| Windows x64 | bloodbash-windows-x64.exe |
# Linux
curl -sL -o bloodbash \
https://github.com/DotNetRussell/BloodBash/releases/latest/download/bloodbash-linux-x64
chmod +x bloodbash
./bloodbash /path/to/json --all
# Windows (PowerShell)
Invoke-WebRequest -Uri "https://github.com/DotNetRussell/BloodBash/releases/latest/download/bloodbash-windows-x64.exe" `
-OutFile bloodbash.exe
.\bloodbash.exe C:\path\to\json --all
pipx install git+https://github.com/DotNetRussell/BloodBash
또는 클론에서:
git clone https://github.com/DotNetRussell/BloodBash.git
cd BloodBash
python3 -m venv venv && source venv/bin/activate
pip install -r requirements.txt
종속성: networkx, rich, tqdm, pyyaml.
다음 3가지로 시작하세요 (SharpHound/AzureHound 디렉터리 또는 .zip을 가리킴):
# 1) Day-0 triage - default when you pass only the data path
bloodbash /path/to/json
# same as:
bloodbash /path/to/json --quick-wins
# 2) Just owned a user - outbound compromise dossier
bloodbash ./sharpout --from-user alice --from-user-export
# 3) Full attack analysis (large env: --fast auto on big graphs)
bloodbash /path/to/json --all --fast
# inventory ladders still opt-in:
bloodbash /path/to/json --all --inventory
소스 체크아웃에서 python3 BloodBash.py는 bloodbash와 동일합니다.
# Binary / pipx
./bloodbash /path/to/json
bloodbash /path/to/json --from-user alice --from-user-export
# Multi-collection merge (low-priv + DA zip, multi-domain forest)
bloodbash ./lowpriv.zip --merge ./da.zip ./child-domain.zip --all --fast
Bare directory(체크 플래그 없음)는 quick-wins 트리아지를 실행합니다. 전체 공격 경로 분석(인벤토리가 아님)에는 --all을, 대화형 선택기에는 --wizard를 사용하세요.
--all 및 --quick-wins에서는 빈 탐지기 섹션이 억제되어 콘솔이 읽기 쉬운 상태로 유지됩니다. 선택적 플래그는 요청한 검사에 대해 녹색 "none found" 줄을 계속 출력합니다.
샘플 데이터: SampleSharphoundADData/ 및 SampleAzurehoundData/.
bloodbash --help # start-here + cheat sheet
bloodbash --help-advanced # full flag tables + all examples
추가 레시피: docs/cookbook.md.
| 영역 | 검사 항목 |
|---|---|
| AD 권한 | DCSync (GetChanges+GetChangesAll; 중첩된 DA/EA는 예상대로 처리), 고가치 객체에 대한 위험한 ACL, 흥미로운 비-HV ACL 악용 (사용자/컴퓨터/그룹에 대한 ForceChangePassword / GenericAll / GenericWrite; 대량 컴퓨터 GenericWrite 노이즈 억제), GPO 악용, RBCD (구성됨 + 구성 가능), 제한/비제한 위임 (DC vs 비-DC 섹션), SID 기록, 도메인 트러스트 (--trust) |
| AD 자격 증명 | Kerberoast 가능, AS-REP roast 가능 (AdminCount / OWNED / LASTLOG 태그 포함), 권한 있는 roast (--privileged-roast: roast 가능 + 중첩 DA/EA / AdminCount), 섀도 자격 증명, 설명에 비밀번호, PasswordNeverExpires / PasswordNotRequired. SharpHound sensitive (NOT_DELEGATED)는 roast 후보를 제외하지 않음 |
| ADCS | ESC1-ESC7 (+ 수집기 속성이 존재할 때 ESC8/ESC9/ESC13). ESC10-12는 SharpHound에 종종 없는 레지스트리/HTTP 역할 데이터 필요. zip에 인증서 객체가 없을 때 소프트 메시지 |
| Azure / Entra | 권한 있는 역할, 앱/SP 자격 증명 제어 경로, 명시적 MFA 비활성화, 게스트 사용자, SP 악용 권한 |
| 경로 | 고가치 대상까지의 최단 경로 (--fast에서 제한된 집합; HV에는 Builtin Administrators와 도메인 컨트롤러 컴퓨터 포함), 소유 주체 (--owned = 인바운드), 사용자 지정 --path-from / --path-to |
| 침해 도시에 | --from-user / --compromise: 아웃바운드 멤버십, AdminTo/RDP/ACL 수, 중첩 그룹, HV까지의 자동 경로, 대량 AdminTo 호스트 목록을 포함한 txt/csv 내보내기. 선택적 --writable-file은 bloodyAD get writable JSON/TSV 가져오기 (토큰 유효 쓰기; SharpHound는 필터링된 ACE 집합만 매핑) |
| 경로 교정 | 가장 분주한 경로 순위 (--busiest-paths), 엣지 제거 권장 사항 (--path-break) |
| 인벤토리 | 비밀번호 사용 기간 사다리, 오래된/비활성 계정, 권한 그룹, 구조적 (도메인/DC/트러스트), 소유 객체 인벤토리, % 포함 통계 대시보드 |
| PlumHound 스타일 CSV 팩 | --csv-pack DIR: 다중 CSV 인벤토리 (도메인, DA, roast 가능, LAPS, Everyone/과잉 권한 엣지, 컴퓨터 AdminTo 컴퓨터, 이중 권한+로컬 관리자, 대량 AdminTo 호스트) + index.csv |
| 다중 입력 | --merge PATH…는 추가 디렉터리/zip을 하나의 그래프로 통합 (다중 도메인 / 이중 저권한+DA 수집) |
| 기타 | 수집 상태 배너 (객체 수, 세션/AdminTo/RDP 커버리지, ADCS 존재 여부), LAPS 커버리지 (haslaps) + LAPS 비밀번호 리더 (ReadLAPSPassword), GPO XML (--gpo-content-dir), 도메인 Trusts[] 엣지, 그룹 중첩, --list-domains |
발견 항목은 점수가 매겨지고 우선순위 발견 테이블에 요약됩니다 (대량 위생 카테고리는 축소됨; 전체 축소 목록은 --all-findings 사용). 악용 패널은 카테고리별 도구/명령을 제안합니다.
이것은 SquidSec의 오프라인 휴리스틱 분석기이며, 완전한 BloodHound CE 대체품이 아닙니다. 경로 동등성을 위해 동일한 zip에서 BloodHound CE와 검증하는 것을 권장합니다.
./sharpout을 SharpHound/AzureHound 디렉터리 또는 zip으로 바꾸세요. 소스 체크아웃: bloodbash 대신 python3 BloodBash.py를 사용하세요.
# Help (tables + examples)
bloodbash --help
bloodbash --help-advanced
# Default = quick wins (high-signal day-0 triage)
bloodbash ./sharpout
bloodbash ./sharpout --quick-wins
bloodbash ./sharpout --quick-wins --domain CORP.LOCAL
bloodbash ./2024-collection.zip --quick-wins
# Interactive picker
bloodbash ./sharpout --wizard
# Full attack analysis (--all auto --fast on large graphs; inventory is separate)
bloodbash ./sharpout --all
bloodbash ./sharpout --all --fast
bloodbash ./2024-collection.zip --all
bloodbash ./sharpout --all --inventory