APT & 針對式目標攻擊
為何一般駭客和國家級駭客,都把遭入侵的路由器當成網路攻防焦點?
本文希望點出對外連網路由器所面臨的危險,並詳細說明 Pawn Storm 如何攻擊 EdgeRouter 路由器的弱點,藉此對 FBI 在 2024 年 2 月 27 日發布的公告做一些補充。
重點整理
- 不論是一般的網路駭客或國家級駭客對已遭入侵的路由器都深感興趣,因為這些路由器可用來當成匿名化網路層。
- 網路駭客會將他們入侵的路由器出租給其他駭客,此外,很可能也會將這些路由器提供給「在地代理器」(residential proxy) 供應商使用。
- 像 Sandworm 這樣的國家級駭客,通常會有自己專屬的代理器殭屍網路,但像 Pawn Storm 這樣的進階持續性滲透攻擊 (APT) 集團,則是使用 Ubiquiti EdgeRouter 路由器所組成的代理器殭屍網路來犯罪。
- Pawn Storm 使用的 EdgeRouter 路由器殭屍網路最早可追溯至 2016 年,但目前已於 2024 年 1 月遭美國 FBI 破獲。
- 此殭屍網路上還包含了其他廠牌的路由器以及虛擬私人伺服器 (VPS)。在遭到破獲之後,該殭屍網路的經營者已成功將旗下的一些殭屍裝置轉移到新架設的幕後操縱 (CC) 基礎架構上。
- 趨勢科技在一些被入侵的 EdgeRouter 路由器上發現了兩個重要駭客集團以及一個國家級駭客集團 (Pawn Storm) 的活動跡象。
- 路由器的保護至關重要,企業最好只在絕對必要時才開放從網際網路存取路由器。本文提供了一些建議給網路防禦團隊以及小型辦公室/家庭辦公室 (SOHO) 網路系統管理員,協助他們掃描自己的路由器看看是否有遭到國家級駭客或網路駭客利用的徵兆。
簡介
一般網路駭客與進階持續性滲透攻擊 (APT) 集團都喜歡利用代理器匿名化網路層以及虛擬私人網路 (VPN) 節點來隱藏其行蹤,使其惡意活動更難被偵測。正因如此,所以網際網路流量才夾雜著許多為了牟利及從事間諜活動的惡意流量。
一個知名案例就是某個由已遭入侵的 Ubiquiti EdgeRouter 路由器所組成的殭屍網路 (最早從 2016 年開始活躍),此殭屍網路已在 2024 年 1 月 26 日被 FBI 及其他國際合作單位破獲。2022 年 4 月,APT 集團 Pawn Storm (亦稱為 APT28 與 Forest Blizzard) 成功取得了該殭屍網路的控制權,並將它用於自己的持續性間諜行動。根據趨勢科技與第三方的監測資料,我們觀察到有數百個 Ubiquiti EdgeRouter 路由器被駭客用於各種不同用途,例如:Secure Shell (SSH) 暴力登入、醫藥詐騙、在 NTLMv2 雜湊碼中繼攻擊 (hash relay attack) 當中使用 SMB 反射器、在網路釣魚網站上擔任失竊登入憑證的代理器、多重用途代理器、虛擬加密貨幣挖礦,以及發送魚叉式網路釣魚郵件。
我們認為 NTLMv2 雜湊碼中繼攻擊以及登入憑證代理器應該是 Pawn Storm 所為,至於醫藥詐騙則似乎跟惡名昭彰的 Canadian Pharmacy 犯罪集團有關。
FBI 的破獲行動是一起法院核准的執法行動,這項行動修改了 Ubiquiti 裝置上的程式碼與設定。儘管設定可以回復,但 FBI 卻面臨了一些法律上的限制與技術挑戰,這可能使得某些殭屍裝置因而無法清除乾淨。不僅如此,根據我們的研究,駭客還成功將一些殭屍裝置從 2024 年 1 月 26 日被查緝的幕後操縱 (CC) 伺服器移轉到 2024 年 2 月初重新架設的一個 CC 基礎架構。
除了 EdgeRouter 裝置之外,趨勢科技也發現殭屍網路當中還有一些被駭入的 Raspberry Pi 與其他對外連網裝置。同時,我們也發現了超過 350 個資料中心 VPS IP 位址即使在 FBI 破獲行動之後依然在駭客的掌握中。這些被駭入的伺服器有許多原本都是連上舊的 CC 伺服器,但後來竟然會連上新的 CC 基礎架構。這些伺服器可以很輕易地被 Pawn Storm 或任何其他駭客集團利用,因為殭屍網路原本的經營者並未妥善保護其偷來的資產。
經過進一步調查,我們發現還有第三個駭客集團在 EdgeRouter 裝置上執行惡意程式,這些裝置有的也同時被 Pawn Storm 所利用。該集團會在記憶體內執行一個名叫「Ngioweb」的惡意程式,但它並未在硬碟上留下惡意檔案。隸屬於 Ramnit 的 Windows 版 Ngioweb 在 2018 年首次被披露,隨後,其 Linux 版本的分析則也在 2019 和 2020 年出現。它使用了好幾層的 CC 基礎架構來組成一個反向代理器 (reverse proxy) 殭屍網路。我們發現有證據顯示感染 Ngioweb 惡意程式的 EdgeRouter 路由器被當成某個商用在地代理器殭屍網路的出口節點 (exit node) 使用。
Pawn Storm 會使用第三方代理器殭屍網路來從事其間諜行動,這麼做有一個明顯的優勢就是能夠將間諜行動的流量混在其他網路犯罪流量當中。反觀其他的 APT 集團大多使用自己專屬的殭屍網路,例如 Sandworm 使用的是「Cyclops Blink」,此殭屍網路由一些遭到駭入的 Watchguard 與 ASUS 路由器所組成,但該網路已在 2022 年被 FBI 和英國網路安全中心 (National Cyber Security Centre,簡稱 NCSC) 破獲。更早之前,Sandworm 還有另一個殭屍網路叫做「VPNFilter」,這是由數千個路由器所組成,早在 2018 年就被 FBI 破獲。其他 APT 集團,如:APT29 (亦稱為 Midnight Blizzard) 則採用可在網路上購買到的在地代理器網路,這些節點通常是經由不當的方式取得。此外,APT29 還會不時使用一些與其他犯罪集團共用的基礎架構來散播惡意程式與漏洞攻擊程式。
與網際網路連接的路由器依然是駭客集團最愛入侵的資產,因為它們通常不具備強大的資安監控,密碼政策也較不嚴謹,不會經常定期更新,而且可能還使用了某種強大的作業系統,很適合安裝各種惡意程式,例如:虛擬加密貨幣挖礦程式、代理器、分散式阻斷服務 (DDoS) 惡意程式、惡意腳本,以及網站伺服器。
本文的目的是要協助網路防禦團隊了解對外連網路由器的風險。此外,我們也會說明 Pawn Storm 從過去到現在一直都是如何利用 EdgeRouter 路由器,藉此對 2024 年 2 月 27 日 FBI 發布的公告做更詳細的補充。最後,我們也會說明如何防範那些特別喜歡利用對外連網路由器的 APT 集團與其他網路駭客集團。
入侵集合 (intrusion set) | 動機 | TTP | TTP | 時間範圍 |
---|---|---|---|---|
Pawn Storm | 間諜行動 | 指令列腳本、SSH 通道 | 登入憑證網路釣魚、NTLMv2 雜湊碼中繼攻擊 | 2022 年 4 月至 2024 年 4 月 |
Water Zmeu | 獲取金錢 | 指令列腳本、SSHDoor | 代理器服務、竊取資料、掃描、虛擬加密貨幣挖礦 | 2016 至 2024 年 |
Water Barghest | 獲取金錢 | 反向代理器、多層式 CC 基礎架構 | 在地代理器服務 | 2018 至 2024 年 |
表 1:同時存在於 EdgeRouter 路由器上的駭客集團活動。
EdgeRouter 殭屍網路與其他
該殭屍網路至少從 2016 年便已存在,但目前已被 FBI 及國際合作單位所破獲 (2024 年 1 月)。其先前版本的惡意程式碼曾被用於入侵 Linux 裝置,最早是由一篇先前的部落格所披露。從那時起,其惡意程式碼已經歷多次更新及擴充,目前版本為 20.3 版 (2016 年為 3.0 版)。
這套惡意程式碼包含了一些 bash 腳本、Python 腳本,還有幾個惡意的 Linux 二進位檔案,如:SSHDoor。bash 腳本所包含的功能包括:取得被駭主機上的某些資訊,例如資料夾、系統使用者、運算效能、已安裝軟體、虛擬加密貨幣錢包、密碼,以及網際網路連線速度,這些對駭客集團來說都是寶貴的資訊。這些腳本當中還包含一個腳本可用來安裝 SOCKS5 代理器 (需認證或不需認證),以及一個可連線到 CC 伺服器上傳資訊和下載額外元件的功能。如果被入侵的 VPS 主機或路由器運算效能足夠的話,還可能會被安裝一些元件來開採門羅幣 (Monero)。
這套腳本與惡意二進位檔案當中的一個關鍵元素就是 SSHDoor,這是一個被後門化的 SSH 背景程式 (daemon),可讓駭客在使用者登入時偷取合法的登入憑證。此外也讓駭客能夠永久進出,不論是藉由 SSH 公開金鑰或透過額外的登入憑證來登入。Pawn Storm 有可能是利用後者來登入該殭屍網路的節點,因為殭屍網路原本的經營者並未妥善保護其偷來的資產。根據我們研究,殭屍網路原本的經營者使用的是公開儲存庫上可輕易取得的 SSHDoor 二進位檔案,只不過稍微修改了預設的登入憑證,這使得該後門化 SSH 伺服器的密碼很容易被 Pawn Storm 這樣的駭客集團所暴力破解。
儘管 FBI 的公告提到此殭屍網路主要是由 Ubiquiti EdgeRouter 路由器所組成,但趨勢科技的監測資料及研究卻發現,此殭屍網路上還有更多其他 Linux 裝置。事實上,任何基於 Linux 的對外連網路由器都可能遭到入侵,尤其是還在使用出廠預設登入憑證的路由器。特別的是,Raspberry Pi 裝置以及資料中心內的 XMRig 礦池底下專門開採門羅幣 (Monero) 的 VPS 伺服器,也成了這個殭屍網路的一分子。
除此之外,大量的殭屍裝置上還存在著對外開放的 SOCKS5 伺服器,我們隨後發現這是「MicroSocks」開放原始碼 SOCKS5 伺服器軟體。請注意,連上這些 SOCKS5 伺服器的連線可能來自四面八方。SOCKS5 伺服器執行時所使用的連接埠通常會回報給 FBI 破獲的某個殭屍網路 CC 伺服器。在某些情況下,駭客使用的是一個稍微修改過的 MicroSocks 版本和預先定義的位址 (所有介面) 及連接埠 (56981/tcp)。
MicroSocks 的二進位檔案通常會出現在「/root/.tmp/local」目錄。2024 年 2 月下旬,駭客在 MicroSocks 當中加入了一組使用者名稱和密碼,然後重新加以編譯,再上傳到殭屍裝置上。
SSHDoor
SSHDoor 是一種統稱,用來指那些被後門化的 SSH 伺服器,它們通常是從 OpenSSH 的原始程式碼稍加惡意修改之後再編譯而來。有關 SSHDoor 最早的介紹是在 2013 年,儘管後門化的 OpenSSH 伺服器早在這之前就已經存在。
其主要功能是用來竊取合法登入憑證,還有在程式碼中加入寫死的登入憑證或 SSH 金鑰來提供未經授權的第三方存取。這類威脅有時很難偵測,因為其大部分的程式碼都是以 OpenSSH 團隊所實作的合法 SSH 為基礎。儘管 FBI 並未在其書面證詞中明確提到 SSHDoor,但我們認為 Pawn Storm 有可能是經由 SSHDoor 來進入使用 EdgeOS 作業系統的路由器 (某些情況下也會使用預設的登入憑證)。根據 FBI 的書面證詞看來,這些路由器上的 SSHDoor 應該是由殭屍網路的經營者所植入。
我們一開始的研究是針對 GitHub 上的修補版本 (發布於 2016 年),因為我們有證據顯示這是 EdgeRouter 殭屍網路經營者所使用的版本。此修補版本修改了 OpenSSH 伺服器背景程式 (sshd) 的原始程式碼,讓它接受一組寫死的登入憑證,並將合法的登入憑證記錄到一個檔中,以供駭客日後存取。
圖 2 顯示後門程式所做的修改。後門程式的密碼是儲存在一個名為「bdpassword2」的變數中 (如果使用 bcrypt) 或是「bdpassword」(其他情況)。
後門程式會將合法的登入憑證預設儲存在「/tmp/.zZtemp」底下的一個檔案內。這個檔案有可能加密或不加密,隨後門程式的組態設定而定,其路徑也可能改變。
GitHub 儲存庫當中含有一個安裝腳本會要求提供一個橫幅字串 (以及一些其他資訊),所以駭客可利用這點來輕鬆判斷某個 OpenSSH 伺服器是否已被後門化。根據 Pawn Storm 的活動,我們發現被感染的 EdgeRouter 裝置顯示的橫幅字串是:SSH-2.0-OpenSSH_6.7p2 (如先前的報告所說)。
任何使用 SSHDoor 的駭客都可能使用 SSH-2.0-OpenSSH_6.7p2 這串字當橫幅,所以這並不是很好判斷某個 Pawn Storm 殭屍網路旗下的 EdgeOS 裝置是否也被用於他們的間諜行動。但儘管如此,這依然是判斷 SSH 伺服器是否被後門化的不錯依據,因為 OpenSSH 官方的版本從未使用過 SSH-2.0-OpenSSH_6.7p2 這串字。
通常,要判斷某個 SSH 伺服器是否可疑,可以查看其橫幅字串是否跟 OpenSSH 發布的某個官方版本相符。此外,我們也會檢查伺服器支援哪些演算法,例如,OpenSSH 7.2 或更高的版本應該預設就不支援 blowfish-cbc 加密法 (cipher),而 7.6 或更高的版本則根本不支援。利用這樣的方法,我們就能判斷某個橫幅字串是否是假的。運用這兩項技巧,我們在下列表格當中整理出網際網路上看到的 EdgeRouter 路由器出現的可疑橫幅字串:
版本 | 官方版本 | 備註 |
---|---|---|
OpenSSH_6.0p1 | 否 | 很可能已被後門化,因為這並非官方版本。 |
OpenSSH_6.6.1p1 | 否 | 很可能已被後門化,因為這並非官方版本。 |
OpenSSH_6.7p2 | 否 | 很可能已被後門化,因為這並非官方版本。 |
OpenSSH_7.4p1 | 是 | 如果它接受 blowfish-cbc,那麼橫幅字串可能是假的,且 sshd 很可能已被後門化。 |
OpenSSH_7.9p1 | 是 | 如果它接受 blowfish-cbc,那麼橫幅字串肯定是假的,且 sshd 很可能已被後門化。 |
OpenSSH_8.2p2 | 否 | 很可能已被後門化,因為這並非官方版本。 |
表 2:如何判斷 OpenSSH 橫幅字串的真假。
根據我們的測試,在執法機關破獲之前,已遭入侵的 EdgeRouter 路由器型號分布情況如下:
在我們測試期間,有 80 台路由器 (全部共 177 個) 回覆了我們查詢 EdgeRouter 型號以及 SSH 橫幅字串的請求。在測試過後,我們認為這些路由器有中等的機率已經被後門化。
我們也從 EdgeRouter 裝置上蒐集到多個後門化的 sshd 二進位檔案。其中有些是 2016 年上傳到 GitHub 的二進位檔案 (未修改過),其他的則是已修改成可接受另一組不同的密碼。
駭客為了確保他們能夠持續進出這些殭屍裝置,還加入了一個公開金鑰到 /root/.ssh/authorized_keys,並且偶爾會修改 sshd 的組態設定讓它多監聽一個連接埠。
Pawn Storm 在破獲行動之後仍在使用 EdgeRouter 路由器
FBI 以及國際合作單位的破獲行動,確實對 Pawn Storm 攻擊行動所使用的基礎架構帶來嚴重打擊,但 FBI 卻因為受限於管轄權與技術上的挑戰而無法將所有的 EdgeRouter 路由器都清除乾淨。
不僅如此,遭到破獲的殭屍網路上面還有其他類型的殭屍裝置存在,例如:Raspberry Pi 和 VPS 伺服器。所以,有些舊的殭屍裝置就被移轉到一個新架設的 CC 伺服器,如此一來,殭屍網路的控制者就能在破獲行動之後繼續操控這些裝置。除此之外,許多其他遭到入侵的路由器 (包括 EdgeOS 路由器在內) 還是可以透過預設或其他不安全的登入憑證進入。這意味著,儘管執法單位相當努力,但 Pawn Storm 仍舊可以存取許多其他已遭入侵的裝置,包括 EdgeServer。例如,某個 IP 位址 (32[.]143[.]50[.]222) 在 2024 年 2 月 8 日左右是被當成 SMB 反射器使用。但同樣的 IP 位址,卻在 2024 年 2 月 6 日的某一起針對全球政府機關的登入憑證網路釣魚攻擊當中擔任代理器。
在眾多針對烏克蘭免費網頁郵件 ukr.net 使用者的網路釣魚攻擊中,有一起攻擊的網路釣魚網站就架設在一個 webhook.site 網址上。受害者的登入憑證會被上傳到一個遭到入侵的 EdgeServer,然後再透過 SSH 通道轉傳到一個上游 IP 位址:185[.]227[.]137[.]200,而這又可能是 Pawn Storm 匿名化網路的另一個代理器轉跳點。
這一切都意味著,保護對外連網的路由器依然是非常重要的一件事。在本文的最後一節,我們將提供一些網路安全指引。
EdgeOS 上發現的 Ngioweb 惡意程式
當我們在調查 2024 年 1 月 FBI 與其國際夥伴部分破獲的 Linux 殭屍網路時,我們發現了另一個 Linux 殭屍網路同樣也有一些惡意程式是在 Pawn Storm 所使用的某些 EdgeRouter 路由器上執行。此殭屍網路更加隱密,而且營運安全做得更好,就我們所知,其使用的惡意程式只會在記憶體中執行,不會在硬碟上留下惡意檔案。我們在研究過記憶體傾印內容與其 CC 連線之後發現它應該是某個版本的 Ngioweb 惡意程式,此惡意程式我們先前曾經在 2018 至 2020 年的三篇部落格文章當中討論過。我們有證據顯示,這個殭屍網路當中的殭屍裝置會被用於某個提供付費訂閱服務的在地殭屍網路。未來我們會分享有關這個殭屍網路的入侵指標,同時也計畫在未來發表有關此殭屍網路的完整分析。
在同一批 EdgeRouter 路由器上發現了至少有三大駭客集團的活動跡象,顯示駭客對於對外連網的路由器都有著濃厚的興趣。
結論與展望
網路駭客與 APT 集團會使用匿名化工具來將其惡意活動混雜在正常流量當中,而商用 VPN 服務與商用在地代理器網路,是他們從事這類活動的熱門選擇。
對外連網的裝置 (例如 SOHO 路由器) 同樣也是網路犯罪與間諜行動的熱門選擇。雖然已遭入侵的 SOHO 路由器看似好像是人人都能利用的網路資產,尤其是保留了預設登入憑證的路由器,但駭客同樣也能趁機混水摸魚,暗中利用這些路由器來為自己牟利。
就拿已遭入侵的 Ubiquiti EdgeRouter 來說,我們看到有某個殭屍網路集團在被入侵的裝置上面安裝了後門化的 SSH 伺服器和一整套腳本,並且潛伏了多年卻未引起資安產業的太多關注,所以才能持續進進出出。另一個駭客集團也在上面安裝了只在記憶體內執行的 Ngioweb 惡意程式,將裝置變成商用在地代理器殭屍網路的成員。至於 Pawn Storm,則很可能是利用暴力登入的方式取得了後門化 SSH 伺服器的登入憑證,因此也掌握了其中一部分的 EdgeRouter 裝置來從事各種用途。
建議
家庭/小型辦公室(SOHO)所有者有必要了解後門化 OpenSSH 版本所帶來的風險。這些被植入的後門程式不易被發現,因為合法的登入憑證還是可以使用,但它卻能讓駭客從遠端使用只有自己知道的系統管理密碼登入。這問題無法透過 sshd_config 停用 root 權限來加以解決,因為後門程式碼會繞過這項機制。要檢查此後門程式是否存在,以下是我們提供給 EdgeRouter 裝置使用者的一些建議:
使用 SSH 指令列用戶端的「verbose」選項來查看您裝置在當成伺服器時所顯示的橫幅字串。以下範例顯示一台 EdgeRouter (型號 ER-X-SFP) 所顯示的橫幅字串 (IP 位址:192.168.50.85):
$ ssh -v
--snip--
debug1: Remote protocol version 2.0, remote software version OpenSSH_7.4p1 Debian-10+deb9u7
--snip--
您可以按下 Ctrl+C 來中斷過程而不需登入該裝置。
由於 EdgeOS 是以 Debian GNU/Linux 為基礎所開發,所以您看到的橫幅字串應該會包含「Debian」字樣。此外,OpenSSH 版本也必須是某個現有的官方版本。從上面的範例可看出該伺服器所執行的是 OpenSSH version 7.4p1,這就是一個官方版本。
熟悉指令列介面的使用者,還可以執行以下幾個步驟:
1. 登入您裝置的網頁式管理畫面 (萬一您的裝置已經被後門化,這麼做可以避免登入憑證被竊取),然後暫時啟用 telnet 程式。
2. 使用 telnet 登入。
3. 搜尋 sshd_config 檔案,檢查檔案內是否有組態設定選項 GatewayPorts 被設成「yes」:
$ (find / -type f -name sshd_config -exec grep Gate {} +;) 2>/dev/null
如果輸出內容包含「GatewayPorts yes」這一串字,而您卻不認得這項設定,那裝置有可能已經被駭。
4. 檢查您裝置上所有 sshd 二進位檔案的雜湊碼。假使有任何一個出現在本文提供的入侵指標 (IoC) 清單上,那麼您的裝置很可已經被駭:
$ (find / -type f -name sshd -exec shasum {} +;) 2>/dev/null
5. 再次登入網頁式管理畫面,然後停用 telnet。
如果您懷疑自己的裝置已經被後門化,那麼您最好將裝置恢復至原廠設定,然後再設定一個高強度密碼。此外,請考慮不要允許從網際網路連上系統管理畫面。針對系統管理者與自己當老闆的 SOHO 族,我們也撰寫了一個方便的腳本 (請至這裡下載)。這腳本可以在路由器上執行,用來尋找 Water Zmeu 相關的入侵痕跡。
入侵指標資料
如需本文提到的入侵指標完整清單,請參閱這份文件。