一次真实的应急响应案例——篡改页面、挖矿(sysupdate、networkservice)(含靶场环境)

admin 2022年8月28日23:35:44评论46 views1字数 4122阅读13分44秒阅读模式

一、事件描述:

某公司运维人员小李近期发现,通过搜索引擎访问该公司网站会自动跳转到恶意网站(博彩网站),但是直接输入域名访问该公司网站,则不会出现跳转问题,而且服务器CPU的使用率异常高,运维人员认为该公司服务器可能被黑客入侵了,现小李向XX安全公司求助,解决网站跳转问题。


 二、应急响应过程


2.1 查找植入暗链的代码

通过运维人员提供的信息:“通过搜索引擎访问该公司网站会自动跳转到恶意网站(博彩网站),但是直接输入域名访问该公司网站,则不会出现跳转问题”,可以判断出,网站首页已经被植入了暗链,那么可以先查看网站首页 index.jsp文件的代码


使用命令

find / -name index.jsp

查找服务器上所有的index.jsp文件


查找结果如下图所示,通过返回的信息可以得知:

1、公司首页的源码放在了tomcat的ROOT目录下

2、tomcat中存在一个struts2框架

一次真实的应急响应案例——篡改页面、挖矿(sysupdate、networkservice)(含靶场环境)

接下来查看 /opt/tomcat9/webapps/ROOT/index.jsp

一次真实的应急响应案例——篡改页面、挖矿(sysupdate、networkservice)(含靶场环境)

在index.jsp文件中发现了一段可疑的javascript代码

一次真实的应急响应案例——篡改页面、挖矿(sysupdate、networkservice)(含靶场环境)

<script type="text/javascript">        var search=document.referrer;     if(search.indexOf("baidu")>0||search.indexOf("so")>0||search.indexOf("soso")>0||search.indexOf("google")> 0||search.indexOf("youdao")>0||search.indexOf("sogou")>0)       self.location="https://www.XXXXXXXX.com"; </script>

此段javascript代码的意思是:通过搜索引擎百度、搜搜、谷歌、有道、搜狗访问该文件,都会跳转到 https://www.XXXXXXXX.com 网站,结合运维人员描述的情况,可以确定首页被植入暗链的位置正是此处。

2.2、查看访问日志

2.2.1 发现弱口令

tomcat的日志都在tomcat安装路径下的logs目录下
本次案例在:/opt/tomcat9/logs/,其中access_log是用户访问网站的日志

一次真实的应急响应案例——篡改页面、挖矿(sysupdate、networkservice)(含靶场环境)

tomcat日志格式:

例如:192.168.248.1 - - [14/Aug/2017:19:39:20 -0700] “GET /cms/jeeadmin/jeecms/index.do HTTP/1.1200 555而与之对应的pattern是:pattern=”%h %l %u %t “%r” %s %b”
%h 为远程主机名(若无法获取主机名亦可为远程主机IP)对应192.168.248.1%l 为远端登录名(由identd而来),除非IdentityCheck设为"On",否则将得到一个"-"%u 为远程用户名(根据验证信息而来),若不存在得到一个"-"%t 为时间,用普通日志时间格式(标准英语格式) 对应[14/Aug/2017:19:39:20 -0700]&quot; 为双引号"的实体编码%r 为请求头第一行(包括HTTP方法和请求的URI),对应GET /cms/jeeadmin/jeecms/index.do HTTP/1.1%s 为HTTP响应状态码%b    为发送信息的字节数,不包括HTTP头,如果字节数为0的话,显示为-

首先查看2021-02-24的访问日志,内容很少,大多数都是127.0.0.1本地访问的,只有几条是IP地址192.168.184.128访问的

一次真实的应急响应案例——篡改页面、挖矿(sysupdate、networkservice)(含靶场环境)

一次真实的应急响应案例——篡改页面、挖矿(sysupdate、networkservice)(含靶场环境)

但是再查看的过程中,发现IP 192.168.184.128访问了tomcat的默认管理页面,并且以用户tomcat登录了管理页面

一次真实的应急响应案例——篡改页面、挖矿(sysupdate、networkservice)(含靶场环境)

接下来我们查看tomcat管理页面登录的配置,是否存在弱口令

