使用psexec远程登录:
刚开始使用是拒绝连接,拒绝连接的原因可是是计算机开启了remote UAC,计算机任何非SID 500本地管理员账户,其用户在远程计算机上没有特权提升能力,并且用户无法执行管理任务。
reg add "HKLMSOFTWAREMicrosoftWindowsCurrentVersionPoliciesSystem" /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1
原版的psexec(微软)只支持账户密码登录,但是在impacket版的psexec支持hash登录,红队使用非常方便。
psexec执行流程:
psexec执行流程:
- 将PSEXESVC.exe上传到admin$共享文件夹内;
- 远程创建用于运行PSEXESVC.exe的服务;
- 远程启动服务。
PSEXESVC服务充当一个重定向器(包装器)。它在远程系统上运行指定的可执行文件(示例中的cmd.exe),同时,它通过主机之间来重定向进程的输入/输出(利用命名管道)。
psexec抓包分析网络
SMB协商使用SMBv2协议通信
攻击机向目标机器发送Tree connect rerquest SMB数据包,并列出想访问网络资源的名称ipc$、admin$,目标机器返回tree connect response响应数据包表示此次连接是否被接受或拒绝。
连接到相应资源后,通过 SMB 访问默认共享文件夹ADMIN$,写入PSEXESVC.exe文件。(4d5a是PE文件即可移植的可执行的文件的MZ文件头)
close request and response 数据包表示PSEXESVC.exe文件完成写入。
接着查看openservicew request的数据包,发现攻击机开始远程调用svcctl协议并打开psexesvc服务(psexec必须调用svcctl协议,否则psexesvc服务无法启动)
从数据包层发现开始创建psexesvc、stdin、stdout、stderr 4个命名管道。
管道创建成功,psexec可以正常使用,已成功连上目标机器cmd。管道创建成功,psexec可以正常使用,已成功连上目标机器cmd。
psexec执行痕迹:
PsExec成功登录退出后,会在目标机器的安全日志中产生Event 4624、4628、4634,在系统日志中产生Event 7045(记录PSEXESVC安装)、Event 7036(记录PSEXESVC服务状态)。
原文始发于微信公众号(TeamSecret安全团队):PsExec原理分析
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论