Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
RustHound — Rustで書かれたBloodHound Legacy向けActive Directoryデータインジェスター。🦀 | Kitploit
ツール/GitHubGitHub/nh-red-team/rusthound
偵察情報収集ペネトレーションテストレッドチーミング
GitHubnh-red-team/rusthound

RustHound

Rustで書かれたBloodHound Legacy向けActive Directoryデータインジェスター。🦀

リポジトリを見る
1.2k10721年前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

このバージョンは BloodHound Legacy 4.x とのみ互換性があります

BloodHound Community Edition (CE) に対応したバージョンは、こちら RustHound-CE にあります。


Crates.io GitHub Twitter Follow Twitter Follow
Linux supported Windows supported macOS supported

概要

  • 制限事項

  • 説明

  • コンパイル方法

    • Makefileを使用する
    • Dockerfileを使用する
    • Cargoを使用する
    • Linux x86_64 静的バージョン
    • LinuxからWindows静的バージョン
    • LinuxからmacOS静的バージョン
    • バイナリサイズの最適化
  • ドキュメントのビルド方法

  • 使用方法

  • デモ

    • 基本的な使い方
    • FQDNリゾルバモジュール
    • ADCSコレクタモジュール
  • 統計情報

  • ロードマップ

  • リンク

制限事項

SharpHoundのすべての機能が実装されているわけではありません。RustHoundに存在する機能の中には、SharpHoundやBloodHound-Pythonにはないものもあります。詳細についてはロードマップを参照してください。

説明

RustHoundはRustで書かれたクロスプラットフォームのBloodHoundコレクタツールで、Linux、Windows、macOSと互換性があります。

AV検出がなく、クロスコンパイル可能です。

RustHoundは、ユーザー、グループ、コンピュータ、OU、GPO、コンテナ、ドメインのJSONファイルを生成し、BloodHoundで分析できます。

💡 SharpHoundが使えるならそちらを使ってください。 SharpHoundがAVに検出されたり、OSと互換性がない場合のバックアップソリューションとしてRustHoundを使用してください。

コンパイル方法

Makefileを使用する

makeコマンドを使用してRustHoundをインストールしたり、LinuxまたはWindows用にコンパイルできます。

root@kitploit:~
make install
rusthound -h

Makefileのその他のコマンド:

root@kitploit:~
デフォルト:
usage: make install
usage: make uninstall
usage: make debug
usage: make release

静的:
usage: make windows
usage: make windows_x64
usage: make windows_x86
usage: make linux_aarch64
usage: make linux_x86_64
usage: make linux_musl
usage: make macos
usage: make arm_musl
usage: make armv7

CLI引数なし:
usage: make windows_noargs

依存関係:
usage: make install_windows_deps
usage: make install_linux_musl_deps
usage: make install_macos_deps

Dockerfileを使用する

DockerでRustHoundを使用して、すべての依存関係を確実に用意します。

root@kitploit:~
docker build --rm -t rusthound .

# その後
docker run --rm -v ./:/usr/src/rusthound rusthound windows
docker run --rm -v ./:/usr/src/rusthound rusthound linux_musl
docker run --rm -v ./:/usr/src/rusthound rusthound macos

Cargoを使用する

システムにRustをインストールする必要があります。

https://www.rust-lang.org/fr/tools/install

RustHoundはKerberosとGSSAPIをサポートしています。そのため、Clangとその開発ライブラリ、およびKerberos開発ライブラリが必要です。DebianとUbuntuでは、clang-N、libclang-N-dev、libkrb5-devを意味します。

例:

root@kitploit:~
# Debian/Ubuntu
sudo apt-get -y update && sudo apt-get -y install gcc clang libclang-dev libgssapi-krb5-2 libkrb5-dev libsasl2-modules-gssapi-mit musl-tools gcc-mingw-w64-x86-64

以下は、cargoコマンドを使用した"release"と"debug"バージョンのコンパイル方法です。

root@kitploit:~
git clone https://github.com/OPENCYBER-FR/RustHound
cd RustHound
cargo build --release
# またはデバッグバージョン
cargo b

結果はtarget/releaseまたはtarget/debugフォルダにあります。

以下に、Linuxから各OSのコンパイル方法を示します。 別のコンパイルシステムが必要な場合は、このリンク先のリストを参照してください: https://doc.rust-lang.org/nightly/rustc/platform-support.html

