PowerShellによるパスワード難読化の例
2022-02-12 21:14:46
PowerShell 3.0 以降の場合。
スクリプトファイルにパスワードをハードコーディングすることはお勧めしませんが、それでも必要な場面はあります。パスワードをプレーンテキストでハードコーディングする代わりに、少し手間をかけて難読化することができます。パスワードの難読化は非常に低レベルな保護方法ですが、PowerShell を知らない人にとっては、まだ少し謎の多い方法です。
次のスクリプトは、ユーザーにユーザー名とパスワードを尋ね、難読化スクリプトを通して処理を削除し、ユーザー資格情報オブジェクトを生成します。
以下のスクリプトを実行すると、ユーザー認証情報が$credに保存され、-Credentialパラメータを指定してほとんどのコマンドで使用できるようになります。
コピーコード
コードは以下の通りです。
$cred = Get-Credential -Message 'Enter Domain\Username and Password'
$pwd = $cred.Password
$user = $cred.UserName
$key = 1..32 | ForEach-Object { Get-Random -Maximum 256 }
$pwdencrypted = $pwd | ConvertFrom-SecureString -Key $key
$private:ofs = ' '
$generatedScript = @()
$generatedScript += '$password = ''{0}'' -f $pwdencrypted
$generatedScript += '$key = ''{0}''' -f "$key "
$generatedScript += '$passwordSecure = ConvertTo-SecureString -String $password -Key ([Byte[]]$key.Split('' ''))''
$generatedScript += '$cred = New-Object system.Management.Automation.PSCredential(''{0}'', $passwordSecure)' -f $user
$generatedScript += '$cred'
$file = $psise.CurrentPowerShellTab.Files.Add()
$file.Editor.Text = $generatedScript | Out-String
$file.Editor.SetCaretPosition(1,1)
その結果、パスワードは次のようになります。
コピーコード
コードは以下の通りです。
$password = ' 76492d1116743f0423413b16050a5345MgB8AHMAUQA3AFAAVwB0AGkAUQBUAC8AdwBqADYAUABVAFYAUwB4AEYAYgB4AFEAPQA9AHwAZgA0ADgAOQA4AGYANwA0AGEAMAA0ADUANwA5ADkAMwA5ADkAMwA1ADUANQA0AGYANwA5AGQANwBkAGYAOQBmAGEAYQA3ADMAYgBkADIAOQA3AGMAYQBmADUAMgA3ADEANwA3AGEAYgBmADAAYgA1AGYAYwAyADYAYgAzADkAOAA ='
$key = '187 98 34 82 148 52 13 86 246 2 130 197 217 97 147 98 75 197 149 246 74 35 27 7 211 15 131 93 182 231 171 3'
$passwordSecure = ConvertTo-SecureString -String $password -Key ([Byte[]]$key.Split(' '))
$cred = New-Object system.Management.Automation.PSCredential('mickey\mouse', $passwordSecure)
$cred
関連
-
制限された言語パターンを迂回するPowerShellコードインジェクションの脆弱性を防ぐ方法
-
オリジナルpowershellスクリプト gadget ctracert.ps1 trace route(win8+系)
-
Ubuntu PowerShell詳解(初心者必見チュートリアル)
-
PowerShell 配列の複数の入力メソッド
-
PowerShell は、現在のスクリプトランタイムによって消費されるメモリの動的フェッチを実装しています。
-
PowerShellのContinue文の使用例
-
コンソールに緑のチェックマークを挿入するPowerShellの実装
-
システム上の停止可能な全サービスを取得するPowershell
-
PowerShellでF1ヘルプコマンドのアクセスをオンラインドキュメントに変更する方法
-
PowerShellで複数ファイルからキーワードを取得する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン