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

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. 杀毒软件的病毒库在不断地更新,或许我们今天用的技术过几天就用不了了,所以最好还是能够根据漏洞直接自己来写代码,而不是用软件来生成,另外还要对杀毒软件的杀毒原理进行更深层次的分析,以免来达到更好的效果。

实验总结与体会

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