블러드하운드

블러드하운드(BloodHound)는 액티브 디렉토리의 LDAP 데이터를 수집하고 이를 그래프 자료구조 형식으로 보여주는 툴이다. 수만명의 도메인 유저 계정, 수십만대의 호스트들의 관계와 정보를 일일히 수동으로 정리하는 것은 불가능에 가깝다. 블러드하운드는 이를 도와주기 위해서 만들어진 툴이다.

블러드하운드는 총 3가지 툴로 운영된다.

  1. 블러드하운드 Data Ingestor - 도메인 컨트롤러에 접근에 LDAP 데이터를 추출한 뒤, 도메인 유저, 호스트, 그룹, 세션 등의 데이터를 json 형태로 저장하는 툴.

  2. Neo4J - 블러드 하운드의 백엔드 데이터베이스. Ingestor가 추출한 json 파일을 neo4j 데이터베이스에 불러온 뒤 블러드하운드 GUI에서 사용할 수 있게된다.

  3. 블러드하운드 GUI - 백엔드 데이터베이스의 데이터를 그래프 자료구조의 형식으로 보여주는 프론트엔드 GUI 툴.

설치

블러드하운드 설치는 공식 문서를 참고한다.

# 칼리 리눅스 
apt update -y 
apt install bloodhound -y 
neo4j console 

# http://localhost:7474 방문 후 neo4j:neo4j 를 이용해 로그인. 
# 이후, 비밀번호를 바꿔줌.

# 블러드하운드 실행 후 neo4j:<바뀐-비밀번호>로 로그인 
bloodhound 

사용 - 데이터 Ingestor

블러드하운드를 이용하기 위해선 타겟 도메인의 액티브 디렉토리 데이터를 Ingestor를 이용해 추출해야한다. 액티브 디렉토리 데이터를 추출하기 위해서는 도메인 유저의 계정정보나 세션이 필요하다. 초기 침투가 성공적이였다면 대부분 도메인 유저 (ex. 회계 부서의 김인턴) 의 문맥을 갖게된다.

데이터 Ingestor는 다양한 액티브 디렉토리의 정보들을 빼내올 수 있다. 공식문서의 -c, Collection method를 참고한다.

리눅스에서는 bloodhound-python 툴을, 윈도우에서는 SharpHound 툴을 이용한다.

리눅스에서는 bloodhound-python을 이용한다.

# 설치 
pip3 install bloodhound 

# 실행 
bloodhound-python -c DCOnly -u <user> -p <pass> -d <domain> -dc <dc-fqdn>
bloodhound-python -c DCOnly -u low -p 'Password123!' -d choi.local -dc dc01.choi.local

사용 - 블러드하운드 GUI

다운 받은 zip파일을 블러드하운드 GUI에다가 드래그 & 드롭 하면 된다.

이후 Analysis에서 미리 준비된 쿼리를 이용하거나 하단의 Raw Query 를 통해 직접 Cypher Query를 사용한다.

레퍼런스

Last updated