- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
上下文:在 PowerShell 中工作,需要 PSCredential 对象,有一个 WindowsIdentity 类型的对象。
假设您使用以下方法获取 WindowsIdentity 类型:
[安全.Principal.WindowsIdentity]::GetCurrent()"
您需要 PSCredential 对象才能进行网络调用,例如 Invoke-RestMethod。
除了调用通常的 Get-Credential 并提示用户输入用户名和密码之外,我们真的可以使用当前的安全上下文来创建凭证对象吗?例如,我们能否将 WindowsIdentity 对象转换为 PSCredential(如果不是直接转换,则通过一系列步骤?)。
如果没有,那么关于从当前安全上下文创建 PSCredential 对象的任何其他想法(不指定用户名或密码 - 或者存储加密的用户名和密码,因为这也需要在密码更改时更新)?
以前可能有人问过类似的问题,但我找不到尝试将 WindowsIdentity 转换为 PSCredential 类型的方法 - 或者关于为什么这可能会被设计阻止的任何明确答案。如果这根本不可能 - 不支持它的原因可能是什么?您是否看到任何可行的解决方法?(我尝试添加一个标签:PSCredential,但该标签尚不存在,而且我没有足够的声誉来创建它:我想添加该标签:也许社区中的某个人可以添加它。谢谢)
最佳答案
我相信其他人会对此有自己的看法,但据我了解,这里有一些事情会使这成为一个真正的挑战,并且作为一项运营交易并不谨慎。
[Security.Principal.WindowsIdentity]::GetCurrent(), 为您提供有关您在网络上经过身份验证的身份的信息。 它不包含任何关于用户密码的信息
( https://msdn.microsoft.com/en-us/library/system.security.principal.windowsidentity(v=vs.110).aspx ),
System.Management.Automation.PSCredential 需要它
记住,GetNetworkCredential 的目标
(这当然是一种方法 System.Management.Automation.PSCredential),用于将您的用户名分解为单独的域和用户名字符串,并以明文形式向您提供凭据密码。
对于网络、客户端访问,如果没有提供有效密码,PSCredential 将无法工作。当然,如果您亲自输入了信息,则只有您可以撤销它,而远程人员或服务无法撤销。
想一想。您能想象能够做到这一点的风险后果有增无减吗?
能够动态地提取当前登录用户的所有身份验证熵。这将是一个即时的 ESP(模拟/特权升级)问题。密码混淆、长度、复杂性,用这样的方法是没有意义的。思考 Pth(传递类似哈希的攻击)情况,而无需捕获哈希。
想象一下,启动与任何远程主机的远程 session (无论谁登录),利用您在此处声明的内容,从而冒充(拥有他们所有的权利和特权)用户做非常邪恶的事情甚至只是意味着事情(更改他们的密码、桌面设置、ADDS 属性,比如是否允许他们更改那里的图片、电话号码、娘家姓等,所有这些都记录在审计日志中,就好像该用户所做的一样)。您可以登录到他们的个人人力资源文件,将 cred 对象传递到 HR 网站等。我确信这不是您的意图(至少我希望不是),但仍然如此。
综上所述,如果您想要模拟用户,那么有一些资源可以提供有关如何执行此操作的方法。然而,当您查看执行此操作的代码时,它比您在 MS PowerShell Gallery 中要求的内容更复杂,但即使它希望您向它传递一个真正的 cred 对象而不是 WI 对象。
通过网络进行访问需要完整的身份、用户和密码。每次尝试触及您尚未触及或很久没有触及的资源时,您的 KDC(域 Controller )都将参与进来,如果没有完整的信用,KDC Curb TGT 将失败。
更新
希维什苏曼
至于---
Thanks. Regarding: "Yet, as you look at the code to do it, it's more involved than just what you are asking for ..." - Would it be possible for you to point me to some of the code that you are referring to in your comment?
这是我指的代码。
Impersonate a User
New-ImpersonateUser uses the LogonUser method from the advapi32.dll to get a token that can then be used to call the WindowsIdentity.Impersonate method in order to impersonate another user without logging off from the current session. You can pass it either a PSCredential or each field separately. Once impersonation is done, it is highly recommended that Remove-ImpersonateUser (a function added to the global scope at runtime) be called to revert back to the original user.
https://gallery.technet.microsoft.com/scriptcenter/Impersonate-a-User-9bfeff82
关于powershell - 是否可以以某种方式将 WindowsIdentity 类型转换或转换为 PSCredential 类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49185431/
我正在尝试编写一个相当多态的库。我遇到了一种更容易表现出来却很难说出来的情况。它看起来有点像这样: {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE
谁能解释一下这个表达式是如何工作的? type = type || 'any'; 这是否意味着如果类型未定义则使用“任意”? 最佳答案 如果 type 为“falsy”(即 false,或 undef
我有一个界面,在IAnimal.fs中, namespace Kingdom type IAnimal = abstract member Eat : Food -> unit 以及另一个成功
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: What is the difference between (type)value and type(va
在 C# 中,default(Nullable) 之间有区别吗? (或 default(long?) )和 default(long) ? Long只是一个例子,它可以是任何其他struct类型。 最
假设我有一个案例类: case class Foo(num: Int, str: String, bool: Boolean) 现在我还有一个简单的包装器: sealed trait Wrapper[
这个问题在这里已经有了答案: Create C# delegate type with ref parameter at runtime (1 个回答) 关闭 2 年前。 为了即时创建委托(dele
我正在尝试获取图像的 dct。一开始我遇到了错误 The function/feature is not implemented (Odd-size DCT's are not implemented
我正在尝试使用 AFNetworking 的 AFPropertyListRequestOperation,但是当我尝试下载它时,出现错误 预期的内容类型{( “应用程序/x-plist” )}, 得
我在下面收到错误。我知道这段代码的意思,但我不知道界面应该是什么样子: Element implicitly has an 'any' type because index expression is
我尝试将 SignalType 从 ReactiveCocoa 扩展为自定义 ErrorType,代码如下所示 enum MyError: ErrorType { // .. cases }
我无法在任何其他问题中找到答案。假设我有一个抽象父类(super class) Abstract0,它有两个子类 Concrete1 和 Concrete1。我希望能够在 Abstract0 中定义类
我想知道为什么这个索引没有用在 RANGE 类型中,而是用在 INDEX 中: 索引: CREATE INDEX myindex ON orders(order_date); 查询: EXPLAIN
我正在使用 RxJava,现在我尝试通过提供 lambda 来订阅可观察对象: observableProvider.stringForKey(CURRENT_DELETED_ID) .sub
我已经尝试了几乎所有解决问题的方法,其中包括。为 提供类型使用app.use(express.static('public'))还有更多,但我似乎无法为此找到解决方案。 index.js : imp
以下哪个 CSS 选择器更快? input[type="submit"] { /* styles */ } 或 [type="submit"] { /* styles */ } 只是好
我不知道这个设置有什么问题,我在 IDEA 中获得了所有注释(@Controller、@Repository、@Service),它在行号左侧显示 bean,然后转到该 bean。 这是错误: 14-
我听从了建议 registering java function as a callback in C function并且可以使用“简单”类型(例如整数和字符串)进行回调,例如: jstring j
有一些 java 类,加载到 Oracle 数据库(版本 11g)和 pl/sql 函数包装器: create or replace function getDataFromJava( in_uLis
我已经从 David Walsh 的 css 动画回调中获取代码并将其修改为 TypeScript。但是,我收到一个错误,我不知道为什么: interface IBrowserPrefix { [
我是一名优秀的程序员,十分优秀!