X黑手网
X黑手网
X黑手网

黑客攻防实战:揭秘网站攻击的真相与应对策略(二)防御篇-应急响应

推荐阅读

黑客攻防实战:揭秘网站攻击的真相与应对策略(二)攻击篇-X黑手网

要求

1.找到挖矿程序删除

2.找到守护程序删除

3.找到定时任务并删除

前景需要

一个客户说,通过搜索引擎访问他们公司网站会自动跳转到一个博彩网站,但是直接输入域名访问他们公司网站,就不会出现跳转问题,而且服务器CPU的使用率非常高,我过去和运维沟通了之后,觉得应该是网站被植入了暗链和挖矿病毒,由于客户不方便展示,用我们的网站给大家演示一下

 

好的,开始干活

ftp攻击。

查看FTP日志,发现192.168.126.135存在大量登录失败记录,疑似爆破FTP弱口令。

0603ad528ead9f170a074f6955764e9

最终登录成功,疑似成功爆破出FTP的弱口令。

4774d982bbce03ba88f74766e0dc6b0

上传了webshell文件system.php,由此判断FTP是攻击入口。攻击者先通过FTP弱口令漏洞获得FTP权限,然后上传webshell到网站路径下,再通过webshell创建RDP帐号,最终通过RDP登录操作系统。

image

攻击者挖矿程序的矿池域名(仅域名)

首先要找出挖矿程序,在攻击者创建的隐藏账户hack168$的用户目录下随意翻找,最终在C:\Users\hack168$\Desktop目录下找到Kuang.exe程序。

点击程序后发现CPU跑满,且存在外连恶意IP的情况,确认该程序是挖矿程序。

使用DIE工具识别挖矿程序是由PyInstaller打包的。

image

使用 pyinstxtractor对挖矿程序进行解包,将exe文件解包成pyc文件。

image

得到pyc文件

image

使用在线pyc反编译工具,得到源码

image

得到矿池域名

使用命令compmgmt.msc打开计算机管理,在系统工具->任务计划程序->任务计划程序库 下,看到攻击者创建的计划任务

image

深入查看攻击者创建的计划任务,会定时执行脚本:C:\Users\hack6618$\Downloads\system.bat。

image

以下为linux客户机

首先是断开服务器的网络连接,防止病毒扩散
我先看了一下网站首页 index.jsp文件
find / -name index.jsp
查找服务器上所有的index.jsp文件
公司首页的源码放在了tomcat的ROOT目录下
2、tomcat中存在一个struts2框架
接下来查看 /opt/tomcat9/webapps/ROOT/index.jsp
然后在index.jsp文件中发现了一段可疑的js代码
那段代码的意思是通过搜索引擎百度、搜搜、谷歌、有道、搜狗访问这个文件,都会跳转到那个博彩网站,所以这个地方就应该是植入的暗链,然后用备份文件恢复了这个文件

推荐阅读

实战|页面篡改安全事件应急流程-X黑手网

我又查看了他的访问日志
tomcat的日志都在tomcat安装路径下的logs目录下,其中access_log是用户访问网站的日志
大多数都是127.0.0.1本地访问的,只有几条是一个外国ip访问的
而且这个外国ip还访问了tomcat的默认管理页面,还用tomcat用户登录成功了
我就查看了一下tomcat管理页面登录的配置,看有没有弱口令
cd /opt/tomcat9/conf
cat tomcat-users.xml
看完之后发现他用的是默认账号密码,都是tomcat/tomcat 所以他这里存在一个弱口令
cat localhost_access_log.20* |grep tomcat
我看了他全部的访问日志,发现只有这个外国ip成功登录了tomcat的管理后台
接下来我们看第二天的日志,发现这个外国ip访问了很多的文件,而且文件很多都是不存在的,返回状态码为404,所以可以确认这个外国ip对网站进行了扫描

cat localhost_access_log.20*|grep 外国ip
我就看了这个外国ip的所有访问记录,看有没有可疑文件
然后发现这个外国ip在扫描之后,访问了config.jsp文件,和struts2-showcase文件
我就把config.jsp文件扔进微步沙箱发现是个webshell
然后用工具检测到他这个struts2框架存在045、046漏洞 https://ip:8080/struts2-showcase/index.action

挖矿病毒:
使用top命令查看CPU的使用率
发现了一个cpu占用率很高的进程
我用命令kill -9 关闭了这个进程
没想到过了一会儿这个进程又重新起来了(应该是有守护进程或者定时任务)守护进程是一个在后台运行而且不受任何终端控制的进程
我就看了下定时任务:
crontab -l ,发现确实存在定时任务,每30秒运行一次update.sh文件
我删除定时任务crontab -r
发现删除不了
应该是加了隐藏权限,那么我们查看一下是否有隐藏权限:
lsattr root
发现这个文件被i属性锁定了
使用命令:chattr -i root 我修改权限后,还是不能删除他这个定时任务
我就返回上一级目录再执行了一下 lsattr 命令
发现他上级的 /cron目录也被加了隐藏权限,我再用chattr命令修改了权限
修改之后再进行定时程序删除就成功删除了
我又通过之前重新起来的那个进程查找其他关联的进程
systemctl status 21001
最后找到了/etc目录下
在/etc/目录下,使用ls
发现了几个文件都是二进制文件 比较大,那几个文件应该就是挖矿程序和守护程序。还有一个update.sh文件,应该是对挖矿程序升级用的。
我就删除/etc下面的 sysupdate、networkservice、sysguard、update.sh和config.json这几个文件
发现还是加了隐藏权限,然后修改之后删除的
删除完挖矿程序文件之后,我又用命令:kill -9 PID (异常程序PID号)杀掉了那个异常进程
之后等了几分钟,CPU都正常,没有异常进程了

他这应该是通过弱口令或者struts2框架漏洞进入,上传的webshell和挖矿程序,并且执行挖矿程序

最后的修复建议:

1) 就是修改tomcat账号密码,提升复杂度
2) 升级s2版本

S2-045漏洞:

恶意用户可在上传文件时通过修改HTTP请求头中的Content-Type值来触发该漏洞,进而执行系统命令。在Struts2.3.5 到 Struts2.3.31 以及 Struts2.5 到 Struts2.5.10之间存在这个漏洞,当时升级到Strusts2.3.32或者Strusts2.5.10.1

© 版权声明
THE END
喜欢就支持一下吧
点赞15赞赏 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容