歡迎來到 黑吧安全網 聚焦網絡安全前沿資訊,精華內容,交流技術心得!

PowerShell若干問題的研究

來源:本站整理 作者:佚名 時間:2019-10-07 TAG: 我要投稿

一、PowerShell簡介
PowerShell是一種基于任務的命令行shell和腳本語言,構建于.NET之上,通常用于管理基于Microsoft Windows的操作系統的技術(Linux和MacOS也可以使用)。Windows PowerShell的內置命令為cmdlets,用戶可以使用其管理計算機,其具有完整的用戶開發的腳本語言和豐富的表達式解析程序。
二、攻擊者使用Powershell的原因
Powershell深受攻擊者的喜愛,許多目標攻擊在攻擊鏈中使用了PowerShell,使用其作為下載器。本文在閱讀了大量相關文獻的基礎上,對攻擊者樂于使用Powershell的原因進行了總結,如下:
1.普適性強:PowerShell默認安裝在Windows機器上(從Windows 7 SP1開始,操作系統默認安裝);
2.易用性好:PowerShell代碼易于動態生成;同時,可以很容易地嵌入惡意軟件向量中,例如Office文檔(通過使用宏);
3.多功能性:可以對操作系統主要功能進行訪問;
4. 隱秘性強:
(1)幾乎沒有留下可以追蹤的痕跡,框架可以直接從內存中執行有效負載;
(2)缺乏日志記錄,PowerShell日志默認不能使用,通常不會在計算機上啟動監視或擴展記錄。許多后臺操作不可見,惡意腳本代碼易于遠程傳播;
(3)易于混淆:自動化的工具可以大量反復地混淆PowerShell代碼,使靜態分析變得不可行;
(4)可繞過應用程序白名單;
(5)管理員信任,使得PowerShell惡意軟件與日常管理融為一體。
三、PowerShell檢測方法
由于PowerShell的極易被混淆,我們在文獻[1]中發現了PowerDrive,一個自動開源系統,用于對PowerShell惡意文件進行去混淆和分析。通過對數千個惡意代碼的分析,獲得了一些有趣的見解,例如:PowerShell使用的混淆處理方法的統計特征規律。此外,PowerDrive可以通過多層遞歸對PowerShell腳本進行去混淆處理。文中提供了PowerDrive源碼,并證明其去混淆效果優異,但所使用的數據集鏈接已失效。PowerDrive可以與其他系統集成,提供有關PowerShell惡意軟件功能的其他信息。
同時,在使用機器學習檢測方面,在文獻[2]中,作者選擇了66388個不同的PowerShell命令,其中6290個標記為惡意,60098個標記為良性。使用部分數據集進行訓練,部分進行驗證。實施了三種深度學習模型,結果得出結合NLP-based classifier和CNN-based classifier表現出了更好的性能。有些混淆模式用NLP-based無法檢測出來。
四、Powershell漏洞利用代理工具
Empire最大的特點是以PowerShell腳本作為攻擊載荷,而且Empire實現了無需powershell.exe就可運行PowerShell代理功能。具體Empire平臺的搭建文檔見鏈接[3],網上已有很多實驗報告,這里對簡單的安裝不做贅述,僅對未提到的“坑”及注意點進行整理如下:
1.在Empire安裝的過程中,需使用root賬戶進行實驗。
2.在執行完畢安裝過程輸入./empire啟動Empire時,查看是否可以成功進入。
遇到問題:輸入./empire啟動Empire報錯,缺少OpenSSL
解決方法:使用pip install命令進行安裝,發現pip報錯,重新安裝了pip
sudo apt-get remove python-pip
sudo apt-get autoremove
sudo install pip
sudo pip install pyopenss
本以為已經可以了,結果運行./empire繼續報錯。
遇到問題:遇到了很多次Import Error: No module named xx 問題
解決方法:sudo pip install xx,最終終于安裝好了。
3.在建立監聽過程中,需要使用Empire所在主機的ip作為Host地址。
五、宏與powershell結合
PowerShell還可用于APT攻擊中。例如,在污水攻擊中,利用了宏與PowerShell構建了APT攻擊,具體過程如下:
(1)使用精心構造的釣魚文檔,誘使目標人員打開文檔啟用宏;
(2)文檔宏執行后,向文件系統寫入腳本及編碼過的PowerShell文件;
(3)加載腳本,解碼PowerShell文件執行,與C&C進行通信。
我們以一個簡單的例子對宏代碼進行分析(樣本文件附后[3]),這里啟用宏后使用word中的開發功能VBA進行對宏代碼的讀取(也可使用oledump.py對宏代碼進行提取)。
若工程已被加密,請參考文章[4],其中提供了可解密工具VBA Password Bypasser,可解密多數工程。
(一)代碼逐句解析
第一部分,可以理解為日志上傳過程:


第二部分,可以理解為文檔與模板相互感染的過程:


(二)代碼邏輯關系梳理
第一部分,日志上傳過程:
1.在日期為1號并且注冊表中LogFile的值為False時(日志文件沒有上傳到服務器的時候),若在文檔/模板宏代碼中找到標記Marker(Marker即為感染標識),則截取當前文檔/模板從“LogFile—>”開始的內容即為日志文件內容,存入LogFlie路徑所在的文件中。
2.c:\netldx.vxd為ftp的配置文件,其中內容為登錄服務209.201.88.110,并將日志文件傳到服務器上。
3.注冊表中LogFile的值設置為True,表示已上傳。
第二部分,文檔與模板相互感染的過程:

[1] [2]  下一頁

【聲明】:黑吧安全網(http://www.fhetww.live)登載此文出于傳遞更多信息之目的,并不代表本站贊同其觀點和對其真實性負責,僅適于網絡安全技術愛好者學習研究使用,學習中請遵循國家相關法律法規。如有問題請聯系我們,聯系郵箱[email protected],我們會在最短的時間內進行處理。
  • 最新更新
    • 相關閱讀
      • 本類熱門
        • 最近下載
        江西十一选五走势图爱彩乐