网站首页 > 基础教程 正文
您是否曾经需要在远程系统上运行命令或程序,但没有远程桌面访问权限?PsExec 是一款在远程计算机上运行命令的出色工具,全球黑客都在使用它。
你可以使用它在网络中横向移动或获取有关远程机器的更多信息。它是任何黑客工具箱中的无价之宝,但可能会造成混淆。
在本文中,我们将介绍 PsExec 是什么、从哪里获取它、何时可以使用它以及如何以多种方式使用它。让我们深入了解 PsExec 如何在下一次黑客攻击中为您提供帮助。
准备好学习如何使用 PsExec 了吗?我们开始吧。
什么是 PsExec?
PsExec 是 Sysinternal 套件的一部分,该套件是 Mark Russinovich 和 Bryce Cogswell 创建的故障排除工具集合。它用于故障排除、安装补丁、远程安装软件以及执行系统管理员需要执行的许多其他例行任务。
PsExec 的功能主要在于允许用户通过命令行界面在远程系统上运行命令或程序。PsExec 的主要功能包括:
- 远程运行进程
- 以系统帐户执行进程
- 与远程系统的桌面交互
PsExec 允许用户在远程系统上运行命令,并通过重定向查看当前系统上的输出。
在本文中,我们不会从技术层面介绍它是如何做到这一点的。但是,从基本层面讲,只要知道当您使用 PsExec 在远程系统上运行命令时,就好像您直接从该机器上运行它一样就足够了。
使用 PsExec 进行黑客攻击的示例
和任何合法工具一样,PsExec 也有可能被用于非预期用途。事实上,PsExec 有多种用途,可以让黑客的工作变得更加轻松,而且在远程系统上远程执行命令的能力也为黑客提供了多种攻击途径,而这些途径原本是无法获得的。
一个很好的例子就是在网络中横向移动。
PsExec 可以通过多种方式用于横向移动,但最简单的方法是在远程系统上执行交互式命令提示符。这与远程登录该计算机相同。
当您无法远程桌面访问系统时,此功能非常有用。如果您在远程系统上拥有足够的权限,则可以使用 PsExec 发出命令来启用 RDP(远程桌面协议),并将用户添加到远程桌面用户组。
PsExec 还允许您以其他用户身份运行远程命令。
例如,假设您在 machine01 上可以访问标准用户帐户,但在 machine01 上发现一个密码,您认为该密码可能是 machine02 的本地管理员密码。但是,您无法通过 RDP 进入该系统。您可以使用 PsExec 从 machine01 以 machine02 的本地管理员帐户身份在 machine02 上运行命令提示符。
使用 PSExec 的另一个好处是您不需要用户密码即可以该用户身份运行命令。
假设您通过Mimikatz 在 machine01 上为 machine02 的管理员用户找到了 NLTM 哈希。
利用使用 PsExec 的 Impacket,您可以将用户的哈希传递到远程系统进行身份验证。这使得跨网络移动的速度更快,因为您不需要使用Hashcat之类的工具破解哈希。
使用 PsExec 的要求
要使用 PsExec,目标系统必须启用一些端口和服务。最常用的是 TCP 端口 445 和 139。
可以使用其他端口,例如端口 135,但不太常用。您还需要配置防火墙设置以允许通过端口 445 和 139 进行入站和出站流量。
还必须启用服务器消息块 (SMB)。如果发现主机上的端口 445 和/或 139 已打开,则意味着 SMB 可能已启用。您还应验证本地和远程主机系统上是否都启用了文件和打印机共享。
最后,您需要在运行 PsExec 的机器上拥有管理访问权限。
为了验证目标计算机上是否打开了正确的端口, 可以运行Nmap扫描来检查端口 139 和 445 是否打开。对于此扫描,我们将使用:
sudo nmap -p- -sV TARGET_IP --open
在这个特定的案例中,我们使用了:
sudo nmap -p- -sV 192.168.214.122 --open
PsExec 远程命令
PsExec 有几个命令可以帮助您入侵计算机。在本文中,我们将介绍三种最常见的使用方法 - 首先,作为 Windows 二进制文件,然后作为Kali Linux上的 Python 脚本,最后,在 Kali Linux 上的 Metasploit 中使用。
如何使用 PsExec 作为 Windows 二进制文件
让我们一步一步地从 Sysinternals 获取本机 PsExec 并查看常用命令和参数。
要在 Windows 系统上使用 PsExec,您必须先从 Microsoft 下载。在 Google 上快速搜索“psexec”将返回正确的页面作为第一个结果。
点击链接后,您将被引导至 PsExec 下载页面。您需要点击“下载 PsTools”链接来下载 PsExec。
在计算机上下载 PsTools 后,您必须解压 zip 文件,右键单击它,然后在 Windows 11 上选择“全部解压”。
之后,系统会弹出一个窗口,询问您要将内容提取到哪里。默认值是与 zip 文件所在的同一目录,这样就可以了。继续并单击“提取”。
提取文件后,您需要将它们移动到计算机上的某个位置,只要您计划使用 PsExec,它们就会保留在那里。我们将文件移动到了 C:\PSTools。
现在,您可以打开终端或命令提示符并导航到目录,或者打开目录文件资源管理器,右键单击,然后选择“在终端中打开”。
之后,您就可以在 Windows 上使用 PsExec 了。
例如,您可以使用 PsExec 使用以下命令获取远程系统的 IP 配置:
.\PsExec.exe \\REMOTE_IP -u <USERNAME> -p <PASSWORD> ipconfig
对于我们的例子,完整的命令将是:
.\PsExec.exe \\192.168.0.225 -u stationx-admin -p stationx ipconfig
您可以将 ipconfig 替换为需要在远程计算机上运行的任何命令。PsExec 将像您在本地一样运行它。
如何通过 Python 脚本使用 PsExec
通常,在 Windows 机器上使用 PsExec 是为了管理目的,但在大多数黑客攻击场景中,您会使用像 Kali Linux 这样的操作系统。
Kali 有许多有用的内置工具。例如,Impacket 是一套非常有用的工具,它有自己的 PsExec 版本。
如果您使用的是 Kali Linux,则 Impacket 无需设置。它已安装好您的 PATH 中的所有工具。
远程计算机的远程控制语法是:
impacket-psexec USERNAME@IP_ADDRESS
在我们的例子中,这是:
impacket-psexec damon@192.168.237.249
使用 impackt-psexec 登录远程计算机并获得交互式 shell 的屏幕截图。以 Ipconfig 为例。
Impacket 还具有一项功能,允许您使用用户的哈希值(而不是密码)远程访问其他计算机。这在黑客攻击中非常有用,因为您不一定能在找到用户的 NTLM 哈希值后破解它。
语法如下:
impacket-psexec <USERNAME@IP_ADDRESS> -hashes <NTLM_HASH>
在我们的示例中,命令是:
impacket-psexec damon@192.168.237.249 -hashes 00000000000000000000000000000000:820D6348890893116880101307197052
再次,一旦您登录,您就可以执行该用户可用的任何命令。
如何在 Metasploit 中使用 PsExec
Metasploit 是一款出色的黑客工具,您应该很熟悉它。与 Impacket 一样,它内置于 Kali Linux 中。要启动Metasploit,您需要输入“msfconsole”,然后您将收到一条随机的欢迎消息。
然后你需要选择要使用的模块。在我们的例子中,我们将使用这个:
exploit /windows/smb/psexec
设置完模块后,我们必须配置模块所需的各种选项。就此模块而言,它需要以下内容:
RHOST,SMBUser,SMBPass, 和LHOST
输入所有信息后,我们就可以通过输入漏洞来运行该模块。
建立连接后,你将像使用以前的方法一样完全访问系统。你只需要输入 shell 命令。
与 PsExec 类似的工具
许多工具与 PsExec 类似,但它们的作用不同。
- WMIExec: WMIExec 与 PsExec 非常相似。但是,它通过 WMI 协议运行,通常在 TCP 端口 135 上运行。
- SMBExec: SMBExec 具有 PsExec 的部分功能,但不如 WMIExec。但它使用 SMB 和与 PsExec 相同的端口。
- Atexec: Atexec 是一款使用内置任务计划程序应用程序在远程 Windows 系统上执行命令的工具。它可以执行 PsExec 的大部分功能,但使用起来可能稍微复杂一些。
- PowerShell 远程处理: Powershell 远程处理利用 Powershell 远程处理协议 (PSRP) 和 Windows 远程管理 (WinRM) 服务在远程系统上执行远程命令。它还允许进行交互式会话,功能非常强大。
- 适用于 Windows 的 SSH:适用于 Windows 的 SSH 在默认情况下不具备 SSH 功能的 Windows 主机上提供安全 Shell (SSH) 功能。第三方工具(如 PuTTY)也可用于此功能。
- RDP:远程桌面协议 (RDP) 允许用户通过 GUI 界面远程连接到另一台计算机。RDP 允许您在远程计算机上执行任何功能,就像您直接登录到该计算机一样。
结论
PsExec 对管理员和黑客来说都是一款非常有用的工具。它内置于大多数黑客操作系统中 ,作为其他工具(如 Impacket 或Metasploit)的组件。
目标操作系统需要进行大量配置,因此您不能总是假设 PsExec 可用。但是,管理员使用 PsExec 的情况极为常见,而且您经常会发现它可以在 Windows 和 Active Directory 环境中使用。
PsExec 是您在进一步了解黑客技术时应该了解的工具。尽管您可能不会直接将其用作 Windows 二进制文件,但它也出现在黑客日常使用的 Impacket 和Metasploit等工具中。
猜你喜欢
- 2024-10-10 Linux系统常用命令大全 linux系统常用命令大全详解
- 2024-10-10 Redis数据类型与常用指令示例 redis数据类型和用法
- 2024-10-10 深入理解Redis原理与应用,总结10个必定掌握要点,5分钟彻底看懂
- 2024-10-10 sqlserver数据库中的高级知识点有哪些?
- 2024-10-10 程序员的福音 - Apache Commons Exec
- 2024-10-10 Linux常用命令分类详解|文件搜索 linux命令分类总结
- 2024-10-10 linux性能工具perf工作原理简析 linux perl
- 2024-10-10 Python-调用系统命令或脚本,快速完成任务
- 2024-10-10 「Docker」命令使用大全,全集一览
- 2024-10-10 DOS常用命令集合 dos所有命令的命令格式
- 最近发表
- 标签列表
-
- gitpush (61)
- pythonif (68)
- location.href (57)
- tail-f (57)
- pythonifelse (59)
- deletesql (62)
- c++模板 (62)
- css3动画 (57)
- c#event (59)
- linuxgzip (68)
- 字符串连接 (73)
- nginx配置文件详解 (61)
- html标签 (69)
- c++初始化列表 (64)
- exec命令 (59)
- canvasfilltext (58)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- node教程 (59)
- console.table (62)
- c++time_t (58)
- phpcookie (58)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)