ATT&CK 实战系列二是红日安全团队(HongRi Sec)根据 MITRE ATT&CK 框架精心打造的第二款经典企业内网渗透测试靶场。该靶场旨在模拟高度逼真的网络对抗环境,重点考察红队人员在边界 WebLogic 漏洞利用、杀软对抗(绕过 360)、内网信息收集、横向移动以及域环境攻陷等方面的综合实战能力。
1. 环境搭建
在 VMware 虚拟机 2 号靶场(红队实战二)中,“双网卡模式”是针对 WEB 边界机 和 PC 域成员机 专门设计的网络架构。
2号靶场最大的特色在于:它通过双网卡将网络划分为了三个层级(域控、域成员、外网),完美模拟了现代企业网络中常见的 DMZ(隔离区)与内网核心区。
1.1 工具准备
- VMware Workstation Pro:桌面虚拟计算软件;
- nmap:端口扫描工具,Kali自带;
- WeblogicScaner:WebLogic 漏洞的 Python3 扫描脚本;
- javaserializetools:Java反序列化漏洞利用工具;
- 冰蝎:webshell客户端管理工具;
- Cobalt Strike4.0:后渗透综合工具;
1.2 靶场下载
靶机名称:ATT&CK 红队评估实战靶场(二)
靶机下载地址:http://39.98.79.56/vuln/detail/3/
该靶场包含 3 台靶机,默认登录密码统一为 1qaz@WSX,管理员账号为administrator,密码为1qaz@WSX:
| 靶机名称 | 操作系统 | 角色/核心服务 | 网卡配置 |
| WEB | Windows Server 2008 | Web 服务器 (WebLogic 10.3.6) | 双网卡:自定义桥接/NAT (外网) + 仅主机 (内网 10.10.10.80) |
| PC | Windows 7 | 内网个人端 | 双网卡:外网(模拟可上网)+ 内网 (10.10.10.201) |
| DC | Windows Server 2012 | 域控制器(de1ay.com) | 单网卡:仅主机内网 (10.10.10.10) |
1.3 拓扑图
【 外部攻击域 】
Kali 攻击机 (VMnet8)
│
▼
┌────────────────────────────────────────┐
│ WEB 边界服务器 (双网卡) │
│ ──────────────────────────────────── │
│ [网卡 1] -> VMnet8 (NAT) : 自动获取 │ ◄── 接受 Kali 的外网 WebLogic 漏洞攻击
│ [网卡 2] -> VMnet1 (仅主机): 10.10.10.80│
└────────────────────┬───────────────────┘
│ (进入 10.10.10.X 内网)
├──────────────────────────────────────┐
▼ ▼
┌────────────────────────────────────────┐ ┌─────────────────────────┐
│ PC 域成员主机 (双网卡) │ │ DC 域控制器 (单网卡) │
│ ──────────────────────────────────── │ │ ───────────────────── │
│ [网卡 1] -> VMnet8 (NAT) : 自动获取 │ │ [网卡 1] -> VMnet1 │
│ [网卡 2] -> VMnet1 (仅主机): 10.10.10.201│ │ :10.10.10.10│
└────────────────────────────────────────┘ └─────────────────────────┘
1.3.1 两张网卡在 2 号靶场里的分工:
- 网卡 1:外网桥梁(VMnet8 / NAT 模式):
- 绑定对象:WEB 机、PC 机、Kali 攻击机;
- 作用:模拟这几台服务器暴露在互联网上的端口(例如 WEB 机的 7001 WebLogic 服务);
- 实战意义:你的 Kali 只能感知到这个网段。你必须通过网卡 1 撕开 WebLogic 的口子,拿到 WEB 机的权限;
- 网卡 2:内网大动脉(VMnet1 / 仅主机模式):
- 绑定对象:WEB 机、PC 机、DC 域控机;
- 静态 IP 设定:
- WEB 机内网 IP:
10.10.10.80; - PC 机内网 IP:
10.10.10.201; - DC 域控 IP:
10.10.10.10(它只有这张内网卡,是不出网的);
- WEB 机内网 IP:
- 实战意义:当你拿下 WEB 机的 WebLogic 权限后,你会发现通过执行
ipconfig,WEB 机还有一个10.10.10.80的内网 IP。此时,你可以利用 WEB 机作为跳板,通过网卡 2 探测到同在 VMnet1 里的 PC(.201)和 DC(.10);
1.3.2 2号靶场“双网卡”的核心闭坑指南:
为什么 PC 机也是双网卡?
在红日安全的设计中,PC 机同时挂在 VMnet8 和 VMnet1 上,是为了模拟企业里员工电脑既能连外网查资料(VMnet8),又能连内网域控登录域账号(VMnet1)的真实场景;
虚拟网络编辑器别搞错?
在 VMware 的 虚拟网络编辑器 中,务必将 VMnet1 的子网 IP 改为 10.10.10.0,且必须关闭 DHCP 服务 。因为靶场内网机器的 10.10.10.x 的 IP 是镜像里写死的,开着 DHCP 会引起 IP 冲突,导致内网横向死活连不上。
网卡顺序可能颠倒?
有时在 VMware 里添加网卡后,系统内部的“本地连接 1”和“本地连接 2”会反过来。开机后如果发现无法从 Kali 访问 WebLogic,请在 WEB 虚拟机里输入 ipconfig 检查:看获取到 192.168.x.x 外网 IP 的那张网卡,是不是对应能正常通信的适配器。
1.4 虚拟网络编辑
需要对三台靶机进行网络配置,分别设置VMnet2和VMnet8:

