好的,我已经阅读了所有论坛和其他SO帖子,但无济于事。为此我一直在撞墙。我有一个非常小的PHP页面,如下所示:
<?php
exec('PsExec.exe -accepteula \\\\192.168.10.11 -u "administrator" -p "Ph0nYP@sSw0rd" hostname', $output, $returnVar);
print_r($output);
print_r('Return value is: ' . $returnVar);
?>
应该仅在192.168.10.11上执行hostname
命令。我使用php.exe mypage.php
执行页面,但这总是导致以下结果:
Couldn't access 192.168.10.11:
The handle is invalid.
Connecting to 192.168.10.11...
PsExec v2.2 - Execute processes remotely
Copyright (C) 2001-2016 Mark Russinovich
Sysinternals - www.sysinternals.com
我已经通过运行以下命令来验证PSExec是否正常工作
在php页面之外,即PsExec.exe \\192.168.10.11 -u "administrator" -p "Ph0nYP@sSw0rd" hostname
我已验证管理员帐户有权访问
控制面板>用户帐户>给予目标计算机192.168.10.12
其他用户可以访问此计算机
当我执行PHP页面时,我看到了Wireshark捕获,但是没有流量。所以我不知道它是否能成功启动PSExec。
我已通过转到运行>
验证了凭据工作
\\ 192.168.10.12 \ c $,然后输入凭据。我可以浏览
文件夹。
我尝试使用PHP的shell_exec并获得相同的结果
所以我知道该帐户具有访问权限,信誉良好,并且 PSExec正在运行。看来,一旦我将其包装在php页面中,就会出现问题。 “句柄无效”在这里是什么意思?我还可以采取其他措施进行故障排除或解决吗?我的目标是最终在目标框中执行Powershell脚本,该脚本将使用对该页面的POST请求中的参数。尽管我还没有嫁给当前的方法,但我仍然对为什么它失败感到非常好奇。