一次真实的应急响应案例——篡改页面、挖矿(sysupdate、networkservice)(含靶场环境)
一、事件描述:某公司运维人员小李近期发现,通过搜索引擎访问该公司网站会自动跳转到恶意网站(博彩网站),但是直接输入域名访问该公司网站,则不会出现跳转问题,运维人员认为该公司服务器可能被黑客入侵了,现小李向XX安全公司求助,解决网站跳转问题。二、应急响应过程2.1 查找植入暗链的代码通过运维人员提供的信息:“通过搜索引擎访问该公司网站会自动跳转到恶意网站(博彩网站),但是直接输入域名访问该公司网站,
一、事件描述:
某公司运维人员小李近期发现,通过搜索引擎访问该公司网站会自动跳转到恶意网站(博彩网站),但是直接输入域名访问该公司网站,则不会出现跳转问题,而且服务器CPU的使用率异常高,运维人员认为该公司服务器可能被黑客入侵了,现小李向XX安全公司求助,解决网站跳转问题。
二、应急响应过程
2.1 查找植入暗链的代码
通过运维人员提供的信息:“通过搜索引擎访问该公司网站会自动跳转到恶意网站(博彩网站),但是直接输入域名访问该公司网站,则不会出现跳转问题”,可以判断出,网站首页已经被植入了暗链,那么可以先查看网站首页 index.jsp文件的代码
使用命令
find / -name index.jsp
查找服务器上所有的index.jsp文件
查找结果如下图所示,通过返回的信息可以得知:
1、公司首页的源码放在了tomcat的ROOT目录下
2、tomcat中存在一个struts2框架
接下来查看 /opt/tomcat9/webapps/ROOT/index.jsp
在index.jsp文件中发现了一段可疑的javascript代码
<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是用户访问网站的日志
tomcat日志格式:
例如:192.168.248.1 - - [14/Aug/2017:19:39:20 -0700] “GET /cms/jeeadmin/jeecms/index.do HTTP/1.1″ 200 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]
" 为双引号"的实体编码
%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访问的
但是再查看的过程中,发现IP 192.168.184.128访问了tomcat的默认管理页面,并且以用户tomcat登录了管理页面
接下来我们查看tomcat管理页面登录的配置,是否存在弱口令
cd /opt/tomcat9/conf
cat tomcat-users.xml
可以看到使用的是默认账号密码 tomcat/tomcat 存在弱口令
那么我们查看一下全部的日志文件,都是有哪些IP成功登录tomcat的管理后台了
cat localhost_access_log.20* | grep tomcat
得出结论:
通过查看全部的日志,发现只有IP192.168.184.128成功登录了tomcat的管理后台(可疑行为记录保存)
2.2.2 发现扫描行为
接下来查看2021-02-25的访问日志,内容很多,通过日志信息可以看出,IP:192.168.184.146 的用户访问了很多的文件,而且文件很多都是不存在的,返回状态码为404,可疑确认IP:192.168.184.146 在对网站进行扫描行为(可疑行为记录保存)
接下里统计一下每个IP访问的次数
cat localhost_access_log.20* | awk '{print $1}'|sort -r -n |uniq -c
可以看到IP:192.168.184.146、192.168.184.1的访问次数较高
那么首先查看一下 192.168.184.146 访问记录
cat localhost_access_log.20* |grep 192.168.184.146
可以看到IP:192.168.184.146 的访问很多不存在的文件,返回状态码都是404,可以推断该IP是在进行扫描行为(可疑行为记录保存)
接下来查看一下 192.168.184.1 访问记录
cat localhost_access_log.20* |grep 192.168.184.1|grep HEAD
可以看到IP:192.168.184.1 的访问很多不存在的文件,返回状态码都是404,可以推断该IP是在进行扫描行为(可疑行为记录保存)
得出结论 :
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文件
查看config.jsp文件内容: config.jsp是webshell
查看tx.jsp文件 :发现已被删除
**使用工具检测struts2框架是否存在漏洞:**存在漏洞
得出结论 :
1、存在webshell:config.jsp
2、struts2框架存在高危漏洞
2.3 查找并清除挖矿程序
通过运维人员提供的信息:“服务器CPU的使用率异常高”,可以判断出,服务器已经被植入了挖矿程序。
2.3.1清除定时任务
使用top命令查看CPU的使用率
发现存在PID为20338的异常进程 sysupdate
使用命令kill -9 20338 关闭该异常进程
没想到过了一会儿 sysupdate 异常进程又重新起来了(猜测可能存在守护进程或者定时任务)
查看定时任务:
crontab -l ,果不其然,存在定时任务,每30秒运行一次update.sh文件
那么就删除定时任务crontab -r
发现无法删除
文件无法删除,那么我们查看一下是否有隐藏权限:
lsattr root
如下可以看到当前文件被加入隐藏权限:
使用命令:chattr -i root
修改权限后,还是不能删除root定时任务
因此考虑是否为上级目录加入了权限导致该文件不可删除,我们返回上一级目录重复执行 lsattr 命令
可以找到在上级的 /cron目录被加入了隐藏权限,使用chattr命令修改权限
chattr -i cron
隐藏权限取消掉之后我们再进行定时程序删除
2.3.2 清除挖矿程序
查看关联进程从上面的top命令知道了个用比较大的进程号,我们可以根据其中的某个进程,比如21001入手,来查找其他关联的进程
使用以下命令,如下图所示
systemctl status 21001
根据关联进程提示,进入到/etc目录下
在/etc/目录下,使用ls 查看所有的文件
发现有sysupdate、networkservice、sysguard、update.sh、config.json 五个文件,其中sysupdate、networkservice、sysguard三个文件都是二进制文件 比较大,这三个应该就是挖矿的主程序和守护程序。还有一个update.sh文件,这应该是对挖矿程序升级用的。
这个update.sh在定时任务中也有提示
那么清除挖矿程序:删除/etc下面的 sysupdate、networkservice、sysguard、update.sh和config.json几个文件
这时候,你可能会发现无法删除,因为挖矿程序使用了chattr +i 命令(禁止对文件的增删改查),那么使用如下命令取消该权限后,即可删除
chattr -i update.sh
rm -rf update.sh
chattr -i networkservice
rm -rf networkservice
chattr -i sysupdate
rm -rf sysupdate
chattr -i sysguard
rm -rf sysguard
chattr -i config.json
rm -rf config.json
清楚完挖矿程序文件后,使用命令:kill -9 PID (异常程序PID号)
之后等待几分钟,CPU都使用正常,无异常进程了,挖矿程序清除成功
三、总结
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星球 与 我的资源 中
更多资源:
1、web安全工具、渗透测试工具
2、存在漏洞的网站源码与代码审计+漏洞复现教程、
3、渗透测试学习视频、应急响应学习视频、代码审计学习视频、都是2019-2021年期间的较新视频
4、应急响应真实案例复现靶场与应急响应教程
收集整理在知X星球,可加入知X星球进行查看。也可搜索关注微信公众号:W小哥
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)