天天看點

滲透基礎——Minio版本探測

作者:區塊軟體開發

導語:本文将要介紹Minio版本探測的方法,通過Python實作自動化,記錄開發細節,開源代碼。

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頁面,如下圖

滲透基礎——Minio版本探測

從頁面中可以看到目前版本以及節點和存儲的資訊

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

1.登入

通路位址:http://127.0.0.1:9090/api/v1/login

通過json格式傳入認證資訊,具體内容如下:

滲透基礎——Minio版本探測

登入成功後傳回狀态碼204,在Header中添加Cookie: token=xxxx作為憑據

2.讀取版本資訊

通路位址:http://127.0.0.1:9090/api/v1/admin/info

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

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

滲透基礎——Minio版本探測

補充:獲得Minio的最新版本

通路位址:http://127.0.0.1:9090/api/v1/check-version

0x04 實作細節

1.登入

這裡需要考慮一個問題:預設端口被修改的情況

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

如果端口錯誤,會傳回狀态碼400,傳回内容示例:

滲透基礎——Minio版本探測

是以在程式實作上這裡可以添加一個判斷:當使用預設端口9000時,如果傳回特定條件,提示端口錯誤,接下來嘗試端口9001,如果再次失敗,提示修改預設端口

完整示例代碼:

滲透基礎——Minio版本探測
滲透基礎——Minio版本探測

2.讀取版本資訊

傳回結果為json格式,結果示例:

滲透基礎——Minio版本探測

這裡存在多個servers的情況,是以在解析時需要使用周遊,示例代碼如下:

滲透基礎——Minio版本探測

0x05 開源代碼

完整的實作代碼已上傳至github,位址如下:https://github.com/3gstudent/Homework-of-Python/blob/master/MinIO_GetVersion.py

代碼支援以下兩種指令:

getversin:用來獲得版本資訊

getinfo:用來獲得完整資訊

0x06 小結

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