簡體   English   中英

存儲加密密碼 Powershell

[英]Storing encrypted password Powershell

我的 Powershell 腳本之一遇到了挑戰。 這個想法是從客戶端運行一個工具,它將使用 PID 殺死一些進程。 概念證明有效 - ps1 腳本被轉換為 exe (PS2GUI),並且該工具成功地殺死了服務器上用戶的 PID。


$credentials = New-Object System.Management.Automation.PsCredential("domain\user",$password)

$scriptBlockSQL = {
sqlplus.exe command
}

Invoke-Command -ComputerName "server" -Credential $credentials -scriptBlock $scriptBlockSQL

但是我有一點問題,因為我目前將密碼作為明文存儲在腳本中,這是非常不安全的——因為.exe 可以在不到幾秒鍾的時間內被反編譯。

我已經嘗試過使用加密字符串的 ConvertTo-SecureString,但是這會將它與用戶帳戶和 pc 聯系起來——這不是一個選項。 密鑰文件的使用也不是一種選擇。

您對如何使腳本更安全和可用有什么建議嗎? 或任何其他將以相同方式工作的解決方案?

謝謝!

好吧,當您使用 SecureString 加密密碼時,您必須在代碼或另一個文件中的某處定義密碼。 所以這不是一個好主意。 然后您必須尋找一種有效保護腳本源代碼的方法。

PS2GUI 將以可逆加密方式加密您的源代碼,這意味着當 powershell 運行腳本時,引擎將解密代碼。 由於使用對稱密鑰算法,它也很弱。

Powershell 腳本也以 Base64 格式加密,而 PS2GUI 也做了同樣的事情。

我認為現在最好的方法是提示用戶輸入憑據。 像這樣:

$password = Read-Host "Enter password" -AsSecureString

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM