红日靶场一
外网打点 → 内网横向到域控 全流程复盘
前言
这是一个标准的红队靶场环境,目标是拿到域控 C 盘根目录下的 flag。靶机 IP 为 192.168.111.20,本机 IP 为 192.168.111.25。记录一下完整的攻击路径和踩坑经验。
一、外网信息收集
先用 Python 写了个小脚本快速扫常用端口,发现目标开放了:
| 端口 | 服务 |
|---|---|
| 80 | HTTP(Apache) |
| 135 | RPC |
| 139 | NetBIOS |
| 445 | SMB |
| 3306 | MySQL |
Web 首页是一个 phpStudy 2014 探针(l.php),直接暴露了大量信息:
- Apache/2.4.23 + PHP/5.4.45
- Web 根目录:C:/phpStudy/WWW
- 主机名:STU1
- 操作系统:Windows 7 专业版 SP1
同时在扫描目录时发现存在 /phpmyadmin/,用 root/root 直接登录进去了。
二、MySQL 到 Webshell
phpMyAdmin 里查到 MySQL 版本为 5.5.53。先尝试最经典的 INTO OUTFILE 写 webshell:
1 | |
结果报了 #1290 --secure-file-priv 错误。再查 SHOW VARIABLES LIKE 'secure_file_priv' 这里显示为 NULL。注意一个坑——MySQL 5.5 的 secure_file_priv 显示 NULL 但启动参数 --secure-file-priv 仍然会限制文件写入,不要被变量值骗了。
既然 INTO OUTFILE 被拦了,换 general_log 写法绕过:
1 | |
原理:general_log 会把所有 SQL 查询记录到日志文件,把日志文件路径指向 Web 目录后,执行的 SELECT 语句中的 PHP 代码就会被写进去。这样绕过了 secure_file_priv 的限制。
验证一下:访问 http://192.168.111.20/shell.php?c=whoami,返回 god\administrator——直接就是域管理员权限。
三、信息收集
有了 webshell 后,用几条核心命令完成了内网信息收集:
1 | |
根据经验,DNS 服务器通常就是域控,加上 登录服务器 \\OWA 确认了域控主机名。到这里已经定位了域控:
| 主机 | IP | 角色 |
|---|---|---|
| STU1 | 192.168.111.20 / 192.168.52.143 | 当前立足点(Windows 7) |
| OWA | 192.168.52.138 | 域控(主 DNS) |
四、内网其他主机发现
通过 arp -a 发现 52 段还有一台机器 192.168.52.141,通过 SMB admin share 远程查看了它的 C 盘目录,确认是一台 Windows Server 2003,上面有 oracle、IIS、以及若干逆向分析工具(IDA、OllyDbg 等)。
五、内网横向到域控
我们已经是域管理员,不需要提权就能访问域控。简单一条命令:
1 | |
再访问 http://192.168.111.20/flag.txt,flag 直接到手。
1 | |
六、完整的攻击链总结
1 | |
七、关键收获
不要被变量值骗了。secure_file_priv 显示 NULL 不代表能写文件,先试 INTO OUTFILE,不行就上 general_log。
内网信息收集三步走:
ipconfig看网段和 DNS →systeminfo看域名和登录服务器 →arp -a看其他主机。域管 + admin share 是最直接的横向手段。拿到域管身份后,
copy \\DC\C$\flag.txt比任何 exp 都快,不用提权、不用代理、不用反弹 shell。CS 和 MSF 的价值在实战。靶场里 webshell 够用,但真实渗透中几十台机器、多网段、需要批量扫描和凭证抓取,没有 C2 平台根本忙不过来。