【问题标题】:How do I attach a debugger to a process using Invoke-WmiMethod?如何使用 Invoke-WmiMethod 将调试器附加到进程?
【发布时间】:2019-02-04 04:59:28
【问题描述】:

我有一个进程已经在远程计算机上运行,​​我想给它附加一个调试器。我想使用 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 的新副本上)。我只想使用内置方法的原因是因为我希望这个脚本可以在我无法控制计算机上安装的内容的生产环境中使用。

我通过运行找到here 的脚本找到了该方法,该脚本在Win32_Process 中找到了该方法。我选择了 Invoke-WmiMethod,因为当调用 -AsJob 时,它creates a job locally on the remote computer 是我发送到调试器的进程所在的位置。

感谢您的帮助,很抱歉造成混淆:这是我的第一个 powershell 脚本的一部分。

用例如下: 在 SIEM 环境中,用户会看到网络上的某个程序表现得可疑。然后,用户远程登录到受害计算机并通过将可疑线程发送到调试器来冻结它。然后用户注销并稍后返回分析线程。在那个时间之前,线程将保持冻结状态。

【问题讨论】:

    标签: powershell debugging wmic


    【解决方案1】:

    我个人从未尝试过或有理由尝试此用例。

    但是,AsJob 用于长时间运行的任务。您只需查询以获取单个进程 ID 的列表,一旦提供该列表,作业就完成/停止/完成。

    没有什么可以附加的。最后,你从哪里得到这个方法 --- AttachDebugger ?

    没有使用 Get-WmiObject 或 Invoke-WmiMethod cmdlet 参数的此类方法。这就是错误的原因

    您为什么不只是使用内置 cmdlet 来完成这项工作。

    # 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
    

    【讨论】:

    • 感谢您的回复!我编辑了我上面的帖子来回答你的问题。
    猜你喜欢
    • 2010-10-07
    • 2012-02-11
    • 1970-01-01
    • 2019-01-31
    • 2019-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多