域名绑定云服务器阿里云服务器被黑日记---webshell植入原因分析和修复记录

linux云服务器搭建教程 早上起来第一件事就是刷今天新馆肺炎的数据,突然手机短信收到提示,说我的网站存在webshell文件,危险等级为紧急,我意识到的我很久未曾维护的网站···

linux云服务器搭建教程

早上起来第一件事就是刷今天新馆肺炎的数据,突然手机短信收到提示,说我的网站存在webshell文件,危险等级为紧急,我意识到的我很久未曾维护的网站被黑客攻破了。马上行动,登录阿里云账号,果不其然,问题已经很严重了,植入了很多webshell,多达16个!

现状分析

查了一下网站,服务器整个已经暴露了,暴露到什么程度呢?非常惨!见下图:

这个是在我网站服务器下载下来的,在我的PC测试服务器上复现,基本上任何操作都可以进行,而且可以批量上传和修改webshell,webshell的名称都很隐蔽。

另外,还有一个linux内核漏洞也被黑客攻陷,见下图:

其中,绿色的dirty.c就是针对linux内核漏洞的攻击文件,连源代码都传上来了,只需要编译即可,用户和用户组都是www,说明是通过webshell上传过来的。

另外,还有一个search.pl,这个主要是搜索内核漏洞版本号的,所以这个黑客,本质上并不是来破坏的我的数据的,而是提示我该打补丁了,顺便看一下search.pl的执行结果。

结果显示3.2版本的内核有两个补丁需要打上,也就是dirty.c对应的问题,这都是2013年的的问题了,呵呵。但是据说dirtyc0w(脏牛)问题直到2016年才修复。具体dirtyc0w的故事可以自行搜索,在此不表。

如何解决问题?

从上面的现状可以分析出,黑客是先利用网站漏洞,植入webshell程序,获取服务器控制权,然后再上传了针对内核漏洞的dirtyc0w脏牛的程序。所以解决webshell问题的关键是要找出黑客是如何植入webshell的。关于thinkphp的漏洞网上有很多,直接从网上搜索并不能确认黑客的攻击路径,那么改从何入手呢?logs,日志文件,日志文件记录了网站服务器的具体动作,因此从log文件是一个很好的方法。

下载log文件,最近有400多M字节,一条一条分析是不大可能的,必须过滤掉无用信息,为此,我用python编写了几行代码,对log数据进行过滤。

对数据分析发现,其实我的网站一直在接受者各种各样的攻击,有很多是不成功的,比如,返回状态包含400,403,404等这些都是无效攻击,服务器直接不理。其中有效的必须是包含index.php的,因此必须把包含index.php的log保留,在此基础之上,再采用排除法,把无用的信息去除,最终有用文件大小缩减为123Kbyte,数据是442行。貌似可以开始了,但是442行数据验证起来也是很麻烦的,继续排除。

从网络查询可以知道,针对thinkcmf的攻击主要是fetch函数和diplay函数的漏洞进行的,因此利用该漏洞就必须把fetch函数作为payload的一部分,因此不包含fetch函数的攻击也是无效的,加入一个判定条件:必须包含fetch字符串。

云服务器显卡

在此运行python过滤器,最终得到5行有效数据。

剩下的就简单了,直接可以手工在测试环境中验证剩下的五条数据。结果是第四条和第五条是正真成功入侵代码。该代码可以直接在网站根目录下,生成一个名称为db.php的webshell文件,文件内容为

1

您好:云优数据云计算 www.yunyoushuju.cn 2核2G6M最低19.9元/月 欢迎开机

发表评论

评论列表
未查询到任何数据!