说个题外话。。。
测试的时候发现,360放在虚拟机里哪怕给他连上了网。。。简单用异或加密下的 shellcode 能正常上线,最主要的是。。跑mimikatz 360居然动都不动
但是一旦放到物理机上,刚下下来 马子 就马上被杀。
这就有点奇葩。。。盲猜360检测了虚拟机环境。。。
这个分段加密的shellcode 测试了下,实体机上能过 360、defender 上线
现在的杀软对于普通的一次异或加密shellcode 都基本能静态秒杀。于是乎产生了一些想法:
shellcode
在 loader
里是经过 异或加密
的。难道说杀软遍历 1 - 255 去依次 异或解密
吗?有点不现实
那既然直接爆破破解 异或值 不太现实,那杀软凭什么能静态秒杀呢?沙盒吗?
结果测试的时候发现,单单在 loader
中放一个 一次异或加密的 shellcode
也会被杀
那就很明显了,一次异或加密的 shellcode
也许还有一些特征值,有规律,被杀软检测到了
那我们将 shellcode 分段加密,把规律打破,是不是自然就能过杀软了呢?
下面上代码:
首先需要在本地把 shellcode 加密下。。自动加密的脚本。。之后有空再写吧哈哈
1 | //未加密 shellcode 版。自己调试然后拿加密后的 shellcode 以及 xorData |
记得改下shellcode长度

打个断点,用调试器拿加密过的 shellcode
和 xordata
:
记得勾下 十六进制显示,将之复制出来

复制出来后到 sublime 中进行修改(sublime真好用)

别忘了还有个 Xordata

获取到 加密的 shellcode
和 Xordata
之后,将其放入到下面代码 中
ps:这些变量这么命名的话,如果杀软会检测符号表
就有可能会 gg,实战的时候最好改下变量名
1 |
|
可正常上线
注意用的时候根据自己的 shellcode
长度改一下数组长度


虚拟机360跑起来:


补充:
实测借用师弟的电脑,物理机过了360、defender