php - 使用 PHP 的 exec 函数调用 PSExec 时“句柄无效”
问题描述
好吧,我已经阅读了所有论坛和其他 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);
?>
它应该只是hostname
在 192.168.10.11 上执行命令。我使用执行页面,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
我已经通过从 php 页面外部运行相同的命令来验证 PSExec 的工作原理,即
PsExec.exe \\192.168.10.11 -u "administrator" -p "Ph0nYP@sSw0rd" hostname
我已在控制面板 > 用户帐户 > 授予其他用户访问此计算机的权限中验证管理员帐户可以访问目标计算机 192.168.10.12我在执行 PHP 页面时看到了一个wireshark 捕获,但没有流量。所以我不知道它是否成功启动了 PSExec。
我已通过转到 Run >
\\192.168.10.12\c$ 并输入凭据来验证凭据是否有效。我可以浏览该
文件夹。我尝试使用 PHP 的 shell_exec 并得到相同的结果
所以我知道该帐户可以访问,信誉良好,并且PSExec 正在工作。似乎一旦我将它包装在一个 php 页面中,就会出现问题。“句柄无效”在这里是什么意思?我还能做些什么来排除故障或解决它?我的目标是最终在目标框上执行一个 powershell 脚本,该脚本将在对页面的 POST 请求中使用参数。虽然我还没有接受我目前的方法,但我仍然很好奇它为什么会失败。
解决方案
推荐阅读
- fuzzing - 达到超时时如何使afl-fuzz不跳过测试用例
- python - 在 python 中调用上下文管理器的多种方法
- excel - 动态条件格式?
- reactjs - 在 React 无状态组件中调用函数
- python - AttributeError:“列表”对象没有属性“解码”
- circleci-2.0 - Circleci 在合并的分支上运行
- python - ABSL 标志,Python 将标志从脚本 1 传递到脚本 2 并避免重复
- spring - Spring Cloud OpenFeign 创建动态查询参数失败
- dataweave - 变量索引值映射 Dataweave
- sql - Access 2010 - 通过 DSN 将 LocalDB 连接到 Microsoft Access