0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

WSLでBloodHoundを起動してみる

0
Posted at

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が用意されていました。

[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_start.png BloodHound_FIle-ingest.png

どちらも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_start.png BloodHound-CLI_FIle-ingest.png

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_ingest-sampledata.png

BloodHoundのExploreでCYPHERの「Active Directory > All Domain Admins」を表示しました。このサンプルデータはBloodHoundのいろいろな使い方の練習が出来そうです。

BloodHound_cypher-AllDomainAdmins.png

BloodHound、その他おまけ

  • BloodHoundは大変すばらしいツールです。このようなツールがFreeで簡単に使えるなんてすごい時代です。ただ職場で遊びのつもりでも使用すると、セキュリティアラートが出たりするかも知れませんので、ご注意を。
  • BloodHound CLIはpodman-composeで起動することも出来るようになっていますが、何故かコンテナのStatusがCreatedのまま進まなかったので、深追いせずに今回は諦めました。
  • BloodHound起動で、例えばポート競合などで異常が発生しても、BloodHound CLIの出力では簡単にわからない。そのようなときはdockerのログを直接確認する必要がある。
  • BloodHound CLI版のdocker-compose.ymlは <ホームディレクトリ>.config\bloodhound にあります。またbloodhound.config.jsonも同じディレクトリに置かれるように設定されていました。

参考サイト

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?