【问题标题】:VB.NET - PSEXEC and SecureString Class?VB.NET - PSEXEC 和 SecureString 类?
【发布时间】:2014-10-24 14:44:20
【问题描述】:

我在 vb.net 中有一个正在开发的工具,它基本上可以让我组织中的 IT 用户在 PC 上触发许多远程 GUI 进程。我从我的应用程序中调用 PSEXEC,并将我设置的服务帐户的用户名和密码传递给它。

我希望尽可能具有安全意识,并且正在考虑使用 SecureString 类来存储用户和密码。我的问题是:如果我存储我的服务帐户。使用安全字符串的用户名和密码,然后在我调用它时将它们传递给 PSEXEC,PSEXEC 是通过网络传输混淆密码还是传输纯字符串?

任何帮助将不胜感激,因为这对我来说有点新!

谢谢!

编辑:

我用来调用 PSEXEC 的代码:

Private Sub startProcess(ByVal remotePC As String, ByVal remotePC_URL As String, ByVal remoteUser As String, ByVal password As String)
    Dim proc As New System.Diagnostics.Process
    proc.StartInfo = New ProcessStartInfo("CMD")
    proc.StartInfo.Arguments = "/k psexec \\" & remotePC & " -u " & remoteUser & " -p " & password & " -i -d ""C:\Program Files (x86)\Internet Explorer\iexplore.exe"" -k " & remotePC_URL & ""
    proc.StartInfo.CreateNoWindow = True
    proc.StartInfo.UseShellExecute = False
    proc.Start()
End Sub 'startProcess

【问题讨论】:

    标签: .net vb.net security psexec sysinternals


    【解决方案1】:

    是您用来对远程服务器进行身份验证的用户帐户/登录信息吗?如果是这样,它通常是安全的(与您获得的登录弹出窗口相同)。否则,它取决于正在使用的协议。例如,对于 HTTP,所有内容都以纯文本形式发送。请提供一些代码以便我们更好地了解您的需求。

    【讨论】:

    • 添加了我现在用来调用 PSEXEC 的 sub。它可以工作,但我不知道它如何传输我传递的数据。我查看了 SysInternals PSEXEC 页面,但我也不清楚那里。
    • @Oryx:见this link,这表明 PsExec 确实在普通测试中提交了密码。还有more research herenet use 解决方案。又想做什么?在远程服务器上启动 IE?
    • @Oryx:还要检查How to start remotely process in PowerShellStart-RemoteProcess cmdlet(这是付费的,但您可能会发现它对您的公司需求是值得的——与他们没有任何关系)。 Password hash is your other option,如果您坚持使用 PsExec(查找 Figure 5: Using a password hash to execute a file remotely)。
    • 所以我实际上能够找到一个更新版本的 PSEXEC,它在传输过程中对密码和命令进行加密。 technet.microsoft.com/en-us/sysinternals/bb897553.aspx我觉得可以!
    • @Oryx:只要让它确实是加密的,使用嗅探器什么的。是的,如果你只传递一个用户名,它会提示你输入密码,这可能会被加密。但是这篇文章没有说明以纯文本形式清晰传递的密码。您可能需要输入密码哈希。
    猜你喜欢
    • 2011-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多