這些年無文件(Fileless)和不落地(Living off the Land)攻擊已經很是流行,幾乎成爲攻擊者的標配。理想的無文件攻擊是隻存在於內存中的後門,網絡上有不少無文件攻擊的驗證性代碼,好比最先的powershell downloadstring,遠程文件是被當成字符串直接下載到powershell進程內存中執行,而後發展到利用mshta、rundll32等執行腳本的各類奇技淫巧,再到如今流行的各類.NET assembly託管代碼注入技術,固然還有一些徹底脫離操做系統的高端無文件攻擊。而微軟有一個無文件攻擊模型可以很是好的解析這些無文件攻擊,我給你們作個簡單的參考解讀。java
攻擊模型按磁盤文件的活動將攻擊分紅了3個類型shell
接着是顆粒度更細的分類描敘,是基於被攻擊宿主**進行的分類windows
漏洞攻擊,基於軟件和操做系統安全漏洞的無文件攻擊瀏覽器
各類各樣的office、flash、java漏洞文件和瀏覽器漏洞,通常都是經過惡意文件觸發漏洞使文件解析引擎、瀏覽器等執行惡意代碼,經過shellcode直接在內存中執行惡意代碼。安全
永恆之藍是個好例子,直接經過網絡協議的遠程代碼執行漏洞來執行惡意代碼。網絡
硬件攻擊,脫離操做系統的無文件攻擊less
經過網卡、磁盤固件執行惡意代碼,經典的如方程式的KillSuit,基於硬盤固件、磁盤引導區執行惡意代碼。ui
CPU本身自己也會有子系統,好比被白金改造的Intel cpu的主動管理技術(AMT)後門。操作系統
USB能夠外接的設備類型不少,好比最多見的模擬鍵盤和網關的badusb設備。code
主板BIOS能植入惡意代碼大夥也是耳熟能詳了,象今年eset發現的LoJax Rootkit,經過改造 BIOS固件中的防盜功能植入的後門。
這是屬於上帝視角的攻擊了,虛擬機管理層執行惡意代碼,已經脫離虛擬機操做系統以外了。
執行和注入,無文件攻擊執行惡意代碼的常見形式
從執行代碼的角度看,這是無文件攻擊最基礎的執行向量,能夠是可執行文件、dll、lnk快捷方式、計劃任務等,它的攻擊過程一般是將惡意代碼遠程注入到其餘進程或加載到自身進程內存執行。
office文檔相關的宏腳本,這是基於office文檔類自身的腳本語言,在office進程中執行惡意代碼。
基於js、vbs、powershell腳本執行惡意代碼, 這個就再也不贅述了,大量的系統程序都有各類奇技淫巧能執行惡意腳本。
經過磁盤的引導記錄執行惡意代碼,惡意的mbr、vbr都在這一類裏面。
以上就是這個攻擊模型的大致狀況,這個攻擊模型將現代安全軟件要應對的刁鑽攻擊展示得一覽無遺。咱們能夠看到微軟在攻擊模型和攻擊知識庫方面確實是業界標杆,我想不是一線技術專家,很難作出這樣的攻擊模型,一個安全產品所要經歷攻防的點,是沒有接觸過攻防的人不可思議的。
參考: