
Goベースのネットワークエクスプロイト・MITMフレームワーク。認可されたペネトレーションテスト、ネットワーク偵察、トラフィック傍受、ワイヤレスセキュリティテスト、レイヤー2/3/7の攻撃研究に対応。
Goで書かれたローカル&ネットワークセキュリティ評価フレームワークです。ホスト/サービスの発見、列挙、資格情報の監査、脆弱性の特定、許可された範囲での悪用を含むネットワーク評価パイプラインをカバーする、研究および許可を得たペネトレーションテスト用ツールです。10のモジュールカテゴリは、偵察(recon)、列挙(enumeration)、OSINT、MITM(ARP/DHCP/DNS/IPv6ポイズニングおよびインラインHTTP/HTTPS傍受)、ワイヤレス、スイッチ層、Web、認証、諜報活動、ポストエクスプロイテーションに及びます。これらはすべて、対話型REPL、ガイド付きウィザード、またはワンショットのコマンドシーケンスから操作できます。
MITMはこの広範な領域における1つの機能であり、TOHA3EEは中間者(man-in-the-middle)シナリオに限定されません。
警告: toha3ee はネットワークトラフィックを積極的にリダイレクト、ポイズニング、復号、傍受します。 自分が所有しているネットワーク、または明示的にテストを許可されたネットワークでのみ使用してください。 これらのモジュールを第三者に対して実行することは、多くの法域で違法です。 最初に
docs/security.mdをお読みください。
ワンライナーインストーラは、最新リリースからお使いのプラットフォーム向けのプリビルドバイナリを取得し、SHA-256チェックサムを検証してPATHに追加します。プリビルドバイナリがまだ存在しない場合は、代わりにソースからビルドします。
Linux / macOS:
curl -fsSL https://raw.githubusercontent.com/qyvora/qyvora-toha3ee/main/scripts/install.sh | sh
Windows(PowerShell):
irm https://raw.githubusercontent.com/qyvora/qyvora-toha3ee/main/scripts/install.ps1 | iex
またはチェックアウトから:
make install # installs ~/.local/bin/toha3ee and adds it to PATH
インストールオプション(Unix): --prefix <dir>(デフォルト: rootの場合は/usr/local/bin、それ以外は~/.local/bin)、シェルのrcファイルを編集しない--no-path、ダウンロードせずにビルドする--from-source、リリースを固定するTOHA3EE_VERSION=<tag>。システム全体にインストールするにはsudo sh ...で実行します。Windowsインストーラはバイナリを%LOCALAPPDATA%\Programs\toha3ee\binに配置し、ユーザーのPATHを更新します。Windows-on-ARM64ではx64ビルドを実行します。
Linuxでは、インストーラはアプリをデスクトップ環境にも登録します。hicolorアイコンテーマにロゴをインストールし、インストールプレフィックスの隣(例: /usr/local/share や ~/.local/share)に .desktop エントリを配置するため、toha3ee がアイコン付きでGNOMEの検索に表示されます。Windowsでは.icoをコピーし、スタートメニューのショートカットを作成します。リリースのtarball/zipにはアイコンが含まれているため、インストーラは同じ検証済みアーティファクトからアイコンを登録できます。
アンインストール: バイナリと、インストーラがシェルのrcファイルに追加したPATH行を削除します(Windowsでは%LOCALAPPDATA%\Programs\toha3ee)。
Go 1.26+ と libpcap が必要です。
# Debian/Ubuntu
sudo apt install libpcap-dev
# then
go build ./cmd/toha3ee
Linuxビルドにはlibpcapヘッダーが必要です(インストーラのソースからのフォールバックはこれらをチェックし、不足している場合は適切なapt/dnfコマンドを表示します)。macOSにはXcode Command Line Toolsにlibpcapが含まれています。
# Interactive console (bare command drops straight in)
sudo ./toha3ee --iface eth0
# Interactive console (explicit subcommand)
sudo ./toha3ee interactive --iface eth0
# Guided wizard
sudo ./toha3ee wizard --iface eth0
# One-shot: scan the subnet, then show what was found
sudo ./toha3ee --eval "net.scan; net.show" --iface eth0
# Non-interactive caplet script
sudo ./toha3ee run --iface eth0 caplets/basic.cap
# Dry-run a .toha3ee script (validates it, prints the plan, sends no packets)
./toha3ee --no-sudo build scripts/full-pipeline.toha3ee
# Execute a .toha3ee script non-interactively
sudo ./toha3ee script --iface eth0 scripts/full-pipeline.toha3ee
ほとんどの攻撃モジュールはroot権限を必要とします(rawソケット、パケットキャプチャ、IPフォワーディング)。可能であればroot、またはCAP_NET_ADMIN/CAP_NET_RAW権限で実行してください。色付き出力を無効にするには--no-color、詳細ログを有効にするには-vを追加します。
このツールはデフォルトで管理者権限で実行されます。Linux/macOSではsudoの下で自分自身を再実行し、呼び出すたびに管理者(root)パスワードを要求します。権限を上げずに実行するには--no-sudoを渡すか(またはTOHA3EE_NO_SUDO=1を設定)、例: 簡単なtoha3ee --no-sudo versionを実行します。
すべてはモジュールです。モジュールは各パッケージのinit()で自己登録され、レジストリによって自動的に公開されます。攻撃を追加するということは、internal/attacks/の下にattacks.Module契約を実装したパッケージを追加することを意味します(internal/attacks/attacks.goを参照):
Meta() — ID、カテゴリ、リスク、ターゲット、説明、制限事項Preflight(ctx) — 実行前に前提条件をチェックRun(ctx, opts) — 攻撃ループ(ctx.Doneを尊重する必要があります)Verify(ctx) — 何が起こったかを報告Cleanup(ctx) — すべてを元に戻し、ネットワークを復元中央のsafetyライフサイクル(internal/safety)は登録されたクリーンアップとハートビートを追跡し、パニックやSIGINTが発生してもすべての攻撃が確実に終了されます。共有storeは、ホストインベントリ、取得した資格情報、セッション、およびレポートジェネレータに渡すイベントログを保持します。
完全な最新カタログはtoha3ee modulesで確認できます。ハイライト:
素のtoha3ee(またはtoha3ee interactive)は、bettercap/metasploitスタイルのコンソールを開きます。@@@バナー、タブ補完付きの赤をアクセントにしたtoha3eeλ > プロンプト、そしてプロンプトの上に常時表示される1行のステータスHUD(インターフェース、実行中のモジュール、ホスト/ポート/資格情報/イベントのライブカウントを表示)があります。出力は緑/琥珀/白のパレットでグループ化・整列されます。赤は意図的に、プロンプトのアクセント、ハードエラー([x])、HUDのエッジマーク、重大リスクのモジュール(高リスクは琥珀)に使用されます。各コマンドの出力はセクション(─── modules ───)に分かれ、テーブルは列揃えされ(アライメント計算時には色は無視されます)、モジュールメッセージは中央で色付けされるため、すべてのモジュールがモジュールごとの作業なしに一貫したステータスグリフを取得します。パイプされた場合、出力は自動的にプレーンテキストにフォールバックし、bettercapと同様に、モジュール実行中もプロンプトは表示されたままライブで動作します。
$ sudo ./toha3ee --iface eth0
@@@@@@@@
@@@@@@@@@@@@@
@@@@@@@@ @@@@@@@
@@@@@@@@ @@@@@@@@
@@@@@@@@ @@@@@@@@
@@@@@@@ @ @@@@@@@
@@@@@@@@ @@@@@@@@@ @@@@@@@
@@@@@@@@ @@@ @ @@@@@@@
@@@@@@@ @@ @@@@@@@@@@ @@@@@@@
@@@@@@ @@ @ @@@@@@@@@@@@@@@@@@ @@@@@@
@@@ @@@ @@@@@@@ @@@@@@@@@@@@@@@@@@@@@@ @@@
@@@ @@@@@ @ @@@@@@@@@@@@@@@@@@@@@@@ @@@
@@@ @@@@@@ @ @@@@@@@@@@@@@@@@@@ @@@ @@@
@@@ @@@@@@ @ @@@@@@@@@@@@@@@@@ @@@ @@@
@@@ @@@@@@ @@@@@@@@@@@@@@@@@@@@@@ @@@
@@@ @@@@@ @@@@@@@@@@@@@@@ @@@ @@@
@@@ @@@@@ @@@@@@@@@@@@@@ @@@ @@@
@@@ @@@ @@@@@@@@@@@@@ @@@@ @@@
@@@ @@ @@@@ @@@@@ @@@@@@@@@ @@@
@@@ @@@@@@@@@@@@@ @@@@@@ @@@ @@@
@@@ @@@@@@@@@@@@@@@@@@@ @@@@@@@ @@@ @@@
@@@ @@@@@@@@@@@@@@@@@@@@@@@ @@@ @@@@@@ @@@
@@@ @@@@@@@@@@@@@@@@@@@@@@ @@@ @@@@@@@@@@ @@@
@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@ @@@
@@@ @@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@ @@@@@@@@@ @@@
@@@ @@@@@@@@@@@@@@@ @@@@@@@@@@@@@ @@@@@@@@@@@ @@@
@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@ @@@@@
@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@ @@@@ @@@@@@@ @@@@@@@@
@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@ @@@@@@@
@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@
@@@@@@@ @@@@@@@@@@@@@@@@@@@ @@@@@@@
@@@@@@@ @@@@@@@@@@@@@ @@@@@@@
@@@@@@@ @@@@@@@ @@@@@@
@@@@@@ @@@@@@@
@@@@@@@@ @@@@@@@
@@@@@@@@
@@@
local & network security assessment framework
[>] iface wlan0 (10.135.199.31, 8c:c8:4b:30:bf:91)
[>] v 0.1.0
type 'help' for commands, 'modules' for the catalogue, 'quit' to exit
[*] session ready. type 'help' for commands.
toha3eeλ> help
ステータスグリフはbettercapの慣例に従います:
HUDの左端にある赤いブロック▮はステータスストリップを示します。HUDはコマンドのたびに再表示されるため、追加の入力なしでカウントが最新に保たれます。
セッション例:
toha3eeλ> modules recon # module catalogue filtered by category
toha3eeλ> on net.scan # run a module (preflight checks shown first)
toha3eeλ> net.show # discovered hosts
toha3eeλ> net.profile # profile + ranked attack vectors
toha3eeλ> help # grouped command reference
toha3eeλ> quit
set <module.key> <value>はモジュールごとの設定を保存します(モジュールIDはドット区切りのため、最後のドットで分割されます: set arp.spoof.targets 10.0.0.5)。configはこれまでに設定されたすべてを出力します。セッションはモジュール実行をまたいで取得データを保持し、report.generateはインメモリストアからMarkdownの評価レポートを生成します。
.toha3eeファイルは、英語のように読めるPython風の言語で、recon → exploit → reportの完全なパイプラインを駆動します。toha3ee script <file>で実行するか、REPLからscript <file>で実行するか、run <file>で任意の.toha3eeファイルを実行できます。toha3ee build <file>(またはREPLのbuild <file>)はファイルを検証し、ネットワークに触れずにドライランの計画を表示します。scripts/full-pipeline.toha3eeは、動作するエンドツーエンドの例です。
# comment (or //)
set net.scan.targets -> "192.168.8.0/24" # configure a module
on net.scan # start a module (run/start)
wait for net.scan # block until it finishes
_hosts -> [$(net.hosts)] # capture a list (or =, >>)
echo -> "found $(_hosts.size) hosts" # print (say/print)
if $(hosts.count) > 1 # conditions
on arp.spoof targets "192.168.8.0/24"
sleep -> 30
off arp.spoof
end
for each _h in $(_hosts) # loops
repeat 3 times
exec -> net.show # run any REPL command once
break
end
end
get net.scan.timeout -> _t # read a config value
report -> "assessment.md" # write the session report
言語ノート:
set、get、on/start/run、off/stop、wait for <module> [max <secs>]、sleep <secs>、echo/say/print、show <module>、report <file>、exec <command>、if/else/end、、、、、、および単独のでスクリプトを停止します。設定はデフォルトでtoha3ee.jsonです(上書きするには--config)。モジュールごとの設定は、各モジュールが自身の名前空間から読み取ります。例: report.generate.out、switch.portsteal.victim_mac、http.harvest.pcap。
ステルスは常に有効で、すべてのフェーズで、個々のパケットに至るまで適用されます。パケットを送信するすべてのモジュールには、デフォルトでランダム化およびジッター化されたプロファイルが含まれています。有効にするものは何もなく、無効化(set <module>.stealth false)は設計上の意図として明示的にサポートされていません。
stealth_shuffle)、スキャナがフィンガープリントされるような予測可能な昇順でサブネットを走査しないようにします。stealth_jitter、stealth_burst、stealth_pause)を伴うバーストで送信されるため、トラフィックは平坦な均一ストリームでも、単一の同期フラッドでもありません。stealth_pad)を使用します。また、アクティブなnet.scanスイープは単一のキャプチャループで収集され、パッシブリスナーはトラフィックを取り込み続けます。stealth_ports)、IP TTLと識別子(stealth_ttl、stealth_id)、TCPシーケンス番号とウィンドウを変化させ、時折DFビットをクリアするため、プローブストリームが単一のツールシグネチャに解決されません。調整可能なパラメータはモジュールごとに読み取られます。例: set net.scan.stealth_jitter 5ms、set service.synscan.stealth_burst 128。bettercapと同様に、モジュール実行中もREPLプロンプトは表示されたままライブで動作します。
go test ./...
テストスイートは、フレームクラフター(DHCP、NDP、802.11、STP/CDP/LLDP)、ストアとレポートレンダラー、および完全なモジュールカタログを固定するレジストリ契約テストをカバーしています。
CI(.github/workflows/ci.yml)は、すべてのpush/PRに対して、Linuxでgofmt、go vet、go build、go test -raceを実行し、WindowsとmacOSでもテストを実行します。CodeQLは静的セキュリティ解析を実行します。依存関係の更新はDependabotが処理します。
CONTRIBUTING.md、docs/contributing.md、CODE_OF_CONDUCT.mdを参照してください。セキュリティの問題はパブリックなissueではなく、SECURITY.mdを介して報告してください。
| Path | Purpose |
|---|
cmd/toha3ee | CLI: コンソール、ウィザード、--eval、capletランナー、script/build |
internal/ui | コンソール描画: バナー、パレット、セクション、テーブル、ステータスグリフ、HUD |
internal/script | .toha3eeスクリプト言語: レクサー、パーサー、エンジン |
internal/attacks/ | カテゴリ別のすべての攻撃モジュール |
internal/netx/ | プロトコルプリミティブ(ARP、DHCP、DNS、NDP、802.11、SMB/NTLM、プロキシ、…) |
internal/hijack | HTTP/HTTPS MITMプロキシと資格情報/セッション傍受 |
internal/phish | キャプティブポータルフィッシングとログインページのクローン |
internal/store | 共有データストアとイベントバス |
internal/safety | クリーンアップ/ハートビートライフサイクル |
internal/config | JSON設定の読み込み |
internal/oui | MACベンダーデータベース |
pkg/certutil | フレームワークCAとホストごとのTLS証明書 |
| カテゴリ | モジュール |
|---|
| mitm | arp.spoof, dns.spoof, dns.rebind, dhcp.rogue, dhcp.starve, dhcp6.spoof, icmp.redirect, ipv6.ra, ipv6.ndp, llmnr.poison, wpad.poison |
| espionage | http.harvest, http.proxy, https.proxy, ssl.strip, phish.inject |
| auth | default.creds, ntlm.relay, smb.signing, smb.kerberoast, auth.spray, auth.brute, auth.userenum, auth.asrep |
| recon | net.scan, net.ping, net.traceroute, net.osdetect, service.synscan, service.tcpconnect, service.udpscan, service.finxmas, service.ack, service.protoscan, service.idle, service.fingerprint, service.tls, web.dir, cve.suggest |
| osint | osint.dns, osint.whois, osint.ct, osint.asn, osint.shodan, osint.bucket, osint.wayback, osint.github, osint.hibp, osint.metadata, osint.dork, osint.harvest |
| enum | smtp.enum, snmp.enum, ldap.enum, nfs.enum, smb.enum, net.ip6sweep |
| web | web.misconfig |
| switch | switch.flood, switch.portsteal, switch.vlanhop, switch.cdp, switch.stp |
| wireless | wlan.scan, wlan.deauth, wlan.handshake, wlan.eviltwin, wlan.pmkid, wlan.beaconflood, wlan.karma |
| post | report.generate, session.replay, pcap.export |
| Glyph | Meaning |
|---|
[*] | 情報 / 実行中(白) |
[+] | 成功(緑) |
[!] | 警告(琥珀) |
[>] | システム(太字の白) |
[-] | ニュートラル(淡色) |
[x] | ハードエラー(赤) |
[OK] | 検証済み / 合格(緑) |
for each _x in <list>repeat N timeswhile <cond>breakcontinuestop_name -> value、_name = value、または_name >> value。[...]はプロパティからリストを構築し、$(_name.size)と$(_list.size)は長さです。$(...)はライブなセッション状態を解決します: $(hosts.count)、$(net.hosts)、$(creds.count)、$(sessions.count)、$(running.list)、$(iface.ip)、$(iface.cidr)、$(iface.mac)、$(iface.gateway)、$(config.<module.key>)。アンダースコアで始まるパスはスクリプト変数を読み取ります。== != < > <= >=、&&、||、!。数値は数値として比較されます。whileループには上限があるため、不正な条件でスクリプトがハングすることはありません。