00
前言
这里针对exe签名对VT查杀结果的影响和实际免杀能力做了测试。
包括vs v143编译器和intel C 编译器。
四种签名方式:
- 没有签名
- sigthief签名窃取
- 无效的签名
- 有效的签名
及两个方面的测试:
- VT查杀测试
- 空包测试:没有什么内容的代码
- 简单木马测试:最简单的shellcode加载器并且没有做任何加密
- 更复杂木马测试:shellcode加密,使用HTTP回调加载器
- 杀软测试:包括火绒、360、defender、卡巴
截图比较多,可以直接划至末尾看总结。签名工具包末尾下载。
一
空包测试
打包一个没有什么内容的空exe:
1. 没有签名
vs 默认编译器v143:
intel C 编译器:
2. sigthief签名窃取
这里窃取的是360的证书:
vs 默认编译器v143:
3. 无效的签名
使用signtool GUI工具生成一份微软证书:
使用微软的签名工具签名:
由于签名时没有指定时间截,所以时间截不可用,也表示签名无效:
vs 默认编译器v143:
4. 有效的签名
签名时加上时间截服务器:
签名后时间截上会显示签名时间:
vs 默认编译器v143:
二
简单木马测试
这里使用最简单的加载器并且没有做任何加密进行测试:
1. 没有签名
vs 默认编译器v143:
intel C 编译器:
2. sigthief签名窃取
vs默认编译器:
只减少了两个。
intel C 编译器:
效果几乎没有变化。
3. 无效的签名
vs默认编译器:
减少了5个。
intel C 编译器:
减少了2个。
4. 有效的签名
vs默认编译器:
减少了6个。
intel C 编译器:
减少了2个。
三
更复杂木马测试
shellcode加密,使用HTTP回调加载器:
1. 没有签名
vs默认编译器:
intel C 编译器:
2. sigthief签名窃取
vs默认编译器:
intel C 编译器:
3. 无效的签名
vs默认编译器:
intel C 编译器:
4. 有效的签名
vs默认编译器:
intel C 编译器:
四
杀软测试
为了方便测试,重新对exe进行了重命名:
vs前缀代表默认编译器,intel前缀代表intel c 编译;test代表简单木马,test1代表更复杂木马;invalid代表无效签名,signed代表sigthief签名窃取,signeds有效签名。
360、火绒测试:
简单木马全军覆没,intel c 编译的木马全军覆没,vs默认编译器的更复杂木马全部存活。
面对defender全军覆没:
卡巴只有更复杂木马能够正常执行:
几分钟后全部被终止但是并没有报毒。
01
总结
签名对VT查杀结果的影响表格:
测试 | 编译器 | VT查杀 | |||
---|---|---|---|---|---|
没有签名 | sigthief签名窃取 | 无效签名 | 有效签名 | ||
空包 | v143 | 4 | 3 | 2 | 2 |
Intel C Compiler | 0 | - | - | - | |
简单木马 | v143 | 31 | 29 | 26 | 25 |
Intel C Compiler | 23 | 23 | 21 | 21 | |
更复杂木马 | v143 | 7 | 3 | 3 | 2 |
Intel C Compiler | 2 | 3 | 2 | 2 |
空包时intel C 编译器可以做到VT0查杀,也就是说如果代码层面免杀做得足够好的话,使用intel C 编译器就可以做得VT0查杀。在代码层面免杀时,sigthief、无效签名和有效签名均可使报毒大量减少。sigthief可以使报毒减少,但在报毒较低时可能导致报毒增加。无效签名比sigthief效果更好,有效签名又略好于无效签名。
杀软测试结果:
火绒、360:简单木马全军覆没,intel c 编译的木马全军覆没,vs默认编译器的更复杂木马全部存活。
defender:全军覆没。
卡巴:只有更复杂木马能够正常执行,但又在几分钟后被终止但是并没有报毒。
对上面两者进行总结,exe签名面对实际的杀软时签名与不签名并没有太大的区别,但可以使VT上面的数据更好看,当然,这只是针对自签名,如果用微软认证的证书进行签名结果可能会更好。
锦鲤安全
一个安全技术学习与工具分享平台
点分享
点收藏
点点赞
点在看