前言:
病毒與殺軟的博弈持續進行着,雙方的攻防技術也是日新月異,随着殺軟殺毒能力的不斷提升,病毒對抗也在持續加強,無文件攻擊作為一種比較新型的攻擊手段,正逐步擴大其影響力。
千裡目安全實驗室EDR安全團隊發現, 從2016年至今,所有重大的APT事件中,有77%的組織采用了無文件的攻擊方式進行入侵,再縱觀這三年,無文件的攻擊方式也越來越流行:
(圖片來自Gartner的演講Get Ready for ’Fileless’ Malware Attacks)
近日,我們捕獲了一個poweliks病毒樣本,此病毒家族就是一個典型的基于注冊表的無文件攻擊實例。為了對此類攻擊有更直觀且全面的了解,我們研究分析poweliks病毒,來梳理無文件式攻擊的整體流程。Poweliks是著名的無文件式攻擊病毒,其後出現了多個版本的變種,其采用了注冊表、powershell、進程注入這三種無文件攻擊方式來對主機進行隐蔽性攻擊,由于行為很隐蔽,所以其很難被殺軟所查殺。
Poweliks.exe為此病毒的母體, poweliks.exe首先修改注冊表,然後調用rundll32.exe執行powershell腳本(包含惡意代碼),powershell腳本首先創建一個合法進程dllhost.exe(此文件在C:\Windows\System32目錄下),然後将惡意代碼注入到此進程中并執行(躲避殺軟查殺) ,達到與C&C服務器通信的目的。最後,當系統每次重啟時,都會自動運行注冊表裡的惡意代碼,實現持久化攻擊。
雙擊Poweliks.exe(病毒母體),運行情況如下:
技術分析:
Poweliks病毒一般是通過郵件的方式進行傳播的,在郵件裡面包含一個惡意的word文檔,一旦打開這個word文檔,它将會執行惡意代碼并運行Poweliks病毒。
病毒主流程如下:
以下是C&C服務器的地址及HTTP請求的格式
Poweliks.exe接着向注冊表默認啟動項鍵值(HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\(Default))中寫入兩條惡意代碼:
寫入第一個惡意代碼(調用rundll32.exe讀取run鍵值裡的jscript代碼并執行)
這段代碼由于是使用Unicode編碼的,所以使用regedit.exe打開會報錯誤,使用常規的方式删除不了此注冊表鍵:
寫入第二個惡意代碼(被調用執行的Jscript代碼)
然後在Run項下創建創建一個Unicode字符的項:
這裡的目的也是為了使用戶在打開regedit.exe打開的時候出現報錯,防止用戶删除惡意的注冊表項:
我們現在回過頭來看看jscript的關鍵代碼
這段代碼的主要功能是調用powershell執行一段base64加密後的代碼,将powershell代碼解密,發現其中繼續調用了一段加密代碼,解密後發現是一段惡意的二進制shellcode。
然後,poweliks.exe調用進程poweliks.exe:0進行自删除:
poweliks.exe:0進程在删除母體文件poweliks.exe後退出。
最後,遺留在系統中dllhost.exe進程被注入惡意代碼後做了兩個操作,連接C&C服務器和監控注冊表,确保自己的惡意代碼不會被删除:
處理方法:
1. 結束進程dllhost.exe
2. 使用PCHunter删除注冊表相應的惡意鍵值,即删除默認鍵對應的值。(HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run\默認)
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!