Windows远程执行进程工具psexec和wmiexec介绍

news2025/1/25 5:02:31

在自动化测试或者自动化工具开发中,通常需要向其它电脑或者服务器发送指令,比如Windows发送命令到Linux服务器开启某个服务进程,或者读取状态信息,我们可以使用ssh协议实现。

如果Windows主机需要发送命令到局域网内的其它Windows电脑要如何实现呢?在网络安全中称为横向移动的内网渗透方法可实现远程执行命令,横向移动工具有很多,本文介绍psexec和wmiexec这两个工具如何实现远程执行进程。

目录

  • PsExec
  • psexec.py
  • wmiexec.py
  • Psexec和Wmiexec之间的差异
  • 参考文档

PsExec

PsExec是 Windows 资源工具包PsTools中提供的一个远程执行进程的工具,使用服务控制管理器(SCM)远程启动一个服务,并通过服务进程进行远程管理。可用于在其他windows系统上执行进程,并提供交互式控制。

我使用PsExec没有成功启动远程电脑进程,推荐使用后面介绍的psexec.py脚本。

PsTools下载地址:https://learn.microsoft.com/zh-cn/sysinternals/downloads/psexec

在这里插入图片描述

使用前需要先退出目标电脑的杀毒软件,并关闭防火墙。

命令格式:

$ psexec \\hostIp -u [username] -p [password] cmd

psexec.py

psexec.py是 Python impacket 包提供的远程执行脚本。

安装命令:

$ python3 -m pip install impacket

安装完成后,可在python安装路径下的Scripts目录中找到psexec.py脚本。

命令格式:

Python psexec.py <username>:"<password>"@<IP address> cmd

示例:

1、进⼊半交互式shell

python psexec.py Administrator:admin@192.168.0.93
Impacket v0.10.0 - Copyright 2022 SecureAuth Corporation

[*] Requesting shares on 192.168.0.93.....
[*] Found writable share ADMIN$
[*] Uploading file BIlvtqil.exe
[*] Opening SVCManager on 192.168.0.93.....
[*] Creating service BVDe on 192.168.0.93.....
[*] Starting service BVDe.....
[!] Press help for extra shell commands
[-] Decoding error detected, consider running chcp.com at the target,
map the result with https://docs.python.org/3/library/codecs.html#standard-encodings
and then execute smbexec.py again with -codec and the corresponding codec
Microsoft Windows [�汾 6.1.7601]

[-] Decoding error detected, consider running chcp.com at the target,
map the result with https://docs.python.org/3/library/codecs.html#standard-encodings
and then execute smbexec.py again with -codec and the corresponding codec
��Ȩ���� (c) 2009 Microsoft Corporation����������Ȩ����


C:\Windows\system32>

2、执行脚本

编写一个Python脚本demo.py:

print("hello world")

放到远程电脑的D盘根目录下,然后在本地电脑打开cmd窗口执行:python psexec.py Administrator:admin@192.168.0.93 "python D:/demo.py"

python psexec.py Administrator:admin@192.168.0.93 "python D:/demo.py"
Impacket v0.10.0 - Copyright 2022 SecureAuth Corporation

[*] Requesting shares on 192.168.0.93.....
[*] Found writable share ADMIN$
[*] Uploading file pnZHQfBI.exe
[*] Opening SVCManager on 192.168.0.93.....
[*] Creating service SFff on 192.168.0.93.....
[*] Starting service SFff.....
[!] Press help for extra shell commands
hello world
[*] Process python D:/demo.py finished with ErrorCode: 0, ReturnCode: 0
[*] Opening SVCManager on 192.168.0.93.....
[*] Stopping service SFff.....
[*] Removing service SFff.....
[*] Removing file pnZHQfBI.exe.....
[-] Error performing the uninstallation, cleaning up

其它示例:

# 获取远程电脑主机名
python psexec.py Administrator:admin@192.168.0.93 "hostname" 
# 启动远程电脑的IxiaEndpoint服务
python psexec.py Administrator:admin@192.168.0.93 "net start IxiaEndpoint"

3、使用Pythonsubprocess库来读取进程返回结果

import subprocess

command = 'python D:/attrobot3/Scripts/psexec.py Administrator:admin@192.168.0.93 "python D:/demo.py"'
p = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE).stdout
print(p.read().decode('utf-8'))

wmiexec.py

Wmiexec也是一种横向移动工具,它利用了Windows Management Instrumentation (WMI) 接口来远程管理Windows系统。WMI是一个Windows操作系统提供的系统管理工具,它提供了一套API接口,可以对本地和远程Windows系统进行管理。如查看进程列表、执行命令、上传和下载文件等。

在使用Wmiexec之前,需要先在目标Windows系统上启用WMI服务,并且确保防火墙不会阻止WMI的通信。

wmiexec.py也来自于impacket工具包,支持的参数可执行 python wmiexec.py 命令查看,下面介绍几种用法。

1、进⼊半交互式shell

