本帖最后由 堡塔运维香菜卷 于 2023-4-10 11:00 编辑
最近请了两天假,疫情好几年了,想着带女儿出去玩几天,谁成想请假第一天接到服务器被挂马的急报,吓得我赶紧打开电脑,登陆宝塔一检查好家伙总共98个网站,其中60多个已经沦陷了。
我大概检查了一下,挂马方式大概两种:
第1种是:直接修改了我的首页入口文件,这个入口文件伪装的还是不错的,它抓取了我原来的首页文件,然后替换掉了我入口文件的内容,只不过把首页标题修改了,大家都知道php文件里边直接放html也是可以的吗。这个修改标题的方法还是比较高明的,因为打开网站看标题栏是看不到标题被修改的,一看源代码,不简单啊,先把我title标签的内容改了,然后再用一段js代码修改回来,让你防不胜防。
第2种是:修改了我不少的js的文件,这是在我替换完首页入口文件后发现的,一打开网站发现部分特效不管用了,然后逐一排查下部分js文件被加入了跳转代码跳到了一个网站,这个js的跳转还是根据来源跳的,只有从搜索引擎打开的网站才会跳转,直接打开网址是不起作用的。
检查了一遍,所有挂马文件用脚本查了好几遍,终于没问题了。以为当天可以睡个好觉。
结果第二天起来一看,我去,昨天的情况再次出现,只不过这次比昨天还要多几乎全部的网站都沦陷了。
我就重新捋了一遍,我的环境是 nginx + php5.5 运行了好几年了,期间也出现过几次搜索引擎劫持,但都是小状况一两个网站,改回来了也就没事了,但是这次是为什么呢,这让我想起了不就前,转过来了十几个网站,这十几个网站是老板哥们公司转过来的,因为业务不做了,剩了一些网站省的请运维干脆转给了我们,这些网站大概使用了2个框架,大部分phpcms 小部分是dedecms ,这2个可是业界有名的漏洞大王。当时转的时候我还留意了一下有没有木马,没想到现在复发了。没办法整吧。
宝塔防火墙,nginx防火墙,系统密码,宝塔密码,ftp密码,就连腾讯云的高级防御和防篡改我都开了一个月,然并卵第二天仍然全部沦陷。我心想不应该呀,就算是那几个网站漏洞多,我其他的网站是没事的呀,我其他的网站95%用的都是我自己开发的cmd后台,连框架都没用,七八年了没出过问题,其他几个网站用的thinkphp6.0也不应该这样啊。
这时候我就开始考虑是不是跨站攻击,但是我自己写脚本测试了一下,的确是跨不了站点的,其他站点的文件都读不到。
没办法了挨个查文件读日志吧,这一查查出来好几个大马,将近有一半是同一个马,这个马还不知道被加密成了什么编码,编辑器打开是乱码的,懒得折腾,先看看那些可以打开的吧,打开一下需要密码,这标题写的太目中无人了吧,好吧接着看base64_decode解密一下代码,密码是md5加密的一串替换了一下,进去以后豁然开朗,截图我放到了下面。然而这里边的功能其实也没什么,跨站的目录它也是读不到的,只不过文件管理功能挺强大的,讽刺的是它还可以扫描后门!
接着找,又找到一个这个密码都是明文,直接进入,这个还是个暗黑风格,就是下面这个截图啦,但是这个功能可不一般啊,最主要的是它有一个绕过open basedir的功能,我抱着试一试的心态,点击开启,提示已启用。然后回到目录管理那里,试着返回上一级目录,呵呵呵,竟然成功的列出了我所有的站点的目录,点进入不出所料全部可以操作读取写入,查了一下资料网友表示open basedir是可以绕过的但是新版本已经更新了不存在这个漏洞,更换了php5.6试了一下果然还是这样,直接一步到位更换了php7.4版本,再登陆进去,果然漏洞不存在了,一切站外目录都读取不了了。
好了,目前就这样吧,解决完问题抽空总结一下,所有站点都更换了php7.4版本,目前偶尔还是有个别网站被篡改但是基本不影响大局了。 总结一下,最好用高版本php,用高版本php,高版本php
|