PsExec原理分析

admin 2024年7月11日11:42:32评论33 views字数 1204阅读4分0秒阅读模式
              前言

PsExec是一个由微软Sysinternals团队开发的命令行工具,它允许用户在远程计算机上执行程序和命令,而无需在远程系统上安装客户端软件。这个工具通过服务控制管理器(SCM)远程启动一个服务,并利用该服务进行远程管理。

              PsExec原理

使用psexec远程登录:

PsExec原理分析

刚开始使用是拒绝连接,拒绝连接的原因可是是计算机开启了remote UAC,计算机任何非SID 500本地管理员账户,其用户在远程计算机上没有特权提升能力,并且用户无法执行管理任务。

reg add "HKLMSOFTWAREMicrosoftWindowsCurrentVersionPoliciesSystem" /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1

原版的psexec(微软)只支持账户密码登录,但是在impacket版的psexec支持hash登录,红队使用非常方便。

psexec执行流程:

psexec执行流程:

  1. 将PSEXESVC.exe上传到admin$共享文件夹内;
  2. 远程创建用于运行PSEXESVC.exe的服务;
  3. 远程启动服务。

PSEXESVC服务充当一个重定向器(包装器)。它在远程系统上运行指定的可执行文件(示例中的cmd.exe),同时,它通过主机之间来重定向进程的输入/输出(利用命名管道)。

PsExec原理分析

psexec抓包分析网络

SMB协商使用SMBv2协议通信

PsExec原理分析

攻击机向目标机器发送Tree connect rerquest SMB数据包,并列出想访问网络资源的名称ipc$、admin$,目标机器返回tree connect response响应数据包表示此次连接是否被接受或拒绝。

PsExec原理分析

连接到相应资源后,通过 SMB 访问默认共享文件夹ADMIN$,写入PSEXESVC.exe文件。(4d5a是PE文件即可移植的可执行的文件的MZ文件头)

PsExec原理分析

close request and response 数据包表示PSEXESVC.exe文件完成写入。

PsExec原理分析

接着查看openservicew request的数据包,发现攻击机开始远程调用svcctl协议并打开psexesvc服务(psexec必须调用svcctl协议,否则psexesvc服务无法启动)

PsExec原理分析

从数据包层发现开始创建psexesvc、stdin、stdout、stderr 4个命名管道。

PsExec原理分析

管道创建成功,psexec可以正常使用,已成功连上目标机器cmd。管道创建成功,psexec可以正常使用,已成功连上目标机器cmd。

PsExec原理分析

psexec执行痕迹:

PsExec成功登录退出后,会在目标机器的安全日志中产生Event 4624、4628、4634,在系统日志中产生Event 7045(记录PSEXESVC安装)、Event 7036(记录PSEXESVC服务状态)。

PsExec原理分析

                 

原文始发于微信公众号(TeamSecret安全团队):PsExec原理分析

 

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年7月11日11:42:32
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   PsExec原理分析https://cn-sec.com/archives/2941460.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息