免杀原理与实践

一、基础问题回答

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

  • 基于特征码的恶意软件检测:简单来说特征码就是一串代码段,只是由于这一串代码段可以表明某个软件或程序具有恶意功能(当然一般正常的程序是不会携带该代码段的),所以被杀软所记录保存在其数据库中(病毒库),每当机器需要运行或安装某程序或软件的时候杀软就会对程序或软件与病毒库中信息进行比对,如果发现特征码段就认定该程序为恶意软件。
  • 启发式恶意软件检测:在安装和运行开始都没有检测出某软件为恶意的,但在该软件提供服务的过程中出现恶意行为(如:连接恶意网站、开放端口、修改系统文件等),杀软就会提醒用户,认为该软件可能是恶意软件。
  • 基于行为的恶意软件检测:在程序运行期间杀软会对程序的行为进行记录,并保存在某个日志文件中,且不定期的检查该日志文件,如果查到有异常行为,就认定该软件可能为恶意软件。

2.免杀是做什么?

  • 简单来说免杀就是使用各种特殊手段改变程序的基本状态,使得一个原本能被杀软检测并杀掉的恶意软件能不被杀软所检测到,以达到渗透的目的。

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

  • 改变特征码:

    • 只有可执行文件——加壳处理(压缩壳、加密壳)
    • 有shellcode——使用编码器进行重新编码
    • 有源代码——更换语言重写源码
  • 改变行为
    • 通讯方式

      • 尽量使用反弹式连接
      • 使用隧道技
      • 加密通讯数据
    • 操作模式
      • 基于内存操作
      • 加入正常功能代码

二、实验内容

1. 正确使用msf编码器

使用msfvenom加基本反弹链接载荷生成exe文件:

使用VirusTotal扫描结果如下:

在原命令中加-e使用编码器加-i对进行多次编码后生成exe文件:

使用VirusTotal扫描结果如下:

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

使用msfvenom生成jar文件:

使用VirusTotal扫描结果如下:

3. veil-evasion安装和使用

Veil-Evasion是用其他语言如c,c#,phython,ruby,go,powershell

等重写了

meterperter

,然后再通过不同方式编译成exe,共性特征比较少,并且在生成可执行文件时还会给出源码。但是kali默认并没有安装该软件需要手动安装一下。

执行

apt-get install veil

就可以安装了,如果不行的话尝试换一下软件源或者更新一下软件源。

安装还是比较漫长的,安装好后输入veil命令进入软件界面

输入use Evasion进入Veil-Evasion

输入list可以看到所有可用模块

我们可以找一找自己想要使用的模块,使用use + 编号就可以选中该模块了,我选中的是7号模块,也就是Windows反弹链接tcp的模块,模块默认信息如下图:

使用set命令对其进行配置

使用option命令查看配置

使用generate命令准备生成文件,输入输出文件名

在如图所示目录中找到exe文件并上传检测如下图:

4. 加壳工具

使用upx给原程序添加压缩壳

检测如下:

使用Hyperion加密壳工具加壳

注:该程序需要将待加壳可执行文件拷贝到该程序目录中即/usr/share/windows-binaries/hyperion/

再执行wine hyperion.exe -v XXX.exe XXX.exe才可执行

结果如下:

5. 使用shellcode编程

使用msfvenom生成反弹链接模块的c语言代码如下:

然后使用vim编辑器,编写C语言代码

# include <stdio.h>

unsigned char buf[] =
"\xfc\xe8\x82\x00\x00\x00\x60\x89\xe5\x31\xc0\x64\x8b\x50\x30"
"......."
"\xc3\xbb\xf0\xb5\xa2\x56\x6a\x00\x53\xff\xd5"; int main(){
int (*func)() = (int(*)buf);
func();
}

使用交叉编译工具生成可执行文件并检测:

6.总结

下图是我本机的杀软-->腾讯电脑管家检测结果,我把检测到病毒的都信任了

所以说腾讯电脑管家还是不太行。

三、异主机实测

我把在我的主机上未检测出威胁的程序拷贝给实验室的另外一个同学,让他帮忙测试———很不幸,被他的360成功截获:

我让他在杀软中对该软件添加信任,然后实测回连——成功:

可是当我想要再获取他的其他信息,比如摄像头,最高权限时他的360都会发出警告。

四、总结与体会

本实验通过让我们了解杀软的运作过程,让我们实践去做出可以防止杀软查杀的木马程序,这让我们知道了,杀软是不可能完全保护我们的电脑的,所以还是要注意上网安全,不随意下载未知软件。

2018-2019-2 网络对抗技术 20162329 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. Redis实战阅读笔记——第二章(redis重构web)

    在性能的要求下,如何用redis重构已有的已有的部分,其实整个例子背后的思路挺好的.在应用缓存的过程中,还有一指标个需要考虑,读写比.

  2. vue父子组件生命周期执行顺序

    之前写了vue的生命周期,本以为明白了vue实例在创建到显示在页面上以及销毁等一系列过程,以及各个生命周期的特点.然而今天被问到父子组件生命周期执行顺序的时候一头雾水,根本不知道怎么回事.然后写了一段 ...

  3. luogu P5305 [GXOI/GZOI2019]旧词

    传送门 先考虑\(k=1\),一个点的深度就是到根节点的路径上的点的个数,所以\(lca(x,y)\)的深度就是\(x\)和\(y\)到根路径的交集路径上的点的个数,那么对于一个询问,我们可以对每个点 ...

  4. jsp网页连接mysql数据库

    1.在mysql数据库中建立数据表 建一张测试表test,插入几条数据: 2.设置JDBC驱动 将 mysql-connector-java-5.0.8-bin.jar 拷到WebContent/WE ...

  5. 「JavaScript面向对象编程指南」闭包

    闭包 JS只有函数作用域,函数外为全局变量,函数内为局部变量 绿圆是函数fn的作用域,在这范围内可访问局部变量b和全局变量a,橙圆是fn内部函数inner的作用域,此范围内可访问自身作用域内的变量c, ...

  6. Light OJ 1343 - Aladdin and the Black Stones

    题目 link 求偶数子序列 满足 的个数. 分析 首先, 我们先把每一对a[i] + a[j]存起来, 这样就可以把题目的偶数个条件无视了. 设 T[i,j] = a[i] + a[j]; 因为我们 ...

  7. selenium启动报错“ incorrect JSON status mapping for 'unknown error' (500 expected)”

    前面讲了工程启动报错“selenium启动报错Unable to read VR Path Registry from C:\Users\clinva\AppData\Local\openvr\ope ...

  8. CSS div内文字显示两行,超出部分省略号显示

    1. 概述 1.1 说明 在项目过程中,有时候需要控制div内文字最多显示两行,超出的使用省略号进行处理.使用识别码/前缀-webkit进行处理可直接得到相应效果. 1.1 -webkit WebKi ...

  9. C#来操作Word

    创建Word: 插入文字,选择文字,编辑文字的字号.粗细.颜色.下划线等: 设置段落的首行缩进.行距: 设置页面页边距和纸张大小: 设置页眉.页码: 插入图片,设置图片宽高以及给图片添加标题: 插入表 ...

  10. eclipse导入maven时,pom文件的project一直报错(Failure to transfer org.apache.maven.plugins:maven-surefire-plugin:pom:2.12.)

    这里有两种解决办法. 一:右键项目->maven->update project勾选上Force Update of Snapshots/Releases然后ok就可以了. 二:如果第一种 ...