テスト目的でWi-Fi接続を自動化しようとしています。 PowerShellでnetshコマンドを使用して、xmlファイルを生成し、任意のパーソナルWi-Fiに接続できます。
しかし、エンタープライズ(802.1X)で問題が発生します。初期設定でxmlファイルを生成できます。ただし、ユーザー名とパスワードは保存されません。 HKCU\Software\Microsoft\Wlansvc\UserData\Profiles {GUID}に保存および暗号化されていることがわかりました。どうやら、CryptProtectDataを使用して暗号化されているようです。
802.1Xを使用して現在のユーザーに接続されている1つのSSIDからキーをアップロードし、それを復号化して、暗号化する必要のある文字列を特定しようとしています。これまでのスクリプトは次のとおりです。
Add-Type -AssemblyName System.Security
$HEXA ='01 00 00 00 d0 8c 9d df 01 15 d1 11 8c 7a 00 c0 4f c2 97 eb 01 00 00
00 a8 55 8d b0 1a c5 48 4e 8e 35 ff...'
##hexa to byte
$HEXA_array= $HEXA.split(" ")
$bytes_object = $HEXA_array | FOREACH {[BYTE][CHAR]
([CONVERT]::toint16($_,16))}
##Create an array of Byte
$i=0
foreach ($element in $bytes_object){$i++}
$Byte_Array = New-Object Byte[] $i
#system.object to system.byte
$i=0
foreach ($element in $bytes_object)
{
$Byte_Array[$i]=$element
$i++
}
write-Host "Type of Byte_Array: " $Byte_Array.getType().FullName #
#decrypt
$bytes2 = [System.Security.Cryptography.ProtectedData]::Unprotect(
$Byte_Array,
$null,
[System.Security.Cryptography.DataProtectionScope]::CurrentUser)
しかし、私は以下のエラーを受け取ります:「3」引数で「Unprotect」を呼び出す例外:「パラメータが正しくありません」
[〜#〜] edit [〜#〜]:ローカルシステムユーザーでスクリプトを起動すると、エラーは表示されません。ユーザー名は表示されますが、その後に判読できない文字が続きます。エントロピーが$ null(2番目のパラメーター)に設定されており、問題が発生する可能性があるかどうか疑問に思っています
ありがとうございました、
WPA-Enterpriseのユーザー/パスワードは、2人のユーザーを使用して暗号化されます。最初に、ローカルシステムを使用して文字列全体を復号化しました。次に、現在のユーザーを使用して再度復号化します。どちらの場合も、エントロピーは$ Nullに設定されます。 3番目のパラメーターは、システムOSによって異なります。
WPA2-MSMUserDataのエンタープライズ資格情報暗号化スキームの詳細については、「ワイヤレスの保護されたEAP資格情報を見つける方法を教えてください」に対する私の回答 https://superuser.com/a/1259271/7805 を参照してください。 Windows 7に保存されているネットワーク?」質問。特に、復号化されたMSMUserDataのユーザー名に続く「読み取り不可能な文字」(01 00 00 00 d0 8c 9d df ...で始まることに注意)は暗号化されたパスワードであるため、CryptProtectDataを使用して再度復号化する必要があります。