Sharp4Waitfor:通过系统默认的waitfor.exe实现内网权限维持
字数 1121 2025-08-22 12:23:12
Sharp4Waitfor 内网权限维持工具详解
1. 工具概述
Sharp4Waitfor 是一款专为内网渗透设计的工具,利用 Windows 系统自带的 waitfor.exe 程序实现权限维持功能。该工具允许攻击者在目标主机上保持持久控制权,并在接收到特定信号后执行指定操作。
2. waitfor.exe 基础
2.1 waitfor.exe 简介
waitfor.exe 是 Windows 系统自带命令行工具,位于 System32 目录下,主要用于实现信号或事件的等待和同步功能。
2.2 基本语法
waitfor [<options>] <name> [/t <timeout>] [/s <hostname>] [/m <message>]
参数说明:
name:需要等待的信号名称(任意字符串)/t timeout:设置超时时间(秒),超时未收到信号则命令结束/s hostname:指定要等待的计算机名称(默认为本地计算机)/m message:发送信号时附加的消息(可选)
重要限制:接收信号的计算机必须与发送信号的计算机处于同一域中。
3. 基本使用方法
3.1 监听接收信号
创建监听信号的基本命令格式:
waitfor 信号名称 && 要执行的命令
示例(接收到信号后启动计算器):
waitfor dotNetMatrix && calc.exe
3.2 发送信号
发送信号的基本命令格式:
waitfor /s 目标IP /si 信号名称
其中 /si 参数表示等待一个指定的信号。
示例(向本地发送信号):
waitfor /s 127.0.0.1 /si dotNetMatrix
4. 高级应用:WMI 后门程序
4.1 创建 WMI 后门
使用 .NET 创建 WMI 后门程序的基本思路:
- 创建一个名为
Win32_Backdoor的 WMI 类 - 在其属性中添加执行代码(如
cmd /c start calc.exe)
4.2 示例代码
ManagementClass managementClass = new Management.ManagementClass("root\\cimv2", null, null);
managementClass.Name = "Win32_Backdoor";
managementClass.Put();
managementClass.Properties.Add("Code", "cmd /c start calc.exe");
权限要求:此代码需要管理员权限才能成功执行。
5. 实战利用步骤
5.1 建立连接
在发送信号端主机上建立与目标主机的连接:
net use \\192.168.101.77 /user:PC-20230831QDRR\Administrator 123456
参数说明:
192.168.101.77:目标主机IPPC-20230831QDRR:用户名123456:密码
5.2 目标主机设置
在目标主机上运行 Sharp4Waitfor 控制台程序,指定要执行的命令(如 calc)。
5.3 发送信号
从攻击主机发送信号:
waitfor /s 192.168.101.77 /si dotNetMatrix
6. 防御建议
- 监控系统异常进程,特别是 waitfor.exe 的异常使用
- 限制域内计算机之间的非必要通信
- 加强账户密码管理,防止凭证泄露
- 定期检查 WMI 中的异常类
- 实施最小权限原则,限制管理员权限的使用
7. 总结
Sharp4Waitfor 利用系统自带工具实现权限维持,具有以下特点:
- 隐蔽性强(使用系统自带工具)
- 持久性好(可长期监听)
- 灵活性高(可自定义执行命令)
- 依赖域环境(仅限同一域内使用)
该工具在红队演练和渗透测试中具有重要价值,同时也提醒蓝队需要加强对系统自带工具的监控。