在過去的幾個月裡,伊朗遭遇了新一輪的網絡攻擊。這些攻擊不僅僅是對網站進行攻擊那麼簡單,這輪攻擊正在對伊朗的國家基礎設施持續進行攻擊,並造成了重大破壞。
本文對2022 年1 月下旬發生的針對伊朗國家媒體公司——伊朗伊斯蘭共和國廣播公司(IRIB) 的攻擊進行了深入分析。
情況介紹1 月27 日,伊朗國家廣播公司IRIB 被攻擊,導致多個國營電視頻道播放反對派領導人的鏡頭,並呼籲暗殺最高領導人。 Check Point 研究團隊調查了這次攻擊,並能夠從公開可用的資源中檢索與該事件相關的文件和取證證據。
我們發現了旨在傳播抗議信息的惡意可執行文件,此外,我們還發現了使用擦除惡意軟件痕蹟的證據。這表明攻擊者的目的也是為了破壞國家的廣播網絡,對電視和廣播網絡的破壞可能比官方報導的更嚴重。
在攻擊中使用的工具中,我們發現了對受害者屏幕進行截圖的惡意軟件、幾個自定義的後門,以及用於安裝和配置惡意可執行文件的相關批處理腳本和配置文件。我們找不到任何證據表明這些工具以前被使用過,或者將它們歸因於特定的攻擊者。
在本文中,我們對與攻擊相關的工具以及攻擊者使用的策略進行了技術分析。
早在2021 年7 月,伊朗國家鐵路和貨運服務就遭到過攻擊,攻擊者對火車運行進行了攻擊。僅僅一天后,媒體報導稱,負責交通的伊朗道路和城市發展部的網站因“網絡中斷”而被關閉,用戶無法訪問其官方門戶和子服務。此後,網絡攻擊就開始持續攻擊伊朗國家實體,似乎每個目標都經過精心挑選的。 2021 年8 月,黑客組織Tapandegan發布了來自德黑蘭監獄的埃文監獄的鏡頭畫面,該監獄關押了許多政治犯。 2021 年10 月,伊朗的加油站因電子支付系統被攻擊而癱瘓。該事件導致加油站排了兩天的隊,客戶無法使用政府發行的用於購買補貼燃料的電子卡付款。刷卡付款時,最高領導人辦公室的電話號碼出現在屏幕上。
2021 年11 月,伊朗航空公司Mahan Air 宣布挫敗了對其內部系統的未遂攻擊,沒有造成任何傷害。奇怪的是,這一次一個名為“Hooshyaran-e Vatan”(國家警衛隊)的組織聲稱對此負責,並在接下來的兩個月中公佈了據稱在黑客攻擊中被盜的文。
2022 年2 月7 日,Edalat-e Ali 組織公佈了伊朗另一所監獄Ghezel Hesar的監控錄像。
1 月27 日,有報導稱伊朗國家廣播公司IRIB 遭到黑客攻擊。伊朗伊斯蘭共和國廣播公司,也被稱為“伊朗伊斯蘭共和國的聲音和願景”,是一家國有壟斷企業,負責伊朗的所有廣播和電視服務。網絡攻擊導致國營電視頻道都在播放該國的政治反對派組織。
在被劫持的視頻中,出現了反對派組織領導人Maryam 和Masoud Rajavi 的面孔。 IRIB 技術事務副負責人Reza Alidadi 表示,“只有公司使用技術的所有者才能根據系統上安裝的系統功能和被利用的後門進行攻擊的。”類似的攻擊已經攻擊了其他國家運營的廣播頻道。
2 月1 日,IRIB 的網絡流媒體平台Telewebion 再次被劫持,播放抗議信息。這一次,對針對監獄安全攝像頭的攻擊負責的具有政治動機的組織Edalat-e Ali 聲稱對此負責。這種說法是有道理的,因為黑客攻擊期間的視頻廣播在左上角顯示了該組織的徽標。
技術分析根據伊朗國家新聞網絡Akharin Khabar稱,“技術和廣播系統是完全隔離的,它們配備了可接受的安全協議,無法通過互聯網訪問。”伊朗官員稱這次攻擊“極其複雜”。
目前還不清楚攻擊者是如何進入這些網絡的。我們只能檢索到與這些攻擊的後期階段有關的文件,這些文件有:
建立後門及其持久性;
啟動“惡意”視頻或音頻軌道;
安裝wiper惡意軟件以試圖破壞被黑網絡中的操作;
所有這些示例都從多個來源上傳到VirusTotal (VT),主要使用伊朗IP,並包括安裝或啟動有效負載的短批處理腳本、Windows 事件日誌文件或內存轉儲等幾個取證工件,以及有效負載本身。後者主要是.NET 可執行文件,沒有混淆,但帶有時間戳的未來編譯日期。除了具有相同的語言和相同的VT 提交者之外,這些文件還具有其他相似之處,例如PDB 路徑、常用命令、名稱、代碼重用和通用編碼風格。
劫持廣播信號從用於中斷電視流並作為TSE_90E11.mp4 上傳到VT 的MP4 視頻文件中,我們能夠轉向與廣播劫持相關的其他工件,這些工件據稱運行在播放電視節目播出的服務器上。為了播放視頻文件,攻擊者使用了一個名為SimplePlayout.exe 的程序,這是一個基於.NET 的可執行文件,在調試模式下編譯,PDB 路徑為c:\work\SimplePlayout\obj\Debug\SimplePlayout.pdb。該可執行文件只有一個功能:通過Medialooks使用. net MPlatform SDK循環播放視頻文件。
首先,SimplePlayout程序尋找一個名為SimplePlayout.ini的配置文件,該配置文件包含兩行:視頻文件路徑和表示視頻格式的數字。相應的SimplePlayout.ini文件與SimplePlayout一起上傳的值對應於位於c: windows\temp\TSE_90E11.mp4的MP4文件和HD 1080i的視頻格式,刷新率為50 Hz。
為了阻止已經播放的視頻流,攻擊者使用了一個名為playjfalcfgcdq.bat 的批處理腳本。它會阻止正在運行的進程並刪除TFI Arista Playout Server 的可執行文件,這是一種已知IRIB 用於廣播的軟件,隨後卸載Matrox DSX 驅動程序,這是虛擬廣播基礎設施中用於媒體處理的軟件的一部分。
為了組合所有的惡意組件,另一個腳本layoutabcpxtveni.bat做了以下幾件事:
將位於c:\windows\temp\TSE_90E11.003 的MP4 視頻文件重命名為TSE_90E11.mp4。這個文件可能是通過某個後門釋放到那裡的,我們稍後會討論這個問題。
阻止QTV.CG. server .exe(可能是Autocue QTV廣播軟件的一部分)的運行進程,並用SimplePlayout(攻擊者用來播放視頻的工具)覆蓋位於D: CG 1400\QTV.CG. server .exe的原始服務器。
將c:\windows\SimplePlayout.exe拷貝到QTV.CG.Server.exe所在目錄下的SimplePlayout.ini。至少這個批處理腳本示例包含一個拼寫錯誤,因為攻擊者可能打算將SimplePlayout.ini複製到惡意可執行文件附近。
從初始位置和替換位置運行SimplePlayout.exe。
在我們發現的另一組相關工件中,攻擊者利用了包含名為TSE_90E11.001 的25 秒音軌的WAV 文件,類似於被劫持的電視流中使用的MP4 文件的文件名。一個名為Avar.exe 的可執行文件基於NAudio,一個開源的.NET 音頻庫,負責播放WAV 文件。與SimplePlayout.exe 不同,Avar.exe 不依賴於配置文件。相反,它包含硬編碼為C:\windows\temp\TSE_90E11.001 的WAV 文件的路徑。執行後,Avar.exe 會嘗試枚舉所有活動的音頻設備並在每個設備上播放WAV 文件。
最後,一個名為avapweiguyyyy .bat的批處理腳本將這些組件組合在一起。它阻止一個名為Avar.exe的進程,並在C:\ProgramFiles\MIT\AVA\ava.exe中用Avar.exe替換可執行文件。在文件和文件夾中使用的名字Ava可能表明這些文件是為IRIB的Ava電台準備的,儘管它也受到了這次攻擊的影響,這一事實尚未得到官方證實。
wiper我們發現了兩個相同的.NET 示例,名為msdskint.exe,其主要目的是擦除計算機的文件、驅動器和MBR,這也可以從PDB 路徑推導出:C:\work\wiper\Wiper\obj\Release\Wiper.pdb。此外,該惡意軟件還能夠清除Windows 事件日誌、刪除備份、終止進程、更改用戶密碼等。兩個示例均由相同的提交者在與先前討論的工件相同的時間範圍內上傳到VT。
wiper有三種模式來破壞文件,並用隨機值填充字節:
Default-覆蓋文件中每個1024 字節塊的前200 字節;
light-wipe-覆蓋配置中指定的多個塊;
full_purge-覆蓋整個文件內容;
wiper通過以下方式之一獲取擦除過程的配置:在命令行參數中,或從文件code meciwipe.ini /code 中的硬編碼默認配置和排除列表中獲取。默認配置包含一個與Windows操作系統和Kaspersky 和Symantec 安全產品相關的預定義排除列表,這些產品在伊朗被廣泛使用:
如果惡意軟件沒有參數,它將作為一個名為“Service1”的服務運行。
主要的wiper函數會計算每個參數的FNV1A32哈希並使用它來確定接下來的行為:
DestroyMBR標誌使惡意軟件可以通過寫入一個硬編碼的base64編碼的二進製文件precg.exe,然後運行它來擦除MBR。 precg.exe 是一個基於Gh0stRAT MBR wiper的MBRKiller。
擦除過程從搜索最後一個被擦除的文件開始,惡意軟件將其路徑寫入名為lastfile 的文件(或在wipe_stage_2 的情況下為lastfile2)。然後,檢查每個文件以查看它是否被排除或其擴展名不在預定義列表中:
full_purge模式覆蓋文件的所有字節,對於來自的purge_extensions列表的文件總是啟用:
如果啟用了delete_files 標誌,則wiper還會在覆蓋文件後刪除它們。
我們發現了與wiper示例一起提交的其他取證工件,證明wiper確實是在電視環境中執行的:
lastfile2 包含最後一個擦除文件的路徑:C:\users\tpa\videos\captures\desktop.ini。僅當wiper以wipe_stage_2模式運行時,才會創建此文件,該模式會在wiper過程之後刪除文件。
breakusufjkjdil.bat 文件,顯示至少一個wiper實例應該運行以終止現有用戶會話並更改所有用戶的密碼:'c:\windows\temp\msdskint.exe' -break-users * -sessi。
事件查看器應用程序日誌文件顯示與擦除服務Service1 相關的事件。日誌包含攻擊後幾個小時的時間戳:
後門WinScreeny此工具的名稱來自PDB 路徑:C:\work\winscreeny\winscreeny\obj\Debug\winscreeny.pdb。該後門的主要目的是對受害者的計算機進行截屏。我們找到了這個後門的兩個示例:第一個是上傳到VT的發布版本,名為mslicval.exe,第二個是名為precg2.exe的調試版本。不用說,這些文件和我們發現的其他工件一起提交給了VT。
根據命令行參數,後門可以以不同的方式運行:
None-運行一個SimpleTCPServer 偵聽端口18000。
Service-作為名為Service1 的服務運行。啟動時,該服務使用以下命令創建計劃任務: schtasks /create /TN \'Microsoft\\Windows\\.NET Framework\\.NETASM\'/TR \” file_path \' /ST current_time + 1:10 /SC ONCE /F。
Setup-嘗試使用LsaAddAccountRights API 函數獲取權限,然後將自身作為服務運行。
惡意軟件在端口18000 上偵聽數據包,並且對於每個數據包,它會檢查消息是否包含使用POST 方法發送的scr=命令。如果滿足這些條件,惡意軟件會將屏幕截圖保存到名為screeny- timestamp .png 的文件中,如果成功,則會向攻擊者返回“完成”消息。
有趣的是,該惡意軟件的發布版本還能夠執行命令:它支持s=命令,該命令獲取一個base64 編碼的字符串與1 字節密鑰0x24 進行異或運算。解碼後的字符串由cmd運行,執行結果返回給服務器。處理這個特性的代碼也在我們稍後討論的HttpService 後門中被重用。
HttpCallbackServiceHttpCallbackService是一個遠程管理工具(RAT),有一個熟悉的PDB路徑:C:\work\simpleserver\HttpCallbackService\obj\Release\HttpCallbackService. PDB。它的CC URL可以用兩種不同的方式指定:命令行參數或配置文件callservice.ini。接下來,接收到的值會附加一個短字符串:m=如果URL 以“.aspx”或“.php”結尾; m=,如果URL 以“/”結尾,或者/m=在任何其他情況下。
不幸的是,我們沒有找到任何與HttpCallbackService 相關的配置或其他工件,因此這次攻擊中的CC 服務器仍然未知。
每隔5秒,HttpCallbackService使用webClient向CC URL發送一個請求。 DownloadString方法接收由' \r\n '分割的命令列表。如果惡意軟件在過去的5分鐘內沒有收到任何命令,並且isStayAliveMode標誌被禁用,這個時間幀將增加到1分鐘。
這些是RAT 支持的命令:
當命令的結果上傳到服務器時,數據被發送到一個稍微不同的URL:之前定義的CC URL,現在附加了“1”。 使用以下格式的WebClient.UploadValues 方法發送數據:
download=file_name \r\n--------------\r\n base64 of chunk 用於下載命令;
command \r\n--------------\r\n result 用於cmd 命令;
HttpService
HttpService 是另一個偵聽指定端口的後門:它可以是命令行參數、取決於示例的預定義端口或配置文件中的值: exe_name .ini。我們發現了幾個默認端口為19336、19334、19333 的示例,以及上傳到VT 的兩個不同的配置文件,值分別為19336 和19335。
每個示例都有一個硬編碼版本。我們發現的文件屬於三個不同的版本:0.0.5、0.0.11v4H 和0.0.15v4H。 0.0.5 版本使用Simple TCP 服務器偵聽指定端口,而0.0.11v4H 和0.0.15v4H 版本基於Simple HTTP Server。它們都使用HTML Agility Pack 進行HTML 解析,使用IonicZip 庫進行壓縮操作。
後門的最高版本(0.0.15v4H)具有多種功能,包括命令執行和文件操作。
命令執行:命令“cmd”使後門通過cmd.exe運行指定命令,並以如下格式返回結果: div style='color: red' result_string /div 。此外,後門可以在收到“i=”命令時啟動交互式cmd shell,其參數可以是:
“1”–從shell 獲取輸出並將其發送回CC。
“2”–結束交互式shell 並清理。
Default-解碼和解密異或字符串,然後在shell 中運行命令並保存輸出。
與WinScreeny 類似,該惡意軟件也具有“s=”命令,其中字符串異或與1 字節密鑰0x24 作為參數。解碼後的字符串由cmd.exe 運行並將結果返回給服務器。
代理連接:收到“p=”或“b=”命令後,後門使用受害者的計算機作為它作為參數獲取的URL 的代理。後門與此URL 通信,重定向CC 服務器的請求,並等待響應將其發送回CC。
下載和上傳文件:“f=”或“1=”命令允許後門從作為參數給定的路徑下載文件,或者將作為參數給定的文件與消息正文的內容一起寫入。在收到“m=”命令後,惡意軟件將消息內容寫入路徑base_directory client_address .out,從base_directory client_address .in 中讀取數據,並將其發送給CC。如果該文件不存在,惡意軟件會創建該文件並將當前日期和時間寫入其中。
運行SQL 命令:“con=”/“c=”命令接收SQL DB 連接字符串和SQL 查詢,並將結果返回給服務器。
操作本地文件:“ path ”命令檢查文件/目錄是否存在,然後根據查詢值執行以下三個運行:
' zip ' -從目錄內容創建一個zip文件,並將其返回給CC;
' unzip ' -使用CC提供的路徑解壓縮文件;
“del”-刪除文件。
有趣的是,在所有這三種情況下,惡意軟件都會將整個目錄內容(包括子目錄)作為HTML 頁面返回,其中包含Zip、Unzip 和Delete 按鈕,具體取決於文件的類型。這是攻擊者端的接口:
ServerLaunch滴管HttpServer 版本0.0.5 的示例連同其dropper(稱為dwDrvInst.exe)一起提交,它模仿DameWare 可執行的遠程訪問軟件。該工具的PDB 路徑具有相同的模式,C:\work\ServerLaunch\Release\ServerLaunch.pdb。但是,該工具是用C++ 編寫的,而不是像所有其他工具一樣的.NET,並且是在2021 年12 月2 日編譯的,大約是攻擊前2個月。
ServerLaunch 在資源中包含三個可執行文件,分別位於C:\Users\Public\ 中的ionic.zip.dll、httpservice2 和httpservice4。然後惡意軟件不帶任何參數地啟動httpservice2 和httpservice4。它們每個都有一個不同的預定義端口來監聽,這可能允許攻擊者確保CC 通信的某種冗餘。
攻擊中涉及的文件我們已經討論了幾種不同的工具以及與其執行相關的一些工件。很明顯,所有這些工具都是由同一個攻擊者創建並相互關聯的。例如,屏幕截圖工具Winscreeny 不包含將創建的屏幕截圖上傳回攻擊者的功能,這可能意味著它依賴其他後門來執行此操作。所有工具的重複出現的Service1 名稱表明不同的後門,如果在同一台設