对混淆变形的Webshell分析是怎样的

WebShell是什么?

在最初的时候,Webshell经常被用来作为Web服务器管理员对服务器进行远程管理的一类脚本的简称。后来,随着一些Webshell管理工具的诞生,使得获取Web权限的过程被很大程度地简易化,于是逐渐被称为Web入侵的工具脚本。

Webshell不同于漏洞,而是利用应用漏洞或服务器漏洞(文件上传漏洞、文件包含漏洞等)将脚本文件上传到服务器进行后续利用,属于渗透测试的后续利用和ATT&CK的TA0002 Execution(执行)阶段。

对混淆变形的Webshell分析是怎样的

图1 TA0002

参考来源:https://mitre-attack.github.io/attack-navigator/(ATT&CK导航器)

攻击者为了绕过检测和防护设备、软件等的检测,都会经常变换自己的Webshell写法,可以保证功能的前提下确保自己的脚本不会被检测到,其中php脚本较为突出,由于php脚本语言存在很多可利用的函数,因此导致了php可以有千变万化的混淆变形写法。

一句话木马也属于Webshell脚本,对一句话木马感兴趣的小伙伴可以参考上期的《一句话木马的多种变形方式》自行学习和了解,本期文章主要不再赘述。

背景

之前分析Webshell时,发现有一类Webshell完全能绕过各种各样的检测软件,这类脚本常常在代码层面上看似乎毫无意义,也没有常见的Webshell特征,但经过层层的抽丝剥茧,就不难发现这一类混淆脚本的思路,刚好近期收到一个有趣的混淆脚本,向小伙伴分享该脚本的分析过程,也希望能起到抛砖引玉的作用。

初见脚本

第一眼看到这个脚本的时候就从他的内容中看到了明晃晃的eval函数,于是本能地将这一部分代码提取出来,但是还不足以证明什么,因为内容部分全是看起来毫无头绪的乱码,没有丝毫WebShell的痕迹。

仔细发现可以发现除了eval之外,还调用了gzinflate、base64_decode、str_rot13这三个函数,或许可以从这三个函数入手寻找分析的突破口。

对混淆变形的Webshell分析是怎样的

图 2 脚本内容

函数解释

str_rot13()

ROT13 编码把每一个字母在字母表中向前移动13个字母。数字和非字母字符保持不变(凯撒加密)。

base64_decode()

对字符串内容进行base64编码。

Gzinflate

对数据默认使用ZLIB_ENCODING_RAW编码方式,使用deflate数据压缩算法,实际上是先用LZ7压缩,然后用霍夫曼编码压缩。

分析

1.内容解析

对混淆变形的Webshell分析是怎样的

图 3 调用echo命令

使用echo命令对内容进行解析,结果发现str_rot13()被执行了,于是重复这种思路,尝试一层一层将原有内容剥离出来。

对混淆变形的Webshell分析是怎样的

图 4 解析结果

2.重复解析

经过三次echo命令的重复解析之后,出现的终于不再是单调的代码了,证明分析的方向很可能是正确的,而且从代码的量来看感觉像是个拥有多种功能的木马,俗称大马。

对混淆变形的Webshell分析是怎样的

图5 多次解析

3.调用eval函数运行代码内容

好家伙,果然是一个大马。

经过究发现,该木马的功能包括了系统信息获取、目录读取、文件下载、文件上传等功能。

对混淆变形的Webshell分析是怎样的

图6 大马原貌

看完上述内容,你们对对混淆变形的Webshell分析是怎样的有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。

文章标题:对混淆变形的Webshell分析是怎样的,发布者:亿速云,转载请注明出处:https://worktile.com/kb/p/28870

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022年9月22日 下午10:09
下一篇 2022年9月22日 下午10:10

