原理:使用Shellcode和加载器分离的方法,方法很low,但是值得尝试

Python

参考自K8

Shellcode混合加密

造轮子,造轮子QAQ(K8师傅的那个已经过不了检测了)

编译

用法的话则是

结果如下

虽然VT检出率挺高的但是过360还是可以的

e5feb3fca5a08c97f8633ec464f5589b.png

fefc60b75e1a9084f3064cd45457f7d4.png

估计动态免杀是过不了的

参考资料

C/C++语言实现Shellcode

加载Shellcode的代码

C++这些东西还是不太懂得,大约就是申请虚拟内存,将shellcode拷贝进去,再将exec指针转换为函数指针并且执行(我的c++确实不太行,有大佬知道的请务必告诉我)

a8090333816490d48d097db41a82559e.png

当然你还可以用命令行实现,使用argv参数来达到命令行读取的效果

执行netstat -ano可以看见我们监听的端口

3af364e4810a6256f4ea550d73b39d94.png

但是因为shellcode本身的特征比较明显,杀毒软件很容易定位到

异或编码绕过

先使用msf制造raw格式的shellcode文件

使用python3 xxx.py -s 1.raw -d 1.txt -n 44

就会在1.txt生成与44异或的shellcode

b3f9c95771c7dc047690c75ff11370e5.png

放进里面试试

ffbb367bc6c7f9de706b9975bc7b556f.png

免杀360了,确实很简单,如果可以的话还可以做成像Python那样的多种加密的形式

扩展

还可以利用Socket来动态加载Shellcode,这种方式更加隐蔽(代码功底不是很好emmmm)

参考资料

总结

静态免杀很容易,难的是动态,难的是持久

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