cd /opt/tomcat9/confcat tomcat-users.xml

一次真实的应急响应案例——篡改页面、挖矿(sysupdate、networkservice)(含靶场环境)

可以看到使用的是默认账号密码 tomcat/tomcat 存在弱口令

一次真实的应急响应案例——篡改页面、挖矿(sysupdate、networkservice)(含靶场环境)那么我们查看一下全部的日志文件,都是有哪些IP成功登录tomcat的管理后台了

cat localhost_access_log.20* | grep tomcat

一次真实的应急响应案例——篡改页面、挖矿(sysupdate、networkservice)(含靶场环境)

得出结论:
通过查看全部的日志,发现只有IP192.168.184.128成功登录了tomcat的管理后台(可疑行为记录保存)

2.2.2 发现扫描行为

接下来查看2021-02-25的访问日志,内容很多,通过日志信息可以看出,IP:192.168.184.146 的用户访问了很多的文件,而且文件很多都是不存在的,返回状态码为404,可疑确认IP:192.168.184.146 在对网站进行扫描行为(可疑行为记录保存)

一次真实的应急响应案例——篡改页面、挖矿(sysupdate、networkservice)(含靶场环境)

一次真实的应急响应案例——篡改页面、挖矿(sysupdate、networkservice)(含靶场环境)

接下里统计一下每个IP访问的次数

cat localhost_access_log.20* | awk '{print $1}'|sort -r -n |uniq -c

可以看到IP:192.168.184.146、192.168.184.1的访问次数较高

一次真实的应急响应案例——篡改页面、挖矿(sysupdate、networkservice)(含靶场环境)

那么首先查看一下 192.168.184.146 访问记录

cat localhost_access_log.20* |grep 192.168.184.146

可以看到IP:192.168.184.146 的访问很多不存在的文件,返回状态码都是404,可以推断该IP是在进行扫描行为(可疑行为记录保存)

一次真实的应急响应案例——篡改页面、挖矿(sysupdate、networkservice)(含靶场环境)

接下来查看一下 192.168.184.1 访问记录

cat localhost_access_log.20* |grep 192.168.184.1|grep HEAD

可以看到IP:192.168.184.1 的访问很多不存在的文件,返回状态码都是404,可以推断该IP是在进行扫描行为(可疑行为记录保存)

一次真实的应急响应案例——篡改页面、挖矿(sysupdate、networkservice)(含靶场环境)

得出结论 :
IP 192.168.184.1、192.168.184.146 都对该网站进行了目录扫描

2.2.3 发现webshell与网站漏洞

接下来查看192.168.184.1所有的访问记录中,是否存在可疑文件

命令:

cat localhost_access_log.20* | grep 192.168.184.1

发现192.168.184.1在进行扫描行为后,访问了config.jsp文件与tx.jsp文件,以及struts2-showcase文件

一次真实的应急响应案例——篡改页面、挖矿(sysupdate、networkservice)(含靶场环境)

一次真实的应急响应案例——篡改页面、挖矿(sysupdate、networkservice)(含靶场环境)

查看config.jsp文件内容: config.jsp是webshell

一次真实的应急响应案例——篡改页面、挖矿(sysupdate、networkservice)(含靶场环境)

查看tx.jsp文件 :发现已被删除

使用工具检测struts2框架是否存在漏洞:存在漏洞

一次真实的应急响应案例——篡改页面、挖矿(sysupdate、networkservice)(含靶场环境)

得出结论 :
1、存在webshell:config.jsp
2、struts2框架存在高危漏洞

2.3 查找并清除挖矿程序

通过运维人员提供的信息:“服务器CPU的使用率异常高”,可以判断出,服务器已经被植入了挖矿程序。

2.3.1清除定时任务

使用top命令查看CPU的使用率

发现存在PID为20338的异常进程 sysupdate

一次真实的应急响应案例——篡改页面、挖矿(sysupdate、networkservice)(含靶场环境)

使用命令kill -9 20338 关闭该异常进程

一次真实的应急响应案例——篡改页面、挖矿(sysupdate、networkservice)(含靶场环境)

没想到过了一会儿 sysupdate 异常进程又重新起来了(猜测可能存在守护进程或者定时任务)

一次真实的应急响应案例——篡改页面、挖矿(sysupdate、networkservice)(含靶场环境)

