BloodHoundはWindowsのActive DirectoryやMicrosoft Entraのオブジェクトの関連性を可視化するツールとして有名です。今回はWSLで起動するためのメモです。#自分の忘備録13
BloodHoundの歴史
Introducing BloodHound Community Edition のページにはBloodHoundの歴史が書かれています。
「BloodHound product names and timeline」という図の左下の赤い部分にあたる時代のBloodHound(Legacy)はインストールが面倒だったので実際にインストールしたことはないのですが、その後継のCommunity Editionというのが大変簡単にインストール出来るようになったので、それのインストール方法をメモしておきます。
古いBloodHoundはプログラムのインターフェースでしたが、後継のBloodHoundはブラウザを使用したWebインターフェースになっています。
BloodHound(Community Edition)インストール
BloodHound CEのインストールには、LACセキュリティブログと、本家のQuickstartを参考にします。最終的にはどちらもdockerでインストール・起動している事にはなります。
本家のQuickstartも当初のインストール方法はLACセキュリティブログと同じだったかと思うのですが、いつの間にかインストール用CLIが用意されていました。
- 新しく生まれ変わったBloodHound Community Editionを使ってみた:docker-compose.ymlファイルをダウンロードしてインストールする
- BloodHound Community Edition Quickstart:BloodHound CLIでインストールする
[1]docker-compose.ymlファイルをダウンロードしてインストール
LACセキュリティブログで紹介されている方法で、docker-compose.ymlファイルをダウンロードして、docker-composeでインストール・起動します。
(BloodHound専用WSLの作成)
wsl --install Ubuntu-24.04 --name Ubuntu-24.04-bh
(Ubuntuの更新・設定)
sudo apt update
sudo apt upgrade
sudo apt install docker.io
sudo systemctl enable docker
sudo usermod -a -G docker $USER
sudo apt install docker-compose
(WSLを再起動して、dockerを確認)
docker --version
#Docker version 28.2.2, build 28.2.2-0ubuntu1~24.04.1
docker-compose --version
#docker-compose version 1.29.2, build unknown
(BloodHoundのダウンロード、起動)
mkdir bloodhound
cd bloodhound/
wget https://raw.githubusercontent.com/SpecterOps/bloodhound/main/examples/docker-compose/docker-compose.yml
docker-compose up ← -dでデーモン起動しても良いが、ログを確認するために通常起動
(以下のようなログが出てくる)
#...
#bloodhound_1 | ###################################################################
#bloodhound_1 | # #
#bloodhound_1 | # Initial Password Set To: ******************************** #
#bloodhound_1 | # #
#bloodhound_1 | ###################################################################
#...
(BloodHoundの起動を確認)
docker ps -a
(BloodHoundの初期パスワードを後で確認)
docker logs bloodhound_bloodhound_1 | grep "Initial Password"
# Initial Password Set To: ******************************** #
Windowsでブラウザを起動して、http://localhost:8080/ をアクセスする(最近のWindowsはWSLのサーバもlocalhostで正常にアクセス出来ますね)。
ユーザ/パスワードには、adminと上記で確認したInitial Password(の*******のところ)を入力してログインします。以前はログイン後にパスワードの再設定画面が表示されましたが、現在は初期パスワードが継続して使えるようです。
左はログイン直後の画面、右はDarkモードにして メニューAdministration > File Ingenst > Upload File(s) の画面
どちらもBloodHoundで表示するデータファイルを読み込む画面です(BloodHoundはv8.7.0でした)。
[2]本家のBloodHound CLIでインストール
BloodHound CLIをダウンロードしてインストールします。
(BloodHound専用WSLをそのまま使う)
mkdir bloodhound-cli
cd bloodhound-cli/
wget https://github.com/SpecterOps/bloodhound-cli/releases/latest/download/bloodhound-cli-linux-amd64.tar.gz
tar -xvzf bloodhound-cli-linux-amd64.tar.gz
./bloodhound-cli install
#2026/04/21 22:15:37 The BloodHound config directory you have set, /home/user/.config/bloodhound, is missing, so attempting to create it.
#2026/04/21 22:15:37 Successfully created the BloodHound config directory.
#[+] Checking the status of Docker and the Compose plugin...
#[!] The deprecated `docker-compose` v1 script was detected on your system
#[!] Docker has deprecated v1 and this CLI tool no longer supports it
#2026/04/21 22:15:38 Please upgrade to Docker Compose v2 and try again: https://docs.docker.com/compose/install/
止まってしまいましたが、docker-composeをアップグレードしてくださいと出たので、Install the plugin manuallyで最新バージョン(v5.1.3)にアップグレードしてみました。
mkdir -p $HOME/.docker/cli-plugins
curl -SL https://github.com/docker/compose/releases/download/v5.1.3/docker-compose-linux-x86_64 -o $HOME/.docker/cli-plugins/docker-compose
chmod +x $HOME/.docker/cli-plugins/docker-compose
docker compose version
#Docker Compose version v5.1.3
再度BloodHound CLIを起動
./bloodhound-cli install
#[+] Checking the status of Docker and the Compose plugin...
#[+] Docker and the Compose plugin checks have passed
#[+] Starting BloodHound environment installation
#[+] Downloading the production YAML file from https://raw.githubusercontent.com/SpecterOps/BloodHound_CLI/refs/heads/main/docker-compose.yml...
#[+] Downloading the development YAML file from https://raw.githubusercontent.com/SpecterOps/BloodHound_CLI/refs/heads/main/docker-compose.dev.yml...
# Image docker.io/library/neo4j:4.4 Pulling
# Image docker.io/specterops/bloodhound:latest Pulling
# Image docker.io/library/postgres:16 Pulling
#...
#[+] BloodHound is ready to go!
#[+] You can log in as `admin` with this password: ********************************
#[+] You can get your admin password by running: bloodhound-cli config get default_password
#[+] You can access the BloodHound UI at: http://127.0.0.1:8080/ui/login
BloodHoundの初期パスワードはdockerのログではなく、見やすく表示してくれました。
[2]のログイン直後の画面とDarkモードにしたUpload File(s) の画面を見たら、[1]の起動画面と少し変わっていました。[1]のは少し前にイメージをダウンロードしていたのですが、左のメニューが開くのがマウスオーバーの時でしたが、[2]のは上の方に開閉のボタン(〇のところ)が付いていました。
BloodHoundは結構頻繁にアップデートされている模様です(BloodHoundはv9.0.1になっていました)。
BloodHound CLIの方がいろいろ便利になっている
コマンドラインヘルプを見たら、コンテナのアップデートやパスワードリセットなども出来るようになっています。
これからはこちらを使った方が良さそうです。
./bloodhound-cli
#BloodHound CLI is a command line interface for managing BloodHound and
#associated containers and services. Commands are grouped by their use.
#
#Usage:
# bloodhound-cli [command]
#
#Available Commands:
# check Evaluates the Docker environment and downloads the necessary YAML files, as needed.
# completion Generate the autocompletion script for the specified shell
# config Display or adjust the configuration
# containers Manage BloodHound containers with subcommands
# down Shortcut for `containers down`
# help Help about any command
# install Builds containers and performs first-time setup of BloodHound
# logs Fetch logs for BloodHound services
# resetpwd Reset the admin password
# running Print a list of running BloodHound services
# uninstall Remove all BloodHound containers, images, and volume data
# up Shortcut for `containers up`
# update Update the BloodHound container images if any updates are available
# version Displays BloodHound CLI's version information
#
#Flags:
# -f, --file string Override the YAML file in the configured data directory and use a different YAML file for the container commands.
# -h, --help help for bloodhound-cli
#
#Use "bloodhound-cli [command] --help" for more information about a command.
BloodHoundでサンプルデータを表示してみる
ここ(Get data into BloodHound)には、Active DirectoryとMicrosoft Entra(Azure)のサンプルデータが提供されています(どちらもFirefoxでは危険なファイルとしてダウンロードが停止しましたが、ダウンロードを許可しました)。
昔あったサンプルはおまけ程度のものでしたが、このサンプルデータは結構使えそうなデータでした。
現在のBloodHoundはjsonファイル以外にもzipファイルを読み込めるようになったようです(Legacyはzipファイルも読み込めていたようですが、BloodHound CEは当初jsonファイルだけになっていたので)。
BloodHound CLIでインストールした版のUpload File(s)から2つのzipファイルを読み込ませて、以下のようにStatusがIngest → Analyzing → Completeになったら読み込み完了です。
BloodHoundのExploreでCYPHERの「Active Directory > All Domain Admins」を表示しました。このサンプルデータはBloodHoundのいろいろな使い方の練習が出来そうです。
BloodHound、その他おまけ
- BloodHoundは大変すばらしいツールです。このようなツールがFreeで簡単に使えるなんてすごい時代です。ただ職場で遊びのつもりでも使用すると、セキュリティアラートが出たりするかも知れませんので、ご注意を。
- BloodHound CLIはpodman-composeで起動することも出来るようになっていますが、何故かコンテナのStatusがCreatedのまま進まなかったので、深追いせずに今回は諦めました。
- BloodHound起動で、例えばポート競合などで異常が発生しても、BloodHound CLIの出力では簡単にわからない。そのようなときはdockerのログを直接確認する必要がある。
- BloodHound CLI版のdocker-compose.ymlは <ホームディレクトリ>.config\bloodhound にあります。またbloodhound.config.jsonも同じディレクトリに置かれるように設定されていました。
参考サイト
- SpecterOps Creators of BloodHound - Introducing BloodHound Community Edition
- ラックセキュリティごった煮ブログ - 新しく生まれ変わったBloodHound Community Editionを使ってみた
- BloodHound 9.0 — Product Updates





