免杀原理与实践

一、基础问题回答

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. http升级https的时候,遇到一个问题

    问题: Mixed Content: The page at 'https://api.xxxx.com/test' was loaded over HTTPS, but requested an i ...

  2. python-类对象以字典模式操作

    #类对象以字典模式操作 class Person: def __init__(self): self.cache={} def __setitem__(self, key, value): #增加或修 ...

  3. Arduino语法-变量和常量

    变量的声明: int led=11 一般变量的声明方法为类型名+变量名+变量初始化值.变量名的写法约定为首字母小写 变量的作用范围又称为作用域,变量的作用范围与该变量在哪儿声明有关,大致分为如下两种: ...

  4. Balanced Number HDU - 3709

    题目大意:若一个数以某个位置为支点,支点左右的加权和相同,这样的数被称为平衡数,求区间内平衡数的个数 思路:枚举支点位置,针对每个支点进行数位DP,但是0比较特殊,假设该数的长度为len,枚举len次 ...

  5. Java基础 -- Java 抽象类 抽象方法

    总结: 1. 抽象类不能被实例化(初学者很容易犯的错),如果被实例化,就会报错,编译无法通过.只有抽象类的非抽象子类可以创建对象. 2. 抽象类中不一定包含抽象方法,但是有抽象方法的类必定是抽象类. ...

  6. 秋名山老司机(BS4与正则的比拼)

    因为嘉伟思杯里的一个脚本题目,16进制计算,python3正则还没学,所以没写出来.大佬跟我说也可以用BS4,从DOM上下手,直接爬下来直接一个eval就搞定了,eval可以像这样计算16进制,eva ...

  7. Python简单基础小程序

    1 九九乘法表 for i in range(9):#从0循环到8 i += 1#等价于 i = i+1 for j in range(i):#从0循环到i j += 1 print(j,'*',i, ...

  8. L2-010 排座位 (25 分) (最短路)

    链接:https://pintia.cn/problem-sets/994805046380707840/problems/994805066135879680 题目: 布置宴席最微妙的事情,就是给前 ...

  9. JUC--闭锁 CountDownLatch

    CountDownLatch是一个同步辅助类,在完成一组正在其他线程中执行的操作之前,允许一个或者多个线程一直等待. 闭锁可以延迟线程的进度直到其到达终止状态,可以确保某些活动知道其他活动都完成才继续 ...

  10. memcached单机或热备的安装部署

    一.部署准备 1.安装Java 不建议使用系统默认Open JDK版本,需要手工另行安装.JDK版本建议为1.7+,若Java已安装完毕,则无需重复安装. 安装过程如下: (1)获取JDK安装包: ( ...