此工具现已弃用,推荐使用 SHARPHOUND3。使用此方法收集的数据将无法与 BloodHound 3.0 配合使用
SharpHound - BloodHound Ingestor 的 C# 重写版
获取 SharpHound
SharpHound 的最新构建版本始终位于 BloodHound 仓库 此处
编译说明
Sharphound 使用 C# 7.0 特性编写。要轻松编译此项目,请使用 Visual Studio 2017。
如果您希望在旧版本的 Visual Studio 上编译,可以安装 Microsoft.Net.Compilers nuget 包。
构建项目将生成一个可执行文件以及一个封装该可执行文件的 PowerShell 脚本。所有依赖项都会合并到二进制文件中。
要求
Sharphound 的目标平台是 .Net 3.5。Sharphound 必须在域用户的上下文中运行,既可以通过直接登录,也可以通过其他方法(如 RUNAS)。
更多信息
用法
枚举选项
- CollectionMethod - 要使用的收集方法。此参数接受逗号分隔的值列表。可取值如下(默认值:Default):
- Default - 执行组成员身份收集、域信任收集、本地管理员收集和会话收集
- Group - 执行组成员身份收集
- LocalAdmin - 执行本地管理员收集
- RDP - 执行远程桌面用户收集
- DCOM - 执行分布式 COM 用户收集
- GPOLocalGroup - 使用组策略对象执行本地管理员收集
- Session - 执行会话收集
- ComputerOnly - 执行本地管理员、RDP、DCOM 和会话收集
- LoggedOn - 执行特权会话收集(需要目标系统上的管理员权限)
- Trusts - 执行域信任枚举
- ACL - 执行 ACL 收集
- Container - 执行容器收集
- DcOnly - 仅使用 LDAP 执行收集。包括 Group、Trusts、ACL、ObjectProps、Container 和 GPOLocalGroup。
- All - 执行除 GPOLocalGroup 和 LoggedOn 之外的所有收集方法
- SearchForest - 搜索林中的所有域,而不仅仅是当前域
- Domain - 搜索特定域。如果为 null,则使用当前域(默认值:null)
- Stealth - 执行隐蔽收集方法。所有隐蔽选项均为单线程。
- SkipGCDeconfliction - 在会话枚举期间跳过全局编录去冲突。这可以加快枚举速度,但可能导致数据不准确。
- ExcludeDc - 从枚举中排除域控制器(避免 Microsoft ATA 标记 :) )
- ComputerFile - 指定要从中加载计算机名称/IP 的文件
- OU - 指定要枚举的 OU
连接选项
- DomainController - 指定要连接的域控制器(默认值:null)
- LdapPort - 指定 LDAP 使用的端口(默认值:0)
- SecureLdap - 使用安全 LDAP 而不是常规 LDAP 连接到 AD。默认将连接到端口 636。
- IgnoreLdapCert - 忽略 LDAP SSL 证书。例如,如果存在自签名证书,则可使用此选项
- LDAPUser - 用于连接 LDAP 的用户名。同时需要 LDAPPassword 参数(默认值:null)
- LDAPPass - 用于连接 LDAP 的用户密码。同时需要 LDAPUser 参数(默认值:null)
- DisableKerbSigning - 禁用 LDAP 加密。不建议使用。
性能选项
- Threads - 指定要使用的线程数(默认值:10)
- PingTimeout - 指定 ping 请求的超时时间(毫秒)(默认值:250)
- SkipPing - 指示 Sharphound 跳过 ping 请求以检查系统是否在线
- LoopDelay - 会话循环之间的间隔秒数(默认值:300)
- MaxLoopTime - 继续会话循环的时间量。格式为 0d0h0m0s。如果为 Null,则循环两个小时。(默认值:2h)
- Throttle - 每次请求计算机后添加延迟。单位为毫秒(默认值:0)
- Jitter - 为节流添加百分比抖动。(默认值:0)
输出选项
- JSONFolder - 用于存储 JSON 文件的文件夹(默认值:.)
- JSONPrefix - 添加到 JSON 文件的前缀(默认值:"")
- NoZip - 不要将 JSON 文件压缩到 zip 文件中。将 JSON 文件保留在磁盘上。(默认值:false)
- EncryptZip - 为 zip 文件添加随机生成的密码。
- ZipFileName - 指定 zip 文件的名称
- RandomFilenames - 随机化输出文件名
- PrettyJson - 以多行缩进格式输出 JSON,以提高可读性。代价是文件大小增加。
缓存选项
- CacheFile - Sharphound 缓存的文件名。(默认值:.bin)
- NoSaveCache - 不将缓存文件保存到磁盘。如果没有此标志,.bin 将被写入磁盘
- Invalidate - 使缓存文件失效并构建新缓存
杂项选项
- StatusInterval - 枚举期间显示进度的间隔时间(毫秒)(默认值:30000)
- Verbose - 启用详细输出