.NET内网实战:通过waitfor实现内网权限维持

01阅读须知

此文所节选自小报童《.NET 内网实战攻防》专栏,主要内容有.NET在各个内网渗透阶段与Windows系统交互的方式和技巧,对内网和后渗透感兴趣的朋友们可以订阅该电子报刊,解锁更多的报刊内容。

02基本介绍

本文内容部分节选自小报童《.NET 通过指定的COM接口执行命令绕过UAC》,完整的文章内容请加入小报童后订阅查看。

图片

03原理分析

在Windows操作系统中,UAC(用户帐户控制)机制用于防止未经授权的程序以管理员权限执行操作,从而增加系统安全性。渗透测试人员利用 ICMLuaUtil 接口的 ShellExec 方法,结合 COM 接口创建具有提升权限的 COM 对象,可以在不触发 UAC 弹窗的情况下启动具有管理员权限的进程

3.1 Waitfor

Waitfor.exe 主要用于在 Windows 环境中实现信号或者事件的等待和同步功能,控制程序的执行顺序或在特定条件下暂停执行,使得 Waitfor.exe 成为系统管理、自动化任务和定时任务中的一个重要工具。Waitfor.exe有一个参数 <name>:表示需要等待的信号名称,可以是任意字符串。

比如,在我们接收到名为 dotNetMatrix 的信号后,使用启动本地计算器进程,具体命令如下所示。

waitfor dotNetMatrix && calc.exe

接着,在本地计算机上发送一个名为 dotNetMatrix 的信号, 有个参数/si 表示等待一个指定的信号。这个参数的意思是 等待信号并在成功接收到信号时返回,运行后如下图所示。

图片

3.2 .NET创建WMI后门

我们的思路是通过创建了一个 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");

实战中,需要将Code 属性中的命令替换成输入的参数命令。

3.3 内网实战利用

首先,通过.NET控制台生成一个自动化利用程序Waitfor.exe,在信号接收端主机运行自定义的waitfor控制台程序,这里启动命令calc,当然也可以替换成别的系统命令,当接收到信号指定后成功启动calc进程

图片

随后,在信号发送端机器上执行以下命令,表示向信号接收端 192.168.101.77 发送名为dotNetMatrix 的信号。

图片

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

04.NET 电子报刊

电子报刊《.NET 内网安全攻防》专栏,内容主要有.NET在各个内网渗透阶段与Windows系统交互的方式和技巧,可细分为以下8个方向。

1) .NET 安全防御绕过
2) .NET 本地权限提升
3) .NET 内网信息收集
4) .NET 内网代理通道
5) .NET 内网横向移动
6) .NET 目标权限维持
7) .NET 数据传输外发
8) .NET 目标痕迹清理

图片

图片

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dot.Net安全矩阵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值