在 Ubuntu 20.04 LTS 上運行 Mutillidae2 — 使用 Docker

最近在學習一些資安的東西,順便記錄一下:

OWASP Mutillidae II 是一個內建歷年 OWASP Top 10 漏洞的練習靶機,當我們需要食作滲透測試時,我們就可以架設這樣的練習靶機作為攻擊對象,不要真的去打別人,免得獲得看守所參觀機會。

這類環境安裝的方式有許多種,這邊示範使用 Docker compose 的方式,仰賴前人的力量,比較快樂。 😀

環境說明與事前準備

環境說明:
OS:Ubuntu 20.04 LTS
Docker:Docker Engine – Community 20.10.21 & Docker Compose v2.12.2
另外本次操作是使用雲端主機,而靶機上的服務又限制只能從本機存取,所以安裝後還會有設定 SSH Tunnel 的說明。

本次用到的程式資訊
Mutillidae 的 GitHub
webpwnized/mutillidae-docker (這次下載的是它)
Docker 官網的安裝說明Install Docker Engine on Ubuntu

安裝步驟

我們假設大家已經安裝好 Docker 了,如果還沒的話,可以參考上面的資訊進行。

首先請在你的工作目錄下 clone webpwnized/mutillidae-docker 專案,完成後進入專案資料夾

# git clone https://github.com/webpwnized/mutillidae-docker.git
# cd mutillidae-docker

我們可以查看一下 docker-compose.yml 這個檔案,可以知道作者設計執行 database, database_admin, www, directory, directory_admin 這 5 個 service 來運行整個 Mutillidae2。如果有想要修改 port 映射的話可以直接修改這份文件,不過我們這次按照作者提供的設定就好。

接下來只要執行 docker compose up,就可以運行 Mutillidae2 了。
注意:參考的教學資訊中使用的是 docker-compose 指令,但會遇到找不到指令的問題,不過實測使用 docker compose 指令就可以運行了。

# docker compose up

到這邊如果順利的話,就幾乎安裝完成了!我們可以檢查一下 container 是否運作,並且順便查看我們應該連到哪些 port。
這邊我們可以看到如同 docker-compose.yml 設計的,80 port 會是我們的網站入口,而 81 port 是 phpMyAdmin。

設定 SSH Tunnel

這時候我開心地打開瀏覽器輸入 IP …,诶!怎麼不能連線!

因為 Mutillidae2 只允許從本機存取,而我們這次又是使用沒有 GUI 的主機,所以這邊我們建立一個 SSH Tunnel,來讓我們可以直接連回 Mutillidae2 主機吧!當然,如果你直接在自己的電腦上安裝 Mutillidae2,或者是安裝在有 GUI 的主機上,就可以直接用 http://127.0.0.1/ 瀏覽網頁了。


建立 80 port 與 81 port 映射的 SSH Tunnel 指令如下:

ssh -L 80:127.0.0.1:80 -L 81:127.0.0.1:81 {username}@{host}

The database server appears to be offline.

這時候我們打開首頁的時候會發現,似乎怪怪的,資料庫不見了嗎?!
不緊張,頁面上有一個「Click Here」的連結,勇敢按下去吧!大不了壞了重新安裝。
(抱歉這張截圖遺失了)
之後會出現一個對話框提示繼續,這邊點選「確定」,執行完就完成囉!

檢視成果

到這邊!就已經完成啦,可以暢遊 Mutillidae2。


[Linux] 用 mount –bind 掛載資料夾並加入 /etc/fstab

因為原本 Ubuntu 上的sda是一顆256GB的SSD, 而後來空間不足了,又另外掛載了一個RAID上去:

這時候,我們要把原本的備份路徑移動到新的磁區上的某個資料夾,又因為這個資料夾是給 ftp 上傳使用的(有設 chroot),而 vsftpd 是不會理會 symbolic link 的。

於是就使用 mount –bind 來實行。 Continue Reading





Linux指令 – rm&rmdir指令 刪除檔案/資料夾

刪除文件/目錄的指令:rm指令

rm指令。rm是一個常用的命令,該命令的功能為刪除一個目錄中的一個或多個檔或目錄,它也可以將某個目錄及其下的所有檔及子目錄均刪除。對於連結檔,只是刪除了連結,原有檔均保持不變。

不過請注意!rm是一個危險的指令,使用的時候要特別當心,在執行rm之前最好先確認一下在哪個目錄,到底要刪除什麼東西,保持腦袋絕對地清醒。 Continue Reading


Linux Screen指令 登出而不中斷作業!

系統管理員經常地需要使用SSH等遠端登入到Linux伺服器做管理的動作,而經常需要運行一些需要較長時間才能完成的任務,像是系統備份、資料匯入、檔案傳輸等等。 而這些時候,是不是就必須開著SSH畫面不能關機呢?或者是害怕突然斷線?

其實,我們只要運用”Screen” 這個指令,就可以為個別任務建立一個”視窗”,讓它安穩地在裡面運行,還可以隨時退出/回到這個視窗。 Continue Reading