框架建设收集

一次web后门生成过程溯源

2019-03-25  本文已影响144人  大仲的书屋

 上周末,朋友网站(www.x.com)被入侵,百度上搜出许多博彩页面。印象中他网站不是第一次被入侵,上次被入侵还是半年前了。朋友的安全服务商来应急后并未彻底清除后门。在答应请客吃饭后决定帮看看。

 网站是用phpcms搭建,版本是phpcms v9。先来看一下网站上收集到的信息,第一个就是网站某个php文件被插入了 require '/tmp/.app/phpcms';,根据这个路径看了下内容,就是博彩页面内容,看上去还是一套phpcms 应用,随机产生页面,并只对搜索引擎有效。

 第二个是在caches 目录下发现了webshell 暂且叫做houmen.php,用stat查看了下时间信息,并截图记录(习惯上),随后就备份了下,删除了后门。看后门时间应该是半年前那次的,没有删除。删除后门后,开始浏览其他信息。再次浏览网站目录的时候发现后门神奇的生成了。搜了下这段时间的access日志,没有POST请求,日志中没有关键词。删除后门后,没过一小时又生成。

 针对这种情况,第一时间想到用inotify来监控看下生成文件前后还有哪些文件被访问到。使用inotifywait 进行监控,当后门再次出现时inotify 并未给出满意答案。可能由于php那个缓存机制导致inotify未监控到php文件的调用顺序。

 尝试全站搜索字符串,并未搜到后门信息,猜测后门信息可能在数据库内。

 linux除了inotify 还有auditd 工具,不光能监控文件,还能监控系统调用,使用auditctl添加规则后,可以看houmen.php生成时整个php调用流程。根据auditd输出信息提取路径得到具体调用流程如下:


网站目录/phpcms/base.php

网站目录/.htaccess

网站目录/index.php/.htaccess

网站目录/index.php

网站目录/phpcms/base.php

网站目录/phpcms/libs/functions/global.func.php

网站目录/phpcms/libs/functions/extention.func.php

网站目录/phpcms//libs/functions/autoload

网站目录/phpcms/libs/functions/autoload/plugin.func.php

网站目录/phpcms/libs/functions/autoload/video.func.php

网站目录/caches/configs/system.php

网站目录/phpcms/libs/classes/application.class.php

网站目录/phpcms/libs/classes/param.class.php

网站目录/caches/configs/route.php

网站目录/phpcms/modules/formguide/index.php

网站目录/phpcms/model/sitemodel_model.class.php

网站目录/phpcms/libs/classes/model.class.php

网站目录/phpcms/libs/classes/db_factory.class.php

网站目录/caches/configs/database.php

网站目录/phpcms/libs/classes/mysql.class.php

网站目录/phpcms/model/sitemodel_field_model.class.php

网站目录/phpcms/libs/classes/cache_factory.class.php

网站目录/phpcms/libs/classes/cache_file.class.php

.....

网站目录/caches/houmen.php

 这里根据auditd给出的目录,从目录中看到caches字样,猜测这大概是黑客利用cache功能写的后门,后边的日志分析阶段证实了这个猜测。

根据auditd给出的后门创建时间,到web的access 日志里去查看相应时间的日志:


以下日志为手动生成日志,仅供说明原理

243.125.71.46 - - [25/Mar/2019:20:10:20 +0800] "GET /houmen.php HTTP/1.1" 404

243.125.71.46 - - [25/Mar/2019:20:10:20 +0800] "/index.php?m=formguide&c=index&a=show&formid=1&siteid=1 HTTP/1.1" 200 400

243.125.71.46 - - [25/Mar/2019:20:10:26 +0800] " GET /houmen.php HTTP/1.1" 200 40023

243.125.71.46 - - [25/Mar/2019:20:10:32 +0800] "GET /?gid=83157124407 HTTP/1.1" 200 40023

243.125.71.46 - - [25/Mar/2019:20:10:40 +0800] "GET /?ctid=89110007864 HTTP/1.1" 200 40023

243.125.71.46 - - [25/Mar/2019:20:10:46 +0800] "GET /?ctid=98816131019 HTTP/1.1" 200 40023

 通过日志可以看到,黑客访问了index.php?m=formguide&c=index&a=show&formid=1&siteid=1这个路近后生成后门。结合前面的cache信息可以猜测数据库某个跟cache相关表里有formid=1 并且siteid=1的数据记录里包含后门信息。用mysql数据库连接软件连上后在x_model 这个表里发现

图片.png

 这里的modelid应该就是formid了,修改了setting信息,试了试这里确实是生成后门的内容。phpcms把数据库里内容当做php执行,这种做法不妥,至少得加恶意代码过滤,不仔细找后门,不容易发现,留的后相对文件后门来说隐秘性更高。

 删除后门,删除数据库里保存的后门,后续观察吧,安全这事,是个持续过程。

上一篇下一篇

猜你喜欢

热点阅读