论安全萌新的自我修养

   :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

简介

PsExec 是由 Mark Russinovich 创建的 Sysinternals Suite 中包含的工具。最初,它旨在作为系统管理员的便利工具,以便他们可以通过在远程主机上运行命令来执行维护任务。PsExec 可以算是一个轻量级的 telnet 替代工具,它使您无需手动安装客户端软件即可执行其他系统上的进程,并且可以获得与命令控制台几乎相同的实时交互性。PsExec最强大的功能就是在远程系统和远程支持工具(如 ipconfig、whoami)中启动交互式命令提示窗口,以便显示无法通过其他方式显示的有关远程系统的信息。

前提条件:
目标机器的139或445端口需要开启状态;
拥有明文密码或者ntlmhash;
具备将文件写入共享文件夹的权限;
能够在远程机器上创建服务:SC_MANAGER_CREATE_SERVICE (访问掩码:0x0002);
能够启动所创建的服务:SERVICE_QUERY_STATUS(访问掩码:0x0004)+ SERVICE_START(访问掩码:0x0010)

实际使用

将PSEXESVC.exe上传到admin$,指向到/admin$/system32/PSEXESVC.exe共享文件夹内

远程创建用于运行PSEXESVC.exe的服务

远程启动服务

其中PSEXESVC服务相当于一个重定向器,在远程系统上运行指定的可执行文件,此处为cmd.exe,同时利用命名管道进行重定向进程的输入&输出

数据包分析

此处自行使用工具进行登录
核心还是利用提交的用户名密码进行smb session 认证
通过smb进入admin$ 上传psexesvc.exe

打开\\192.168.3.129\pipe\svcctl的句柄,同服务控制器SCM建立连接,使得能够远程创建服务,这里的是svcctl,通过对svcctl服务的dce/rpc调用启动psexec

上传psexesvc.exe作为服务二进制文件,调用createservice函数,下图的unknown

然后再startservices启动服务

确认创建了命名管道来重定向输入、输出(stdin、stdout、stderr)

查询创建的命名管道,除了stdin、stdout、stderr,还有自身服务psexesvc

事件查看器中确认启用服务如下

posted on 2021-01-06 11:12  Yangsir34  阅读(405)  评论(0编辑  收藏  举报