上周五有个朋友问我uac认证那个发布人能不能伪造,我问他伪造这玩意干啥,他说可以让钓鱼的exe更真实一点。
在当前零信任的互联网中,网站上充斥着大量钓鱼软件,普通网民无法识别这些恶意软件,但好在浏览器和计算机会帮你识别一些做工比较“粗糙”的钓鱼软件,作为攻击方我们不能指望用户“无脑”去点击下载这些已经被提示危险的软件,而对软件进行证书强签名就是为了解决这个问题。
已下是一些未签名的软件,浏览器的下载提示:
以下是我做的加载uac认证的微信客户端程序(未签名)
而有签名的uac是这样的:
颜色都不一样怎么骗人!!!
伪造签名可能很多人第一时间想到的是sigthief.py,我之前一直也是用这个对我木马进行签名的,有时候只是单独用这个伪造一个微软签名也是能过某些杀软的(删掉),但事实证明这方法不太行。(可能是我把事情想太简单了)
//usage python3 sigthief.py -i 要伪造的证书软件 -t 未签名的软件 -o 输出的文件名
这是我伪造某数字杀软证书的对比
//需要的工具
makecert.exe
cert2spc.exe
pvk2pfx.exe
signtool.exe
certmgr.exe
Windows SDK默认包含以上工具
SDK下载地址:https://www.microsoft.com/en-us/download/details.aspx?id=8279
1、makecert.exe -n "CN=Root" -r -sv Root.pvk Root.cer 2、然后自己随便设置一个私钥,我这里设置为123456
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
cert2spc.exe Root.cer Root.spc
pvk2pfx.exe -pvk Root.pvk -pi 123456 -spc Root.spc -pfx Root.pfx -f
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开发人员命令提示符工具
//普通权限
certmgr.exe -add -c Root.cer -s -r currentUser root
//管理员权限
certmgr.exe -add -c Root.cer -s -r localmachine root
生成木马后,加载uac认证,最后再导入证书
注:不能先导入证书再加载uac认证,否则会签名失效(至于如何给任意exe加uac认证,这里提示是使用windows自带的mt.exe)
1、这里我把刚刚在主机上做好的签名木马复制到虚拟机中,发现签名变成了如下图,这是因为虚拟机没有导入证书
那我们这样做不就等于白做工了嘛,我思考了很久,如果要解决这个问题只有加载本地默认安装的证书,但我没有找到怎么把系统默认的签名证书导出为pfx格式的工具,希望大佬不吝赐教!拜谢!
2、在使用cs的时候往往会使用流量问题被查杀,特别是阿里云服务器,这里是否可以使用特制的证书进行绕过流量查杀,需要大家自己去验证。