$ python wmiexec.py Administrator:admin@192.168.0.93
Impacket v0.10.0 - Copyright 2022 SecureAuth Corporation

[*] SMBv2.1 dialect used
[!] Launching semi-interactive shell - Careful what you execute
[!] Press help for extra shell commands
C:\>

2、执行脚本

$ python wmiexec.py Administrator:admin@192.168.168.93 "python D:/demo.py"
Impacket v0.10.0 - Copyright 2022 SecureAuth Corporation

[*] SMBv2.1 dialect used
hello world

Psexec和Wmiexec之间的差异

以下内容采用ChatGPT生成:

Wmiexec和Psexec是用于在Windows系统上执行命令和脚本的工具,它们各自的特点如下:

Wmiexec的特点:

  • 使用WMI接口远程连接到Windows系统,可以执行更高级别的管理操作,如注册表操作和事件订阅等。
  • 可以编写自定义WMI脚本来扩展其功能。
  • 使用WMI接口时,对防火墙没有太大的依赖。

Psexec的特点:

  • 使用服务控制管理器(SCM)远程启动一个服务,并通过服务进程进行远程管理。
  • 支持Windows NT及以上版本的操作系统。
  • 执行速度较快,比Wmiexec更快。
  • 可以隐藏服务进程的图标和窗口。

总的来说,Wmiexec适用于基于WMI的管理和远程控制,可以进行更高级别的操作,但执行速度较慢。Psexec则适合用于执行命令和脚本等任务,执行速度快,但不能进行高级别的操作。选择哪种工具取决于具体的使用场景和需求。

参考文档

  1. impacket包:https://github.com/fortra/impacket
  2. PsTools下载地址:https://learn.microsoft.com/zh-cn/sysinternals/downloads/psexec
  3. PowerShell远程: https://www.anyviewer.com/how-to/remotely-run-programs-on-another-computer-2578.html
--THE END--

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/501356.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第四十五章 Unity 滚动视图 (Scroll View) UI

我们介绍一下滚动条 (Scrollbar)&#xff0c;它允许用户滚动由于太大而无法完全看到的图像或其他视图。这种效果在我们网页中经常看到&#xff0c;尤其是网页内容太长的时候&#xff0c;就会在垂直方向出现滚动条。当然&#xff0c;有时候也会在水平方向出现滚动条。我们拖动滚…

WebRTC引用计数和线程

1. 什么是引用计数&#xff1a; 引用计数是计算机编程语言中的一种内存管理技术&#xff0c;是指将资源&#xff08;可以是对象、内存、或磁盘空间等等&#xff09;的被引用次数保存起来&#xff0c;当被引用次数变为零时就将其释放的过程。 使用引用计数技术可以实现自动资源…

纯HTML+CSS网页设计期末作业(海贼王主题网站——图片可换,主题可换)

纯HTMLCSS网页设计期末作业&#xff08;海贼王主题网站——图片可换&#xff0c;主题可换&#xff09; 博主&#xff1a;命运之光 专栏&#xff1a;web网页制作大作业 网页最底下有视频可以观看网页效果&#xff0c;喜欢的可以在博主主页资源里免费下载(●’◡’●)让我们一起加…

[数据库系统] 一、添加常用约束(educoder)

1.任务&#xff1a;给表添加常用的约束。 2.相关知识 在数据库的使用过程中我们经常要限制属性的取值&#xff0c;比如有些属性不能为空&#xff0c;就需要添加非空约束&#xff0c;本关要求完成常用约束的添加和定义。 目录 (1)唯一约束 (2)添加非空约束 (3)使用默认约束…

大数据|Hive和数据仓库

前文回顾&#xff1a;HBase基本工作原理 目录 &#x1f4da;数据仓库和OLAP &#x1f407;数据仓库 &#x1f955;面向主题 &#x1f955;集成的 &#x1f955;时变的 &#x1f955;非易失的 &#x1f407;OLTP&#xff08;联机事务处理&#xff09;vs OLAP&#xff08;…

织梦城市分站怎么安装织梦二级域名站群织梦制作企业分站教程

1、安装说明 一、下载织梦多城市二级域名源码; 二、上传源码到服务器;(必须支持泛解析) 三、在浏览器输入http://你的域名/install进入安装页面; 可以参考http://www.hlzcb.com/zhimengxueyuan/zhimenganzhuangshiyong/25830.html 四、输入数据库用户名密码和数据库…

公司股权转让,变更股东要了解哪些?

什么是公司股权&#xff1f; 股权即股票持有者所具有的与其拥有的股票比例相应的权益及承担一定责任的权力。股权转让是一种物权变动行为&#xff0c;股权转让后&#xff0c;股东基于股东地位而对公司所发生的权利义务关系全部同时移转于受让人&#xff0c;受让人因此成为公司…

SpringBoot的yml多环境配置3种方法

目录 方式一&#xff1a;多个yml文件 步骤一、创建多个配置文件 步骤二、applicaiton.yml中指定配置 方式二&#xff1a; 单个yml文件 方式三&#xff1a;在pom.xml中指定环境配置 步骤一、创建多个配置文件 步骤二、在application.yml中添加多环境配置属性 步骤三、在po…

