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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
mofos — 仮想マシン操作フレームワーク | Kitploit
ツール/GitHubGitHub/synacktiv/mofos
スクリプトと自動化セキュリティ仮想化ネットワークセキュリティペネトレーションテストユーティリティとフレームワークレッドチーミング
GitHubsynacktiv/mofos

mofos

仮想マシン操作フレームワーク

リポジトリを見る
1086746ヶ月前Kitploit レビュー済み

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有
  • mofos
    • コンセプト
    • インストール
    • ホストの設定
      • QEMU/KVMシステムセッション
      • セキュリティ上の考慮事項
    • Mofosの設定
    • テンプレートのインストール
      • ファイアウォールの設定
      • インストール
      • インポート
    • 上位レイヤーの空ディスクを作成
    • 仮想マシンの作成
    • カスタマイズ
      • テンプレート - フックのインストール
      • 仮想マシン - 新規フック
      • 仮想マシン - 起動フック
    • 機能
      • VMの起動・停止時の通知設定
      • クリップボード
      • マシン間のルーティング設定
      • ペンテストボックス経由のトンネリング設定
      • USB管理
      • PCIデバイス管理
      • 共有フォルダ
    • Windowsマシン
    • 自動補完
    • IPアドレスの重複

mofos

Mofosは、仮想マシンの作成、実行、管理を目的としたツールです。Libvirt/QEMU/KVMとPythonを利用しており、あらゆるLinuxディストリビューションと互換性があります。Qubes OS(https://www.qubes-os.org/)から強い影響を受けており、Mofosはその機能の多くを再現することを目指しています。

このツールはDebian上で、Debianベースの仮想マシンを使用して広範囲にテストされています。他のLinuxディストリビューションでも動作する見込みですが、追加の設定が必要になる場合があります。詳細は追って追加されます。

Mofosは、仮想マシンを安全に管理することに重点を置いたさまざまな機能を提供します。その内容は次のとおりです。

  • Xpraを使用したシームレスなウィンドウ統合。
  • ホストと仮想マシン間でクリップボードの内容を送受信できるクリップボードシステム。
  • 仮想マシンとのSSH通信。
  • デフォルトのネットワーク制限に加え、ある仮想マシンから他の仮想マシンやリモートサーバーを経由してトラフィックをルーティングまたはトンネリングする柔軟なオプション。

コンセプト

mofosマシンは、overlayfsを使用して結合された2つのディスクで構成されます。最初のディスクは下位レイヤーと呼ばれる読み取り専用のテンプレートディスクで、2番目のディスクは仮想マシンによって行われたすべての変更を保存します。このテンプレートディスクは複数の仮想マシン間で共有されます。その結果、新しい仮想マシンの作成には、変更データを保持するために既にパーティション分割された空のディスクのクローンを作成するだけで済みます。このアプローチにより、新しい仮想マシンを迅速に作成できる一方、テンプレートは独立して更新できます。テンプレートへの更新は、依存する仮想マシンが次回再起動したときに反映されます。

インストール

Linuxディストリビューションに応じて、Makefileを使用してdebパッケージを生成するか、ファイルを直接インストールできます。``` make deb apt install ./mofos-VERSION.deb

`apt` インストール中に、さまざまな設定がプロンプト表示されます。通常はデフォルトのオプションを受け入れて問題ありません。注意が必要な唯一の設定は、mofos libvirt ネットワークで使用されるサブネットアドレスです(デフォルト: `192.168.90.0/24`)。

または

次の依存関係をインストールします:
- guestfs-tools
- libnotify-bin
- libvirt
- libvirt-clients
- libvirt-daemon
- make
- python3-click
- python3-click-completion
- python3-colorama
- python3-cryptography
- python3-dbus
- python3-jinja2
- python3-lxml
- python3-prettytable
- python3-pyroute2
- python3-tqdm
- qemu-system-common 
- qemu-system-modules-spice
- socat
- spice-client-gtk
- sudo
- virtinst
- virt-install
- virtiofsd
- virt-manager
- virt-viewer```
make install_files

ディストリビューションによっては、/usr/lib/python3/dist-packages にコピーした Python ファイルが Python インタプリタによって検出されない場合があり、別の場所に配置する必要があります。たとえば、Fedora では、Python ファイルを /usr/lib/python3.11/site-packages にコピーする必要があります。

[!WARNING] 注意: Debian trixie 以降、xpra はパッケージとして提供されなくなりました。カスタムリポジトリから手動でインストールする必要があります。詳細な手順は https://github.com/Xpra-org/xpra/wiki/Download#-for-debian-based-distributions を参照してください。

ホストの設定

QEMU/KVM システムセッション

Mofos は QEMU/KVM システムセッションを使用するため、virsh コマンドが仮想マシンおよび関連リソースにアクセスできるように、環境変数 LIBVIRT_DEFAULT_URI を qemu:///system に設定します。```console export LIBVIRT_DEFAULT_URI=qemu:///system

### セキュリティ上の考慮事項

QEMU/KVM システムセッションを使用すると、qemu インスタンスを専用ユーザー (`libvirt-qemu`) で実行し、各インスタンスに固有のセキュリティプロファイルを適用することで、ホストとゲスト仮想マシン間の分離が向上します。

ただし、デフォルトでは、通常のユーザーは `libvirtd` システムソケットとやり取りしてマシン、ネットワーク、その他のリソースを管理することはできません。アクセスするには、ユーザーは libvirt Unix グループのメンバーであるか、sudo を使用する必要があります。歴史的に、ローカル権限昇格の脆弱性は、libvirt グループのメンバーシップを悪用して root 権限を取得してきました。

これらのリスクを軽減するため、このリポジトリは、AppArmor を使用するシステム上の `libvirtd` プロセス向けに強化された AppArmor プロファイルを提供します。このプロファイルは、`libvirtd` がファイルを書き込める場所と実行できるプログラムを大幅に制限します。

さらに、`libvirt` グループのメンバーに許可される操作をより詳細に制御するための `polkit` ルールも含まれています。

AppArmor プロファイルは `deb` パッケージに含まれていますが、Makefile の `install_files` ターゲットではインストールされないため、別途インストールする必要があることに注意してください。

## Mofos の設定

Mofos が正しく機能するには、`$HOME/.config/mofos/config.toml` に配置された最小限の設定を含む構成ファイルが必要です。最小限の設定例は `/usr/share/mofos/config.minimal.toml` にあります。一方、より包括的な設定は `/usr/share/mofos/config.sample.toml` に文書化されています。

次のエラーは、構成ファイルが見つからなかったことを示しています:```
[-] Copy the sample configuration file from /usr/share/mofos/config.minimal.toml to ~/.config/mofos/config.toml

次のエラーは、現在のユーザーが libvirt グループのメンバーではないことを示しています:``` [-] libvirtError("authentication unavailable: no polkit agent available to authenticate action 'org.libvirt.unix.manage'")

設定ファイルでカスタマイズする主な設定項目は次のとおりです:
- key (パス): 仮想マシンへのアクセスに使用する SSH 秘密鍵ファイルです。この目的のために専用の鍵を作成することをお勧めします。
- user (文字列): 仮想マシンへの SSH アクセスに使用するユーザー名です。
- root_password (ハッシュ値): 新しいテンプレートのインストール中に設定される、ハッシュ化された root パスワードです。
- root_ssh_pubkey (文字列): テンプレートのインストール中に root ユーザーのディレクトリにインストールされる公開 SSH キーです。

さらに、テンプレートのインストールには以下のパラメータを設定する必要があります:
- ntp
- dns (プロキシが提供されている場合はオプション)
- proxy

## テンプレートのインストール

### ファイアウォールの設定

インストールプロセスは PXE netboot に依存するため、アクティブなインターネット接続が必要です。以下のファイアウォールルールを設定する必要があります:```
sysctl net.ipv4.ip_forward=1
iptables -t nat -I POSTROUTING -s 192.168.90.0/24 -j MASQUERADE
iptables -t nat -I POSTROUTING -s 192.168.91.0/24 -j MASQUERADE

または nftables を使う場合:``` sysctl net.ipv4.ip_forward=1 nft insert inet nat postrouting iifname "install-*" masquerade nft insert inet nat postrouting iifname "mof0" masquerade

`ip_forward` パラメータが 1 に設定されている場合、ネットワーク上の他のデバイスがホストをルーターとして使用できないように、FORWARD チェーンを設定する必要があります。

全体として、以下のルールが推奨されます:```
iptables -I INPUT -i mof0 -p udp --sport 68 --dport 67 -j ACCEPT -m comment --comment "mofos dhcp"
iptables -I INPUT -i mof0 -p udp --dport 69 -j ACCEPT -m comment --comment "mofos tftp"
iptables -I OUTPUT -o mof0 -j ACCEPT -m comment --comment "host -> mofos"
iptables -I FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -I FORWARD -i mof0 -j ACCEPT -m comment --comment "mofos ->"
iptables -t nat -I POSTROUTING -s 192.168.90.0/24 -j MASQUERADE
iptables -t nat -I POSTROUTING -s 192.168.91.0/24 -j MASQUERADE

または nftables を使用する場合:``` table inet filter {

chain input {
  type filter hook input priority 0; policy drop
  
  iifname "install-*" ip daddr 255.255.255.255 udp sport 68 udp dport 67 accept comment "mofos dhcp"
  iifname "mof0" ip daddr 255.255.255.255 udp sport 68 udp dport 67 accept comment "mofos dhcp"
  iifname "install-*" udp dport 69 accept comment "mofos tftp"
}

chain forward {
  type filter hook forward priority 0; policy drop
  
  ct state established,related accept;
  ct state invalid drop;
  
  iifname "mof0" counter accept
  iifname "install-*" counter accept
}

chain output {
  type filter hook output priority 0; policy drop
  
  oifname "mof0" counter accept
}

} table inet nat { chain postrouting { type nat hook postrouting priority 100 iifname "mof0" masquerade iifname "install-*" masquerade } }

It is recommended to restrict masquerade and forwarding rules based on your specific needs, to prevent mofos virtual machines from accessing the entire host network.
特定のニーズに基づいてマスカレードおよび転送ルールを制限し、mofos 仮想マシンがホストネットワーク全体にアクセスできないようにすることをお勧めします。

Isolation between virtual machines is automatically enforced by a libvirt hook, which requires nft to function properly.
仮想マシン間の分離は libvirt フックによって自動的に強制され、正しく機能するには nft が必要です。


### Install
### インストール

The first step is to build the initial layer: the template. By default, Mofos can install a Debian 12–based template.
最初のステップは初期レイヤーであるテンプレートを構築することです。デフォルトでは、Mofos は Debian 12 ベースのテンプレートをインストールできます。```
mofos template create debian-template

注: すべてのコマンドで、予期しない動作が発生した場合に詳細な技術情報を取得するために --debug オプションを使用できます。特にこのコマンドでは、--debug フラグを使用すると、インストールの進行状況を表示するグラフィカルウィンドウも強制的に表示されます。あるいは、virt-manager. を使用してインストールを監視することもできます。

ツールをダウンロード