Not all SharpHound features are implemented yet. Please refer to the roadmap for more information.
RustHound is a cross-platform BloodHound collector tool, written in Rust. (Linux,Windows,MacOS)
No anti-virus detection and cross-compiled.
RustHound generate users,groups,computers,ous,gpos,containers,domains json files to analyze it with BloodHound application.
💡 If you can use SharpHound.exe, use it. Rusthound is a backup solution if SharpHound.exe is detected by AV or if SharpHound.exe isn't executable from the system where you have access to.
```bash
USAGE:
rusthound [FLAGS] [OPTIONS] --domain
FLAGS: --dns-tcp Use TCP instead of UDP for DNS queries --fqdn-resolver [MODULE] Use fqdn-resolver module to get computers IP address -h, --help Prints help information --ldaps Prepare ldaps request. Like ldaps://G0H4N.LAB/ -v Sets the level of verbosity -V, --version Prints version information -z, --zip RustHound will compress the JSON files into a zip archive (doesn't work with Windows)
OPTIONS:
-d, --domain
You need to install rust in your system (Windows/Linux/MacOS).
https://www.rust-lang.org/fr/tools/install
RustHound support Kerberos/GSSAPI but this means that it needs Clang and its development libraries, as well as the Kerberos development libraries. On Debian/Ubuntu, that means clang-N, libclang-N-dev and libkrb5-dev.
For example: ```bash
apt-get -y install gcc libgssapi-krb5-2 libkrb5-dev libsasl2-modules-gssapi-mit ```
Here is how to compile the "release" and "debug" versions from "cargo" command.
```bash git clone https://github.com/OPENCYBER-FR/RustHound cd RustHound cargo build --release
cargo b ```
The result can be found in "target/release" or in "target/debug" folder.
Below you can find the compilation methodology for each of the OS from Linux. If you need another compilation system, please consult the list in this link : https://doc.rust-lang.org/nightly/rustc/platform-support.html
```bash
curl https://sh.rustup.rs -sSf | sh
rustup install stable-x8664-unknown-linux-gnu rustup target add x8664-unknown-linux-gnu
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 ```
The result can be found in "target/x86_64-unknown-linux-gnu/release" folder.
```bash
curl https://sh.rustup.rs -sSf | sh
rustup install stable-x8664-pc-windows-gnu rustup target add x8664-pc-windows-gnu
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 ```
The result can be found in "target/x86_64-pc-windows-gnu/release" folder.
bash
git clone https://github.com/OPENCYBER-FR/RustHound
cd RustHound
cargo doc --open --no-deps
Example are done on the GOADv2 implemented by mayfly:
```bash
./rusthound -d north.sevenkingdoms.local -u 'jeor.mormont@north.sevenkingdoms.local' -p 'L0ngCl@w' -o /tmp/demo/rusthound_north -z
./rusthound -d north.sevenkingdoms.local -ldaps -u 'jeor.mormont@north.sevenkingdoms.local' -p 'L0ngCl@w' -o /tmp/demo/rusthound_north -z
./rusthound -d north.sevenkingdoms.local -ldaps -P 3636 -u 'jeor.mormont@north.sevenkingdoms.local' -p 'L0ngCl@w' -o /tmp/demo/rusthound_north -z
./rusthound -d north.sevenkingdoms.local -ldaps -u 'jeor.mormont@north.sevenkingdoms.local' -p 'L0ngCl@w' -o /tmp/demo/rusthound_north --fqdn-resolver
./rusthound -d north.sevenkingdoms.local -ldaps -u 'jeor.mormont@north.sevenkingdoms.local' -p 'L0ngCl@w' -o /tmp/demo/rusthound_north --fqdn-resolver --tcp-dns --name-server 192.168.56.10 -z
./rusthound -d north.sevenkingdoms.local -ldaps -u 'jeor.mormont@north.sevenkingdoms.local' -p 'L0ngCl@w' -o /tmp/demo/rusthoundnorth --fqdn-resolver > /tmp/rhoutput 2>&1
rusthound.exe -d sevenkingdoms.local --ldapfqdn kingslanding ```
You can find the custom queries used in the demo, in the resource folder.
Use the following command to install it:
bash
cp resources/customqueries.json ~/.config/bloodhound/customqueries.json
BIND
NTLM
GSSAPI
for Windows ok but not tested for LinuxParsing Features
Properties:sidhistory
not tested!
HasSIDHistory
ChildOus
Direct_Members
GPlink
haslaps
AllowedToDelegate
AllowedToAct
Sessions
DcomUsers
RemoteDesktopUsers
LocalAdmins
PSRemoteUsers
ACL
ReadGMSAPassword
supportAll
Properties
: domainsid
Properties
: whencreated
IsACLProtected
IsDeleted
NT AUTHORITY
: DOMAIN.LOCAL-S-1-5-20
userProperties
: unixpassword
Properties
: unicodepassword
Properties
: sfupassword
Properties
: trustedtoauth
Properties:sidhistory
not tested!HasSIDHistory
Properties
: samaccountname
Properties
: logonscript
ChildOus
to ChildObjects
ObjectIdentifier
and ObjectType
for all ChildObjects
Properties
: highvalue
GPOChanges
LocalAdmins
RemoteDesktopUsers
DcomUsers
PSRemoteUsers
AffectedComputers
Trusts
TargetDomainSid
TargetDomainName
IsTransitive
SidFilteringEnabled
TrustDirection
TrustType
ChildObjects
GPOChanges
LocalAdmins
RemoteDesktopUsers
DcomUsers
PSRemoteUsers
AffectedComputers
ChildObjects
ObjectIdentifier
and ObjectType
for all ChildObjects
ObjectIdentifier
IsDeleted
IsACLProtected
Aces
Properties
: domain
Properties
: domainsid
Properties
: name
Properties
: distinguishedname
Properties
: samaccountname