20145215《网络对抗》Exp3 免杀原理与实践

基础问题回答

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

    • 基于特征来检测:恶意代码中一般会有一段有较明显特征的代码也就是特征码,如果杀毒软件检测到有程序包含的特征码与其特征码库的代码相匹配,就会把该程序当作恶意软件。
    • 基于行为来检测:通过对恶意代码的观察、研究,有一些行为是恶意代码的共同行为,而且比较特殊。所以当一个程序在运行时,杀毒软件会监视其行为,如果发现了这种特殊的行为,则会把它当成恶意软件。
  2. 免杀是做什么?
    • 我的理解就是通过一些技术手段,使安插在宿主主机中的后门软件不被杀毒软件所发现。
  3. 免杀的基本方法有哪些?
    • 加壳:就是相当于把你的后门代码封装起来,但是现在大部分公开的壳都能被杀毒软件查出来,所以加这些壳还不如不加;
    • 加花指令:就是加一段垃圾代码,但是并不影响程序的正常执行,加了花指令后,使一些杀毒软件无法正确识别木马程序,从而达到免杀的效果;
    • 再编译:如果有源代码可以使用其他语言重新编写再编译,或者利用已有的shellcode构造payload重新编译生成;
    • 修改行为:尽量少做能被杀毒软件直接检测到的敏感行为,可以使用反弹式连接,或者减少对系统注册表之类的修改。

实践内容

目录

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

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

  2. 从图中可以看出,报毒率还是挺高的,39款杀软中就有21款扫描出病毒,基本上也就是说现在主流的杀软都能杀出来。所以,我们可以猜想如果在使用msf时对它多编码几次,是不是后门代码就不那么容易被扫出来呢?我们可以测试一下,假设编码10次(具体指令实验指导上都有,在此就不一一赘述):

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

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

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

  1. 我一开始用的是自己装的kali系统,所以要先安装veil-evasion,结果发现下载速度都要慢哭了,而且装了一段时间后还报出了错误:

  2. 后面又想到了一个办法,在github上找到了这个软件源,想用git clone把它克隆下来然后安装,结果速度依然慢哭,没办法,还是乖乖用了老师的kali,启动evail-evasion,设置好回连的IP地址和端口号后,生成后门文件:

  3. 放到网站上扫描一下:

  4. 比之前用msf生成的文件报毒率要更低,放到Win7的主机中扫描一下,被360杀毒查出来了:

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

  1. 先使用msf生成一个C语言格式的shellcode:

  2. 利用shellcode编写一个C语言后门程序,编译运行后,在kali上测试其是否可用:

  3. 程序运行后被360杀毒很快就查出来了,说明360杀毒还是挺强的:

  4. 放到网上的扫描结果是有12%的软件能扫出来,报毒率比用veil-evasion又要低一些:

第一次尝试:将shellcode逆序

  1. 直接利用shellcode写的C语言程序还是不能实现免杀,如果我们将shellcode先进行逆序操作得到另外一个数组,然后之后再把它逆序回来,这样是不是能躲过杀软的追杀呢?重新编写代码,编译运行,依旧能被扫出来:

  2. 放到网上的结果,比之前的免杀率要稍微高一些:

第二次尝试:将shellcode与字母进行异或

  1. 如果将shellcode与字母进行异或,相当于是改变了其特征码,这样的结果又会如何?测试结果是没有被360杀毒扫出来:

  2. 网站上免杀率较之前又有了小幅度提升:

第三次尝试:将shellcode逆序和异或结合

  1. 既然进行异或可以实现免杀,如果将异或与逆序相结合是不是免杀率会更高呢?理论上应该是这样,编写代码运行后,首先我的win7系统上的360杀毒没有扫描出来:

  2. 放到网站上,免杀率还是没有改变,依旧能被3个杀软扫出来,或许其中还是包含一定的敏感行为:

  3. 为测试后门程序的免杀性能,我还将这个程序传到了室友win10的系统上,依旧没有被扫描出来,证明其应该在大部分的计算机上还是可用的:

  4. 接着回连测试一下,证明其功能依旧能正常使用:

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

  1. 首先,如何将后门程序植入靶机还需要一定的技术,目前我们实验中是直接用nc指令传到我们靶机的,但是在实战中,靶机不可能会这么容易让我们的后门程序植入,当然,我们也可以考虑利用钓鱼网站来达到这一目的。
  2. 杀毒软件的病毒库在不断地更新,或许我们今天用的技术过几天就用不了了,所以最好还是能够根据漏洞直接自己来写代码,而不是用软件来生成,另外还要对杀毒软件的杀毒原理进行更深层次的分析,以免来达到更好的效果。

