• 深入PSEXEC


    简介

    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.129pipesvcctl的句柄,同服务控制器SCM建立连接,使得能够远程创建服务,这里的是svcctl,通过对svcctl服务的dce/rpc调用启动psexec
    
    上传psexesvc.exe作为服务二进制文件,调用createservice函数,下图的unknown
    
    然后再startservices启动服务
    

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

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

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

    联系邮箱:yang_s1r@163.com 博客园地址:https://www.cnblogs.com/Yang34/
  • 相关阅读:
    static-keys.txt 翻译
    sqlserver sp_executesql 返回值
    socket上传文件
    threadingSocket 服务器端可以同时接受多个客户端的访问
    python ftp上传
    Python sys模块
    linux系统相关
    下载论文,电子书籍(中英文),专利,数据库和课件
    如何设计一个合理、灵活的深度学习训练框架
    使用小米电视的第一天
  • 原文地址:https://www.cnblogs.com/Yang34/p/14239952.html
Copyright © 2020-2023  润新知