当前位置: 首页 > news >正文

PsTools 学习笔记(7.5):PsExec 的备用凭据与安全基线

PsTools 学习笔记(7.5):PsExec 的备用凭据与安全基线

  • PsTools 学习笔记(7.5):PsExec 的备用凭据与安全基线
    • 1)PsExec 凭据的三种写法
      • 1.1 直接在命令行指定(最直观,但最不安全)
      • 1.2 交互式输入(推荐基线)
      • 1.3 预先建立安全会话(批量/脚本友好)
    • 2)域账号、本地账号、UPN、跨域
    • 3)PsExec 做了什么:PSEXESVC + SMB + SCM
    • 4)权限与 UAC:最易踩的坑
      • 4.1 “Access is denied.” 常见原因
      • 4.2 UAC 远程限制(LocalAccountTokenFilterPolicy)
      • 4.3 `-h` 与高完整性
    • 5)安全基线建议(生产可用)
    • 6)实战模板
      • 6.1 安全批量(IPC 会话 + 清理)
      • 6.2 PowerShell + 凭据对象(仍需谨慎处理内存中的密码)
    • 7)典型错误与修复清单
    • 8)要点速记

PsTools 学习笔记(7.5):PsExec 的备用凭据与安全基线

本篇聚焦 PsExec 的凭据用法企业内安全落地:如何在不把密码“裸奔”在命令行的前提下,稳定拿到远程管理员权限,并规避常见的权限/网络/UAC 坑。


1)PsExec 凭据的三种写法

1.1 直接在命令行指定(最直观,但最不安全)

psexec \\PC-001 -u CONTOSO\opsadmin -p S3cr3t! cmd /c whoami
  • 优点:一条命令跑通。
  • 致命缺点:密码会留在 Shell 历史、命令行快照、脚本仓库 甚至监控日志中。生产不建议

1.2 交互式输入(推荐基线)

psexec \\PC-001 -u CONTOSO\opsadmin cmd /c whoami
:: 将提示“Password: ”,输入后不回显
  • 优点不在命令行明文出现。
  • 注意:适合单机或半自动操作;批量可配合 net use/cmdkey 或安全变量。

1.3 预先建立安全会话(批量/脚本友好)

方式 A:短连接 IPC 会话

:: 建立到目标的认证会话(不持久)
net use \\PC-001\IPC$ /user:CONTOSO\opsadmin S3cr3t! /persistent:no:: 随后可不带 -u/-p 使用 PsExec,走已建立的会话
psexec \\PC-001 cmd /c whoami:: 清理会话
net use \\PC-001\IPC$ /delete

方式 B:Windows 凭据管理器(更干净)

:: 写入目标主机的凭据(会存入当前用户的“Windows 凭据”)
cmdkey /add:PC-001 /user:CONTOSO\opsadmin /pass:S3cr3t!:: 直接用 PsExec
psexec \\PC-001 cmd /c whoami:: 完成后清理
cmdkey /delete:PC-001
  • 优点:可脚本化,执行时命令行不再明文输出密码。
  • 注意:仍要对脚本仓库中的密码承担保密义务;更好的方式是密管系统(如 Vault/LAPS)。

2)域账号、本地账号、UPN、跨域

  • 域账号(推荐)-u CONTOSO\opsadmin-u opsadmin@contoso.com
  • 本地账号-u .\Administrator(或 PC-001\Administrator),但易受 UAC 远程限制影响(见 §4.2)。
  • 跨域:必须有信任关系(Kerberos/NTLM),否则用目标机本地管理员跳板机

3)PsExec 做了什么:PSEXESVC + SMB + SCM

理解底层流程有助于定位“凭据正确却还报错”的问题:

  1. PsExec 连接 \\目标\Admin$(SMB 445),将 PSEXESVC.exe 复制过去;
  2. 通过 **服务控制管理器(SCM,基于 RPC)**在远端创建/启动 PSEXESVC
  3. 通过命名管道把 STDIN/OUT/ERR 回传本地;
  4. 退出时清理远端服务与文件(异常中断时可能遗留,需要手动清理)。

网络/系统必要条件

  • 打开 SMB(TCP 445)SCM/RPC 所需端口(通常随 445、动态端口范围)。
  • Admin$ 共享可用(目标机 C:\Windows 存在且共享未禁用)。
  • 远端管理员权限(本地 Administrators 或等效权限)。

4)权限与 UAC:最易踩的坑

4.1 “Access is denied.” 常见原因

  • 目标机 Admin$ 关了、SMB 被防火墙拦了;
  • 账号不是远端管理员
  • UAC 令牌过滤导致拿到受限令牌(见 4.2);
  • 已有至目标的 SMB 会话使用了**“别的用户”**(会导致“多重连接”错误)。

排障快查

:: 1) 能否访问 Admin$
dir \\PC-001\admin$:: 2) 清理到目标的多重会话
net use \\PC-001\IPC$ /delete:: 3) 重新使用正确凭据建立 IPC 会话
net use \\PC-001\IPC$ /user:CONTOSO\opsadmin S3cr3t! /persistent:no

4.2 UAC 远程限制(LocalAccountTokenFilterPolicy)

在工作组/本地管理员场景,远程登录默认给的是受限令牌,导致你“是管理员但又不完全是”。
临时权衡(仅在需要时启用,且有补偿控制)

:: 在目标机提升:允许本地管理员远程获取“完全管理员令牌”
reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System ^/v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f

更稳的策略是:使用域管理员/受控委派,或在目标加入域后使用域侧权限模型,避免改此键

4.3 -h 与高完整性

  • -h:在远端以 高完整性 运行(UAC On 的系统上),但仅当凭据本身就属于 Administrators
  • 常见误解:-h 不是权限放大器,它只决定令牌完整性级别

