簽名偽造的利用及思考
阿新 • • 發佈:2020-11-27
強簽名偽造
前言
上週五有個朋友問我uac認證那個釋出人能不能偽造,我問他偽造這玩意幹啥,他說可以讓釣魚的exe更真實一點。
簽名的作用
在當前零信任的網際網路中,網站上充斥著大量釣魚軟體,普通網民無法識別這些惡意軟體,但好在瀏覽器和計算機會幫你識別一些做工比較“粗糙”的釣魚軟體,作為攻擊方我們不能指望使用者“無腦”去點選下載這些已經被提示危險的軟體,而對軟體進行證書強簽名就是為了解決這個問題。
已下是一些未簽名的軟體,瀏覽器的下載提示:
以下是我做的載入uac認證的微信客戶端程式(未簽名)
而有簽名的uac是這樣的:
顏色都不一樣怎麼騙人!!!
實驗1(no)
偽造簽名可能很多人第一時間想到的是sigthief.py
//usage
python3 sigthief.py -i 要偽造的證書軟體 -t 未簽名的軟體 -o 輸出的檔名
這是我偽造某數字殺軟證書的對比
實驗2(yes)
//需要的工具 makecert.exe cert2spc.exe pvk2pfx.exe signtool.exe certmgr.exe Windows SDK預設包含以上工具 SDK下載地址:https://www.microsoft.com/en-us/download/details.aspx?id=8279
0x01 生成一個自簽名的根證書
1、makecert.exe -n "CN=Root" -r -sv Root.pvk Root.cer
2、然後自己隨便設定一個私鑰,我這裡設定為123456
0x02 使用這個證書籤發一個子證書
1、makecert.exe -n "CN=Child" -iv Root.pvk -ic Root.cer -sv Root.pvk Root.cer -sky signature
2、Subject Key為123456/Issuer Signature 為123456
0x03 公鑰證書格式轉換成SPC
cert2spc.exe Root.cer Root.spc
0x04 將公鑰證書和私鑰合併成一個PFX格式的證書檔案
pvk2pfx.exe -pvk Root.pvk -pi 123456 -spc Root.spc -pfx Root.pfx -f
0x05 為木馬簽名
signtool sign /f Root.pfx /p 123456 rubt.exe
注意:這裡如果直接用cmd執行signtool可能會報如下錯誤:(我在虛擬機器的cmd中直接執行成功了)
> signtool sign /f Root.pfx /p 123456 rubt.exe
SignTool Error: No certificates were found that met all the given criteria.
解決方法使用vs開發人員命令提示符工具
0x06 匯入證書
//普通許可權
certmgr.exe -add -c Root.cer -s -r currentUser root
//管理員許可權
certmgr.exe -add -c Root.cer -s -r localmachine root
0x07 實驗結果
生成木馬後,載入uac認證,最後再匯入證書
注:不能先匯入證書再載入uac認證,否則會簽名失效(至於如何給任意exe加uac認證,這裡提示是使用windows自帶的mt.exe)
思考
1、這裡我把剛剛在主機上做好的簽名木馬複製到虛擬機器中,發現簽名變成了如下圖,這是因為虛擬機器沒有匯入證書
那我們這樣做不就等於白做工了嘛,我思考了很久,如果要解決這個問題只有載入本地預設安裝的證書,但我沒有找到怎麼把系統預設的簽名證書匯出為pfx格式的工具,希望大佬不吝賜教!拜謝!
2、在使用cs的時候往往會使用流量問題被查殺,特別是阿里雲伺服器,這裡是否可以使用特製的證書進行繞過流量查殺,需要大家自己去驗證。