境并完成首次用戶注冊(Tutorial 0))
網(wǎng)絡安全應用安全【免費下載鏈接】monkeyInfection Monkey - An open-source adversary emulation platform項目地址https://gitcode.com/gh_mirrors/mo/monkey點擊查看免費下載本文是 Infection Monkey 系列教程的第 0 篇對應倉庫文檔 docs/content/tutorials/first-steps.md目標是帶你在一臺 Linux 主機上用 Docker 快速搭建一個隔離、可隨意折騰的沙箱實驗環(huán)境一個包含 Monkey Island 控制端C2、MongoDB 數(shù)據(jù)庫和一臺故意留有弱點的目標容器。讀完本文你將掌握 Infection Monkey 服務器環(huán)境的啟動/關閉方法、如何通過瀏覽器訪問 Monkey Island Web 界面以及如何完成首次用戶注冊并進入 Getting Started 引導頁——這些是繼續(xù)完成后續(xù)Hello, Monkey漏洞利用實操教程的基礎。說明本文基于倉庫中提供的教程鏡像與 docker-compose 編排文件 展開。教程環(huán)境為了便于學習與探索其配置可能經(jīng)過特殊定制不適用于生產(chǎn)環(huán)境。若要在真實環(huán)境中部署官方正式版本請參考倉庫的 Setup 安裝章節(jié)如 Docker 部署文檔。本教程的目標與適用場景在開始使用 Infection Monkey 之前你需要一個可以放心搗亂的實驗環(huán)境。官方教程系列約定使用 Docker 搭建的沙箱它的價值在于完全隔離Monkey 在掃描和利用漏洞時不會波及你的真實網(wǎng)絡一鍵復現(xiàn)所有組件控制端、數(shù)據(jù)庫、靶機都以容器形式聲明在同一個 docker-compose.yaml 中任何機器上都能得到一致的結果即用即棄實驗結束后執(zhí)行docker compose down即可整體拆除不會在宿主機上留下運行殘留。后續(xù)的 Tutorial 1: Hello, Monkey配置并實際利用一個 SSH 弱口令漏洞將完全建立在本教程搭建的環(huán)境之上因此請務必先完成本教程的環(huán)境準備與注冊步驟。前置條件Docker 與 Docker Compose本教程只要求宿主機安裝兩個工具dockerdocker-compose或新版 Docker 自帶的docker compose子命令你可以用下面的命令確認版本是否可用docker --version docker compose version由于沙箱中的monkey-island容器只支持 Linux詳見 Docker 部署文檔本教程適用于 Linux 主機Windows/macOS 上的 Docker Desktop 不在此教程支持范圍內(nèi)。沙箱環(huán)境的組成三個容器各司其職運行docker compose up后你將得到 3 個容器。它們的角色如下容器名鏡像作用monkey-islandinfectionmonkey/monkey-island:e7c59c79dInfection Monkey 的命令與控制服務器C2提供 Web 界面與 APImongomongo:6.0MongoDB 數(shù)據(jù)庫Monkey Island 用它持久化配置、事件與憑證等數(shù)據(jù)helloinfectionmonkey/ssh1一臺故意配置了弱口令 SSH 服務的漏洞容器供后續(xù)教程作為攻擊目標這三個服務在 docker-compose.yaml 中的關鍵配置如下version: 3 services: mongo: container_name: mongo hostname: mongo image: mongo:6.0 ports: - 27017:27017 volumes: - monkey-tutorial-db:/data/db monkey-island: container_name: monkey-island hostname: monkey-island image: infectionmonkey/monkey-island:e7c59c79d environment: - MONKEY_MONGO_URLmongodb://mongo:27017/monkey_island_test ports: - 5000:5000 depends_on: - mongo hello: container_name: hello hostname: hello image: infectionmonkey/ssh1 command: /usr/sbin/sshd -D sh -c trap : TERM INT; tail -f /dev/null wait volumes: monkey-tutorial-db:幾個值得注意的細節(jié)MONKEY_MONGO_URL環(huán)境變量決定了 Monkey Island 連接哪個 MongoDB。這里指向同網(wǎng)絡的mongo容器mongodb://mongo:27017/monkey_island_test數(shù)據(jù)庫名為monkey_island_test教程專用。從源碼 monkey/monkey_island/cc/mongo_consts.py 可以看到Monkey Island 默認讀取該環(huán)境變量未設置時才回退到mongodb://localhost:27017/monkey_island——這正是本教程用環(huán)境變量覆蓋默認連接的原因。端口映射monkey-island把 HTTPS 端口 5000 暴露給宿主機https://localhost:5000mongo暴露 27017 便于調試。命名卷monkey-tutorial-dbMongoDB 的數(shù)據(jù)目錄/data/db掛載到命名卷上即使執(zhí)行docker compose down后再次啟動數(shù)據(jù)仍會保留。depends_on: mongo保證 Monkey Island 在 MongoDB 就緒之后才啟動避免連接失敗。hello 容器是怎么變?nèi)醯膆ello容器對應的鏡像由倉庫中的 ssh1.dockerfile 構建。該 Dockerfile 揭示了它的漏洞來源基于ubuntu:jammy安裝openssh-server通過sed顯式開啟密碼認證PasswordAuthentication yes創(chuàng)建了用戶名為user、密碼為password的賬戶openssl passwd -1 password。也就是說它是一臺運行著 SSH 服務、且?guī)в泄_弱憑據(jù)user/password的靶機。這個憑據(jù)會在 Tutorial 1: Hello, Monkey 中作為 Infection Monkey 的爆破憑證使用。啟動沙箱環(huán)境1. 獲取編排文件下載本教程配套的 docker-compose.yml 到本地目錄wget 倉庫中該文件的地址 -O docker-compose.yml # 或者直接從倉庫頁面復制該文件內(nèi)容保存為 docker-compose.yml2. 啟動全部容器進入存放docker-compose.yml的目錄執(zhí)行docker compose up首次運行時 Docker 會自動拉取mongo:6.0、infectionmonkey/monkey-island:e7c59c79d和infectionmonkey/ssh1三個鏡像然后按依賴順序啟動容器。若想在后臺運行不占用當前終端可改用docker compose up -d。3. 驗證容器狀態(tài)啟動完成后確認 3 個容器都在運行docker container ls --format table {{.ID}}\t{{.Names}}\t{{.Status}}正常輸出類似CONTAINER ID NAMES STATUS 737b67cc344c monkey-island Up 7 seconds fbd91aacc8ea mongo Up 7 seconds b1c9ac1d3b81 hello Up 7 seconds4. 關閉沙箱實驗結束后回到docker-compose.yml所在目錄執(zhí)行以下命令即可整體關閉并移除容器網(wǎng)絡命名卷中的數(shù)據(jù)會保留docker compose down訪問 Monkey Island Web 界面環(huán)境運行起來后用瀏覽器打開https://localhost:5000。首次訪問時瀏覽器通常會彈出自簽名證書警告——因為 Monkey Island 默認使用自簽名 SSL 證書關于正式環(huán)境如何替換為企業(yè)級證書可參考 Docker 部署文檔 中Start Monkey Island with user-provided certificate一節(jié)。警告頁看起來類似下圖。對于本教程的沙箱環(huán)境可以放心忽略該警告點擊Advanced然后點擊Proceed to localhost (unsafe)繼續(xù)訪問。提示這是 Chrome 等瀏覽器的正常安全機制。Monkey Island 自帶的默認證書未被系統(tǒng)信任所以瀏覽器會攔截在隔離的沙箱環(huán)境中可以安全地放行。注冊你的第一個用戶由于這是第一次訪問這臺 Monkey Island 實例系統(tǒng)會要求你注冊一個用戶。在注冊界面中填寫一個Username用戶名填寫一個Password密碼點擊黃色的Lets go!按鈕提交。從源碼看這個流程由認證服務中的Register資源實現(xiàn)見 monkey/monkey_island/cc/services/authentication_service/flask_resources/register.py后端先檢查needs_registration()Monkey Island 只允許注冊一個用戶若已存在用戶再次注冊會返回 HTTP 409 Conflict然后對用戶名與密碼做格式校驗非空、符合 flask-security 規(guī)則校驗失敗返回 400校驗通過后調用 flask-security 的register()完成注冊并在成功時把認證令牌含有效期token_ttl_sec寫入響應實現(xiàn)注冊即登錄。所以注冊完成后你會自動登錄并直接進入Getting Started入門引導頁面。Getting Started 頁面是后續(xù)所有操作的起點主要提供三個入口Run Monkey使用當前配置運行 Monkey對應側邊欄1. Run MonkeyConfigure Monkey編輯攻擊目標、添加憑證、選擇漏洞利用模塊Exploiter等對應側邊欄ConfigurationRead more了解更多項目信息。至此你的 Infection Monkey 沙箱環(huán)境已搭建完畢控制端在線、數(shù)據(jù)庫就緒、靶機待命、賬號已注冊?;仡櫮銓W到了什么學會了用 Docker 編排文件一鍵創(chuàng)建 Infection Monkey 實驗沙箱Monkey Island MongoDB 漏洞靶機hello學會了用docker container ls驗證容器運行狀態(tài)、用docker compose down關閉環(huán)境學會了訪問 Monkey Island Web 界面https://localhost:5000并處理自簽名證書警告完成了首次用戶注冊并了解了其背后的單用戶約束與注冊即登錄機制源碼依據(jù)register.py。下一步有了可用的沙箱環(huán)境后你可以繼續(xù)進入Tutorial 1: Hello, Monkey學習如何配置 Infection Monkey 去利用hello容器上的 SSH 弱口令漏洞——這是系列教程的核心實操若要在其他平臺Linux 原生、Windows、云主機等安裝正式版 Infection Monkey請參考倉庫的 Setup 安裝章節(jié)查看 Getting Started 使用指南了解插件安裝、運行方式與感染地圖等基礎用法。贊分享網(wǎng)絡安全應用安全【免費下載鏈接】monkeyInfection Monkey - An open-source adversary emulation platform項目地址https://gitcode.com/gh_mirrors/mo/monkey點擊查看免費下載相關推薦Infection Monkey 開發(fā)環(huán)境搭建指南Agent 與 Monkey Island 從零配置Infection Monkey 開發(fā)環(huán)境搭建指南Agent 與 Monkey Island 從零配置 Infection Monkey 是一個開源的 adv網(wǎng)絡安全應用安全Cal.diy 如何用 yarn dx 搭建本地開發(fā)環(huán)境并完成首次登錄Cal.diy 如何用 yarn dx 搭建本地開發(fā)環(huán)境并完成首次登錄 如果你想在本地跑起一份 Cal.diyCal.com 的開源社區(qū)版MIT 許可、無企后端前端企業(yè)應用HIXL 昇騰單邊通信庫技術指南核心架構、零拷貝機制與端到端實戰(zhàn)HIXL 昇騰單邊通信庫技術指南核心架構、零拷貝機制與端到端實戰(zhàn) HIXLHuawei Xfer Library是昇騰Ascend平臺上一款面向集群場網(wǎng)絡安全應用安全上一篇揭秘OpenArm如何用開源機械臂攻克AI物理研究三大難題下一篇5分鐘掌握Flowframes用AI視頻插幀技術讓你的視頻流暢度翻倍創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考