Как мне присоединить отладчик к процессу, используя Invoke-WmiMethod? - PullRequest
0 голосов
/ 03 февраля 2019

У меня уже запущен процесс на удаленном компьютере, и я хотел бы подключить к нему отладчик.Я хотел бы использовать Invoke-WMIMethod, чтобы при отключении от удаленного сеанса отладчик оставался подключенным к процессу в фоновом режиме.

Пока у меня есть:

$Qry = "Select * from Win32_Process where ProcessID like $ID"
$CimIO = Get-WMIObject -Query $Qry
Invoke-WMIMethod -InputObject $CimIO -Class Win32_Process -Name AttachDebugger -AsJob

И я получаю следующую ошибку:

Invoke-WmiMethod : Parameter set cannot be resolved using the specified named parameters.
At line:1 char:1
+ Invoke-WmiMethod -InputObject $CimIO -Class Win32_process -Name Attac ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [Invoke-WmiMethod], ParameterBindingException
    + FullyQualifiedErrorId : AmbiguousParameterSet,Microsoft.PowerShell.Commands.InvokeWmiMethod

Я на правильном пути?Когда я пробую другие методы из Win32_Process (например, GetOwner), я получаю то же сообщение об ошибке.Что здесь происходит?

РЕДАКТИРОВАТЬ:

Возможно, я все об этом ошибаюсь: я понял, что запрос вернет указатель на запущенный процесс, который затем может быть использован в качестве вводаобъект для Invoke-WmiMethod.

Debug-Process требует, чтобы отдельный отладчик уже был загружен и установлен на машине, тогда как «AttachDebugger» как метод установлен по умолчанию (по крайней мере, я предполагаю, так как он был включенсвежая копия Windows 10).Причина, по которой я хочу использовать только встроенные методы, заключается в том, что я хотел бы, чтобы этот сценарий можно было использовать в производственной среде, где у меня не будет контроля над тем, что установлено на компьютерах.

Я нашел метод с помощьюзапустив скрипт, нашел здесь , который нашел метод, находящийся в Win32_Process.Я пошел с Invoke-WmiMethod, потому что когда вызывается -AsJob, он создает задание локально на удаленном компьютере , где находится процесс, который я отправляю отладчику.

Спасибо запомогите, и я извиняюсь за путаницу: это часть моего первого скрипта powershell.

Вариант использования следующий: В среде SIEM пользователь видит программу в сети, которая ведет себя подозрительно.Затем пользователь удаленно входит на компьютер жертвы и замораживает подозрительный поток, отправляя его в отладчик.Затем пользователь выходит из системы и позже вернется к анализу потока.Нить останется замороженной до этого времени.

1 Ответ

0 голосов
/ 03 февраля 2019

Лично я никогда не пробовал и не имел причин пробовать этот вариант использования.

Однако AsJob используется для длительных задач.Вы только запрашиваете список одного идентификатора процесса, и как только этот список будет предоставлен, задание выполнено / остановлено / завершено.

Не к чему прикрепить.И наконец, откуда вы берете этот метод --- AttachDebugger?

Нет такого метода с использованием параметров командлета Get-WmiObject или Invoke-WmiMethod.Вот в чем ошибка

Почему вы не просто используете встроенный командлет для этой работы.

# get function / cmdlet details
(Get-Command -Name Debug-Process).Parameters
Get-help -Name Debug-Process -Examples
Get-help -Name Debug-Process -Full
Get-help -Name Debug-Process -Online
...