淺談無文件攻擊

這些年無文件(Fileless)和不落地(Living off the Land)攻擊已經很是流行,幾乎成爲攻擊者的標配。理想的無文件攻擊是隻存在於內存中的後門,網絡上有不少無文件攻擊的驗證性代碼,好比最先的powershell downloadstring,遠程文件是被當成字符串直接下載到powershell進程內存中執行,而後發展到利用mshta、rundll32等執行腳本的各類奇技淫巧,再到如今流行的各類.NET assembly託管代碼注入技術,固然還有一些徹底脫離操做系統的高端無文件攻擊。而微軟有一個無文件攻擊模型可以很是好的解析這些無文件攻擊,我給你們作個簡單的參考解讀。java

攻擊模型按磁盤文件的活動將攻擊分紅了3個類型shell

  • Type1,沒有任何的文件活動。簡單說就是攻擊活動沒有任何的磁盤文件落地和磁盤文件的操做行爲,通常這種攻擊的實施都脫離了操做系統,是由更上層的硬件固件和軟件層發起的。
  • Type2,沒有磁盤落地文件,但經過文件間接活動,惡意代碼通常經過白文件間接加載到內存中執行。這類攻擊惡意代碼的載體大多數都是腳本,經過程序命令執行,也有經過磁盤引導記錄等特定機制的執行。
  • Type3,須要操做文件進行活動。比較容易能理解的意思是惡意代碼變成了數據,利用文件相關的程序漏洞或功能特性將惡意數據轉換爲惡意代碼執行。

接着是顆粒度更細的分類描敘,是基於攻擊宿主**進行的分類windows

漏洞攻擊,基於軟件和操做系統安全漏洞的無文件攻擊瀏覽器

  • 基於文件(Type3)

    各類各樣的office、flash、java漏洞文件和瀏覽器漏洞,通常都是經過惡意文件觸發漏洞使文件解析引擎、瀏覽器等執行惡意代碼,經過shellcode直接在內存中執行惡意代碼。安全

  • 基於網絡(Type1)

    永恆之藍是個好例子,直接經過網絡協議的遠程代碼執行漏洞來執行惡意代碼。網絡

硬件攻擊,脫離操做系統的無文件攻擊less

  • 基於設備(Type1)

    經過網卡、磁盤固件執行惡意代碼,經典的如方程式的KillSuit,基於硬盤固件、磁盤引導區執行惡意代碼。ui

  • 基於CPU(Type1)

    CPU本身自己也會有子系統,好比被白金改造的Intel cpu的主動管理技術(AMT)後門操作系統

  • 基於外置USB(Type1)

    USB能夠外接的設備類型不少,好比最多見的模擬鍵盤和網關的badusb設備code

  • 基於BIOS(Type1)

    主板BIOS能植入惡意代碼大夥也是耳熟能詳了,象今年eset發現的LoJax Rootkit,經過改造 BIOS固件中的防盜功能植入的後門。

  • 基於虛擬機管理層(Type1)

    這是屬於上帝視角的攻擊了,虛擬機管理層執行惡意代碼,已經脫離虛擬機操做系統以外了。

執行和注入,無文件攻擊執行惡意代碼的常見形式

  • 基於文件(Type3)

    從執行代碼的角度看,這是無文件攻擊最基礎的執行向量,能夠是可執行文件、dll、lnk快捷方式、計劃任務等,它的攻擊過程一般是將惡意代碼遠程注入到其餘進程或加載到自身進程內存執行。

  • 基於宏(Type3)

    office文檔相關的宏腳本,這是基於office文檔類自身的腳本語言,在office進程中執行惡意代碼。

  • 基於腳本(Type2)

    基於js、vbs、powershell腳本執行惡意代碼, 這個就再也不贅述了,大量的系統程序都有各類奇技淫巧能執行惡意腳本。

  • 基於磁盤(Type2)

    經過磁盤的引導記錄執行惡意代碼,惡意的mbr、vbr都在這一類裏面。

以上就是這個攻擊模型的大致狀況,這個攻擊模型將現代安全軟件要應對的刁鑽攻擊展示得一覽無遺。咱們能夠看到微軟在攻擊模型和攻擊知識庫方面確實是業界標杆,我想不是一線技術專家,很難作出這樣的攻擊模型,一個安全產品所要經歷攻防的點,是沒有接觸過攻防的人不可思議的。

參考:

https://docs.microsoft.com/en...

相關文章
相關標籤/搜索