PsExec 横向移动工具介绍
PsExec 是 微软官方 Sysinternals 套件 中的一个强大工具,主要用于 远程执行命令,可以让用户像在本地一样 控制远程计算机。它通常用于 远程管理、自动化任务,但也常被红队和攻击者用于 横向移动,在目标系统上 执行代码、部署后门。
- 开发者:Mark Russinovich(微软 Sysinternals)
- 官网:Microsoft Sysinternals
- 用途:
- 远程执行命令
- 远程管理 Windows 服务器
- 批量部署软件或补丁
- 黑客常用于横向移动
主要功能
🔹 远程执行命令:无需远程桌面(RDP),直接在目标机运行 CMD、PowerShell
🔹 交互式 shell:可在远程主机上打开交互式 shell,类似 SSH
🔹 远程启动进程:可在目标机上运行二进制文件,如木马、后门
🔹 以 SYSTEM 权限执行:可在本地或远程计算机上以 NT AUTHORITY\SYSTEM
权限执行命令
🔹 文件传输:支持将文件从本地复制到远程系统
🔹 绕过 UAC:某些情况下,可用于绕过 UAC 提升权限
🔹 与 SMB 结合:默认通过 SMB(端口 445)与目标主机通信
基本方法
(1)查看帮助
psexec -h
(2)远程执行命令
psexec \\目标IP -u 用户名 -p 密码 cmd.exe
示例:使用 admin
账户在 192.168.1.100
远程执行 cmd.exe
psexec \\192.168.1.100 -u admin -p Password123 cmd.exe
(3)以 SYSTEM 权限运行
psexec -s cmd.exe
运行后,CMD 窗口的用户将变为 NT AUTHORITY\SYSTEM
。
(4)执行远程 PowerShell
psexec \\目标IP powershell.exe -ExecutionPolicy Bypass -NoProfile
(5)将文件复制到远程主机
psexec \\目标IP -c 本地文件 远程执行
示例:将 malware.exe
复制到远程主机并执行
主题
psexec \\192.168.1.100 -c malware.exe
(6)静默执行,不弹出窗口
psexec \\目标IP -d -i 0 -s cmd.exe
PsExec 横向移动
(1)常见攻击方式
攻击方式 | 描述 | 影响 |
---|---|---|
远程代码执行 | 远程执行任意命令 | 可执行恶意代码,获取控制权 |
提权 | 以 SYSTEM 权限运行 | 可访问所有系统资源 |
账户劫持 | 使用 NTLM Hash 登录 | 可利用 Pass-the-Hash 攻击 |
持久化 | 在目标机创建隐藏进程 | 植入后门,实现长期控制 |
免杀 | 结合 Invoke-Obfuscation 混淆命令 | 逃避安全检测 |
(2)与其他横向移动工具对比
工具 | 传输方式 | 权限要求 | 优点 | 缺点 |
---|---|---|---|---|
PsExec | SMB (445) | 需要管理员权限 | 官方工具,不易被拦截 | 可能触发 EDR/SIEM 警报 |
WMIExec | WMI (RPC/DCOM) | 需要管理员权限 | 无需在目标机写入文件 | 依赖 WMI 服务 |
PAExec | SMB (445) | 需要管理员权限 | 开源 PsExec 替代品 | 可能被安全软件检测 |
WinRM (Evil-WinRM) | WinRM (5985/5986) | 需要 WinRM 启用 | 可执行 PowerShell | 默认禁用 WinRM |
防御与检测
(1)防御措施
✅ 最小权限原则:普通用户禁止远程访问 ADMIN$、C$ 共享
✅ 禁用 SMBv1、限制端口 445 访问
✅ 启用 Windows Defender Credential Guard,防止 Hash 盗取
✅ 禁用 NTLM 认证,只允许 Kerberos 认证
✅ 监控 PsExec 执行痕迹(日志事件 ID 4688, 5145, 7045)
✅ EDR 规则:阻止 psexec.exe
及其变种运行
(2)检测 PsExec 使用
事件日志
Event ID 4688
(进程创建)Event ID 5145
(远程访问共享)Event ID 7045
(Windows 服务安装)
PowerShell 检测
使用 PowerShell 监控 psexec.exe
执行:
主题
Get-WinEvent -LogName Security | Where-Object { $_.Id -eq 4688 -and $_.Message -match "psexec" }
Sysmon 规则
如果使用 Sysmon,可以创建规则检测:
<RuleGroup name="Detect PsExec" groupRelation="or">
<ProcessCreate onmatch="include">
<Image condition="contains">psexec.exe</Image>
</ProcessCreate>
</RuleGroup>
图片详情&其他说明
微软官方工具,不存在被杀问题
官方下载地址【这里也有打包】:https://learn.microsoft.com/en-us/sysinternals/downloads/psexec
自写简易教程:
利用条件不写了,自己百度
管理员权限打开cmd进入工具目录
输入psexec64 \\ip地址 -u 用户名-p 密码 -s 【执行的操作】如:cmd
其他命令自行百度 cmd替换成远程下载木马并且执行
![图片[1]-✅PsExec横向移动工具✅ - 🧑💻零信安全社区👩💻-🧑💻零信安全社区👩💻](https://0xaq-1301316901.cos.ap-guangzhou.myqcloud.com/wp-content%2Fuploads%2Ftencent%2Fimg%2F150%2F150-1.png)
总结
✅ PsExec 是一款合法的远程管理工具,但也可被攻击者用于 横向移动、提权、持久化
✅ 通过 SMB 远程执行命令,支持 SYSTEM 权限执行、文件传输
✅ 防御方法包括 SMB 限制、日志监控、启用 Windows Defender 规则
✅ 结合 SIEM / EDR,可以有效检测并阻止恶意 PsExec 活动
🚀 PsExec 在红队 & 蓝队中都有重要作用,了解其工作原理可以帮助更好地防御攻击!
暂无评论内容