对混淆变形的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

相关推荐

  • 企业费用管理神器:9款费控系统精选

    本文介绍了9款费控系统:合思、金蝶云之家、明道云、管家婆、用友U8、AIrbase、Yokoy、SAP Concur、Expensify。 在企业管理中,传统的费用控制不仅费时费力,还容易出错,最终影响企业的财务健康和运营效率,而费控系统是一种有效的解决方案,可以优化费用管理流程,提升整体工作效率。…

    2024年7月23日
    900
  • 数据库权限关系图表是什么

    数据库权限关系图表是一种以图表形式展示数据库权限分配和管理的工具。它可以有效地帮助我们理解和管理数据库中的各种权限关系。数据库权限关系图表主要包含以下几个部分:数据对象、用户(或用户组)、权限类型、权限级别、权限状态等。其中,数据对象是权限关系图表中的核心元素,它代表了数据库中的各种数据资源,如表、…

    2024年7月22日
    000
  • 诚信数据库是什么意思

    诚信数据库是一种收集、存储和管理个人或组织诚信信息的系统。它是一种用于评估和管理个人或组织行为的工具,通常由政府、商业组织或者非营利组织进行运营。诚信数据库的主要功能包括:1、评估个人或组织的诚信状况;2、提供决策支持;3、预防和控制风险;4、促进社会信用体系建设。 在这四大功能中,评估个人或组织的…

    2024年7月22日
    000
  • 数据库期末关系代数是什么

    关系代数是一种对关系进行操作的代数系统,是关系模型的数学基础,主要用于从关系数据库中检索数据。其操作包括选择、投影、并集、差集、笛卡尔积、连接、除法等。其中,选择操作是对关系中的元组进行筛选,只保留满足某一条件的元组;投影操作则是从关系中选择出一部分属性构造一个新的关系。 一、选择操作 选择操作是关…

    2024年7月22日
    500
  • mysql建立数据库用什么命令

    在MySQL中,我们使用"CREATE DATABASE"命令来创建数据库。这是一个非常简单且基础的命令,其语法为:CREATE DATABASE 数据库名。在这个命令中,“CREATE DATABASE”是固定的,而“数据库名”则是你要创建的数据库的名称,可以自己设定。例如,如…

    2024年7月22日
    100
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部