0x00 前言

psexec 是 windows 下非常好的一款远程命令行工具。psexec的使用不需要对方主机开方3389端口,只需要对方开启admin$共享 (该共享默认开启)。但是,假如目标主机开启了防火墙,psexec也是不能使用的,会提示找不到网络路径。由于psexec是Windows提供的工具,所以杀毒软件将其列在白名单中。

0x01 psexec原理

  • 通过ipc$连接admin$,释放二进制文件psexecsvc.exe到目标
  • 通过服务管理SCManager远程创建一个psexec服务,并启动服务
  • 客户端连接执行命令,服务端通过服务启动相应的程序执行命令并回显数据
  • 运行结束后删除服务

0x02 使用前提

  • 对方主机开启了 admin$共享,如果关闭了admin$共享,会提示:找不到网络名
  • 对方未开启防火墙
  • 如果是工作组环境,则必须使用administrator用户连接(因为要在目标主机上面创建并启动服务),使用其他账号(包括管理员组中的非administrator用户)登录都会提示访问拒绝访问。
  • 如果是域环境,即可用普通域用户连接也可以用域管理员用户连接。连接普通域主机可以用普通域用户,连接域控只能用域管理员账户

0x03 用法

  • -accepteula:第一次运行psexec会弹出确认框,使用该参数就不会弹出确认框
  • -u:用户名
  • -p:密码
  • -s:以system权限运行运程进程,获得一个system权限的交互式shell。如果不使用该参数,会获得一个连接所用用户权限的shell
1
PsExec64.exe -accepteula \\10.1.10.8 -u fzm\administrator -p abc12345. -s cmd.exe
image-20221102110825596

这里也可以先建立ipc连接后直接调用PsExec64.exe调用cmd

1
2
3
net use \\10.1.10.8\ipc$ abc12345. /user:"fzm\administrator"

PsExec.exe -accepteula \\10.1.10.8 cmd.exe
image-20221102111223015 image-20221102111336406

也可以直接执行命令(在建立ipc连接的基础上)

1
PsExec.exe -accepteula \\10.1.10.8 ipconfig
image-20221102111530400

0x04 系统日志

psexec服务将会安装在远程系统中,此时将会生成 Event 7045,7036 这2种事件日志;有可能预生成Event 4624和Event 4652 Windows事件日志,日志会记录下该工具的使用数据。

image-20221102112848682 image-20221102112556421 image-20221102112709928