Хакеры атакуют — мы разбираем как.
Системы взламывают — мы объясняем почему.
И учим защищаться так, чтобы это не повторилось.
Post #750
508

Windows без PsExec и WMI: необычных способы удалённого взаимодействия
Когда говорят про удалённое взаимодействие с Windows, обычно вспоминают PsExec, WMI и WinRM.
Но Windows гораздо интереснее.
В ней есть множество RPC-интерфейсов и системных API, через которые можно получать информацию о машине, её конфигурации и состоянии — иногда вообще без запуска удалённой командной оболочки.
Разберём несколько менее очевидных вариантов.
Remote Registry 🔫
Windows позволяет обращаться к реестру удалённой машины через Remote Registry.
Network access: Restrict clients allowed to make remote calls to SAM не настроена, это не означает, что любой удалённый пользователь сможет прочитать HKLM\SAM и HKLM\SECURITY.
Microsoft указывает, что при ненастроенной RestrictRemoteSAM используется стандартный security descriptor, а по умолчанию удалённый доступ к SAM ограничивается администраторами. Думаю для красных намек понятен 🙂
Remote Event Log 👨💻
Журналы событий тоже можно читать удалённо.
C# позволяет делать то же через EventLogSession и EventLogReader.
Получается интересный канал DFIR: события можно получать напрямую из Event Log, не запуская shell.
Service Control Manager 😑
SCM отвечает за Windows Services и также доступен удалённо.
Можно искать необычные службы, стороннее ПО, подозрительные имена и сервисы, работающие от SYSTEM.
Remote Task Scheduler 👀
Ладно, это уже ожидаемо и логично. Планировщик имеет собственный протокол удалённого взаимодействия.
Особое внимание — задачам, запускающим программы из необычных директорий.
RPC Endpoint Mapper 😓
И, пожалуй, самое интересное.
TCP/135 — это не «RPC-сервис» в привычном смысле, а точка входа в RPC Endpoint Mapper.
Упрощённо:
Базовая проверка:
Но 135/tcp сам по себе ещё ничего не говорит о том, какие RPC-интерфейсы доступны.
RPC использует UUID, а среди интерфейсов Windows можно встретить:
Почему это интересно 🫂
Все эти механизмы можно представить как отдельные окна в удалённую Windows-машину:
Для Red Team это дополнительные поверхности enumeration.
Для Blue Team — источники телеметрии.
А для Threat Hunting возникает отличный вопрос:
Пост имеет ознакомительный характер и предназначена для специалистов по безопасности. Автор и редакция не несут ответственности за любой вред, причиненный с применением изложенной информации. Распространение вредоносных программ, нарушение работы систем и нарушение тайны переписки преследуются по закону
Когда говорят про удалённое взаимодействие с Windows, обычно вспоминают PsExec, WMI и WinRM.
Но Windows гораздо интереснее.
В ней есть множество RPC-интерфейсов и системных API, через которые можно получать информацию о машине, её конфигурации и состоянии — иногда вообще без запуска удалённой командной оболочки.
Разберём несколько менее очевидных вариантов.
Remote Registry 🔫
Windows позволяет обращаться к реестру удалённой машины через Remote Registry.
var key = RegistryKey.OpenRemoteBaseKey(
RegistryHive.LocalMachine, "HOST");
foreach (var name in key.GetSubKeyNames())
Console.WriteLine(name);
$base = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey(
'LocalMachine','HOST')
$base.GetSubKeyNames()
Network access: Restrict clients allowed to make remote calls to SAM не настроена, это не означает, что любой удалённый пользователь сможет прочитать HKLM\SAM и HKLM\SECURITY.
Microsoft указывает, что при ненастроенной RestrictRemoteSAM используется стандартный security descriptor, а по умолчанию удалённый доступ к SAM ограничивается администраторами. Думаю для красных намек понятен 🙂
Remote Event Log 👨💻
Журналы событий тоже можно читать удалённо.
Get-WinEvent -ComputerName HOST
-LogName System -MaxEvents 20
Get-WinEvent -ComputerName HOST
-FilterHashtable @{LogName='System';Level=2} - только ошибки
C# позволяет делать то же через EventLogSession и EventLogReader.
Получается интересный канал DFIR: события можно получать напрямую из Event Log, не запуская shell.
Service Control Manager 😑
SCM отвечает за Windows Services и также доступен удалённо.
Get-Service -ComputerName HOST
Можно искать необычные службы, стороннее ПО, подозрительные имена и сервисы, работающие от SYSTEM.
Remote Task Scheduler 👀
Ладно, это уже ожидаемо и логично. Планировщик имеет собственный протокол удалённого взаимодействия.
schtasks /Query /S HOST /FO LIST
$s = New-Object -ComObject Schedule.Service
$s.Connect('HOST')
$s.GetFolder('\').GetTasks(0) |
% Name
Особое внимание — задачам, запускающим программы из необычных директорий.
RPC Endpoint Mapper 😓
И, пожалуй, самое интересное.
TCP/135 — это не «RPC-сервис» в привычном смысле, а точка входа в RPC Endpoint Mapper.
Упрощённо:
Client
|
| "Где интерфейс X?"
v
Endpoint Mapper
|
v
RPC Server
Базовая проверка:
Test-NetConnection HOST -Port 135
Но 135/tcp сам по себе ещё ничего не говорит о том, какие RPC-интерфейсы доступны.
RPC использует UUID, а среди интерфейсов Windows можно встретить:
Remote Registry
Service Control Manager
Task Scheduler
и другие системные RP
Почему это интересно 🫂
Все эти механизмы можно представить как отдельные окна в удалённую Windows-машину:
Registry → конфигурация
Event Log → события
SCM → службы
Task Scheduler → persistence
Perf Counters → состояние
Named Pipes → IPC
RPC → системные интерфейсы`
Для Red Team это дополнительные поверхности enumeration.
Для Blue Team — источники телеметрии.
А для Threat Hunting возникает отличный вопрос:
Кто, откуда и к какому интерфейсу Windows обращается удалённо. И нормально ли это для данного хоста?
- 👏 3