Linux x86_64 静的バージョンを手動で

root@kitploit:~
# Linux用のrustupとCargoをインストール
curl https://sh.rustup.rs -sSf | sh

# Linuxの依存関係を追加
rustup install stable-x86_64-unknown-linux-gnu
rustup target add x86_64-unknown-linux-gnu

# Linux向け静的コンパイル
git clone https://github.com/OPENCYBER-FR/RustHound
cd RustHound
CFLAGS="-lrt";LDFLAGS="-lrt";RUSTFLAGS='-C target-feature=+crt-static';cargo build --release --target x86_64-unknown-linux-gnu

結果はtarget/x86_64-unknown-linux-gnu/releaseフォルダにあります。

LinuxからWindows静的バージョンを手動で

root@kitploit:~
# LinuxにrustupとCargoをインストール
curl https://sh.rustup.rs -sSf | sh

# Windowsの依存関係を追加
rustup install stable-x86_64-pc-windows-gnu
rustup target add x86_64-pc-windows-gnu

# Windows向け静的コンパイル
git clone https://github.com/OPENCYBER-FR/RustHound
cd RustHound
RUSTFLAGS="-C target-feature=+crt-static" cargo build --release --target x86_64-pc-windows-gnu

結果はtarget/x86_64-pc-windows-gnu/releaseフォルダにあります。

LinuxからmacOS静的バージョンを手動で

素晴らしいドキュメント: https://wapl.es/rust/2019/02/17/rust-cross-compile-linux-to-macos.html

root@kitploit:~
# LinuxにrustupとCargoをインストール
curl https://sh.rustup.rs -sSf | sh

# macOSツールチェーンを追加
sudo git clone https://github.com/tpoechtrager/osxcross /usr/local/bin/osxcross
sudo wget -P /usr/local/bin/osxcross/ -nc https://s3.dockerproject.org/darwin/v2/MacOSX10.10.sdk.tar.xz && sudo mv /usr/local/bin/osxcross/MacOSX10.10.sdk.tar.xz /usr/local/bin/osxcross/tarballs/
sudo UNATTENDED=yes OSX_VERSION_MIN=10.7 /usr/local/bin/osxcross/build.sh
sudo chmod 775 /usr/local/bin/osxcross/ -R
export PATH="/usr/local/bin/osxcross/target/bin:$PATH"

# Cargoにx86_64-apple-darwinターゲット用の正しいリンカを指定するため、プロジェクトの.cargo/configファイルに以下を追加します:
grep 'target.x86_64-apple-darwin' ~/.cargo/config || echo "[target.x86_64-apple-darwin]" >> ~/.cargo/config
grep 'linker = "x86_64-apple-darwin14-clang"' ~/.cargo/config || echo 'linker = "x86_64-apple-darwin14-clang"' >> ~/.cargo/config
grep 'ar = "x86_64-apple-darwin14-clang"' ~/.cargo/config || echo 'ar = "x86_64-apple-darwin14-clang"' >> ~/.cargo/config

# macOS向け静的コンパイル
git clone https://github.com/OPENCYBER-FR/RustHound
cd RustHound
RUSTFLAGS="-C target-feature=+crt-static" cargo build --release --target x86_64-apple-darwin --features nogssapi

結果はtarget/x86_64-apple-darwin/releaseフォルダにあります。

バイナリサイズの最適化

💡 最適化されたRustHoundのコンパイルを得るには、Cargo.tomlファイルの末尾に以下のコンパイルパラメータを追加します。

root@kitploit:~
[profile.release]
opt-level = "z"
lto = true
strip = true
codegen-units = 1
panic = "abort"

バイナリのサイズが大幅に最小化されます。 基本的なcargoコンパイラコマンドを使用できます。

root@kitploit:~
make windows

詳細はこちら

ドキュメントのビルド方法

root@kitploit:~
git clone https://github.com/OPENCYBER-FR/RustHound
cd RustHound
cargo doc --open --no-deps

使用方法

root@kitploit:~
Usage: rusthound [OPTIONS] --domain <domain>

Options:
  -v...          Set the level of verbosity
  -h, --help     Print help information
  -V, --version  Print version information

REQUIRED VALUES:
  -d, --domain <domain>  Domain name like: DOMAIN.LOCAL

