烏克蘭又斷電了,看Ukrenergo斷電事件的技術分析與防護方案
事件綜述
Ukrenergo是烏克蘭國內的主要能源供應企業,2016年12月17日晚,該公司經歷了一次供電故障,影響到基輔附近諾威佩特里夫茨村的北部變電站自動化控制系統,該停電事故主要影響的範圍是基輔(烏克蘭首都)北部及其周邊地區。
停電事件發生後30分鐘,Ukrenergo工程師將設備切換為手工模式,並開始恢復供電;75分鐘後完全恢復供電。
2016年12月18日上午,Ukrenergo負責人VsevolodKovalchuk在Facebook上發布信息描述了上述經過,並稱本次停電的原因可能是設備故障,也可能是由於網路攻擊。
針對本次停電事件,綠盟科技安全團隊響應如圖1所示:
圖1 綠盟科技安全響應
歷史回顧
烏克蘭電網近期遭受的攻擊事件如圖2所示。綠盟科技安全團隊通過對惡意代碼的分析發現本次事件的攻擊者是Telebots組織,該組織與BlackEnergy組織有關。
圖2 烏克蘭電網受攻擊歷史
電力系統簡介
電力系統是由發電、輸電、變電、配電和用電連接成的統一整體,如圖3所示。
其中,升壓變電所是將電壓升高,變為高壓電從而進行遠距離電力傳送;降壓變電所是將高壓電的電壓降低,以供區域電網或終端用戶使用;配電變電所負責將電網輸送來的電能分配給各類用戶。
在整個電力系統中,幾乎每個環節都依賴計算機技術的支撐,比如各級電網調度控制中心的計算機系統、變電站的計算機監控系統等等。
圖3 電力系統組成
國內變電站主要結構示意圖如圖4所示:
圖4 國內變電站主要結構示意圖
縱向加密:對變電站送往調度中心的通道數據進行加密。
遠動裝置:負責將變電站內的信息送往遠方的調度中心。
網路分析儀:記錄變電站內部網路的通信報文。
國外變電站主要結構示意圖如圖5所示:
圖5 國外變電站主要結構示意圖
保護裝置:對採集到的一次設備電壓電流、開關量信號執行相應保護控制邏輯。
合并單元:負責採集一次設備的電壓電流信號。
智能終端:負責採集一次設備的開關量信號,以及執行保護裝置下發的開關控制命令。
狀態監測與診斷裝置:變電站現場的輔助監測類設備。
協議轉換伺服器:負責協議轉換,使得採用不同協議的設備之間可以互相通信。
監控主機:負責變電站現場信息的匯總展示。
調度中心:集中展示和控制下面多個變電站的集控中心。
國內和國外變電站的主要區別表現在以下兩點:
(1)國內將變電站內的區域通過防火牆分隔成了安全I區和安全II區。
安全I區:實時生產控制區,可以直接控制電力一次設備的運行。
安全II區:非實時控制區,如電能量計量系統,故障錄波管理系統等。
(2)國內變電站是完全隔離的區域網,不與公網連接;而國外的變電站可以通過辦公區以VPN等形式接入變電站的內部網路。
樣本執行概要
該樣本的執行流程圖如圖6所示:
圖6 樣本執行流程圖
樣本結構
此樣本是一個複合樣本,包含多個樣本文件【點擊閱讀原文查看】詳細文件功能介紹如下:
XLS
主要功能
:
通過運行文檔中的宏代碼,將可執行文件釋放到臨時目錄「C:UserxxxAppDataLocalTemp」,並命名為「explorer.exe」來隱藏自身。
行為分析
:
該文件運行後如圖7所示:
圖7 XLS運行後截圖
圖8中為宏代碼中定義的數組中的第一個,這些數組中的數據是一個PE文件,「77」和「90」分別對應16進位的「4D」 和「5A」。
圖8 宏定義的數組
圖9 生成並運行文件
explorer.exe
主要功能
:
該文件是一個下載器,主要功能是從伺服器下載文件並執行。
行為分析
:
樣本會首先連接域名,所連接的域名如圖10所示。該域名是一個允許任何人下載和上傳文件的託管網站,如圖11所示。
圖10 樣本所連接的域名
圖11 域名對應的網站
對該樣本文件逆向分析如下:(1)首先調用connect函數,要連接的IP地址為188.234.144.11,如圖12所示。該IP是一個存儲文件的伺服器。
圖12 connect函數要連接的IP地址
(2)發送數據,如圖13:
圖13 發送數據
(3)接收數據後創建文件,如圖14:
圖14 創建文件
(4)將接收的數據寫入文件中,如圖15:
圖15 寫入數據
(5)之後逐部分讀取文件內容到內存中,如圖16:
圖16 讀取文件到內存
(6)進行解密,如圖17:
圖17 解密操作
(7)解密部分的代碼點擊閱讀原文可見。
(8)創建lsass.exe文件,如圖18:
圖18 創建文件
(9)將文件內容寫入AppDataLocalTemplsass.exe中,如圖19:
圖19 寫入lsass.exe
(10)完成後即刪除原txt文件,如圖20:
圖20 刪除txt文件
(11)創建進程,如圖21:
圖21 創建進程
lsass.exe
主要功能
:接收伺服器的指令,執行不同的功能。
行為分析
:首先使用pyinstxtractor.py將樣本反編譯成py文件,圖22為反編譯後的py文件。
圖22 反編譯後的py文件
圖23為解密後的代碼:
圖23 解密後的代碼
該代碼會從遠程伺服器獲取指令,先嘗試直接從伺服器讀取指令,如果失敗則嘗試獲取指令文件中的內容,在本地新建一個長度為10位元組的隨機dat文件,將指令文件中的內容寫入dat文件中。
圖24 從伺服器獲取指令
圖25 根據不同指令執行各種功能
指令解析如表3所示:
命令 | 功能 |
---|---|
help | 顯示可以執行的指令 |
cmd||(cmd command) | 執行(cmd command)中的命令(讀取數據時cp866解碼後用utf-8編碼) |
cmdd||(cmd command) | 執行(cmd command)中的命令 |
getphoto||(path) | 獲取路徑為(path)的文件(發送數據時用本機編碼方式解碼再用utf-8編碼) |
getdoc||(doc path) | 獲取路徑為(doc path)的文件 |
forcecheckin||random data | 獲取主機信息 |
time||(int) | 設置sleep的時間 |
ss||(random data) | 未實現,從名稱判斷為獲取截屏 |
表3 指令解析
KillDisk.exe
主要功能
:清除系統扇區,刪除重要的系統文件,對特定類型的文件內容進行覆蓋,結束系統進程,致使系統崩潰,無法修復。
行為分析
:樣本首先會提升進程許可權,使病毒程序具有關機和修改系統目錄文件的許可權。
圖26 提升許可權
啟動cmd創建服務,如圖27:
圖27 創建服務
創建服務後啟動服務,如圖28:
圖28 啟動服務
而啟動的服務程序即是它本身,如圖29:
圖29 服務程序
創建線程刪除日誌文件,隱藏操作痕迹,如圖30:
圖30 隱藏痕迹
樣本企圖對PhysicalDriver0到PhysicalDriver15進行內存填充,如圖31:
圖31 內存填充
對打開的每個磁碟的291個扇區進行內存的清零操作,如圖32:
圖32 對磁碟清零
上述操作完成後,操作系統已經無法重啟。
重複三次結束系統關鍵進程的操作來結束一些系統進程,如圖33。
被結束的系統進程包含但不僅限於:system,vmacthlp.exe,VGAuthService.exe,vmtoolsd.exe,dllhost.exe,WmiPrvSE.exe,msdtc.exe,SearchIndexer.exe,sppsvc.exe,PCHunter32.exe。
圖33 結束系統進程
上述行為最終會導致系統崩潰,重新啟動。然而由於系統扇區內存已被清零,導致系統無法重啟。
通過代碼跟蹤分析,發現了KillDisk組件的一個變種,可以運行在多種平台上。攻擊者利用該變種文件不僅可以攻擊Windows上位機控制的SCADA/ICS系統,可以攻擊Linux上位機控制的SCADA/ICS系統。
目前該變種文件已經被作為Linux系統的勒索軟體,勒索贖金為222btc,摺合人民幣1729875元,如圖34:
圖34 KillDisk變種
keylogger.exe
主要功能
:鍵盤記錄器,記錄用戶的鍵盤輸入並保存到臨時目錄下偽裝成.tmp文件,攻擊者如果有文件系統的讀寫許可權,則只需讀取該文件即可獲得用戶在某進程/窗口/文件下的所有鍵盤操作記錄。
行為分析
:在temp目錄下生成鍵盤記錄日誌文件,如圖35:
圖35 生成鍵盤記錄文件
日誌文件的內容如圖36所示:
圖36 日誌文件內容
日誌文件包含以下信息:
1.鍵盤鉤子設置情況。
2.進行鍵盤操作的進程PID、標題、進程名。
3.用戶的鍵盤輸入內容。
隨後樣本會注入各進程設置鍵盤鉤子以獲取鍵盤消息,如圖37:
圖37 設置鍵盤鉤子
記錄鍵盤消息,如圖38:
圖38 記錄鍵盤消息
該樣本不存在設置啟動項的行為,是一次性的執行流程。然而攻擊者既然已獲得了上傳並運行文件的許可權,完全可以手工將其加入啟動項列表中,藉以繞過殺毒軟體的檢測。
LDAPquery.exe
主要功能
:該文件是一個LDAP伺服器的查詢工具,成功連接至LDAP伺服器後,可以通過ldap_search的方式查詢分區、計算機、用戶等信息。
行為分析
:連接到LDAP伺服器,如圖39:
圖39 連接LDAP伺服器
成功連接LDAP伺服器後(伺服器地址根據運行參數而決定,若參數為空則連接默認LDAP伺服器),樣本將自動通過ldap_search函數查詢伺服器的相關信息並回顯。
查詢分區信息,如圖40:
圖40 查詢分區信息
查詢計算機信息,如圖41:
圖41 查詢計算機信息
查詢用戶信息,如圖42:
圖42 查詢用戶信息
查詢其他信息,如圖43:
圖43 查詢其他信息
mimikatz.exe
主要功能
:獲取管理員的用戶名和密碼,該樣本只能工作在32位系統環境中,它通過注入lsass.exe並讀取內存來抓取用戶名、工作組、密碼等信息。
由於lsass.exe中的密碼欄位並非用hash加密且加密參數留駐於內存未能擦除,所以該樣本可通過讀取內存中加密的密文密碼和加密參數,並調用lsasrv.dll中的解密模塊進行解密,藉以還原出用戶的密碼明文。
該樣本可以獲取所有處在於「已登錄」狀態的用戶名和口令。
行為分析
:注入並讀取lsass.exe的內存,如圖44:
圖44 讀取lsass.exe的內存
樣本將從讀到的內存基址中以偏移的方式分別獲取以下內容的動態地址:
1.用戶名
2.工作組
3.用戶口令(密文)
讀取動態地址中的用戶名,如圖45、圖46:
圖45 讀取用戶名(1)
圖46 讀取用戶名(2)
讀取密文密碼,如圖47:
圖47 讀取密文密碼
調用lsasrv.dll中的解密函數解碼密文,如圖48:
圖48 調用lsasrv.dll
得到用戶密碼的明文,如圖49:
圖49 用戶密碼明文
CredRaptor.exe
主要功能
:該樣本通過檢查系統版本來確定IE瀏覽器的版本,從而對不同版本的IE瀏覽器文件夾下存儲的用戶名密碼文件進行解析,獲取用戶信息。獲取信息的瀏覽器包含Google Chrome,Internet Explorer,Mozilla Firefox和Opera。
行為分析
:首先程序檢查系統版本,如圖50:
圖50 檢查系統版本
獲取iexplorer版本信息,如圖51:
圖51 獲取IE瀏覽器版本
調用函數解密,如圖52:
圖52 調用解密函數
CryptUnprotectData函數可以解密同一用戶在相同許可權下加密的數據。
嘗試讀取iexplorer的用戶信息,如圖53:
圖53 讀取用戶信息
獲取日誌文件的路徑,如圖54:
圖54 獲取日誌文件路徑
記錄的部分信息,如圖55:
圖55 獲取部分信息
如果存在Chrome瀏覽器,則將Chrome瀏覽器存放用戶信息的文件拷貝到臨時文件夾下,如圖56。之後嘗試進行解析,讀取google賬戶信息。
圖56 文件拷貝
使用SQL語句 SELECTORIGIN_URL,USERNAME_VALUE,PASSWORD_VALUE FROM LOGINS進行查詢操作,如圖57:
圖57 執行SQL語句
若系統中存在Firefox瀏覽器,則對其存放用戶名密碼的文件進行解析。首先獲取Firefox瀏覽器安裝位置及版本信息,如圖58:
圖58 獲取Firefox安裝位置及版本
若存在「logins.json」文件則對其進行解析,獲取加密的用戶名和密碼,如圖59:
圖59 解析json文件
若存在「signons.sqlite」文件則對其進行解析,讀取加密後的用戶名和密碼,如圖60:
圖60 解析sqlite文件
Intercepter-NG.exe
主要功能
:
該樣本是俄羅斯人編寫的一款抓包工具,其特點為:
監聽不同類型的密碼或Hash包括:
ICQIRCAIMFTPIMAPPOP3SMTPLDAPBNCSOCKS
HTTPWWWNNTPCVSTELNETMRADC++VNCMYSQLORACLENTLM
監聽以下即時通訊工具的實時聊天內容:ICQAIMJABBERYAHOOMSNIRCMRA
混雜模式ARPDHCPGateway智能掃描模式
Raw modeeXtremeResurrection mode
捕獲數據報並提供離線分析功能
通過RPCAP daemon捕獲傳輸遠程數據
NATSOCKSDHCP
ARPDNS over ICMPDHCPSSLSSLSTRIPWPADSMBRelay 中間人攻擊
可以工作在NT平台,任何的*nix平台,以及IOS和Android平台。
具體內容請參見官網:
http://sniff.su/
VBS
主要功能
:從服務端獲取並執行指令。
行為分析
:向遠程伺服器請求數據,並將請求到的數據轉換成指令執行,如圖61:
圖61 向伺服器獲取數據
將請求到的數據轉換成指令並執行,如圖62:
圖62 將數據轉換成指令並執行
根據指令執行功能,如圖63:
圖63 執行指令功能
VBS樣本的指令格式*:report_id$arg0 arg1
command | Function |
---|---|
!cmd arg1 | 執行arg1 |
!cmdd arg1 | 執行arg1 |
!dump arg1 | 發送對arg1再次進行編碼的內容 |
!timeout arg1 | 設置sleep的時間 |
!bye | 設置exitFlag = True(該變數控制程序是否退出) |
!kill | 自我刪除, 設置exitFlag = True(該變數控制程序是否退出) |
!up (int) | 將arg1指定的文件內容編碼後發送 |
表4 VBS樣本指令格式
telebot.exe
主要功能
:此樣本是一個木馬程序,根據不同指令執行不同功能。
行為分析
:從郵箱獲取文件然後進行解碼來獲取命令然後執行。
圖64 發送文件
該樣本的指令格式{「CMD」:「*」,「*」:「jobid」,「ARG」:「*」}。
command | Function |
---|---|
CMD:download ARG:filepath | 將filepath指定的文件發給自己的郵箱 |
CMD:cmd ARG:cmd command | 執行(cmd command)中的命令並將輸出信息和出錯信息發給自己郵箱 |
CMD:upload ARG:url | 下載url代表的文件並在本地運行 |
CMD:forcecheckin, ARG: | 向自己發郵件,內容為字元串信息和本機信息 |
表5 郵箱樣本指令格式
通過登陸自己郵箱,將竊取到的信息發送到自己的郵箱,如圖65:
圖65 發送竊取的信息
Outlook郵箱用戶名和密碼,如圖66:
圖 66 郵箱用戶名和密碼
經驗證該賬號密碼仍然可用,但需要進行驗證,如圖67:
圖67 郵箱可用
攻擊定位
通過對樣本的分析,發現樣本會連接兩個IP地址和一個域名,信息如下:
1.IP(188.234.144.11),位於俄羅斯地區,如圖68:
圖68 攻擊定位(1)
2.IP(93.190.137.212)位於荷蘭,如圖69:
圖69 攻擊定位(2)
3.lsass中連接的域名為
https://api.telegram.org/bot140192111:AAGSxqO9Xz9meTaG7Ecdh80LGnYXNIbbgp4
此域名解析的結果如圖70:
圖70 域名解析結果
防護方案
1.1 綠盟科技檢測服務
(1) 綠盟科技工程師前往客戶現場檢測。
(2) 綠盟科技在線雲檢測,登陸綠盟雲,申請威脅分析中心試用。鏈接地址如下:
https://cloud.nsfocus.com/#/krosa/views/initcdr/productandservice?service_id=1018
1.2 綠盟科技木馬專殺解決方案
(1) 短期服務:綠盟科技工程師現場木馬後門清理服務(人工服務+IPS+TAC+終端防護(金山V8+))。確保第一時間消除網路內相關風險點,控制事件影響範圍,提供事件分析報告。
(2) 中期服務:提供3-6個月的風險監控與巡檢服務(IPS+TAC+人工服務)。根除風險,確保事件不複發。
(3) 長期服務:基於行業業務風險解決方案(威脅情報+攻擊溯源+專業安全服務)
總結
此次攻擊和BlackEnergy類似,攻擊者使用帶有Microsoft Excel文檔的spearphishing電子郵件,其中包含惡意宏作為初始感染向量。
不同的是這次惡意文檔沒有使用任何社會工程學的方法來誘導受害者點擊啟動宏按鈕,這樣攻擊是否成功只能完全依靠受害者是否點擊它。
宏病毒運行後釋放惡意文件,開始執行惡意功能。
*作者:綠盟科技(企業賬號),轉載請註明來自FreeBuf黑客與極客(FreeBuf.COM)
※有趣!10個你不得不知的Linux終端遊戲
※全球第三方反作弊遊戲平台ESEA數據泄漏最新進展
TAG:FreeBuf |
※Nature Medicine:新技術能識別治療後漏網的癌細胞
※微軟收購 Kubernetes 容器技術公司 Deis
※怡海軟體:了解Salesforce的技術生涯
※技術解讀:極光推送的設備唯一性標識 RegistrationID
※拓展Kubernetes 微軟收購容器技術公司Deis
※Cloak & Dagger攻擊:一種可針對所有版本Android的攻擊技術(含演示視頻)
※北大腫瘤醫院與安可濟聯合研究成果榮登《Theranostics》,四種檢測技術對比彰顯Firefly?優勢
※北大腫瘤醫院與安可濟聯合研究成果榮登《Theranostics》,四種檢測技術對比彰顯Firefly優勢
※Qorvo高性能解決方案事業部總經理Roger Hall:布局關鍵射頻技術,提供最優系統級解決方案
※Wireline的關鍵技術——基於ADC的SerDes
※HoloLens之父Alex Kipman:微軟正專註於混合現實技術
※iPhone 無線充電真的要來?技術公司 CEO 泄露機密
※Nature Methods發布突破性測序技術
※訃告 | 有源監聽揚聲器技術的先驅者 Ilpo Martikainen逝世
※HoloLens技術與Tango技術有什麼差別
※聚焦大規模分布式機器學習,全面剖析Google TensorFlow,來看阿里、京東等在人工智慧技術的進展
※洛馬公司與GuardTime Federal公司合作 部署區塊鏈技術
※當飛人遇上 Flyknit 技術 Jordan Trainer 2 Flyknit !
※Diadora 也攜 Knit 技術加入「襪套鞋」陣營!