gpt4 book ai didi

c# - 将 runas 作为子进程启动并将密码写入标准输入?

转载 作者:可可西里 更新时间:2023-11-01 09:42:09 24 4
gpt4 key购买 nike

我正在尝试编写一个 C# 程序,它应该从 Windows 调用 runas 工具并自动输入密码。

我尝试了什么:

Process runas = new Process();

runas.StartInfo.FileName = "runas";
runas.StartInfo.UseShellExecute = false;
runas.StartInfo.RedirectStandardInput = true;
runas.StartInfo.Arguments = "\"/user:domain\\username\" \"cmd.exe\"";

runas.Start();

StreamWriter stream = runas.StandardInput;
stream.WriteLine("our super secret password");
stream.Flush();

stream.Close();

runas.WaitForExit();
runas.Close();


发生了什么:
我得到以下输出。

Please enter the password for "...":
Trying to execute cmd.exe as user "kfz\dummy"...
RUNAS-ERROR: cmd.exe could not be executed
1326: Authentication failed: unknown username or password.

(由我从我的德语窗口翻译)

是的,我 quadrupel 检查了密码和用户名。在命令行中手动输入所有内容都可以正常工作。

我的实验:
我也尝试重定向输出并从中读取,但没有成功。
我尝试了写入流的不同变体:

stream.Write("our super secret password");
stream.Write("our super secret password\n");
stream.Write("our super secret password\r\n");

所有结果都相同。


我注意到的:
runas进程好像不等我写流了。
我在写之前加了一个Sleep,立马得到了上面的输出。

恐怕 runas 使用了一些非标准输入.....

研究结果:
在尝试找出 runas 使用的输入类型时,我没有成功。
我找到了 Windows 内置 runas 的替代品 here但是我宁愿不使用它,尽管如果不可能的话我可能会退回到它。
编辑:
好的,我发现有消息称微软故意阻止人们这样做......
我讨厌有人那样做!如果我想使用不安全的东西,那么微软谁来阻止我呢!
对不起,我跑题了。

一个问题仍然存在……我们还能以某种方式绕过它吗?我们可以破解 runas 吗? ;)

最佳答案

你不应该这样做的全部原因是因为有一个 API

无需使用runas

ProcessStartInfo 让您可以直接指定 UserNamePassword

例如:

var psi = new ProcessStartInfo();

psi.Domain = "YourDomain";
psi.UserName = "YourUserName";
psi.Password = securePassword;
psi.FileName = "cmd.exe";

Process.Start(psi);

关于c# - 将 runas 作为子进程启动并将密码写入标准输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25664203/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com