在发现入侵事件时,基于入侵现象进行排查,结合日志进行关联分析,对未知情况作合理的猜测,还原攻击场景,找到漏洞根源,这是很重要的任务。
01、事件起因
入侵检测出现安全预警,发现内网服务器的java进程发现异常执行行为,存在Dnslog探测和Bash反弹的行为。
02、事件分析
(1)排查异常端口
通过查看端口情况,在网络连接中发现shell反弹到外网ip,存在明显的入侵的迹象。
(2)排查异常进程
查看进程情况,在进程信息中找到了反弹shell命令的特征,base64解码后的通讯ip,与上面发现的一致。执行shell反弹的父进程位60753,该进程为java进程。
(3)查询历史命令
在history里发现了异常操作行为,攻击者查看了当前服务器ip,当前用户权限,用户在线情况等操作。
(4)web日志分析
java进程所对应的是web应用程序,基于异常命令执行的时间节点,对相关web日志进行分析,确认入侵时间范围内是否存在可疑的行为。
未发现异常的web访问行为,都只有访问网站首页的记录,那么它到底是如何入侵的呢?
合理的猜测:结合前面发现Java进程执行dnslog探测等行为,猜测可能存在框架组件存在远程命令执行漏洞。
(5)web框架组件
在web框架组件中,发现低版本的shiro组件,存在明显的远程命令执行漏洞。
框架/组件 | 版本 |
---|---|
spring | 4.3.5 RELEASE |
shiro | 1.4.0-RC2 |
(6)漏洞复现
通过Shiro远程命令执行漏洞成功获取到了服务器权限,存在dnslog探测和命令执行情况,与发现入侵时的迹象一致。
03、事件总结
通过以上的分析,可以判断出攻击者通过shiro 远程命令执行漏洞入侵,并在反弹shell执行了一些操作,需要升级shiro至最新版本并生成新的密钥替换。
转自:bypass