
Привязанная оболочка с использованием службы факса и перехвата DLL
Концептуальное доказательство bind shell, использующего службу Fax и перехват DLL на основе Ualapi.dll.
Смотрите нашу статью по адресу: https://windows-internals.com/faxing-your-way-to-system/

Ualapi.dll и поместите в c:\windows\system32Fax, которая загрузит DLL и вызовет экспорт UalStart. UalStart поставит в очередь элемент работы пула потоков, который откроет дескриптор RpcSs, найдет токен SYSTEM, а затем выполнит его олицетворение. После этого он создаст сокет на локальном адресе конечной точки, привяжет его к порту 9299 и будет асинхронно ожидать подключения, используя порт завершения ввода-вывода пула потоков.nc(at).exe <ip> 9299) и введите let me in, затем нажмите ENTER. Если вы пишете собственный код, убедитесь, что отправляете строку let me in\n.Cmd.exe под службой DcomLaunch с привилегиями SYSTEM, связав его дескрипторы ввода и вывода с только что созданным сокетом.SYSTEM, очень быстро возвращаясь к NETWORK SERVICE после выполнения всего одного вызова API. Это помогает снизить вероятность обнаружения различными сканерами.DcomLaunch (которая уже является службой SYSTEM), а не под службой Fax, что выглядит гораздо более естественно и позволяет избежать очень подозрительного дерева процессов.Fax, а не DcomLaunch или Cmd.exe. Если мы завершим службу Fax, будет казаться, что сокет принадлежит System.Это не предназначено для использования как готовая, необнаруживаемая, вредоносная, вооруженная оболочка:
80 или 443, будут работать лучше.Spooler, также загружают Ualapi.dll. Хотя система ведет себя нормально, если служба Fax «застряла» в состоянии SERVICE_START_PENDING, это вызовет проблемы в Spoolsv.exe.