简介
psexec是windows下的一款远程命令行工具。psexec的使用不需要对方主机开启3389端口,只需要对方开启admin$共享(该共享默认开启)。但是,假如目标主机开启了防火墙,psexec也是不能使用的,会提示找不到网络路径,由于psexec是windows提供的工具,所以杀毒软件会将其添加到白名单中。
psexec的基本原理是:通过管道在远程目标机器上创建一个psexec服务,并在本地磁盘中生成一个名为“PSEXESVC”的二进制文件。最后通过psexec服务运行命令。运行结束后删除服务。
在使用psexec执行远程命令时,会在目标系统中创建一个psexec服务,命令执行后,psexec服务将会被自动删除。由于创建或删除服务时会产生大量的日志,所以会在攻击溯源时通过日志反推攻击流程。
PsExec.exe
PsExec 是 PSTools 工具包里的一部分,其下载地址为:https://download.sysinternals.com/files/PSTools.zip
参数:
-u:指定用户名
-p:指定密码
-accepteula:第一次运行psexec会弹出确认框,使用该参数就不会弹出确认框。
-s:已system权限运行进程,获得一个system权限的交互shell,如果不使用该参数,会获得一个administrator权限的shell。
先建立IPC$连接
net use \\ip\ipc$ "passwd" /user:username
或者
net use \\ip /u:yu\username "passwd"
psexec.exe \ip -u [username] -p [password]./ cmd
MSF中PsExec模块
MSF中的psexec主要有两个模块。
exploit/windows/smb/psexec :该模块生成的payload是exe程序。
exploit/windows/smb/psexec_psh :该模块生成的payload主要是由powershell实现。
注意:powershell生成的payload免杀要比exe效果好。但是xp、2003的系统默认不包含powershell
但是我在我的msf里面只搜到了一个
可以看一下需要什么参数
use exploit/windows/smb/psexec
set rhosts ip
set smbuser username
set smbpass passwd
run
注意这里的smbpass选项,其可以为明文密码,也可以为Hash,但Hash必须是完整的,如果不知道前面的LM Hash部分,可以用零代替
cs中psexec
首先我们使用 Port Scan模块进行扫描,
如果有时候红框内为空,可以先试着提权然后在进行portscan
如果Ports为空那么只扫描存活的主机
存活的主机可以在 视图->目标中查看
然后右键选择psexec
参考文章: