1.问题或需求描述
1>企业网络环境中的软件安装授权问题,通常普通用户不具有管理员权限,但是安装或使用相关软件时却必须要以管理员权限运行,能否只针对单个程序进行授权,而且必须要保护管理员密码。
2>其他种种环境之下,要以其他用户凭据运行目标程序文件的,要求密码受保护,并且命令行信息不可篡改,不能通过替换目标程序的方式非法获得授权。
2.解决方法或原理:
对于用户凭据、命令行信息、目标程序文件Md5值进行一并加密并保存于文件中,通过转移或传送加密文件的形式进行授权,解密过程在内存中操作完成并及时销毁。
自动提交密码过程以消息形式派送给系统RunAs,此过程尚不可拦截。
3.性能问题:
兼顾众多电脑环境,提交密码过程增加了间断延时,以保证成功,尽管有些电脑不需要延时处理。
如果出现无法提交密码问题,作者愿提供适当支援(E-mail:[email protected])
4.运行环境:
.net framework 3.5
5.解决方案:
下载链接:http://down.51cto.com/data/2449431
XRunAs RunAs增强性扩展命令
[Ver:2018-07-16.01; Author:FIRSWOF; E-mail:[email protected]]
XRunAs [--username usr --password pwd --cmdline cmd [--md5 program] [--encrypt codefile]] | [--ciphertext codefile]
--username(or -u) 用户名选项
usr 用户名
--password(or -p) 密码选项
pwd 密码
--command(or -c) 命令行选项
cmd 命令行("program args")
--md5(or -m) 打包目标程序的Md5值(与-e同时使用,将一并被加密)
program 一般来说,这应是选项-c命令行中的程序文件。
如果选择此项,在执行代码文档时将首先校验此信息。
好处是,可以阻止通过修改程序文件名途径使用受保护的用户凭据。
--encrypt(or -e) 保存加密后的登录凭据及命令行信息
codefile 特定代码文档
--ciphertext 执行加密的代码文档
codefile 特定代码文档
备注:
1.XRunAs是系统RunAs增强性扩展命令,增加了自动提交密码,安全授权功能。
2.强烈建议从代码文档执行任务,这有助于保护密码、命令行信息,以及防止非法获取授权。
例如:
1. XRunAs -u administrator -p 12345678 -m install.exe -c install.exe -e install_安装许可证
导出加密后的用户凭据、命令行信息及目标程序Md5值到代码文档"install_安装许可证",代码文档是一段加密的十六进制形式的字符串,现在就可以通过传送代码文档形式进行安全授权,代码文档被执行时将首先校检目标程序的Md5值。
2. XRunAs --ciphertext install_安装许可证
从代码文档执行任务,如果代码文档内容正确,密文将会被解析执行。
3. XRunAs -u administrator -p 123456789 -c taskmgr.exe
以不安全方式使用administrator的用户凭据执行"taskmgr.exe"。
转载于:https://blog.51cto.com/firswof/2145095