
Ingesteur de données Active Directory pour BloodHound Legacy écrit en Rust. 🦀
Cette version est uniquement compatible avec BloodHound Legacy 4.x
La version compatible avec BloodHound Community Edition (CE) se trouve ici RustHound-CE.
Toutes les fonctionnalités de SharpHound n'ont pas été implémentées. Certaines existent dans RustHound mais pas dans SharpHound ou BloodHound-Python. Veuillez vous référer à la feuille de route pour plus d'informations.
RustHound est un outil collecteur multi-plateforme pour BloodHound écrit en Rust, ce qui le rend compatible avec Linux, Windows et macOS.
Aucune détection par antivirus et cross-compilé.
RustHound génère des fichiers JSON pour les utilisateurs, groupes, ordinateurs, UO, GPO, conteneurs et domaines, pouvant être analysés avec BloodHound.
💡 Si vous pouvez utiliser SharpHound, utilisez-le. Utilisez RustHound comme solution de secours si SharpHound est détecté par l'antivirus ou s'il n'est pas compatible avec votre système d'exploitation.
Vous pouvez utiliser la commande make pour installer RustHound ou pour le compiler pour Linux ou Windows.
make install
rusthound -h
Plus de commandes dans le Makefile :
Default:
usage: make install
usage: make uninstall
usage: make debug
usage: make release
Static:
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
Without cli argument:
usage: make windows_noargs
Dependencies:
usage: make install_windows_deps
usage: make install_linux_musl_deps
usage: make install_macos_deps
Utilisez RustHound avec Docker pour être sûr d'avoir toutes les dépendances.
docker build --rm -t rusthound .
# Ensuite
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
Vous devrez installer Rust sur votre système.
https://www.rust-lang.org/fr/tools/install
RustHound prend en charge Kerberos et GSSAPI. Il nécessite donc Clang et ses bibliothèques de développement, ainsi que les bibliothèques de développement Kerberos. Sur Debian et Ubuntu, cela signifie clang-N, libclang-N-dev et libkrb5-dev.
Par exemple :
# 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
Voici comment compiler les versions "release" et "debug" avec la commande cargo.
git clone https://github.com/OPENCYBER-FR/RustHound
cd RustHound
cargo build --release
# ou version debug
cargo b
Le résultat se trouve dans le dossier target/release ou target/debug.
Vous trouverez ci-dessous la méthodologie de compilation pour chacun des systèmes d'exploitation à partir de Linux. Si vous avez besoin d'un autre système de compilation, veuillez consulter la liste à ce lien : https://doc.rust-lang.org/nightly/rustc/platform-support.html
# Installer rustup et Cargo pour Linux
curl https://sh.rustup.rs -sSf | sh
# Ajouter les dépendances Linux
rustup install stable-x86_64-unknown-linux-gnu
rustup target add x86_64-unknown-linux-gnu
# Compilation statique pour 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
Le résultat se trouve dans le dossier target/x86_64-unknown-linux-gnu/release.
# Installer rustup et Cargo dans Linux
curl https://sh.rustup.rs -sSf | sh
# Ajouter les dépendances Windows
rustup install stable-x86_64-pc-windows-gnu
rustup target add x86_64-pc-windows-gnu
# Compilation statique pour 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
Le résultat se trouve dans le dossier target/x86_64-pc-windows-gnu/release.
Documentation géniale : https://wapl.es/rust/2019/02/17/rust-cross-compile-linux-to-macos.html
# Installer rustup et Cargo dans Linux
curl https://sh.rustup.rs -sSf | sh
# Ajouter la chaîne d'outils 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"