Webshell不同于漏洞,而是利用运用漏洞或做事器漏洞(文件上传漏洞、文件包含漏洞等)将脚本文件上传到做事器进行后续利用,属于渗透测试的后续利用和ATT&CK的TA0002 Execution(实行)阶段。
图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这三个函数,或容许以从这三个函数入手探求剖析的打破口。
图 2 脚本内容
函数阐明 str_rot13()ROT13 编码把每一个字母在字母表中向前移动13个字母。数字和非字母字符保持不变(凯撒加密)。
base64_decode()对字符串内容进行base64编码。
Gzinflate对数据默认利用ZLIB_ENCODING_RAW编码办法,利用deflate数据压缩算法,实际上是先用LZ7压缩,然后用霍夫曼编码压缩。
剖析
1.内容解析
图 3 调用echo命令
利用echo命令对内容进行解析,结果创造str_rot13()被实行了,于是重复这种思路,考试测验一层一层将原有内容剥离出来。
图 4 解析结果
2.重复解析
经由三次echo命令的重复解析之后,涌现的终于不再是单调的代码了,证明剖析的方向很可能是精确的,而且从代码的量来看觉得像是个拥有多种功能的木马,俗称大马。
图5 多次解析
3.调用eval函数运行代码内容
好家伙,果真是一个大马。
经研究创造,该木马的功能包括了系统信息获取、目录读取、文件下载、文件上传等功能。
图6 大马原貌
总结在本示例中,攻击者利用对木漏洞本的紧张稠浊办法便是套用多层的不同编码和压缩函数,以实现对原有代码中强干系的检测函数的稠浊,是一种常见的绕过WAF和其它主流网络安全检测产品的思路。