OPTIONAL VALUES:
  -u, --ldapusername <ldapusername>  LDAP username, like: [email protected]
  -p, --ldappassword <ldappassword>  LDAP password
  -f, --ldapfqdn <ldapfqdn>          Domain Controler FQDN like: DC01.DOMAIN.LOCAL or just DC01
  -i, --ldapip <ldapip>              Domain Controller IP address like: 192.168.1.10
  -P, --ldapport <ldapport>          LDAP port [default: 389]
  -n, --name-server <name-server>    Alternative IP address name server to use for DNS queries
  -o, --output <output>              Output directory where you would like to save JSON files [default: ./]

OPTIONAL FLAGS:
      --ldaps           Force LDAPS using for request like: ldaps://DOMAIN.LOCAL/
      --dns-tcp         Use TCP instead of UDP for DNS queries
      --dc-only         Collects data only from the domain controller. Will not try to retrieve CA security/configuration or check for Web Enrollment
      --old-bloodhound  For ADCS only. Output result as BloodHound data for the original BloodHound version from @BloodHoundAD without PKI support
  -z, --zip             Compress the JSON files into a zip archive

OPTIONAL MODULES:
      --fqdn-resolver  Use fqdn-resolver module to get computers IP address
      --adcs           Use ADCS module to enumerate Certificate Templates, Certificate Authorities and other configurations.
                       (For the custom-built BloodHound version from @ly4k with PKI support)

デモ

デモはmayflyによって実装されたGOADv2で行われています:

基本的な使い方

root@kitploit:~
# Linux with username:password
rusthound -d north.sevenkingdoms.local -u '[email protected]' -p '_L0ngCl@w_' -o /tmp/demo -z

# Linux with username:password and ldapip
rusthound -d north.sevenkingdoms.local -i 192.168.56.11 -u '[email protected]' -p '_L0ngCl@w_' -o /tmp/demo -z

# Linux with username:password and ldaps
rusthound -d north.sevenkingdoms.local --ldaps -u '[email protected]' -p '_L0ngCl@w_' -o /tmp/demo -z 
# Linux with username:password and ldaps and custom port
rusthound -d north.sevenkingdoms.local --ldaps -P 3636 -u '[email protected]' -p '_L0ngCl@w_' -o /tmp/demo -z 

# Tips to redirect and append both standard output and standard error to a file > /tmp/rh_output 2>&1
rusthound -d north.sevenkingdoms.local --ldaps -u '[email protected]' -p '_L0ngCl@w_' -o /tmp/demo --fqdn-resolver > /tmp/rh_output 2>&1

# Windows with GSSAPI session
rusthound.exe -d sevenkingdoms.local --ldapfqdn kingslanding
# Windows simple bind connection username:password (do not use single or double quotes with cmd.exe)
rusthound.exe -d sevenkingdoms.local -u [email protected] -p _L0ngCl@w_ -o output -z

# Kerberos authentication (Linux)
export KRB5CCNAME="/tmp/jeor.mormont.ccache"
rusthound -d sevenkingdoms.local -f kingslanding -k -z
# Kerberos authentication (Windows)
rusthound.exe -d sevenkingdoms.local -f kingslanding -k -z

FQDNリゾルバモジュール

root@kitploit:~
# Linux with username:password and FQDN resolver module
rusthound -d essos.local -u '[email protected]' -p 'BurnThemAll!' -o /tmp/demo --fqdn-resolver -z
# Linux with username:password and ldaps and FQDN resolver module and TCP DNS request and custom name server
rusthound -d essos.local --ldaps -u '[email protected]' -p 'BurnThemAll!' -o /tmp/demo --fqdn-resolver --tcp-dns --name-server 192.168.56.12 -z

# Windows with GSSAPI session and FQDN resolver module
rusthound.exe -d essos.local -f meereen -o output --fqdn-resolver -z
# Windows simple bind connection username:password and FQDN resolver module and TCP DNS request and custom name server (do not use single or double quotes with cmd.exe)
rusthound.exe -d essos.local -u [email protected] -p BurnThemAll! -o output -z --fqdn-resolver --tcp-dns --name-server 192.168.56.12 

ADCSコレクタモジュール

@ly4k BloodHoundバージョンを使用した例。