DC域控网络配置
DC域控将网络适配器调整为VMnet2(host only),可以看到已经和域环境ping通了:

WEB端网络配置
两张网卡分别设置为VMnet2(host only)和VMnet8(NAT模式):

WEB端靶机登录时需要恢复到快照V1.3,并且还要将网卡改为VMnet2:

PC端网络配置
同WEB端一样,也是设置两张网卡,需要将WEB端靶机的防火墙关闭才可以ping通:

Kali攻击机测试
配置好网络的环境后与攻击机测试连通性:

1.5 开启WebLogic服务
WEB靶机中,我们需要手动开启WebLogic服务:
- 登录 WEB (Win2008) 桌面;
- 进入路径
C:\Oracle\Middleware\user_projects\domains\base_domain\bin\; - 右键以管理员身份运行
startWebLogic.bat; - 必须等到窗口中明确输出
<Server started in RUNNING mode>字样后,外网7001端口才算真正开放;
这样,WebLogic服务就算真正开启了:

2. 信息收集
2.1 主机发现
首先,使用攻击机Kali的nmap工具对目标 WEB 服务器的外网 IP进行扫描:
sudo nmap -sn -o hosts 192.168.111.0/24

看到 192.168.111.201 和 192.168.111.80 为新增加的主机。
2.2 端口扫描
接着对外网192.168.111.80和192.168.111.201的端口扫描:
sudo nmap -sT --min-rate 10000 -p- 192.168.111.80 -o 80_ports //扫描192.168.111.80

sudo nmap -sT --min-rate 10000 -p- 192.168.111.201 -o 201_ports //扫描192.168.111.201

对目标 WEB 服务器的外网192.168.111.80进行全端口和服务的扫描,确认 7001 端口开放并识别其指纹:
# 全端口扫描并探测服务版本
nmap -p- -sV -sC -T4 192.168.111.80
//扫描结果:7001/tcp open http Oracle WebLogic Server (Servlet 2.5; JSP 2.1)
- 发现 7001/tcp 端口开放,服务显示为
beawls?或明确的Oracle WebLogic Server;
2.3 专属漏洞扫描
由于 WebLogic 历史漏洞极多(涵盖反序列化、XMLDecoder 注入、SSRF、未授权访问等),手动测试效率较低,实战中通常采用自动化脚本/工具进行精准扫描。
Nmap 自带了针对 WebLogic 的探测脚本,可以检测其是否启用了 T3 协议(很多反序列化漏洞的基础):
nmap -p 7001 --script weblogic-t3-info 192.168.111.80

如果输出结果中显示了 WebLogic 的具体版本号(例如 10.3.6.0),则可以针对性地查找该版本的历史已知漏洞。
WeblogicScaner是一款专门针对 WebLogic 漏洞的 Python3 扫描脚本,能一次性检测数十个 CVE 漏洞:
git clone https://github.com/0xn0ne/weblogicScanner.git
cd weblogicScanner
python ws.py -t 192.168.111.80:7001


