Jump to content
  • Entries

    16114
  • Comments

    7952
  • Views

    86399032

Contributors to this blog

  • HireHackking 16114

About this blog

Hacking techniques include penetration testing, network security, reverse cracking, malware analysis, vulnerability exploitation, encryption cracking, social engineering, etc., used to identify and fix security flaws in systems.

0x00 前言本文將要介紹Minio版本探測的方法,通過Python實現自動化,記錄開發細節,開源代碼。

0x01 簡介本文將要介紹以下內容:

實現思路

實現細節

開源代碼

0x02 基礎知識MinIO是一款基於Go語言發開的高性能、分佈式的對象存儲系統。 Minio可以做為雲存儲的解決方案用來保存海量的圖片,視頻,文檔。由於採用Go語言實現,服務端可以工作在Windows,Linux, OS X 和FreeBSD上,並且只需要單獨的可執行程序就可以運行。

在Windows上的環境搭建可參考:https://min.io/docs/minio/windows/index.html

1.下載最新版本:https://dl.min.io/server/minio/release/windows-amd64/minio.exe

歷史版本:https://dl.min.io/server/minio/release/windows-amd64/archive/

歷史版本在下載後將文件後綴名添加.exe,運行即可

2.啟動服務命令行參數:minio.exe server C:\minio --console-address :9090

3.Web訪問URL地址:http://127.0.0.1:9090

默認用戶名:minioadmin

默認口令:minioadmin

0x03 實現思路Minio的版本探測需要登錄到Web後台

訪問位置:Health頁面,如下圖

下载.png

從頁面中可以看到當前版本以及節點和存儲的信息

在程序實現上,我們可以通過抓包的方式分析認證過程,具體內容如下:

1.登錄訪問地址:http://127.0.0.1:9090/api/v1/login

通過json格式傳入認證信息,具體內容如下:

微信截图_20230404144856.png

登錄成功後返回狀態碼204,在Header中添加Cookie: token=xxxx作為憑據

2.讀取版本信息訪問地址:http://127.0.0.1:9090/api/v1/admin/info

需要帶有Cookie: token=xxxx作為憑據

返回結果為json格式,如下圖

下载 (1).png

補充:獲得Minio的最新版本訪問地址:http://127.0.0.1:9090/api/v1/check-version

0x04 實現細節1.登錄這裡需要考慮一個問題:默認端口被修改的情況

在用程序實現自動化時,通常會使用端口9000,但存在端口被修改為9001的情況,也存在很少一部分將端口修改為其他不常見的端口

如果端口錯誤,會返回狀態碼400,返回內容示例:

1.png

所以在程序實現上這裡可以添加一個判斷:當使用默認端口9000時,如果返回特定條件,提示端口錯誤,接下來嘗試端口9001,如果再次失敗,提示修改默認端口

完整示例代碼:

2.png 3.png

2.讀取版本信息返回結果為json格式,結果示例:

4.png這裡存在多個servers的情況,所以在解析時需要使用遍歷,示例代碼如下:

微信截图_20230404145258.png

0x05 開源代碼完整的實現代碼已上傳至github,地址如下:https://github.com/3gstudent/Homework-of-Python/blob/master/MinIO_GetVersion.py

代碼支持以下兩種命令:

getversin:用來獲得版本信息

getinfo:用來獲得完整信息

0x06 小結本文介紹了Minio版本探測的方法,結合實際環境介紹了通過Python開發的細節,開源代碼。