当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] PsExec:在远程计算机上运行命令

作者:精品下载站 日期:2024-12-15 00:32:41 浏览:16 分类:玩电脑

PsExec:在远程计算机上运行命令


PsExec 是一个小程序,使 IT 管理员能够在远程计算机上运行命令和进程。

在本指南中,您将了解如何使用 PsExec 在远程计算机上运行命令、终止进程、安装软件、重新启动服务等。

警告:攻击者可以使用 PsExec 执行各种恶意操作,例如复制和运行恶意文件、访问您的数据以及更改或收集系统信息。

PsExec 的使用应限制为仅在授权计算机上运行。有多种方法可以保护 PsExec 的使用,在本指南中,我将向您展示如何使用 Windows 防火墙来保护它。

让我们开始吧。

PsExec 要求

远程计算机必须满足以下要求:

  • TCP/445 端口开放
  • 端口 UDP/137 开放
  • 远程计算机的凭据(域或本地凭据都可以)。
  • 远程服务管理 (RPC) 打开 - 这不是必需的,但如果启用防火墙并且此服务被阻止,PsExec 运行速度会非常慢。

视频教程

如果您不喜欢视频,请继续阅读下面的详细信息。

使用 Windows 防火墙保护 PsExec

我强烈建议您锁定 PsExec 的使用,使其在授权计算机(例如笔记本电脑或安全工作站)上运行。如果您不将其锁定,则具有受损凭据的攻击者可以轻松地在网络中的远程计算机上运行命令和进程。

[玩转系统] PsExec:在远程计算机上运行命令

以下是允许和保护 PsExec 的步骤。

第 1 步:启用 Windows 防火墙

首先,您需要启用 Windows 防火墙。有时,组织会出于方便的原因禁用此功能,这是一个巨大的错误。如果您有很多计算机需要管理,您可以使用组策略来管理防火墙设置。

确保为所有配置文件(域、私有、公共)启用它。

[玩转系统] PsExec:在远程计算机上运行命令

步骤 2:在 Windows 防火墙中允许 PsExec 端口

PsExec 要求在远程计算机上打开端口 tcp/445 和 udp/137。以下是为域配置文件启用此功能的 PowerShell 命令。

提示:使用 -RemoteAddress 选项来限制来自授权系统的连接。在此示例中,我仅允许 IP“192.168.100.10”连接到远程计算机以提供文件和打印机共享服务。如果另一个 IP 地址尝试连接到远程计算机,防火墙将阻止它。

这是启用 TCP/445 的命令。

New-NetFirewallRule -DisplayName 'TCP/445' -Profile @('Domain') -Direction Inbound -Action Allow -Protocol TCP -LocalPort @('445') -RemoteAddress 192.168.100.10

这是启用 UDP/137 的命令。

New-NetFirewallRule -DisplayName 'UDP/137' -Profile @('Domain') -Direction Inbound -Action Allow -Protocol UDP -LocalPort @('137') -RemoteAddress 192.168.100.10

在 GUI 中,远程 IP 地址设置位于范围选项卡上。

[玩转系统] PsExec:在远程计算机上运行命令

步骤 3:允许远程服务管理(可选)

这不是必需的,但当此服务被阻止时,PsExec 的运行速度将非常慢。我还使用 -RemoteAddress 选项来限制哪些 IP 地址可以连接到远程计算机。

Set-NetFirewallRule -DisplayGroup “Remote Service Management” -Enabled True -Profile domain -RemoteAddress "192.168.100.10"

如何安装 PsExec

在本节中,我将逐步在本地计算机上安装 PsExec。

第 1 步:下载 PsExec

PsExec 是 Microsoft 提供的 PsTools 包的一部分。

你可以在这里下载。

[玩转系统] PsExec:在远程计算机上运行命令

第 2 步:解压下载的文件

解压缩下载的文件 (PSTools.zip) 并将其复制到硬盘驱动器上的路径。我已将其复制到 c: 的根目录(例如 c:\pstools)。

[玩转系统] PsExec:在远程计算机上运行命令

提示:为方便起见,您还可以将 PsExec.exe 复制到系统路径(例如 c:\windows\system32),这样您无需更改目录即可运行该 exe命令提示符。

第 3 步:测试 Psexec

让我们测试安装以确保 PsExec 正常工作。

打开 Windows 命令提示符并切换到 pstools 目录,然后键入 psexec 并按 Enter。您应该看到 PsExec 返回版本和命令语法。

在下面的屏幕截图中,您可以看到我更改为“c:\pstools”目录来运行 psexec 命令。

[玩转系统] PsExec:在远程计算机上运行命令

键入 psexec 也是查看语法和命令行选项的快速方法。

PsExec 示例

使用 PsExec 非常容易使用,基本语法是:

psexec \remotecomputer command [arguments]

示例 1:在远程计算机上运行命令

使用以下命令在单个远程计算机上运行命令。

psexec \pc1 ipconfig

在此示例中,我在远程计算机 PC1 上运行 ipconfig 命令。

[玩转系统] PsExec:在远程计算机上运行命令

示例 2:在多台计算机上运行命令

要在多台计算机上运行 PsExec,只需用逗号分隔计算机即可。这里我在 pc1 和 srv-vm1 上运行 ipconfig。

psexec \pc1,srv-vm1 ipconfig

[玩转系统] PsExec:在远程计算机上运行命令

示例 3:指定用户名和密码

要使用特定用户名和密码连接到远程计算机,请使用以下命令:

psexec \pc1 -u user -p password ipconfig

示例 4:终止远程计算机上的进程

要终止远程计算机上的进程,请使用以下命令。

您首先需要获取进程PID,这可以使用tasklist命令来完成。

psexec \pc1 tasklist

[玩转系统] PsExec:在远程计算机上运行命令

找到进程的PID号,然后使用taskkill杀死该进程。

psexec \pc1 taskkill /pid 2892 /f

示例 5:安装软件

在此示例中,我在远程计算机 PC1 上安装 7zip。安装文件已复制到远程计算机。您还可以使用 -c 选项复制文件并执行它。

psexec \pc1 msiexec.exe /i "c:\itz2201-x64.msi"

示例 6:重新启动远程计算机

使用此命令重新启动远程计算机。这里我说的是在 60 秒内重新启动 pc1。

psexec \pc1 shutdown /r /t 60

远程计算机将收到一条弹出消息,表明计算机将重新启动。

[玩转系统] PsExec:在远程计算机上运行命令

示例 7:删除文件

此命令将从远程计算机中删除文件 users.txt。

psexec \pc1 cmd /c del /f c:\it\users.txt

示例 8:重新启动打印机后台处理程序

在此示例中,我将停止并启动远程计算机上的后台处理程序服务

psexec \pc1 net stop spooler

要启动后台打印程序服务,请使用此命令。

psexec \pc1 net start spooler

示例 9. 复制并运行批处理文件

-c 选项将指定的文件复制到远程计算机并执行它。

psexec \pc1 cmd

您可以在下面看到我打开 cmd 并运行多个命令,这些命令都在远程计算机上执行。这对于 IT 管理员在排除计算机问题并且需要一种快速方法在远程计算机上执行命令时非常有用。

[玩转系统] PsExec:在远程计算机上运行命令

示例 11:打开程序

如果要打开远程计算机上的程序,请使用 -i 选项。 -i 选项运行该程序,以便它与桌面交互。例如,使用此命令打开远程计算机上的 notepad.exe。

psexec \pc1 -i notepad

这就是本指南的内容,请在下面的评论中发表您的反馈。

接下来,查看我列出的 50 个最有用的 Windows 命令。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