相关推荐

  • 怎么进行Apache Dubbo反序列化漏洞的分析

    简介 Dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的RPC实现服务的输出和输入功能,可以和Spring框架无缝集成。它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。 概述 2020年06月23日, Apache Dubbo 官…

    2022年9月10日
    25300
  • C语言中for循环与while循环怎么使用

    一、单层for循环 引例:C语言实现求1到10的和(用for循环实现) #include <stdio.h>int main(){ int i, sum = 0; for (i = 1; i <= 10; i++) sum = sum + i; printf(“sum = %dn”…

    2022年9月15日
    7800
  • 图片怎么转换成word文档

    图片转换成word文档教程: 1、首先下载一个wps并打开。 2、打开后,点击应用中心里的“更多” 3、如果是办公助手,那就点击左下角的图标,如图所示。 4、打开后,在其中找到“图片转文字”工具。 5、随后点击顶部的“添加图片” 6、添加完成后,选择“转化为文档”就可以了。 关于“图片怎么转换成wo…

    2022年9月1日
    13000
  • windows安装不了qq游戏如何解决

    qq游戏安装不了解决方法: 方法一: 1、首先确认我们电脑里之前有没有安装过qq游戏。 2、如果之前安装过,需要先将之前的qq游戏给卸载。 3、如果没有安装过,可能是下载的安装包有问题。 4、我们可以去官网下载或者点击右边链接重新下载安装。 5、如果我们正在使用360等安全软件的话,尝试将这些软件都…

    2022年8月29日
    24600
  • 如何简单绕过人机身份验证Captcha

    今天分享的Writeup是作者在目标网站漏洞测试中发现的一种简单的人机身份验证(Captcha)绕过方法,利用Chrome开发者工具对目标网站登录页面进行了简单的元素编辑就实现了Captcha绕过。 人机身份验证(Captcha)通常会出现在网站的注册、登录和密码重置页面,以下是目标网站在登录页面中…

    2022年9月15日
    1.6K00
  • hyliteresources文件夹有什么作用

    hyliteresources是系统资源文件夹;该文件夹是用来存放系统SHELL资源文件的,可以进行内容删除,但是文件夹不要删除,所有可以从中读取出需要的资源的文件,可以称之为资源文件。 本教程操作环境:windows10系统、DELL G3电脑。 hyliteresources是什么文件夹 hyl…

    2022年9月6日
    12000
  • Redis有序集合zset知识点有哪些

    redis有序集合zset与普通集合set非常相似,是一个没有重复元素的字符串集合。 不同之处是有序集合的每个成员都关联了一个评分(score),这个评分(score)被用来按照从最低分 到最高分的方式排序集合中的成员。 集合的成员是唯一的,但是评分是可以重复的。 因为元素是有序的,所以你可以很快的…

    2022年9月21日
    9500
  • html和xhtml有哪些区别

    HTML超文本标记语言,是一种基于标记的网页设计语言,专门用来设计和编辑网页。XHTML是为了适应XML而重新改造的HTML,也是一种标记语言,它可以看作是从HTML到XML的过渡;XHTML要求在网页中出现的任何元素都应该被标记出来。 什么是HTML HTML 英文全称是 Hyper Text M…

    2022年9月16日
    10100
  • windows驱动精灵WiFi驱动怎么安装

    驱动精灵WiFi驱动安装方法: 1、打开驱动精灵进入主页,点击右下角的“百宝箱”。 2、在百宝箱中选择“驱动管理”。 3、在设备中找到自己的“网卡驱动”。 4、如果没有的就点击“安装”,如果已安装过的点击“升级”即可。 以上就是关于“windows驱动精灵WiFi驱动怎么安装”这篇文章的内容,相信大…

    2022年9月13日
    9000
  • jquery动画队列怎么实现

    jquery动画队列是一个动画函数队列,把多个的动画任务放到一起,确保只有当前面的任务完成了,才会开始下一个任务;可以对jQuery元素应用fade、slide、animate等动画,当在JQuery对象上调用动画方法时,如果对象正在执行某个动画效果,那么会把后面的动画效果,放在一个队列里面,然后按…

    2022年9月10日
    9500
联系我们
站长微信
站长微信
分享本页
返回顶部