PsExec/Winexec/ScExec/SMBExec

Reading time: 5 minutes

tip

学习和实践 AWS 黑客技术:HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE) 学习和实践 Azure 黑客技术:HackTricks Training Azure Red Team Expert (AzRTE)

支持 HackTricks

它们是如何工作的

该过程在以下步骤中概述,说明如何操纵服务二进制文件以通过 SMB 在目标机器上实现远程执行:

  1. 通过 SMB 复制服务二进制文件到 ADMIN$ 共享
  2. 在远程机器上创建服务,指向该二进制文件。
  3. 服务被 远程启动
  4. 退出时,服务被 停止,并删除二进制文件

手动执行 PsExec 的过程

假设有一个可执行有效载荷(使用 msfvenom 创建并使用 Veil 混淆以规避防病毒检测),名为 'met8888.exe',代表一个 meterpreter reverse_http 有效载荷,采取以下步骤:

  • 复制二进制文件:可执行文件从命令提示符复制到 ADMIN$ 共享,尽管它可以放置在文件系统的任何位置以保持隐蔽。
  • 除了复制二进制文件,还可以使用 LOLBAS 二进制文件,如 powershell.execmd.exe,直接从参数执行命令。例如 sc create [ServiceName] binPath= "cmd.exe /c [PayloadCommand]"
  • 创建服务:利用 Windows sc 命令,该命令允许远程查询、创建和删除 Windows 服务,创建一个名为 "meterpreter" 的服务,指向上传的二进制文件。
  • 启动服务:最后一步涉及启动服务,这可能会导致 "超时" 错误,因为该二进制文件不是一个真正的服务二进制文件,未能返回预期的响应代码。此错误无关紧要,因为主要目标是执行该二进制文件。

观察 Metasploit 监听器将显示会话已成功启动。

了解更多关于 sc 命令的信息

在这里找到更详细的步骤: https://blog.ropnop.com/using-credentials-to-own-windows-boxes-part-2-psexec-and-services/

  • 您还可以使用 Windows Sysinternals 二进制文件 PsExec.exe

或通过 webddav 访问它:

bash
\\live.sysinternals.com\tools\PsExec64.exe -accepteula
bash
SharpLateral.exe redexec HOSTNAME C:\\Users\\Administrator\\Desktop\\malware.exe.exe malware.exe ServiceName
bash
SharpMove.exe action=modsvc computername=remote.host.local command="C:\windows\temp\payload.exe" amsi=true servicename=TestService
SharpMove.exe action=startservice computername=remote.host.local servicename=TestService
  • 你也可以使用 Impacket的 psexecsmbexec.py

tip

学习和实践 AWS 黑客技术:HackTricks Training AWS Red Team Expert (ARTE)
学习和实践 GCP 黑客技术:HackTricks Training GCP Red Team Expert (GRTE) 学习和实践 Azure 黑客技术:HackTricks Training Azure Red Team Expert (AzRTE)

支持 HackTricks