一、项目简介:SharpCollection 是什么?
在网络安全领域,红队演练和渗透测试已成为评估和提升组织安全性的关键手段。红队通过模拟真实的网络攻击,测试目标系统的防御能力,而渗透测试则帮助发现潜在漏洞。为了高效完成这些任务,红队需要一系列功能强大、适应性强且易于部署的工具。SharpCollection 正是在这一背景下应运而生。
SharpCollection(GitHub 地址)是由安全研究员 Flangvik 发起并维护的一个专注于 C# 语言编写的红队工具集合,旨在为渗透测试、红队演练、横向移动和信息收集等任务提供便捷、预编译的实用工具。该项目汇集了多个著名的 Offensive Security 工具(如 SharpHound、SharpRDP、SharpWMI 等)的 预编译版本,并按照多种 .NET Framework 版本和 CPU 架构进行打包,方便渗透测试人员在不同目标环境中快速部署和使用。
SharpCollection 的主要优势包括:
- 免去本地编译的麻烦:预编译版本无需用户自行配置开发环境,节省时间。
- 多版本适配性强:支持多种 .NET Framework 版本和架构,适配不同 Windows 系统。
- 功能全面:工具涵盖信息收集、权限提升、横向移动等渗透测试的多个阶段。
- 高可信度:多为开源项目的稳定构建,风险低且经过社区验证。
这些特性使 SharpCollection 成为红队和渗透测试人员在执行复杂任务时的得力助手。无论是面对企业内网的老旧系统,还是现代化的 Windows 10/11 环境,SharpCollection 都能提供灵活的解决方案。
二、版本体系概览:SharpCollection 提供了哪些构建版本?
SharpCollection 的设计充分考虑了 Windows 环境的多样性,其文件结构清晰,按 .NET Framework 版本和 CPU 架构进行分类,常见目录结构如下:
SharpCollection/
├── NetFramework_4.0_Any/
├── NetFramework_4.5_Any/
├── NetFramework_4.7_Any/
├── NetFramework_4.0_x86/
├── NetFramework_4.5_x86/
├── NetFramework_4.7_x86/
├── NetFramework_4.0_x64/
├── NetFramework_4.5_x64/
├── NetFramework_4.7_x64/
从目录结构可以看出,每个工具都被编译为 不同 .NET Framework 版本(4.0、4.5、4.7)和 不同平台架构(x86、x64、AnyCPU)。这种设计体现了作者对工具在实际部署中兼容性和灵活性的重视。
1. 不同 .NET Framework 版本说明
.NET Framework 是 Microsoft 开发的一个软件框架,广泛用于 Windows 应用程序开发。SharpCollection 提供的三种主要 .NET Framework 版本各有特点:
版本 | 发布时间 | 特性简述 |
---|---|---|
4.0 | 2010 | 最基础的 .NET 4 系列,兼容性最广泛,适合老旧系统。 |
4.5 | 2012 | 增加异步编程支持、WPF 改进、安全性加固,适配主流环境。 |
4.7 | 2017 | 支持高 DPI、增强加密功能,与 Windows 10 深度融合。 |
版本选择建议:
- .NET 4.0:适用于老旧系统(如 Windows 7 或部分企业内网机器),但不支持新特性,可能在现代环境中功能受限。
- .NET 4.5:兼顾适配性和功能性,适合绝大多数企业级环境,是一个平衡的选择。
- .NET 4.7:专为现代系统(如 Windows 10/11)设计,支持高级 API,适合需要复杂功能或绕过安全机制的场景。
注意:高版本 .NET Framework 通常向下兼容,因此基于 4.0 构建的工具在 4.5 或 4.7 环境中通常也能正常运行(前提是未使用已被废弃的 API)。
2. 构建架构差异
SharpCollection 的工具还根据 CPU 架构分为三种类型:
架构类型 | 含义 | 使用场景举例 |
---|---|---|
x86 | 强制编译为 32 位应用 | 目标为 32 位系统,或需注入 32 位进程(如老版本浏览器)。 |
x64 | 强制编译为 64 位应用 | 目标为 64 位系统,或需注入 64 位进程(如现代系统服务)。 |
AnyCPU | 运行时自动适配系统架构 | 通用性最佳,适合不确定目标系统架构的场景。 |
架构选择建议:
- 如果工具需要通过内存注入或 DLL 劫持等方式加载到目标进程中,必须选择与目标进程架构一致的版本,否则可能触发
BadImageFormatException
错误。 - 在未知目标系统架构的情况下,AnyCPU 是最安全的选择,因为它能根据运行时环境自动适配。
三、Windows 系统与 .NET Framework 支持情况
在实际渗透测试中,选择合适的 SharpCollection 版本需要了解目标系统的 .NET Framework 支持情况。以下是主流 Windows 系统的默认 .NET Framework 版本及对 SharpCollection 工具的兼容性分析:
各主流 Windows 系统内置 .NET 版本对照表:
Windows 版本 | 默认 .NET 版本 | 支持 .NET 4.0 构建工具? |
---|---|---|
Windows XP | 无需手动安装 | ❌(需手动安装) |
Windows Vista | 默认 3.0 | ❌(需手动安装) |
Windows 7 | 默认 3.5(含 2.0) | ❌(需手动安装) |
Windows 7 SP1+ | 可安装 4.0 或以上 | ✅ |
Windows 8 | 默认 4.5 | ✅(兼容 4.0) |
Windows 8.1 | 默认 4.5.1 | ✅ |
Windows 10 | 默认 4.6+ | ✅ |
Windows 11 | 默认 4.8 | ✅ |
兼容性结论:
- Windows 7 SP1 及以上版本只要安装了 .NET Framework 4.0 或更高版本,即可运行 SharpCollection 的所有工具。
- Windows 10 和 11 默认支持所有 .NET 4.x 版本,兼容性最佳。
- 对于老旧系统(如 Windows XP 或 Vista),需要手动安装 .NET Framework 4.0 或更高版本,否则工具无法运行。
实际操作中的注意事项:
- 企业内网环境中,部分系统可能因安全策略限制未安装高版本 .NET Framework,此时 .NET 4.0 构建的工具是首选。
- 在现代系统中(如 Windows 10/11),可以优先选择 .NET 4.7 构建的工具,以利用更高级的 API 和功能。
四、实战选择建议:不同目标场景如何选版本?
在红队演练或渗透测试中,目标系统的多样性要求测试人员根据具体场景选择合适的 SharpCollection 版本。以下是几种常见场景下的版本选择建议:
情景一:目标系统为未知版本
推荐版本:NetFramework_4.0_Any
理由:
- AnyCPU 架构能自动适配 x86 或 x64 系统,减少架构不匹配的风险。
- .NET 4.0 是兼容性最广的版本,适用于从 Windows 7 到 Windows 11 的几乎所有系统。
- 在企业内网中,未知系统可能是老旧的 Windows 7 或未更新的服务器,4.0 版本能最大程度确保工具正常运行。
使用场景:
- 初始渗透阶段,尚未获取目标系统的详细信息。
- 快速部署工具以收集初步情报。
情景二:已知目标系统为 Windows 10 x64 且启用了 AMSI
推荐版本:NetFramework_4.7_x64
理由:
- Windows 10 默认启用了 AMSI(反恶意软件扫描接口),部分基于 .NET 4.0 的老旧构建可能因代码模式过于常见而被检测拦截。
- .NET 4.7 支持更新的 API(如改进的
System.Management.Automation
),可结合 AMSI 绕过技术(如 AMSI Bypass Loader)提高隐蔽性。 - x64 架构与现代 Windows 10 系统一致,适合注入到 64 位进程或直接运行。
使用场景:
- 针对现代企业环境的深入渗透。
- 需要绕过高级防御机制(如 EDR 或 AMSI)的场景。
情景三:需要注入目标特定进程(如 32 位浏览器)
推荐版本:NetFramework_X.X_x86
理由:
- 工具的架构必须与目标进程的架构一致。例如,32 位浏览器(如老版本 IE)只能加载 x86 编译的工具,加载 x64 版本会导致错误。
- 根据目标系统的 .NET Framework 版本,选择对应的 x86 构建(如 4.0_x86 或 4.5_x86)。
使用场景:
- 通过内存注入或 DLL 劫持攻击特定进程。
- 针对运行 32 位应用程序的系统(如某些企业定制软件)。
五、如何验证目标系统支持的 .NET 版本?
在渗透测试中,确认目标系统支持的 .NET Framework 版本是选择合适工具版本的前提。以下是通过 PowerShell 命令快速验证的方法:
PowerShell 命令:
Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full' | Get-ItemPropertyValue -Name Release
执行后,PowerShell 将返回一个 Release 值,可对照下表确定 .NET Framework 版本:
Release 值 | .NET Framework 版本 |
---|---|
378389 | 4.5 |
378675-378758 | 4.5.1 |
379893 | 4.5.2 |
393295+ | 4.6+ |
461308+ | 4.7+ |
528040+ | 4.8(Windows 11 默认) |
操作建议:
- 在获得目标系统 shell 后,优先运行上述命令以确认 .NET 版本。
- 如果无法运行 PowerShell,可通过其他方式(如查看系统注册表或尝试运行不同版本的工具)推测支持的版本。
六、典型工具分析
SharpCollection 包含了多个功能强大的工具,覆盖了渗透测试的各个阶段。以下是对几个典型工具的介绍及其版本选择建议:
工具名 | 用途简述 | 版本选择建议 |
---|---|---|
SharpHound | 收集 Active Directory 环境情报 | 4.0/Any 优先 |
SharpRDP | 控制和管理 RDP 会话 | 4.5/Any |
SharpWeb | 实现 Web 请求和代理功能 | 4.7 优先 |
Seatbelt | 本地系统信息收集(如用户、权限、配置) | 4.0/Any |
SharpWMI | 使用 WMI 进行横向移动和远程执行 | 4.5+ 推荐 |
工具详解:
-
SharpHound:
- 功能:用于 BloodHound 的数据收集,分析 Active Directory 环境的权限关系和潜在攻击路径。
- 版本选择:4.0/Any 是最通用的选择,适合初始情报收集阶段。
- 使用场景:企业内网环境中,快速收集 AD 信息以规划攻击路径。
-
SharpRDP:
- 功能:通过 RDP 协议实现远程控制,无需交互式登录。
- 版本选择:4.5/Any 兼顾兼容性和功能,适合大多数 RDP 场景。
- 使用场景:在已获得凭据的情况下,通过 RDP 横向移动。
-
SharpWeb:
- 功能:支持 Web 请求、代理功能,常用于模拟用户行为或窃取 Web 数据。
- 版本选择:4.7 版本支持更复杂的 Web 功能,推荐优先使用。
- 使用场景:针对 Web 应用的攻击或数据泄露测试。
-
Seatbelt:
- 功能:全面收集目标系统的配置信息,包括用户账户、权限、补丁状态等。
- 版本选择:4.0/Any 兼容性最佳,适合初步系统枚举。
- 使用场景:初始访问后,快速了解目标系统的安全状况。
-
SharpWMI:
- 功能:利用 Windows Management Instrumentation(WMI)执行远程命令或横向移动。
- 版本选择:4.5 或更高版本支持更稳定的 WMI 操作。
- 使用场景:在企业内网中通过 WMI 实现无文件攻击。
七、总结与实战意义
SharpCollection 是一套精心设计和编译的 C# 工具集,涵盖了 Windows 渗透测试中的几乎所有核心功能点。其提供的多种 .NET Framework 版本和 CPU 架构变体,为红队人员提供了极大的灵活性和适配能力。无论是在面对未知系统环境的初始攻击,还是在精确控制工具部署细节时选择合适的版本,SharpCollection 都展现了其在实战中的实用性与专业性。
关键总结:
- .NET 4.0_AnyCPU 是最通用的选择,适合快速部署和未知环境。
- 架构匹配至关重要:在注入目标进程时,需确保工具与进程的 x86/x64 架构一致。
- Windows 10/11 兼容性强:默认支持所有 SharpCollection 构建版本。
- 版本选择影响隐蔽性:在现代系统中使用 .NET 4.7 构建的工具,结合 AMSI 绕过技术,可显著提高攻击的隐蔽性。
实战意义:
SharpCollection 的设计理念体现了红队工具的未来趋势:模块化、兼容性强、易于部署。通过预编译和多版本支持,SharpCollection 降低了红队人员在复杂环境中的技术门槛,使其能够专注于攻击策略而非工具配置。同时,其开源性质和社区支持确保了工具的可信度和持续更新,使其在红队演练、渗透测试和安全研究中具有不可替代的价值。
在实际操作中,红队人员应结合目标环境的具体情况(如系统版本、防御机制、进程架构等),灵活选择 SharpCollection 的工具版本,并辅以其他技术(如 PowerShell 脚本、AMSI 绕过、混淆加载)以提升攻击效果。SharpCollection 不仅是工具集合,更是红队作战理念的体现:高效、隐蔽、适应性强。