3. 漏洞利用
3.1 测试漏洞
在该靶场默认环境下,脚本报出这几个可能存在或已经验证存在的,下载javaserializetools工具验证:
https://github.com/shack2/javaserializetools/releases/
java -jar Java反序列化漏洞利用工具V1.7.jar
测试一下CVE-2019-2725存在:

3.2 上传冰蝎马
CVE-2019-2725漏洞利用成功,打开冰蝎管理工具,找到一句话马(server目录/shell.jsp文件),复制到javaserializetools,然后上传到目标机:

打开冰蝎客户端管理工具,用于连接目标机:


使用如下指令查找一下详细信息,比如域控和控制器:
ipconfig /all
systeminfo

发现存在另一个网段10.10.10.10,还有DNS Server,通常域控制器在DNS Server上。
4. 内网渗透
4.1 上线CS
生成一个CS反向马传上去,先启动服务端,再启动客户端:
teamserver.bat 192.168.126.1 123456
javaw -Dfile.encoding=UTF-8 -javaagent:CobaltStrikeCN.jar -XX:ParallelGCThreads=4 -XX:+AggressiveHeap -XX:+UseParallelGC -jar cobaltstrike.jar
菜单栏-监听器-Add,创建新的监听器,然后打开攻击-生成后门-Windows-ExeCutable:

将生成的后门程序通过冰蝎上传到目标机的目录:

成功上线CS:

拿下一台主机的权限后,就可以进行内网渗透了,首先第一步信息收集:
net view /domain 查询域列表
net time /domain 从域控查询时间,若当前用户是域用户会从域控返回当前时间,亦用来判断主域,主域一般用做时间服务器
net localgroup administrators 本机管理员【通常含有域用户】
net user /domain 查询域用户(当前域)
net group /domain 查询域工作组
net group "domain computers" /domain 查看加入域的所有计算机名
net group "domain admins" /domain 查询域管理员用户组和域管用户
net group "Enterprise Admins" /domain 查看域管理员组
net localgroup administrators /domain 查看域管理员
net group "domain controllers" /domain 查看域控
net accounts /domain 查看域密码策略
ping 域控计算机名 查找域控地址
ipconfig /all 通常域内主机 DNS 地址就是域控地址
注意:执行net view命令提示发生系统错误 6118:
解决方案:管理员方式打开cmd,输入services.msc命令打开服务,将三台靶机的Computer Browser、Server、Workstation服务打开;
另外,将三台靶机的防火墙通通关闭。
通过net view命令收集域内的主机,一共有三台,当前我们控制的是WEB:

执行shell net view /domain命令,发现只有一个域:

4.2 域控发现(域控主机名)
提权为SYSTEM后,运行mimikatz:

从输出的信息中找到凭证:de1ay:1qaz@WSX,mssql:1qaz@WSX


接下来使用fscan发现存活主机,右键-目标-端口扫描:


发现存活主机10.10.10.10,10.10.10.201,10.10.10.80三台,还有一些开放的端口:


接下来查看主机的域名称:
shell ping -a -n 1 10.10.10.10

10.10.10.10的名称是DC,大概率就是域控主机名
4.3 横向渗透
拿下了WEB,下一步就是控制域控靶机了,首先创建一个tcp类型的监听器:

接下来直接使用psexec打pth:


成功上线DC靶机:

4.4 权限维持
黄金票据可以在一开始获得域控权限之后拿到一张通行证,后续域控权限失效之后也能够提供一个通行证来以域管权限来访问任意服务,也就是权限维持。黄金票据所需要的条件:
1.用户名
2.域名
3.域SID
4.krbtgt用户的hash
用户名可以自定义就可以了,域名获取也很简单:
shell net config workstation #查看工作站信息

域SID可直接使用命令获取,最后的-500是代表域用户身份,所以要去掉:
shell whoami /all

krbtgt用户的hash在域控DC使用hashdump命令获取:

现在就可以制作黄金票据了,在域控机会话中-右键-执行-黄金票据:

这样,就可以拿到域控的权限了:

4.5 痕迹清理
目标机中事件管理器有很多日志,清理一下防止被发现;meterpreter中的clearev命令可以清除windows中的应用程序日志、系统日志以及安全日志,但是仍然还可以保存一份清理痕迹的日志。
1. 一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。