root@kitploit:~
# Linux with username:password and ADCS module for @ly4k BloodHound version
rusthound -d essos.local -u '[email protected]' -p 'BurnThemAll!' -o /tmp/adcs --adcs -z
# Linux with username:password and ADCS module and dconly flag (will don't check webenrollment)
rusthound -d essos.local -u '[email protected]' -p 'BurnThemAll!' -o /tmp/adcs --adcs --dc-only -z

# Linux with username:password and ADCS module using "--old-bloodhound" argument for official @BloodHoundAd version
rusthound -d essos.local -u '[email protected]' -p 'BurnThemAll!' -o /tmp/adcs --adcs --old-bloodhound -z

# Windows with GSSAPI session and ADCS module
rusthound.exe -d essos.local -f meereen -o output -z --adcs
# Windows with GSSAPI session and ADCS module and TCP DNS request and custom name server
rusthound.exe -d essos.local --ldapfqdn meereen -o output -z --adcs --tcp-dns --name-server 192.168.56.12
# Windows simple bind connection username:password (do not use single or double quotes with cmd.exe)
rusthound.exe -d essos.local -u [email protected] -p BurnThemAll! -o output -z --adcs --dc-only

デモで使用したカスタムクエリは、リソースフォルダにあります。

次のコマンドでインストールします:

root@kitploit:~
cp resources/customqueries.json ~/.config/bloodhound/customqueries.json

🚀 統計情報

GOADのドメインコントローラESSOS.localでより多くのLDAPオブジェクトを持つ統計を取るために、BadBloodを実行します。DCには約3500のオブジェクトがあるはずです。以下は、各ツールの実行にかかる平均時間です:

🚥 ロードマップ

認証

  • LDAP (389)
  • LDAPS (636)
  • BIND
  • NTLM
  • Kerberos
  • パスワードのプロンプト

出力

  • users.json
  • groups.json
  • computers.json
  • ous.json
  • gpos.json
  • containers.json
  • domains.json
  • cas.json
  • templates.json
  • JSONファイルをzip圧縮するための引数と関数 --zip

モジュール

  • ユーザーがそれらを読み取れる場合、LAPSパスワードを取得 自動
  • 見つかったFQDNコンピュータをIPアドレスに解決 --fqdn-resolver
  • Certipyを使用したESC悪用のための証明書を取得 --adcs
  • Kerberos攻撃モジュール (ASREPROASTINGとKERBEROASTING) --attack-kerberos
  • 信頼されたドメインからデータを取得 --follow-trust (現在作業中、このモジュールのベータ版があります)

BloodHound v4.2

  • 解析機能

    • ユーザーとコンピュータ
      • HasSIDHistory
    • ユーザー
      • Properties : sfupassword
  • DCERPC (依存関係)

    • コンピュータ
      • Sessions
    • OUとドメイン
      • LocalAdmins
      • RemoteDesktopUsers
      • DcomUsers
      • PSRemoteUsers

🔗 リンク

  • ブログ記事: https://www.opencyber.com/rusthound-data-collector-for-bloodhound-written-in-rust/
  • BloodHound.py: https://github.com/fox-it/BloodHound.py
  • SharpHound: https://github.com/BloodHoundAD/SharpHound
  • BloodHound: https://github.com/BloodHoundAD/BloodHound
  • BloodHound docs: https://bloodhound.readthedocs.io/en/latest/index.html
  • GOAD: https://github.com/Orange-Cyberdefense/GOAD
  • ly4k BloodHoundバージョン: https://github.com/ly4k/BloodHound
  • Certipy: https://github.com/ly4k/Certipy
ツールをダウンロード
ツール環境オブジェクト数時間コマンド
SharpHound.exeWindows ~3500~51.605sMeasure-Command { sharphound.exe -d essos.local --ldapusername 'khal.drogo' --ldappassword 'horse' --domaincontroller '192.168.56.12' -c All }
BloodHound.pyLinux ~3500~9.657stime python3 bloodhound.py -u khal.drogo -p horse -d essos.local -ns 192.168.56.12 --zip -c all
RustHound.exeWindows ~3500~5.315sMeasure-Command { rusthound.exe -d essos.local -u [email protected] -p horse -z }
RustHoundLinux ~3500~3.166stime rusthound -d essos.local -u [email protected] -p horse -z
  • CA
    • User Specified SAN
    • Request Disposition