记第二次Linux应急响应 | 复现还原版

admin 2023年8月16日20:05:58评论38 views字数 3507阅读11分41秒阅读模式
记第二次Linux应急响应 | 复现还原版
记第二次Linux应急响应 | 复现还原版
0x00 应急响应背景
    某单位运维人员小帅近期发现,通过搜索引擎访问公司网站会自动跳转到恶意网站(博彩网站),但直接通过域名访问该则不会出现跳转问题,且服务器CPU的使用率异常高,小帅认为该公司服务器可能被黑客入侵了,现小帅向某安全公司大牛子哥求助,希望能找到问题。

记第二次Linux应急响应 | 复现还原版
0x01 应急响应过程
发现暗链
    根据小帅提供的线索:“通过搜索引擎访问网站或跳转至恶意网站,但直接通过域名访问该则不会出现跳转问题”,那么我们可以推断,可能是网站被植入了暗链。
    网站为Tomcat中间件,那么一般就是java语言,先用排查系统中的index.jsp,看看路径在哪里。
find / -name "index.jsp"
记第二次Linux应急响应 | 复现还原版
    一般就是在这个ROOT路径里,我们在下面可以看到还用了个struts2的框架。好,那么这个事情就注定不平凡了。不过,还是先看看index.jsp的代码有没有问题:
cat /opt/tomcat9/webapps/ROOT/index.jsp
记第二次Linux应急响应 | 复现还原版
    哦?js脚本,判断是不是搜索引擎的,那就是你了。
<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>
    这一段js的意思是:判断访问是不是来源于百度、谷歌、搜搜、搜狗等搜索引擎,是的话就会跳转至下面定义的链接。不出意外,跳转暗链的原因正是在此处。

排查日志
    Tomcat日志一般在安装目录的/logs 下,那么这个的话应该就是在:
cd /opt/tomcat9/logs/
记第二次Linux应急响应 | 复现还原版    access_log则是访问日志,根据了解情况先看看最早的那个日志有没有问题:
cat localhost_access_log.2021-02-24.txt
记第二次Linux应急响应 | 复现还原版
    大部分都是本地访问,有一小部分是 192.168.184.128 的访问记录,而且他还访问了后台?而且,以tomcat用户成功登录后台?
记第二次Linux应急响应 | 复现还原版
    那么这里,我们有必要介绍一下tomcat的日志结构:
例如:192.168.184.128 - tomcat [24/Feb/2021:02:17:30 -0500] "GET /manager/html HTTP/1.1" 200 19775而与之对应的结构是:”%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的话,显示为-

发现弱口令
    现在查看配置文件,是不是存在弱口令:
cd /opt/tomcat9/confcat tomcat-users.xml
记第二次Linux应急响应 | 复现还原版
    果然,有弱口令。排查日志文件,看看什么ip成功进入了管理页面:
cat /opt/tomcat9/logs/cat localhost_access_log.20* | grep tomcat
记第二次Linux应急响应 | 复现还原版
    只有 192.168.184.128 用tomcat用户成功登录了后台。

发现扫描行为
    继续排查一下日志,看看有没有其他操作:
cat localhost_access_log.20* | awk '{print $1}'|sort -r -n |uniq -c
记第二次Linux应急响应 | 复现还原版
    通过统计发现,192.168.184.146和192.168.184.1访问次数异常的多。我们先看看146,它的相关访问情况:
cat /opt/tomcat9/logs/localhost_access_log.20* |grep 192.168.184.146 | grep 200
记第二次Linux应急响应 | 复现还原版
    大量的404状态码访问记录,就没两次成功的,你小汁,在扫描是吧?再看看 192.168.184.1 的记录:
cat /opt/tomcat9/logs/localhost_access_log.20* |grep 192.168.184.1 | grep 200
记第二次Linux应急响应 | 复现还原版
    发现了很多请求成功的记录,而且有一条 POST 请求对struts2 的路径发了一串包,尼玛,八成这struts2 的框架有漏洞。


