一、引言
世界上还是牛人多,在2011年的时候,一名大三的学生有了困扰,随后上知乎发布了一个提问大三学生手头有6000元,有什么好的理财投资建议?在2017年的今天,上到了知乎热门提问,因为在提问下面有一个获得上万点赞的回答买“比特币,保存好钱包文件,然后忘掉你有过6000元这回事,五年后再看看。
二、起因
一个内网的Linux服务器,外面武装了天清汉马防火墙,内部有firewall,强大的密码组合,但还是被攻击了。
于是服务器赶紧发出一条top指令:
发现了一条诡异的进程atd,CPU占用居然将近600%,执行命令ps -eaf|grep atd:
紧接着find / -name atd查找相关指令存放地点。
服务器先把这个atd进程杀掉,kill -9 17257,立即马上迅速强行杀死。
随后退烧了,但可恶的是,不到几分钟,又烧了,一看又是atd这个进程在运行。
杀掉后重新运行,一定是在某个地方有定时,检查了一下定时任务,crontab -l:
突然发现以前的定时脚本不见了,多了两条奇怪的任务,里面有个网址很特别,复制到浏览器访问,出现的是个大黑图,F12图片网络请求发现Response中居然存在如下代码:
一于是赶紧打开蓝灯谷歌搜索这个命令,在virustotal找到以下说明:
同时发现了一条四天前的评论,这是一个脚本,通过struts漏洞传播下载和启动一个bitcode矿工。
在gov.lk中也发现了有一坨代码,隐约发现与struts2有关:
由于一些老旧项目还在使用struts2,于是查询了一下相关日志,居然发现了传说中的OGNL注入
黑客攻击者通过使用一个表单来发送一些内容到struts请求,该内容被OGNL解析,结果创建了crontab,真是耳闻不如一见啊,也有中招的那一天,就这样我变成了一个苦逼的挖矿工。
引申阅读:
一、挖矿组织
Struts2的安全漏洞从2010年开始陆续被披露存在远程代码执行漏洞,从2010年的S2-005、S2-009、S2-013 S2-016、S2-019、S2-020、S2-032、S2-037、devMode、及2017年3月初Struts2披露的S045漏洞,每一次的漏洞爆发随后互联网都会出现Struts2扫描攻击活动。此次攻击针对Struts2的远程命令执行漏洞,漏洞编号:S2-045,CVE编号:CVE-2017-5638,官方评级为高危,该漏洞是由于在使用基于Jakarta插件的文件上传功能条件下,恶意用户可以通过修改HTTP请求头中的Content-Type值来触发该漏洞,黑客通过批量对互联网的WEB应用服务器发起攻击,并下载恶意脚本执行下载进行比特币挖矿程序,主要感染Linux服务器。
经检测和搜索,这应该是一个有组织有纪律的挖矿集团,以下是IP地址来源来自俄罗斯
二、解决方案
Struts2升级版本至2.5.10,高危漏洞又来了,这是三月份的一篇升级,当时投机的还是赶紧升了吧,如果实在不想升级,无所谓反正是挖矿,不会破坏你什么。
但是,如果不挖矿呢,到时候就不是发烧那么简单了,很多公司上线部署都不是很规范,可能所有的程序都用root启动也说不定呢?