はじめに
2025年6月13日、Kali Linux 2025.2 Release (Kali Menu Refresh, BloodHound CE & CARsenal)の通りにKaliの新しいリリースが公開されています。
今回のリリースでは、デスクトップアップデートやBloodHoundのメジャーアップグレードに注目です。詳細については、上記公式のブログ記事をご参照ください。
本記事では、今回のアップデート内容の一部について記載しています。
アップデート方法
公式ドキュメントのUpdating Kaliを踏まえて、Kaliのアップデート方法を以下に記載します。
前提として、/etc/apt/sources.list
が適切に設定されていることを確認した上で以下のコマンドを実行します。
$ sudo apt update
$ sudo apt full-upgrade -y
上記コマンド実行後、OS再起動を行います。
OS再起動後、/etc/os-release
ファイルを参照してディストリビューションのバージョンが更新されたことを確認します。
$ grep VERSION /etc/os-release
VERSION_ID="2025.2"
VERSION="2025.2"
VERSION_CODENAME=kali-rolling
Desktop Updates
Kaliのメニュー画面が大幅に刷新されました。
MITRE ATT&CKフレームワークに沿って再編成されことで、Matrixのカテゴリ毎に最適なツールを直感的に選択できるUIに変わっています。
背景として、これまでのKaliのメニューは古いBackTrack時代の構造を基に開発されているため、拡張性が低く、新しいツールの追加が難しい状態でした。また、メニューは手動で管理されていたという時実が最大の課題でした。
その結果、メニューへの新しいツールの追加は停止していましたが、今回のリリースによってこの問題が解消されました。
今回のリリースは、ユーザにとって利便性があるだけでなく、Kali Linuxの開発や運用に関わる人々にとっても大きなメリットが生まれるwin-winの結果になりました。
MITRE ATT&CKフレームワークについては、以前書いた「攻撃を基に防御を最大化する考え方 MITRE ATT&CKについて理解する」をご参照ください。
BloodHound Community Edition
今回のリリースのハイライトは、BloodHoundのメジャーアップグレードです。
BloodHoundは、BloodHound Community Edition (以下、BloodHound CE) にアップグレードされました。また、BloodHound CEをサポートするインジェスターのフルセットも提供しています。
データ収集ツールとして機能するインジェスターもセットで提供されたことによって、より効率的にActive Directory環境の分析を行うことが可能になります。
BloodHound CEのセットアップ
新規にBloodHound CEのインストールを行った場合は、BloodHoundの設定スクリプトによる環境のセットアップが必要です。
セットアップの方法については、bloodhoundのガイドより確認できます。
なお、Kaliをアップグレード後、環境によってはBloodHoundを正常に起動することができません。本記事では、BloodHoundのセットアップで発生したエラーについてまとめています。
Kaliをアップグレード後bloodhound
を起動すると、PostgreSQLに関する以下のエラーが出力されました。
It seems it's the first time you run bloodhound
Please run bloodhound-setup first
Do you want to run bloodhound-setup now? [Y/n] y
[*] Starting PostgreSQL service
[*] Creating Database
WARNING: データベース "postgres" で照合順序バージョンの不一致が起きています
DETAIL: データベースは照合順序バージョン2.40で作成されていますが、オペレーティングシステムはバージョン2.41を提供しています。
HINT: このデータベース内でデフォルトの照合順序を使用している全てのオブジェクトを再構築して、ALTER DATABASE postgres REFRESH COLLATION VERSIONを実行するか、正しいバージョンのライブラリを用いてPostgreSQLをビルドしてください。
Creating database user
WARNING: データベース "postgres" で照合順序バージョンの不一致が起きています
DETAIL: データベースは照合順序バージョン2.40で作成されていますが、オペレーティングシステムはバージョン2.41を提供しています。
HINT: このデータベース内でデフォルトの照合順序を使用している全てのオブジェクトを再構築して、ALTER DATABASE postgres REFRESH COLLATION VERSIONを実行するか、正しいバージョンのライブラリを用いてPostgreSQLをビルドしてください。
WARNING: データベース "postgres" で照合順序バージョンの不一致が起きています
DETAIL: データベースは照合順序バージョン2.40で作成されていますが、オペレーティングシステムはバージョン2.41を提供しています。
HINT: このデータベース内でデフォルトの照合順序を使用している全てのオブジェクトを再構築して、ALTER DATABASE postgres REFRESH COLLATION VERSIONを実行するか、正しいバージョンのライブラリを用いてPostgreSQLをビルドしてください。
Creating database
WARNING: データベース "postgres" で照合順序バージョンの不一致が起きています
DETAIL: データベースは照合順序バージョン2.40で作成されていますが、オペレーティングシステムはバージョン2.41を提供しています。
HINT: このデータベース内でデフォルトの照合順序を使用している全てのオブジェクトを再構築して、ALTER DATABASE postgres REFRESH COLLATION VERSIONを実行するか、正しいバージョンのライブラリを用いてPostgreSQLをビルドしてください。
createdb: エラー: データベースの生成に失敗しました:ERROR: テンプレートデータベース "template1" では照合順序バージョンの不一致が起きています
DETAIL: データベース中の照合順序はバージョン2.40で作成されていますが、オペレーティングシステムはバージョン2.41を提供しています。
HINT: デフォルトの照合順序を使用しているテンプレート・データベースの全てのオブジェクトを再構築して、ALTER DATABASE template1 REFRESH COLLATION VERSIONを実行するか、正しいバージョンのライブラリを用いてPostgreSQLをビルドしてください。
psql: エラー: ソケット "/var/run/postgresql/.s.PGSQL.5432" のサーバーへの接続に失敗しました: FATAL: データベース "bloodhound" は存在しません
PostgreSQLのエラーメッセージが出力される理由は、PostgreSQLがBloodHoundに依存しているためです。
エラーメッセージの内容については、PostgreSQLの照合順序(collation)のバージョン不一致によって、bloodhound-setup
のDB作成が失敗しているのが原因です。従ってPostgreSQLに接続して、PostgreSQLの照合順序を変更することで、対応します。
はじめに以下のコマンドを実行して、PostgreSQLに接続します。
$ sudo -u postgres psql
以下のSQLを実行して、現在のdatcollversion
を確認します。
postgres=# SELECT datname, datcollversion FROM pg_database;
datname | datcollversion
-----------+----------------
postgres | 2.40
template1 | 2.40
template0 |
(3 行)
エラーメッセージが出力されていたデータベースに対して、ALTER DATABASE
を実行し、データベースの属性を変更します。
postgres=# ALTER DATABASE postgres REFRESH COLLATION VERSION;
NOTICE: バージョン2.40から2.41への変更
ALTER DATABASE
postgres=# ALTER DATABASE template1 REFRESH COLLATION VERSION;
NOTICE: バージョン2.40から2.41への変更
ALTER DATABASE
再度同じクエリを実行して、datcollversion
の値が2.41
に変更されたことを確認します。
postgres=# SELECT datname, datcollversion FROM pg_database;
datname | datcollversion
-----------+----------------
postgres | 2.41
template0 |
template1 | 2.41
(3 行)
上記対応完了後、sudo bloodhound-setup
コマンドを実行すると、エラーが表示さくれなくなりました。引き続き、bloodhoundのガイドの通りに進めていきます。
[*] Starting PostgreSQL service
[*] Creating Database
User _bloodhound already exists in PostgreSQL
Creating database
ALTER ROLE
[*] Starting neo4j
Neo4j is running at pid 6804
[i] You need to change the default password for neo4j
Default credentials are user:neo4j password:neo4j
[!] IMPORTANT: Once you have setup the new password, please update /etc/bhapi/bhapi.json with the new password before running bloodhound
opening http://localhost:7474/
neo4j
ユーザのデフォルトのパスワードを変更するように求められます。
既にneo4j
ユーザのデフォルトのパスワードは変更済みですが、/etc/bhapi/bhapi.json
ファイルを更新するように求められているため、/etc/bhapi/bhapi.json
ファイルのパスワードも更新します。
/etc/bhapi/bhapi.json
より、neo4j
ユーザのsecret
の値をデフォルト値から変更します。
{
"database": {
"addr": "localhost:5432",
"username": "_bloodhound",
"secret": "bloodhound",
"database": "bloodhound"
},
"neo4j": {
"addr": "localhost:7687",
"username": "neo4j",
"secret": "neo4j"
},
"default_admin": {
"principal_name": "admin",
"password": "admin",
"first_name": "Bloodhound",
"last_name": "Kali"
}
}
/etc/bhapi/bhapi.json
ファイル変更後、bloodhound
を実行して起動します。
$ bloodhound
[sudo] kali のパスワード:
Starting neo4j
Neo4j is running at pid 61318
Bloodhound will start
IMPORTANT: It will take time, please wait...
opening http://127.0.0.1:8080
{"time":"2025-06-14T16:28:30.44575372+09:00","level":"INFO","message":"Reading configuration found at /etc/bhapi/bhapi.json"}
{"time":"2025-06-14T16:28:30.445920816+09:00","level":"INFO","message":"Logging configured"}
{"time":"2025-06-14T16:28:30.455436399+09:00","level":"INFO","message":"No database driver has been set for migration, using: neo4j"}
{"time":"2025-06-14T16:28:30.45548989+09:00","level":"INFO","message":"Connecting to graph using Neo4j"}
{"time":"2025-06-14T16:28:30.455612242+09:00","level":"INFO","message":"Starting daemon Tools API"}
{"time":"2025-06-14T16:28:30.455796771+09:00","level":"ERROR","message":"HTTP server listen error: listen tcp :2112: bind: address already in use"}
{"time":"2025-06-14T16:28:30.45787433+09:00","level":"INFO","message":"No new SQL migrations to run"}
Bloodhoundが正常に起動できました。
admin
ユーザでログインを行います。
パスワードの変更を求められるため、要件を満たすようにパスワードを変更します。
再度、ログインを行うと新しいBloodHoundの画面が表示されます。
New Tools
今回も色々なツールが複数追加されています。
binwalk3は、速度と精度を向上させるためにRustで書き直されたBinwalkファームウェア分析ツールの更新バージョンです。
gitxrayは、OSINTで活用できるセキュリティツールです。GitHubの公開REST APIを活用して、手動で取得するには非常に時間のかかる情報を収集します。
Xclip pre-installed
Kaliのすべてのデスクトップ環境にxclipがデフォルトで追加されました。
おわりに
2025 年も半分が過ぎようとしていますが、また次回のアップデートを楽しみにしています。
新しくなったBloodHound CEについては、HTBなどで試してみたいと思います。