实验总结与体会

  • 之前我们大多数时候可能都过度依赖于杀毒软件,觉得只要装了杀软就基本上不用愁了。诚然,在很多时候杀毒软件还是能帮我们扫出很多病毒,但是通过这次实验我们也可以发现要想制作出免杀的病毒其实也并不难,因此,关键还是要提高自己的安全意识,除了杀软之外,我们也可以利用配置防火墙,监控注册表、端口等一些行为来保障我们计算机的安全。
  • 目前我们做的免杀后门还是比较基础,离真正实际应用还是有一定的距离,不过现在的实验也为我们之后更深入的研究打下了良好的基础,总体来讲,这次实验还是非常有趣的,在不断探索中,慢慢实现了自己的目标。

20145215《网络对抗》Exp3 免杀原理与实践的更多相关文章

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

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

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

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

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

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

  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 网络对抗技术 20165206 Exp3 免杀原理与实践

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

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

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

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

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

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

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

随机推荐

  1. 【Beta阶段】第八次Scrum Meeting!

    每日任务内容: 本次会议为第八次Scrum Meeting会议~ 由于本次会议项目经理身体不适,未参与会议,会议精神由卤蛋代为转达,其他同学一起参与了会议 队员 昨日完成任务 明日要完成任务 刘乾 今 ...

  2. ELF分析 实践

    分析ELF文件: 首先编写一个.c文件,并使用gcc -c xx.c -o xx.o 对其进行编译. 我在这个实践中是ELF_1.o文件. 接下来输入ls -l ELF_1.o 查看重定位文件的信息. ...

  3. sqoop 使用笔记

    好久没有更新自己技术博客,现在开始工作了,把自己遇到的问题写到这里边来 主要把自己的问题写出来,分享给大家 sqoop 导入数据时候 有时候会遇到mysql 中有sql 中的关键字 这时候如果直接导出 ...

  4. Fake NP CodeForces - 805A (思维)

    Tavak and Seyyed are good friends. Seyyed is very funny and he told Tavak to solve the following pro ...

  5. Socket、Session、Option和Pipe

    消息队列NetMQ 原理分析4-Socket.Session.Option和Pipe   消息队列NetMQ 原理分析4-Socket.Session.Option和Pipe 前言 介绍 目的 Soc ...

  6. PAT 1081 检查密码

    https://pintia.cn/problem-sets/994805260223102976/problems/994805261217153024 本题要求你帮助某网站的用户注册模块写一个密码 ...

  7. linux命令学习head和tail

    linux命令head和tail是一对:more和less是一对. head和tail https://www.2cto.com/os/201507/414753.html 一个头,一个尾. tail ...

  8. Windows Server 2008 双网卡 断网问题 总结

    实施现场的情况,一个网卡接得是聚合APN的子网,一个网卡是借得局域网. 运行一份数据收发程序,从APN网接入数据,发送给局域网,程序启动一会儿后就崩溃,此时测试网卡就Ping网关了,或者是时断时续,逐 ...

  9. python有序字典

    最近的django开发中用到了有序字典,所以研究了一下,以下. 示例: 有序字典和通常字典类似,只是它可以记录元素插入其中的顺序,而一般字典是会以任意的顺序迭代的. 普通字典: d1={} d1['a ...

  10. python学习笔记八——字典的方法

    4.3.3 字典的方法 字典的常用方法可以极大地提高编程效率.keys()和values()分别返回字典的key列表和value列表.例: dict={"a":"appl ...