查看定时任务:
crontab -l ,果不其然,存在定时任务,每30秒运行一次update.sh文件

一次真实的应急响应案例——篡改页面、挖矿(sysupdate、networkservice)(含靶场环境)

那么就删除定时任务crontab -r

一次真实的应急响应案例——篡改页面、挖矿(sysupdate、networkservice)(含靶场环境)

发现无法删除
文件无法删除,那么我们查看一下是否有隐藏权限:

lsattr root

如下可以看到当前文件被加入隐藏权限:

一次真实的应急响应案例——篡改页面、挖矿(sysupdate、networkservice)(含靶场环境)

使用命令:chattr -i root 修改权限后,还是不能删除root定时任务

一次真实的应急响应案例——篡改页面、挖矿(sysupdate、networkservice)(含靶场环境)

因此考虑是否为上级目录加入了权限导致该文件不可删除,我们返回上一级目录重复执行 lsattr 命令

一次真实的应急响应案例——篡改页面、挖矿(sysupdate、networkservice)(含靶场环境)

可以找到在上级的 /cron目录被加入了隐藏权限,使用chattr命令修改权限

chattr -i  cron

隐藏权限取消掉之后我们再进行定时程序删除

一次真实的应急响应案例——篡改页面、挖矿(sysupdate、networkservice)(含靶场环境)

2.3.2 清除挖矿程序

查看关联进程从上面的top命令知道了个用比较大的进程号,我们可以根据其中的某个进程,比如21001入手,来查找其他关联的进程

使用以下命令,如下图所示

systemctl status 21001

一次真实的应急响应案例——篡改页面、挖矿(sysupdate、networkservice)(含靶场环境)

一次真实的应急响应案例——篡改页面、挖矿(sysupdate、networkservice)(含靶场环境)

根据关联进程提示,进入到/etc目录下

在/etc/目录下,使用ls 查看所有的文件

发现有sysupdate、networkservice、sysguard、update.sh、config.json 五个文件,其中sysupdate、networkservice、sysguard三个文件都是二进制文件 比较大,这三个应该就是挖矿的主程序和守护程序。还有一个update.sh文件,这应该是对挖矿程序升级用的。

一次真实的应急响应案例——篡改页面、挖矿(sysupdate、networkservice)(含靶场环境)

这个update.sh在定时任务中也有提示

一次真实的应急响应案例——篡改页面、挖矿(sysupdate、networkservice)(含靶场环境)

那么清除挖矿程序:删除/etc下面的 sysupdate、networkservice、sysguard、update.sh和config.json几个文件

这时候,你可能会发现无法删除,因为挖矿程序使用了chattr +i 命令(禁止对文件的增删改查),那么使用如下命令取消该权限后,即可删除

chattr -i update.shrm -rf update.sh
chattr -i networkservicerm -rf networkservice
chattr -i sysupdaterm -rf sysupdate
chattr -i sysguardrm -rf sysguard
chattr -i config.jsonrm -rf config.json

清楚完挖矿程序文件后,使用命令:kill -9 PID (异常程序PID号)
之后等待几分钟,CPU都使用正常,无异常进程了,挖矿程序清除成功

一次真实的应急响应案例——篡改页面、挖矿(sysupdate、networkservice)(含靶场环境)

三、总结

1、存在弱口令 tomcat/tomcat 192.168.184.128 成功登录
2、IP 192.168.184.1、192.168.184.146 都对该网站进行了目录扫描

3、存在webshell:config.jsp
4、struts2框架存在高危漏洞
5、清除挖矿程序

猜测是通过弱口令或者struts2框架漏洞进入,上传webshell与挖矿程序,并且执行挖矿程序

靶场环境放在了 知X星球 中

一次真实的应急响应案例——篡改页面、挖矿(sysupdate、networkservice)(含靶场环境)

原文始发于微信公众号(W小哥):一次真实的应急响应案例——篡改页面、挖矿(sysupdate、networkservice)(含靶场环境)

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年8月28日23:35:44
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   一次真实的应急响应案例——篡改页面、挖矿(sysupdate、networkservice)(含靶场环境)http://cn-sec.com/archives/887815.html

发表评论

匿名网友 填写信息