创客匠人直播怎么样?

快速发展的互联网时代&#xff0c;直播成为各个行业的引流利器。如今&#xff0c;众多教培机构转型线上&#xff0c;直播无疑是最好的线上教学方式&#xff0c;不仅可以让老师和学员异地教学还能最好的还原线下教学场景&#xff0c;利用科技提高学习质量。 做好一场直播不仅仅…

JColorChooser和JFileChooser

Swing提供了JColorChooser和JFileChooser这两种对话框&#xff0c;可以很方便的完成演示的选择和本地文件的选择。 1.JColorChooser JColorChooser用于创建颜色选择器对话框&#xff0c;该类的用法非常简单&#xff0c;只需要调用它的静态方法就可以快速生成一个颜色选择对话框…

蓝牙耳机什么牌子好?500内好用的蓝牙耳机推荐

随着蓝牙耳机的受欢迎程度越来越高&#xff0c;近几年来&#xff0c;无蓝牙耳机市场呈爆发式增长&#xff0c;蓝牙耳机品牌也越来越多。那么蓝牙耳机什么牌子好&#xff1f;接下来&#xff0c;我来给大家推荐几款500内好用的蓝牙耳机&#xff0c;一起来看看吧。 一、南卡小音舱…

GDD471A001 PLC / DCS维护日志

​ GDD471A001 PLC / DCS维护日志 PLC维护日志 PLC/DCS 维护日志将帮助您跟踪过去的故障、解决方案、零件更换。如果以后再次出现同样的问题&#xff0c;跟踪日志将帮助您立即解决。 您的控制系统的可靠性可以通过参考维护日志来确定。 使用 PLC/DCS 维护日志可以识别频繁出…

React的生命周期及Redux状态管理器等

生命周期 一个应用或页面从创建到消亡过程中某一时刻自动调用的回调函数称为生命周期钩子函数 挂载 constructor &#xff1a;来初始化函数内部 state&#xff0c;为 事件处理函数 绑定实例render&#xff1a;渲染 DOMcomponentDidMount&#xff1a;组件挂载、DOM 渲染完后&…

V8 JavaScript引擎

简介 V8 (v8.dev)是 Google 的开源高性能 JavaScript 和 WebAssembly 引擎&#xff0c;用 C 编写。它用于 Chrome 和 Node.js 等。它实现了 ECMAScript 和 WebAssembly&#xff0c;并运行在 Windows 7 或更高版本、macOS 10.12 以及使用 x64、IA-32、ARM 或 MIPS 处理器的 Lin…

FFmpeg HEVC 解码 YUV

1. 概要与流程图 1.1 FFmpeg 支持 h264,hevc 等解码,由于分离视频文件为 hevc 格式,为了方便起见,当前解码的格式为 hevc,代码支持各种视频格式解码,需要修改参数和适配 1.2 HEVC 解码 YUV 流程图如下: 2. 封装读写文件操作 2.1 读写头文件,FileTool.h #import <Fou…

MAC常用操作

1. 添加环境变量 vi ~/.bash_profile export PATHselfdefine_path:$PATH source ~/.bash_profile适用于安装Application之后将该Application的Contents/bin下的可执行程序添加到环境变量&#xff0c;使得在终端能够启用。 例如使用cmake-3.25.0-macos-universal.dmg安装好cmak…

基于微信小程序网上书城系统

开发工具&#xff1a;IDEA、微信小程序 服务器&#xff1a;Tomcat8.0&#xff0c; jdk1.8 项目构建&#xff1a;maven 数据库&#xff1a;mysql5.7 前端技术&#xff1a;vue、uniapp 服务端技术&#xff1a;springspringmvcmybatis(ssm框架) 本系统分微信小程序和管理后…

双向链表(数据结构)(C语言)

目录 概念 带头双向循环链表的实现 前情提示 双向链表的结构体定义 双向链表的初始化 关于无头单向非循环链表无需初始化函数&#xff0c;顺序表、带头双向循环链表需要的思考 双向链表在pos位置之前插入x 双向链表的打印 双链表删除pos位置的结点 双向链表的尾插 关…

Windows命令提示行使用指南一

命令提示行使用指南 前言一、起源和发展二、和DOS的关系三、常用命令 前言 cmd 是 Windows 操作系统中的命令行界面&#xff08;CLI&#xff09;&#xff0c;也称为命令提示符&#xff08;CMD&#xff09;或批处理文件。它是 Windows 命令行界面的主要组成部分&#xff0c;用于…

《Linux 内核设计与实现》07. 中断和中断处理

文章目录 注册中断处理程序释放中断处理程序编写中断处理程序共享的中断处理程序中断例程实例 中断上下文/proc/interrupts中断控制禁止和激活中断禁用指定中断线中断系统的状态 注册中断处理程序 // 分配一条给定的 irq 中断线 request_irq(unsigned int irq, irq_handler_t …