精品国产一级在线观看,国产成人综合久久精品亚洲,免费一级欧美大片在线观看

揭秘基于注冊表隱藏的無文件攻擊

責任編輯:editor005

作者:ArkTeam

2016-07-07 15:15:25

摘自:黑客與極客

通常,惡意代碼被創建為幾個注冊表子鍵,每個鍵值中會分別存儲腳本代碼或者二進制數據,自啟動后,通過層層解密,最終執行核心代碼。

*本文原創作者:ArkTeam

發展

一直以來,文件是惡意代碼存在的最常見形式,安全軟件也通常把磁盤上的文件作為重點檢測對象。然而,一旦惡意代碼以無文件形式存儲在系統中,便難以對其追蹤。早在十幾年前,紅色代碼、Slammer蠕蟲就利用緩沖區溢出進行攻擊,通過網絡傳播,完全存在于內存之中,而不以文件作為載體。不過,這種基于內存的無文件(Fileless)攻擊一旦進程或系統關閉,也就不復存在。為了實現攻擊持久化,攻擊者們找到新的突破口——將惡意軟件實體隱藏在注冊表的某個鍵值里,并通過各種加密手段,來逃脫安全軟件的查殺。最早使用該技術的是2014年GData公司發現的點擊欺詐軟件Poweliks。隨后,多款惡意程序甚至APT組織使用這種無文件持久化攻擊技術。

攻擊流程

1、初始樣本執行

當初始樣本通過釣魚郵件、漏洞或其他方式感染系統后,就會在Windows注冊表配置單元中以加密形式寫入完整的負載,為無實體惡意代碼執行做準備。

2、無實體惡意代碼注冊表執行

通常,惡意代碼被創建為幾個注冊表子鍵,每個鍵值中會分別存儲腳本代碼或者二進制數據,自啟動后,通過層層解密,最終執行核心代碼。

a)第一階段鍵值Auto-Start

系統啟動后會自動讀取某些特殊的鍵值,這就為惡意代碼自啟動創造了條件。一般通過在rundll32.exe里運行RunHTMLApplication來執行一段JS腳本。引申來看,任何能加載MSHTML模塊都是潛在的利用對象。詳細了解該原理可以參考鏈接[1]

b)第二階段鍵值Loader

第一階段的代碼會用來解密并執行第二階段的數據。在調研的幾個案例中,第二階段的數據通常會是一段加密腳本,例如PowerShell、VBScript等,這里主要是為了執行第三階段的數據。

c)第三階段鍵值Binary

第三階段的鍵值通常用來存儲Payloads。通過階段二的腳本命令來將其注入到系統合法進程之中,實現無進程ShellCode執行。

當然,并不是所有的無文件惡意軟件都是按照三個階段執行,像Poweliks則是將二、三階段的數據存放在一個子鍵中,通過PowerShell腳本解密并執行對應模塊的數據,其基本原理和目的是一致的。一旦惡意代碼被注入內存之中,就會按照攻擊者最初的設計來實施惡意行為,比如連接控制服務器、收集主機信息、接受命令執行其他操作等。

代碼隱藏

存儲在注冊表中的腳本和數據經過了精心的加密隱藏,以達到讓安全軟件和用戶不可見的目的。

a)撤銷訪問權限:在訪問控制列表(ACL)中撤銷用戶對注冊表訪問權限。

b)添加無效字符:利用Windows注冊表編輯器無法顯示包含無效字符的注冊表鍵,在注冊表鍵值中寫入一個或多個無效字符,用戶訪問時會顯示錯誤消息。

結束語

基于注冊表的無文件攻擊利用操作系統特性來達到數據隱藏的意圖,并將惡意程序運行在合法進程之中,這種方式能讓基于文件監測的查殺手段失效,為此安全廠商們也積極做出響應,然而隨著技術的進一步發展,惡意代碼的隱藏方式很可能并不只局限于Windows注冊表。攻防對抗,永無止境。

參考

[1]https://thisissecurity.net/2014/08/20/poweliks-command-line-confusion/

[2]https://www.virusbulletin.com/uploads/pdf/conference_slides/2015/RiveraInocencio-VB2015.pdf

[3]http://www.mcafee.com/kr/resources/reports/rp-quarterly-threats-nov-2015.pdf

[4]http://www.vxjump.net/files/security_research/persistence_attacking.pdf

*本文原創作者:ArkTeam,本文屬FreeBuf現金獎勵計劃,未經許可禁止轉載

鏈接已復制,快去分享吧

企業網版權所有?2010-2024 京ICP備09108050號-6京公網安備 11010502049343號

  • <menuitem id="jw4sk"></menuitem>

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 天镇县| 杂多县| 凉城县| 罗江县| 扎鲁特旗| 和田县| 济阳县| 象山县| 张家界市| 光山县| 柏乡县| 白河县| 怀来县| 滁州市| 天水市| 鄢陵县| 临沂市| 凤阳县| 叶城县| 惠东县| 营口市| 建德市| 鄂托克旗| 高密市| 宁安市| 辽中县| 安西县| 泾阳县| 枝江市| 保定市| 阳朔县| 应用必备| 嘉义县| 宁安市| 罗定市| 丁青县| 堆龙德庆县| 祥云县| 西昌市| 永德县| 岐山县|