
ldapsearch BOF, pyldapsearch 및 Brute Ratel의 LDAP Sentinel에 의해 기록된 로그로부터 BloodHound 호환 JSON을 생성합니다.
⛔🚧 이 저장소는 더 이상 유지 관리되지 않습니다. 이슈, 풀 리퀘스트를 제출하거나 최신 버전을 얻으려면 https://github.com/coffeegist/bofhound를 참조하세요 🚧⛔
_____________________________ __ __ ______ __ __ __ __ _______
| _ / / __ / | ____/| | | | / __ \ | | | | | \ | | | \
| |_) | | | | | | |__ | |__| | | | | | | | | | | \| | | .--. |
| _ < | | | | | __| | __ | | | | | | | | | | . ` | | | | |
| |_) | | `--' | | | | | | | | `--' | | `--' | | |\ | | '--' |
|______/ \______/ |__| |__| |___\_\________\_\________\|__| \___\|_________|
by Fortalice ✪
BOFHound는 TrustedSec의 ldapsearch BOF, Python 적응판인 pyldapsearch, 그리고 Brute Ratel의 LDAP Sentinel과 호환되는 오프라인 BloodHound 인제스터 및 LDAP 결과 파서입니다.
앞서 언급한 도구에서 생성된 로그 파일을 파싱하여, BOFHound는 운영자가 실행 중인 LDAP 쿼리와 실행 속도를 완전히 제어하면서 BloodHound의 사랑받는 인터페이스를 활용할 수 있게 해줍니다. 이는 기존의 자동화된 BloodHound 수집기를 염두에 두고 설계된 잠재적인 허니팟 계정, 비용이 많이 드는 LDAP 쿼리 임계값 및 기타 탐지 메커니즘을 고려하여 운영자가 재량권을 발휘할 수 있는 여지를 남깁니다.
BOFHound는 pip3 install bofhound로 설치하거나 이 저장소를 클론하고 pip3 install .을 실행하여 설치할 수 있습니다.

Cobalt Strike 로그(기본값 /opt/cobaltstrike/logs)에서 ldapsearch BOF 결과를 파싱하여 /data/로 출력합니다.
bofhound -o /data/
pyldapsearch 로그를 파싱하고 모든 속성만 포함합니다 (일반 속성만 포함하는 대신)
bofhound -i ~/.pyldapsearch/logs/ --all-properties
BRc4 로그에서 LDAP Sentinel 데이터를 파싱합니다 (기본 입력 경로를 /opt/bruteratel/logs로 변경합니다)
bofhound --brute-ratel
올바른 기능을 위해 다음 속성이 필요합니다:
samaccounttype
dn
objectsid
모든 데이터 가져오기 (대신 BloodHound를 실행하시겠습니까?)
ldapsearch (objectclass=*) *,ntsecuritydescriptor
모든 스키마 정보 검색
ldapsearch (schemaIDGUID=*) name,schemaidguid -1 "" CN=Schema,CN=Configuration,DC=windomain,DC=local
ms-Mcs-AdmPwd schemaIDGUID만 검색
ldapsearch (name=ms-mcs-admpwd) name,schemaidguid 1 "" CN=Schema,CN=Configuration,DC=windomain,DC=local
bofhound는 Poetry를 사용하여 종속성을 관리합니다. 소스에서 설치하고 개발을 위해 설정하려면:
git clone https://github.com/fortalice/bofhound
cd bofhound
poetry install
poetry run bofhound --help