基于admin$共享的横向移动—psexec

目录

psexec

psexec原理

psexec使用前提

psexec横向移动

msf中的psexec


psexec

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

psexec原理

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

psexec使用前提

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

基于admin$共享的横向移动—psexec

psexec横向移动

  • psexec v2.34
  • 处于工作组中

使用如下命令:

  • -accepteula:第一次运行psexec会弹出确认框,使用该参数就不会弹出确认框
  • -u:用户名
  • -p:密码
  • -s:以system权限运行运程进程,获得一个system权限的交互式shell。如果不使用该参数,会获得一个连接所用用户权限的shell
  • -i: 运行该程序,以便它与远程系统上指定会话的桌面进行交互。如果没有指定会话,进程将在控制台会话中运行
PsExec64.exe \\192.168.52.140 -accepteula -u Administrator -i -p 123.com cmd

注意:对于 PsExec version 2.30+ 需要在命令行中添加 -i 选项!否则会提示登录失败:未授权用户在此计算机上的请求登录类型

基于admin$共享的横向移动—psexec

msf中的psexec

msf中的psexec,主要有下面两个

  • exploit/windows/smb/psexec                               生成的payload是exe
  • exploit/windows/smb/ms17_10_psexec            生成的payload由powershell实现

显然powershell生成的payload免杀效果比exe的要好,但是windows xp、server2003默认不包含powershell环境。所以,这两个模块各有各自的优势。

这里使用psexec这个模块,当我们打入内网,通过敏感信息收集,获取了账号密码。通过该模块可以实现批量获取shell

基于admin$共享的横向移动—psexec

基于admin$共享的横向移动—psexec

成功返回的shell

基于admin$共享的横向移动—psexec

横向移动总结 · Drunkmars's Blog 

上一篇:Linux_System V进程通信_共享内存+命令查看共享内存


下一篇:[MIT 6.S081] Lec 18: OS Organization 笔记