分析惡意軟體GoScanSSH如何通過掃描SSH伺服器暴力破解憑證進行傳播的
執行概要
在最近一次應急響應(IR)參與中,Talos發現了一個新的惡意軟體家族,它被用來攻擊暴露在網路上的SSH伺服器。我們將該惡意軟體命名為GoScanSSH,該惡意軟體是使用Go編程語言編寫的,並顯示了幾個有趣的特性。雖然這並不是Talos所觀察到的第一個使用Go語言編寫的惡意軟體家族,但是使用這種編程語言編寫的惡意軟體還是是比較少見的。在這個特殊的例子中,我們還觀察到攻擊者為每一個感染了GoScanSSH惡意軟體的主機創建了獨有的惡意軟體二進位文件。此外,還發現GoScanSSH命令和控制(C2)基礎設施,利用Tor2Web代理服務,試圖讓跟蹤攻擊者控制基礎設施這一操作更加困難,並使其具有很強的靈活性。
初始感染過程
GoScanSSH所使用的初始感染向量很可能是對一個可公開訪問的SSH伺服器的SSH憑據強力攻擊,該伺服器允許基於密碼的SSH認證。在這一系列的攻擊中,攻擊者利用一個包含超過7000個用戶名/密碼組合的wordlist。一旦攻擊者發現了一個允許成功進行SSH身份驗證的有效的憑證集,那麼他們就會創建一個獨特的GoScanSSH惡意軟體二進位文件,並將其上傳到被攻擊的SSH伺服器上。然後,惡意軟體就會被執行,從而感染系統。
該惡意軟體使用的用戶名/密碼組合似乎針對性較弱或者直接對一系列基於linux的設備是默認憑證。惡意軟體使用下列用戶名試圖對SSH伺服器進行身份驗證:
·admin
·guest
·oracle
·osmc
·pi
·root
·test
·ubnt
·ubuntu
·user
其中這些憑證的組合特別針對以下內容:
·開放嵌入式Linux娛樂中心(OpenELEC)
·Raspberry Pi
·開源媒體中心(OSMC)
·Ubiquiti設備默認憑證
·越獄iphone
·PolyCom SIP電話默認憑證
·華為設備默認憑證
·Asterisk默認憑證
·各種鍵盤模式
·眾所周知的常用密碼
本文的以下部分包含關於GoScanSSH惡意軟體具體操作的其他詳細信息以及該惡意軟體其他可用功能的詳細信息。
惡意軟體操作
GoScanSSH是一個針對Linux系統並使用Golang(Go)編程語言編寫的惡意軟體。在分析過程中,Talos發現了超過70個與GoScanSSH惡意軟體家族相關的獨特的惡意軟體樣本。我們觀察了GoScanSSH樣本的示例,它們被編譯來支持多種系統架構,包括x86、x8664、ARM和MIPS64。在分析GoScanSSH的MIPS64版本時,Talos發現了一個線程,在該線程中Ubiquiti企業網關路由器(Ubiquiti Enterprise Gateway Router )用戶在他們的路由器上發現了該惡意軟體,這表明該惡意軟體也在各種設備類型上傳播和執行。Talos還觀察到了該惡意軟體在野外活動的多個版本(版本1.2.2、1.2.4、1.3.0等等),這表明這種威脅正在繼續被攻擊者積極地開發和改進。
在感染之後,GoScanSSH惡意軟體試圖確定受感染的系統有多強大。這一操作是通過確定在固定時間間隔內可以執行多少哈希計算來完成的。當惡意軟體向C2伺服器發送一個「checking_in」消息時,確定的結果與關於受害者機器的基本調查信息一起將被傳送到C2伺服器。這條消息在發送到C2伺服器之前將被加密。對這條消息進行解密表明它正在使用JSON進行傳輸,並使用以下格式:
惡意軟體還會獲得一個唯一的標識符,如上面的請求所示,該標識符也會被發送到C2伺服器。Talos在分析的樣本中觀察到大量的標識符,但相同的標識符只出現兩次。觀察到的不同標識符的例子如下:
在Talos分析的GoScanSSH樣本中,惡意軟體被配置為接觸以下C2伺服器域名:
hXXp://5z5zt3qzyp6j4bda[.]onion[.]link
hXXp://5z5zt3qzyp6j4bda[.]onion[.]to
hXXp://3xjj3i6rv3bdxd6p[.]onion[.]link
hXXp://3xjj3i6rv3bdxd6p[.]onion[.]to
hXXp://b4l7gbnyduslzhq4[.]onion[.]link
hXXp://b4l7gbnyduslzhq4[.]onion[.]to
這些域名是通過Tor2Web代理服務訪問的。該服務允許標準互聯網上的系統訪問託管在Tor上的資源,而不需要系統安裝Tor客戶端。Talos觀察到惡意軟體越來越多地使用這些代理服務,正如一篇博客中描述的那樣。通過利用Tor2Web,攻擊者可以在Tor網路中託管他們的C2基礎設施,而不需要在他們的惡意軟體中包含額外的Tor功能。
受攻擊的主機和C2基礎設施之間的通信是經過身份驗證的,以確保受攻擊的主機不能被劫持。為了實現這一點,對在受感染系統和C2伺服器之間傳輸的消息,使用隨機生成的密鑰進行AES加密。還使用RSA非對稱加密對密鑰進行加密。RSA公鑰是在惡意軟體二進位文件中硬編碼的。加密的密鑰和被傳輸的JSON的內容被連接起來,並被base64編碼。然後,作為HTTP GET請求的URI部分,發送給C2伺服器。
在啟動SSH掃描活動之前,該惡意軟體將等待C2伺服器響應前面提到的HTTP GET請求,該請求使用與「checking_in」消息相關聯的JSON數據結構的SHA256散列。如果還沒有收到響應,惡意軟體就會執行一個睡眠功能,並將重新嘗試這個過程。
通過使用Cisco Umbrella的調查來分析DNS請求,該請求試圖解析上面列出的一個C2域名,Talos發現解析域名的嘗試明顯增加,這可能表明受攻擊的主機數量在繼續增加。
在對與所有Talos分析樣本中收集到的所有C2域名有關的被動DNS數據分析中,可以看到,從2017年6月19日開始的解析嘗試,表明這次攻擊活動已經持續了至少9個月。此外,已經觀察到具有最大數量解析請求的C2域名8579次解析請求。
下圖顯示了我們所識別的所有惡意域名的DNS活動總數如下:
Talos識別出的與該進行中的惡意活動有關的250個域名的完整列表,在本文的攻擊指標(IOC)部分。
掃描易受攻擊的SSH伺服器
GoScanSSH惡意軟體所執行的主要功能之一是掃描並識別暴露在互聯網上的其他易受攻擊的SSH伺服器,攻擊者可能會進一步攻擊它們。這一操作通過首先隨機生成一個IP地址來執行的,並且避免特殊用途的IP地址。然後,將IP地址與惡意軟體不掃描的CIDR塊列表進行比較。該列表的內容主要是由不同的政府和軍事實體控制的網路範圍,特別要避開此處列出的美國國防部指定的範圍。此外,列表中的一個網路範圍被分配給韓國的一個組織。如果所選的IP屬於這些網路範圍就會被丟棄,並生成一個新的IP地址。
惡意軟體試圖在TCP/22上與選定的IP地址建立一個TCP連接。如果連接成功建立,惡意軟體就會執行反向DNS查找,以確定IP地址是否解析為任何域名。如果反向DNS查詢返回一個域名,則將其與各種政府和軍事實體相關的域名列表進行比較。如果域名匹配列表上的任何條目,連接終止,IP將被丟棄,並生成一個新的IP。在這個過程中包含的CIDR塊和域名的列表可以在附錄A和B中找到。
一旦確定所選的IP地址是額外攻擊的理想目標,惡意軟體就會試圖通過使用前面提到的包含用戶名和密碼組合的wordlist對系統進行身份驗證,從而獲得有效的SSH憑證。如果成功,惡意軟體將報告返回到C2伺服器。返回到C2伺服器的通信將使用以下格式在JSON中傳輸關於攻擊狀態的橫幅和其他信息:
Talos認為攻擊者隨後會為受攻擊的系統編譯一個新的惡意軟體二進位文件,並感染新的主機,導致該進程在新感染的系統上重複。
總結
上述這些攻擊表明了,暴露在互聯網上的伺服器,存在被網路犯罪分子不斷攻擊的風險。企業應該採用最佳措施,來確保所暴露的伺服器可以免受來自世界各地的攻擊者的不斷攻擊。企業還應該確保系統已被加強,在將新系統部署到生產環境之前,默認憑證是可以被更改的,並且這些系統會被持續監視,以試圖對它們進行攻擊。Talos將繼續監測和跟蹤這一攻擊,以及其他威脅,以確保客戶在這些威脅不斷演變的情況下繼續受到保護。
覆蓋
我們的客戶可以發現並阻止這種威脅的其他方法如下。
·先進的惡意軟體保護(AMP)非常適合用於阻止威脅行為者使用的惡意軟體的執行。
·CWS或WSA網頁掃描阻止對惡意網站的訪問,並檢測在這些攻擊中使用的惡意軟體。
·電子郵件安全(Email Security )可以阻止威脅參與者發送的惡意電子郵件,作為他們活動的一部分。
·網路安全設備(Network Security ),如NGFW、NGIPS和Meraki MX可以檢測與這種威脅相關的惡意活動。
·AMP Threat Grid有助於識別惡意的二進位文件,並為所有Cisco安全產品建立保護。
·Umbrella,我們的安全網際網路網關(SIG),阻止用戶連接到惡意域名、IP和URL,不管用戶是否在公司網路上。
·Open Source Snort Subscriber Rule Set,客戶可以通過在Snort.org上下載最新的規則包來保持更新最新的規則包。
攻擊指標(IOC)
在這裡可以找到與該惡意軟體相關聯的二進位哈希(SHA256)的列表。
可以在這裡找到與該惡意軟體相關的域名列表。
附錄A:IP黑名單
下面的列表用於確定惡意軟體所使用的隨機生成的IP是否不用於試圖破
壞系統。
0.0.0.0/8
10.0.0.0/8
100.64.0.0/10
127.0.0.0/8
169.254.0.0/16
172.16.0.0/12
192.0.0.0/24
192.0.2.0/24
192.88.99.0/24
192.168.0.0/16
198.18.0.0/15
198.51.100.0/24
203.0.113.0/24
224.0.0.0/4
240.0.0.0/4
255.255.255.255/32
6.0.0.0/8
7.0.0.0/8
11.0.0.0/8
21.0.0.0/8
22.0.0.0/8
26.0.0.0/8
28.0.0.0/8
29.0.0.0/8
30.0.0.0/8
33.0.0.0/8
55.0.0.0/8
214.0.0.0/8
215.0.0.0/8
211.238.159.0/24
附錄B:域名黑名單
下面的列表用於根據反向DNS查找的結果確定是否繼續嘗試攻擊系統。如果域名在下列列表中,它將被丟棄。
.mil
.gov
.army
.airforce
.navy
.gov.uk
.mil.uk
.govt.uk
.mod.uk
.gov.au
.govt.nz
.mil.nz
.parliament.nz
.gov.il
.muni.il
.idf.il
.gov.za
.mil.za
.gob.es
.police.u
※F5做負載均衡時,如何通過修改cookie查找敏感信息
※如何拿下Gooligan(一):對Gooligan起源和工作原理的初步分析
TAG:嘶吼RoarTalk |