Red Teamers, вам не надоело загружать Sysinternals PsExec.exe при горизонтальном перемещении (lateral movement)? В Windows предустановлены лучшие альтернативны способы.
Еще по теме: Интересный кейс атаки Lateral Movement
Что такое PsExec.exe
PsExec.exe — это утилита командной строки, разработанная компанией Sysinternals (ныне в составе Microsoft), которая позволяет запускать процессы на удаленных компьютерах. Она часто используется администраторами для управления удаленными компьютерами и выполнения команд на них без необходимости физического присутствия на машине.
Статья в образовательных целях, для обучения этичных хакеров. Ни редакция spy-soft.net, ни автор не несут ответственности за ваши действия.
PsExec.exe обеспечивает возможность запуска процессов под учетной записью другого пользователя, а также позволяет подключаться к удаленным компьютерам через локальную сеть или интернет.
Wmic.exe как локальная альтернатива Sysinternals PsExec.exe
Вместо использования PsExec.exe попробуйте сделать это:
1 |
wmic.exe /node:10.1.1.1 /user:username /password:pass process call create cmd.exe /c " command " |
Эта команда использует инструмент wmic (Windows Management Instrumentation Command-line) для выполнения определенной команды на удаленном компьютере с IP-адресом 10.1.1.1. Для этого она использует учетные данные пользователя (имя пользователя и пароль), указанные в команде.
Здесь /node:10.1.1.1 указывает на удаленный компьютер, /user:username и /password:pass задают учетные данные пользователя, /process call create cmd.exe говорит о создании процесса командной строки (cmd.exe), а «/c» передаваемая команда в кавычках «command» говорит о том, что нужно выполнить конкретную команду на созданной командной строке.
Вместо command нужно вставить фактическую команду, которую вы хотите выполнить на удаленном компьютере. Например, если вы хотите вывести список файлов в определенной папке на удаленном компьютере, то команда будет выглядеть примерно так:
1 |
wmic.exe /node:10.1.1.1 /user:username /password:pass process call create cmd.exe /c "dir C:\путь_к_папке" |
Здесь dir C:\путь_к_папке — это пример команды для вывода списка файлов в указанной папке на удаленном компьютере.
PowerShell как локальная альтернатива Sysinternals PsExec.exe
Можно также использовать PowerShell:
1 |
powershell -c Invoke-WMIMethod -class Win32_Process -Name Create -ArgumentList "cmd /c net group `"Domain Admins`" /domain" -ComputerName ProdDC01 |
Эта команда использует PowerShell для вызова метода WMI (Windows Management Instrumentation) с целью создания процесса на удаленном компьютере с именем ProdDC01.
Разберем команду по частям:
- powershell -c запускает команду PowerShell из командной строки.
- Invoke-WMIMethod команда PowerShell для вызова метода WMI.
- -class Win32_Process указывает, что мы работаем с классом WMI Win32_Process, который позволяет управлять процессами.
- -Name Create указывает на метод Create, который создает новый процесс.
- -ArgumentList "cmd /c net group 'Domain Admins' /domain" аргументы метода, в данном случае, это команда cmd /c net group 'Domain Admins' /domain, которая выполняется на удаленном компьютере.
- -ComputerName ProdDC01 указывает на удаленный компьютер с именем ProdDC01, на котором будет выполнена указанная команда.
Таким образом, данная команда используется для выполнения команды net group 'Domain Admins' /domain на удаленном компьютере ProdDC01 с использованием PowerShell и WMI.
ПОЛЕЗНЫЕ ССЫЛКИ:
- Атака Pass the Hash с помощью Metasploit и модуля PsExec
- Атака Pass the Hash с помощью PsExec Impacket на Kali Linux