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

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

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

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

工具目录

分类

查看所有分类
Loading categories
Mistica — 一款用于在应用协议上进行任意通信的开源瑞士军刀 | Kitploit
工具/GitHubGitHub/incidedigital/mistica
数据泄露Web安全网络安全渗透测试命令与控制红队DNS 分析
GitHubincidedigital/mistica

Mistica

一款用于在应用协议上进行任意通信的开源瑞士军刀

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Mística

Mística Logo
Mística 标志由 JoelGMSec 设计

Mística 是一款工具,能够将数据嵌入应用层协议字段中,旨在建立双向通道以实现任意通信。目前,已实现了对 HTTP、HTTPS、DNS 和 ICMP 协议的封装,预计未来还将引入更多协议。

Mística 采用模块化设计,围绕一种自定义传输协议构建,称为 SOTP:简单覆盖传输协议(Simple Overlay Transport Protocol)。数据经过加密、分块后放入 SOTP 数据包中。SOTP 数据包经过编码后嵌入到应用协议的指定字段中,并发送到另一端。

SOTP 层的目标是提供一种通用的二进制传输协议,开销极小。SOTP 数据包可以轻松隐藏或嵌入到合法的应用协议中。同时,SOTP 确保数据包被另一端接收,使用 RC4 加密数据(未来可能变更),并通过轮询机制确保信息能以透明的方式双向流动。

模块与 SOTP 层交互的目的如下:

  • 封装模块(Wrap modules 或 Wrappers):这些模块负责将 SOTP 数据包编码/解码到应用层协议中,或从应用层协议中解码/编码出来。
  • 覆盖模块(Overlay modules):这些模块通过 SOTP 通道进行通信。示例包括:输入/输出重定向(类似 netcat)、Shell(命令执行)、端口转发等。

封装模块和覆盖模块协同工作,以构建自定义应用程序,例如通过 DNS 进行输入重定向,或通过 HTTP 进行远程端口转发。

Mística 的模块化设计便于开发新模块。此外,用户可以轻松复刻现有模块,以使用自定义字段或编码,或修改覆盖模块的行为。

主要包含两个软件组件:

  • Mística 服务端(ms.py):使用作为所需应用层协议(HTTP、HTTPS、DNS、ICMP...)服务器的模块。其设计方式允许在单个 ms.py 实例中同时运行多个服务器、封装模块和覆盖模块,尽管此功能尚未完全实现。
  • Mística 客户端(mc.py):使用作为所需应用层协议(HTTP、HTTPS、DNS、ICMP...)客户端的模块。同一时间只能使用一个覆盖模块和一个封装模块。

演示

您可以在以下播放列表中查看 Mística 的部分演示

依赖项

该项目的依赖项极少。目前:

  • Mística 客户端至少需要 Python 3.7
  • Mística 服务端至少需要 Python 3.7 和 dnslib。``` python3.7 -m pip install pip --user pip3.7 install dnslib --user
如果您不想在系统上安装Python,可以使用以下便携版本之一:

- https://www.anaconda.com/distribution/#download-section(适用于Windows、Linux和macOS)
- https://github.com/winpython/winpython/releases/tag/2.1.20190928(仅适用于Windows)

## 当前模块

覆盖模块:

- `io`:从标准输入读取,通过SOTP连接发送。从SOTP连接读取,输出到标准输出。
- `shell`:执行通过SOTP连接接收的命令并返回输出。与io模块兼容。
- `tcpconnect`:连接到TCP端口。从套接字读取,通过SOTP连接发送。从SOTP连接读取,通过套接字发送。
- `tcplisten`:绑定到TCP端口。从套接字读取,通过SOTP连接发送。从SOTP连接读取,通过套接字发送。

包装模块:

- `dns`:使用不同方法在DNS查询/响应中对数据进行编码/解码。
- `http`:使用不同方法在HTTP或HTTPS请求/响应中对数据进行编码/解码。
- `icmp`:在ICMP回显请求/响应的数据部分对数据进行编码/解码。

## 使用方法

`ms.py`:Mística 服务器

以下是帮助信息的显示效果:```txt
usage: ms.py [-h] [-k KEY] [-l LIST] [-m MODULES] [-w WRAPPER_ARGS]
             [-o OVERLAY_ARGS] [-s WRAP_SERVER_ARGS]

