Windows 远程控制之 PsExec

本文介绍了PsExec这款工具,如何在Windows系统间进行远程命令执行、建立IPC$连接、执行带UI界面的程序,以及通过计划任务实现定时操作,详细解释了其安装、配置和使用方法。
摘要由CSDN通过智能技术生成
一、介绍:

PsExec 是一种轻量级 telnet 替代品,可让你在其他系统上执行进程,并为控制台应用程序提供完整交互性,而无需手动安装客户端软件。 PsExec 最强大的用途包括在远程系统上启动交互式命令提示符,以及 IpConfig,CMD等远程启用工具,否则无法显示有关远程系统的信息。

服务器:Windows 2012 R2  IP:10.3.0.233

客户端:Windows 10

二、安装

官方下载地址:PsExec - Sysinternals | Microsoft Learn

客户端安装:本例是下载C盘

配置环境变量 

三、使用前提条件

1、服务器必须开启 IPC$,ADMIN$,默认安装时都是打开的

PS C:\Users\Administrator> net share

共享名       资源                            注解

-------------------------------------------------------------------------------
C$           C:\                             默认共享
IPC$                                         远程 IPC
ADMIN$       C:\Windows                      远程管理
命令成功完成。

2、防火墙 445 端口要放行,文件和打印机共享(SMB-In)

 

四、用法 

PsExec 相关参数说明

-accepteula:第一次运行psexec会弹出确认框,使用该参数就不会弹出确认框
-u:用户名
-p:密码
-d:指的是执行完命令不等待程序执行完成,命令行恢复到可输入状态。
-s:以system权限运行运程进程,获得一个system权限的交互式shell。如果不使用该参数,会获得一个连接所用用户权限的shell
-i: 运行该程序,以便它与远程系统上指定会话的桌面进行交互。如果没有指定会话,进程将在控制台会话中运行

1、建立 IPC$ 连接

net use \\10.3.0.233\ipc$ /user:administrator Admin@123

2、远程打开 cmd 命令

PS C:\Users\Administrator> psexec \\10.3.0.233 cmd

# 输出
PsExec v2.43 - Execute processes remotely
Copyright (C) 2001-2023 Mark Russinovich
Sysinternals - www.sysinternals.com


Microsoft Windows [版本 6.3.9600]
(c) 2013 Microsoft Corporation。保留所有权利。

# 成功连接
C:\Windows\system32>

# 验证,显示的是服务器的IP地址
C:\Windows\system32>ipconfig

Windows IP 配置


以太网适配器 以太网:

   连接特定的 DNS 后缀 . . . . . . . :
   本地链接 IPv6 地址. . . . . . . . : fe80::b17d:a13d:4859:66cb%12
   IPv4 地址 . . . . . . . . . . . . : 10.3.0.233
   子网掩码  . . . . . . . . . . . . : 255.255.255.0
   默认网关. . . . . . . . . . . . . : 10.3.0.1

隧道适配器 isatap.{5F993BE3-92E0-4365-A0D1-9827107330FF}:

   媒体状态  . . . . . . . . . . . . : 媒体已断开
   连接特定的 DNS 后缀 . . . . . . . :

 3、如果开始没有建立 IPC$ 连接,也可以用 psexec 命令时指定用户名密码

psexec \\10.3.0.233 -u administrator -p Admin@123 -i cmd

4、如何显示远程机器UI界面

(1)远程连接上服务器 

# 远程服务器
psexec \\10.3.0.233 cmd

# 输出
PsExec v2.43 - Execute processes remotely
Copyright (C) 2001-2023 Mark Russinovich
Sysinternals - www.sysinternals.com

(2)查询服务器上面用户会话 ID,执行完退出

# 查询用户ID,这里查到的是1
C:\Windows\system32>query session

# 输出
 会话名            用户名                   ID  状态    类型        设备
>services                                    0  断开
 console           Administrator             1  运行中
 rdp-tcp


# 退出
C:\Windows\system32>exit
cmd exited on 10.3.0.233 with error code 9009.

(3)在客户端远程执行服务器带UI界面的程序

PS C:\Users\Administrator> psexec \\10.3.0.233 -u administrator -p Admin@123 -i 1 -d cmd

PsExec v2.43 - Execute processes remotely
Copyright (C) 2001-2023 Mark Russinovich
Sysinternals - www.sysinternals.com


cmd started on 10.3.0.233 with process ID 944.

(4)服务器上面查看

5、也可以通过计划任务打开界面

# 创建任务
SCHTASKS /Create /S 10.3.0.233 /U administrator /P Admin@123 /TN calc /TR C:\windows\system32\calc.exe /SC once /ST 09:00


# 运行任务
SCHTASKS /Run /S 10.3.0.233 /U administrator /P Admin@123 /TN calc

PsExec的用法如下:      1)psexec   usage: psexec \computer [-u username [-p password] [-c [-f] [-i][-d] program [arguments]      psexec是一个远程执行工具,你可以像使用telnet一样使用它。   它的使用格式为:   psexec \远程机器ip [-u username [-p password] [-c [-f] [-i][-d] program [arguments]   它的参数有:   -u后面跟用户名 -p后面是跟密码的,如果建立ipc连接后这两个参数则不需要。(如果没有-p参数,则输入命令后会要求你输入密码)   -c <[路径]文件名>:拷贝文件到远程机器并运行(注意:运行结束后文件会自动删除)   -d不等待程序执行完就返回,(比如要让远程机器运行tftp服务端的时候使用,不然psexec命令会一直等待tftp程序结束才会返回) -i 在远程机器上运行一个名为psexesvc进程,(到底什么用弄不明白) @file 用于针对文本文件中所指定的所有计算机运行该命令(下同)      假设我在远程机器ip有一个账号,账号名是:abc 密码是:123   比如想要用telnet一样在远程系统上执行命令可以打:   psexec \远程机器ip -u abc -p 123 cmd      如果想要远程机器执行本地c:srm.exe文件可以打:   psexec \远程机器ip -u abc -p 123 -c c:srm.exe      如果想要让远程机器执行本地上tftp服务端,(假设tftp服务端在本地c:tftp32.exe),可以打:   psexec \远程机器ip -u abc -p 123 -c c:tftp32.exe -d
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值