5)安全基线建议(生产可用)

  1. 杜绝命令行明文密码:优先 交互式输入IPC/cmdkey + 密管系统(Vault/LAPS/LAPS2)。
  2. 最小权限:专用的 运维域账号,受限登录(Logon Rights)、受控委派(KCD/CredSSP)或 JIT/JEA。
  3. 时效与审计:临时提升/短期口令;启用 PowerShell Transcript/进程创建日志(4688)Sysmon
  4. 网络白名单:仅对运维子网放行 445/TCP 等必要端口;零信任分段。
  5. 清理痕迹:任务完毕 net use ... /deletecmdkey /delete:host;定期巡检遗留 PSEXESVC
  6. UAC 不要关闭:需要高完整性就用 -h;本地管理员远程完全令牌仅作权宜(4.2)。

6)实战模板

6.1 安全批量(IPC 会话 + 清理)

@echo off
setlocal enabledelayedexpansion
set HOSTS=PC-001 PC-002 PC-003
set USER=CONTOSO\opsadmin
set /p PASS=输入密码(不回显请直接回车): for %%H in (%HOSTS%) do (echo [%%H] 建立安全会话...net use \\%%H\IPC$ /user:%USER% %PASS% /persistent:no >nul 2>&1if errorlevel 1 ( echo [%%H] 连接失败 & goto :continue )echo [%%H] 执行...psexec \\%%H -nobanner -h cmd /c "whoami && hostname" > logs\%%H.out 2>&1echo [%%H] ExitCode=!ERRORLEVEL!:continuenet use \\%%H\IPC$ /delete >nul 2>&1
)

6.2 PowerShell + 凭据对象(仍需谨慎处理内存中的密码)

$hosts = 'PC-001','PC-002'
$cred  = Get-Credential -Message '输入远端凭据'
$pw    = $cred.GetNetworkCredential().Password
$user  = $cred.UserNameforeach($h in $hosts){Write-Host "[$h] 建立会话..."cmd /c "net use \\$h\IPC$ /user:$user $pw /persistent:no" | Out-Null& psexec \\$h -nobanner -h cmd /c "whoami /groups" *> "logs\$h.out"Write-Host "[$h] ExitCode=$LASTEXITCODE"cmd /c "net use \\$h\IPC$ /delete" | Out-Null
}

7)典型错误与修复清单

报错/现象根因处理
Access is denied.非管理员/UAC 远程限制/会话占用见 §4.1/4.2,清 SMB 会话,核对权限与 LocalAccountTokenFilterPolicy
Make sure that the default admin$ share is enabled...Admin$ 关闭或 445 被拦开启文件和打印共享、防火墙放行 445、确认 C:\Windows 存在
PSEXESVC could not be installed无写入权限/杀软拦截以管理员身份、-h 运行,或给白名单;确认防病毒策略
“多重连接”相关错误已有不同凭据 SMB 会话net use \\host\IPC$ /delete 后重新认证
明明管理员仍无法写系统路径拿到的是“受限令牌”用域管理员、-h 或参照 §4.2 临时放开 LocalAccountTokenFilterPolicy

8)要点速记

  • 别用明文 -p;优先交互式、IPC/cmdkey、密管。
  • 拿高完整性-h(账户本身需是管理员)。
  • 通路三件套:445/Admin$/SCM。
  • UAC 远程限制是本地管理员的常见坑。
  • 任务后清理会话与凭据,避免“多重连接”和泄露面。

下一篇(7.6) 我们进入 PsExec 的命令行选项“全家桶”:把所有“运行时环境/进程优先级/会话交互/复制策略”等开关一次讲透,并给一套“模板化参数组合”方便直接复用。

http://www.dtcms.com/a/553469.html

相关文章:

  • 【Python】——基础语法练习题
  • 用n8n实现一个长视频生成工作流
  • 汉阳网站建设品牌建设规划品牌意向
  • 宝安做棋牌网站建设哪家服务好wordpress 在线手册
  • 高频 Redis 面试题清单
  • 全0初始化/全1初始化相关
  • Dioxus v0.7.0 released
  • 500+ AI Agent实战项目汇总:从CrewAI到Langgraph的开源实践指南
  • 案例分析交叉熵和交叉验证区别和联系
  • 高端响应式网站建设太原建站模板源码
  • 美团率先将社保补贴推向全国,外卖骑手成蓝领福利“标杆”
  • 【尚庭公寓118-121】[学习第三天]
  • ingress-nginx传递用户真实ip问题
  • 文档抽取技术:通过自然语言处理技术自动识别和提取合同、判决书等法律文书中的关键信息,并将其转化为结构化数据
  • wordpress 视频网站邯郸网站优化怎么用
  • Windows版Nginx常用命令
  • 慈溪做网站哪家好网业设计与制作
  • 外设模块学习(11)——火焰传感器、光敏电阻传感器(STM32)
  • 笨鸟网站开发江苏seo平台
  • WPF检测网络状态切换
  • ✨WPF编程进阶【6.1】:图形原则(附源码)
  • 网站建设企业建站哪家好?来这里看看网站建设时间进度表模板
  • 无锡地区做网站赣州快车微信公众号
  • Vue3的异步DOM更新:nextTick的正确使用方法
  • Vue 项目中全局样式的正确写法:不要把字体和主题写在 #app 上
  • 网站推广策划的策略凡科做的网站百度能收录吗
  • 如何用SQL进行多表联查(JOIN)?
  • 笔试强训:Week-3
  • 网站建设公司的前景怎么建立和设计公司网站
  • 【项目实战1 -瑞吉外卖|day21 】