Mistica server. Anything is a tunnel if you're brave enough. Run without
parameters to launch multi-handler mode.

optional arguments:
  -h, --help            show this help message and exit
  -k KEY, --key KEY     RC4 key used to encrypt the comunications
  -l LIST, --list LIST  Lists modules or parameters. Options are: all,
                        overlays, wrappers, <overlay name>, <wrapper name>
  -m MODULES, --modules MODULES
                        Module pair in single-handler mode. format:
                        'overlay:wrapper'
  -w WRAPPER_ARGS, --wrapper-args WRAPPER_ARGS
                        args for the selected overlay module (Single-handler
                        mode)
  -o OVERLAY_ARGS, --overlay-args OVERLAY_ARGS
                        args for the selected wrapper module (Single-handler
                        mode)
  -s WRAP_SERVER_ARGS, --wrap-server-args WRAP_SERVER_ARGS
                        args for the selected wrap server (Single-handler
                        mode)
  -v, --verbose         Level of verbosity in logger (no -v None, -v Low, -vv
                        Medium, -vvv High)

Mística 服务器有两个主要模式:

  • 单一处理程序模式:当使用参数启动 ms.py 时,它允许单个覆盖模块与单个包装模块交互。
  • 多处理程序模式:(尚未发布)当不带参数运行 ms.py 时,用户进入交互式控制台,可以在其中启动多个覆盖模块和包装模块。这些模块将能够在很少限制的情况下相互交互。

mc.py: Mística 客户端

以下是帮助信息的显示方式:```txt usage: mc.py [-h] [-k KEY] [-l LIST] [-m MODULES] [-w WRAPPER_ARGS] [-o OVERLAY_ARGS]

Mistica client.

optional arguments: -h, --help show this help message and exit -k KEY, --key KEY RC4 key used to encrypt the comunications -l LIST, --list LIST Lists modules or parameters. Options are: all, overlays, wrappers, , -m MODULES, --modules MODULES Module pair. Format: 'overlay:wrapper' -w WRAPPER_ARGS, --wrapper-args WRAPPER_ARGS args for the selected overlay module -o OVERLAY_ARGS, --overlay-args OVERLAY_ARGS args for the selected wrapper module -v, --verbose Level of verbosity in logger (no -v None, -v Low, -vv Medium, -vvv High)

### 参数

- `-l, --list` 用于列出 `all` 模块,或仅列出一种类型:(`overlays` 或 `wrappers`),或列出某个模块可通过 `-o`、`-w` 或 `-s` 接受的参数。
- `-k, --key` 用于指定加密覆盖通信的密钥。客户端和服务器端必须相同,目前是强制性的。如果未来实现秘密共享方案,这可能会改变。
- `-m, --modules` 用于指定要使用的模块对。必须使用以下格式:**overlay_module** + **:** + **wrap_module**。该参数也是强制性的。
- `-w, --wrapper-args` 允许为封装模块指定特定配置。
- `-o, --overlay-args` 允许为覆盖模块指定特定配置。
- `-s, --wrap-server-args` 仅出现在 `ms.py` 上。它允许为封装服务器指定特定配置。每个封装模块依赖于一个封装服务器,两者的配置均可调整。

## 示例与高级用法

> 记住,你可以通过输入 `-l <module_name>`(例如 `./ms.py -l dns`)查看模块的所有可接受参数。也要记住使用长且复杂的密钥来保护你的通信!

### HTTP

为了说明 HTTP 封装的不同方法,每个示例都将使用 IO 重定向覆盖模块(`io`)。
下载工具