发现WebShell
        在排查 192.168.184.1 访问记录的时候,发现它访问了很多次 config.jsp ,我现在有理由怀疑这是个WebShell:
记第二次Linux应急响应 | 复现还原版
    还有个tx.jsp,等会一起看看是什么内容。先找找config.jsp:
记第二次Linux应急响应 | 复现还原版
    顶针,一眼Webshell,搜了下tx.jsp,没搜到,可能被删了:
记第二次Linux应急响应 | 复现还原版

struts2 存在漏洞
    就像前面说的,发现对框架发了个包,我们用工具来确认下:
记第二次Linux应急响应 | 复现还原版
    石锤了,石锤了:
记第二次Linux应急响应 | 复现还原版
小结:
    1、存在webshell:config.jsp
    2、struts2框架存在高危漏洞

发现挖矿木马
    根据小帅的描述,我们来查看一下进程运行情况:
top
记第二次Linux应急响应 | 复现还原版
    发现有个进程占用高达 190% 以上……我靠,别跑辣,冒烟辣。把这个进程kill掉,发现又起来了,那估计有守护进程或者计划任务。

查看计划任务
    不出所料,里面是有一条东西的:
记第二次Linux应急响应 | 复现还原版
    想清除掉的,结果没权限:
记第二次Linux应急响应 | 复现还原版
    推测有隐藏权限,查看一下:
lsattr root
记第二次Linux应急响应 | 复现还原版
    接下来我们需要修改它的权限:
chattr -i root
记第二次Linux应急响应 | 复现还原版
    但是改了之后还是无法删除??额,我们看看上级目录:
记第二次Linux应急响应 | 复现还原版
    果然,上级目录被改了权限。更改隐藏权限,再删除,成功:
记第二次Linux应急响应 | 复现还原版

上面用的命令给大家简单列举一下:
记第二次Linux应急响应 | 复现还原版
记第二次Linux应急响应 | 复现还原版

清除挖矿程序
    根据进程的PID,我们来定位一下:
记第二次Linux应急响应 | 复现还原版
    发现了一个东西,跟进程名刚好一致,我们进入 /etc 目录下看看,接着使用命令让其按文件大小来排序:
记第二次Linux应急响应 | 复现还原版
    发现了有五个玩意:sysupdate、networkservice、sysguard、update.sh、config.json,前面三个是二进制文件,所以比较大,update.sh 估计是升级用的,前面的计划任务里运行的就是它,至于config.json 嘛,肯定是矿池配置文件了。

清除恶意程序
    接下来把这几个文件都删除掉,删除的时候你会发现删除不了,那就是有隐藏权限了。用下面的命令依次清除,再删除:
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掉恶意进程,再查看进程运行情况,没点毛病:
记第二次Linux应急响应 | 复现还原版

记第二次Linux应急响应 | 复现还原版
0x02 应急响应总结
根据排查可得
    1、存在弱口令 tomcat/tomcat ,192.168.184.128 成功登录
    2、192.168.184.1、192.168.184.146 都对网站进行了扫描
    3、存在WebShell:config.jsp
    4、struts2框架存在高危漏洞
    5、存在恶意挖矿程序
    猜测是通过弱口令或者struts2框架漏洞进入,上传了webshell与挖矿程序。后续,对这两个问题进行修复即可。


记第二次Linux应急响应 | 复现还原版
(
END
)



!扫码添加哦!

记第二次Linux应急响应 | 复现还原版

免责声明











   
文章内容仅限授权测试或学习使用
请勿进行非法的测试或攻击

    利用本账号所发文章
进行直接或间接的非法行为
均由操作者本人负全责
犀利猪安全文章对应作者

不为此承担任何责任

文章来自互联网或原创

如有侵权可联系我方进行删除

并诚挚的跟您说声抱歉





原文始发于微信公众号(犀利猪安全):记第二次Linux应急响应 | 复现还原版

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年8月16日20:05:58
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   记第二次Linux应急响应 | 复现还原版https://cn-sec.com/archives/1960236.html

发表评论

匿名网友 填写信息