Sharp4Waitfor:通过系统默认的waitfor.exe实现内网权限维持

Sharp4Waitfor 是一款专为内网渗透设计的工具,用于维持目标主机的权限。通过此工具,攻击者可以在被攻击的系统上保持持久的控制权,并在接收到特定信号后执行指定的操作。因此,Sharp4Waitfor 在红队演练和渗透测试中成为一个重要的工具。

1. waitfor.exe

Waitfor.exe 是操作系统自带的一个命令行工具,位于System32目录下,主要用于在 Windows 环境中实现信号或者事件的等待和同步功能,可以用于脚本和批处理文件中,控制程序的执行顺序或在特定条件下暂停执行,使得 Waitfor.exe 成为系统管理、自动化任务和定时任务中的一个重要工具。Waitfor.exe 的基本语法如下

waitfor [<options>] <name> [/t <timeout>] [/s <hostname>] [/m <message>]

参数name:表示需要等待的信号名称,可以是任意字符串。/t timeout:设置超时时间(以秒为单位),如果超时未收到信号,则命令结束。/s hostname:指定要等待的计算机的名称,默认为本地计算机,/m message:可选参数,指定在发送信号时要附加的消息。
需要说明的是:接收信号的计算机只有在与发送信号的计算机处于同一域中时才能接收信号。

1.1 监听接收信号

我们首先创建一个监听的信号,比如接收到名为 dotNetMatrix 的信号后,使用启动本地计算器进程。这里使用了 && 符号,该符号是一个逻辑运算符,用于连接两个命令,表示如果前一个命令成功执行,则执行后一个命令,具体命令如下所示。

waitfor dotNetMatrix && calc.exe

在这个示例中,当接收到名为 dotNetMatrix 信号后,计算器将被启动,如下图所示

1.2 开始发送信号

同样使用 waitfor.exe 命令,在本地计算机上发送一个名为 dotNetMatrix 的信号,语法如下所示。

waitfor /s 127.0.0.1 /si dotNetMatrix

/si 参数表示等待一个指定的信号。这个参数的意思是 等待信号并在成功接收到信号时返回,运行后如下图所示。

2. 使用.NET控制台创建WMI后门程序

大概的思路是通过.NET控制台创建一个名为 Win32_Backdoor 的 WMI 类,并在其属性中添加一段代码,指定执行 cmd /c start calc.exe,也就是启动计算器,将来这个控制台作为后门放在目标主机上,具体代码如下所示。

ManagementClass managementClass = new Management.ManagementClass('root\cimv2', null, null)

这行代码创建了一个 WMI 管理类对象,指向 root\cimv2 命名空间。这是 Windows 中用于管理系统资源的核心命名空间。
随后,设置类名为 Win32_Backdoor,并通过 Put() 方法保存,再使用 Properties.Add 方法为管理类添加名为 Code 的属性,值为执行计算器的命令,代码如下所示。

managementClass.Name = "Win32_Backdoor";
managementClass.Put();
managementClass.Properties.Add("Code", "cmd /c start calc.exe");

上述这段代码如果在没有管理员权限的环境中运行,将会遇到权限不足的异常。请确保以管理员身份执行。这里的calc.exe,未来替换成控制台输入的参数,因此可以自由指定。

3. 实战利用

首先,在发送信号端的主机上运行以下命令,比如192.168.101.104,然后建立与信号接收端主机的连接,比如192.168.101.77,这里使用net use 命令。

net use \\192.168.101.77 /user:PC-20230831QDRR\Administrator 123456

其中,192.168.101.77 是目标维权的主机 IP 地址,PC-20230831QDRR 是用户名,123456 是对应的密码。
接着,在信号接收端主机运行自定义的Sharp4Waitfor控制台程序,这里指定启动的参数命令为calc,当然也可以替换成别的系统命令,如下图所示

等于是在目标主机上开启了一个监听,等待外部攻击者发送信号,收到对应的信号名 dotNetMatrix 时,便会启动指定的calc进程。
随后,攻击者在信号发送端机器上执行以下命令,表示向信号接收端 192.168.101.77 发送名为dotNetMatrix 的信号,具体命令如下所示。

waitfor /s 192.168.101.77 /si dotNetMatrix

等待发送完信号之后,目标主机上弹出计算器进程,并且可以长期不断的监听,每当客户端发送信号均可以弹出计算器,如下图所示。

4. 小结

综上,Sharp4Waitfor 可用于维持目标主机的权限。通过此工具,攻击者可以在内网中被攻击的系统上保持持久的控制权,并在接收到特定信号后执行指定的操作。

0 条评论
某人
表情
可输入 255