Настройка учетных данных 802.1x PEAP для беспроводных сетей Wi-Fi с помощью PowerShell

1192
NicolasL

Я пытаюсь автоматизировать соединение Wi-Fi в целях тестирования. Используя команду netsh в PowerShell, я могу сгенерировать XML-файл и подключиться к любому персональному Wi-Fi.

Но проблема с Enterprise (802.1X). Я могу сгенерировать XML-файл с начальной конфигурацией. Но имя пользователя и пароль не хранятся в нем. Я обнаружил, что они хранятся в зашифрованном виде по адресу: HKCU \ Software \ Microsoft \ Wlansvc \ UserData \ Profiles По-видимому, он зашифрован с использованием CryptProtectData.

Я загрузил ключ с одного SSID, подключенного к моему текущему пользователю с использованием 802.1X, и пытался расшифровать его, чтобы выяснить, какую строку необходимо зашифровать. Вот сценарий до сих пор:

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": "Параметр неверен"

РЕДАКТИРОВАТЬ : ошибка не появляется, как только я запускаю скрипт с пользователем локальной системы. Я вижу имя пользователя, но за ним следуют нечитаемые символы. Энтропия установлена ​​в $ null (2-й параметр), и ей интересно, может ли это вызвать проблему

Спасибо,

0
Вы не сказали нам, в какой строке указан неверный синтаксис. Есть ли причина, по которой вы удалили [совершенно хороший вопрос] (https://superuser.com/questions/1207527/powershell-802-1x-credentials-wireless-wi-fi)? Если вы продолжите снимать вопрос только потому, что получили отрицательные голоса, вы очень быстро окажетесь, будучи не в состоянии задавать новые вопросы. Ramhound 7 лет назад 0
[PowerShell: быстрое простое шифрование / дешифрование] (http://andyarismendi.blogspot.com/2011/09/powershell-quick-easy.html) Ramhound 7 лет назад 0
Привет Ramhound, я должен был ответить со сценарием .. извините за удаление / воссоздание. Ошибка возникает при вызове [System.Security.Cryptography.ProtectedData] :: Unprotect Спасибо NicolasL 7 лет назад 0
Ошибка говорит вам точно, что не так, параметр 3, не правильно. Вероятно, дело в том, что ваш аргумент DataProtectionScope `CurrentUser` равен NULL. Ramhound 7 лет назад 0
[Шифрование текстовых файлов с помощью PowerShell] (https://gallery.technet.microsoft.com/scriptcenter/Encrypting-your-text-based-d939876b) Ramhound 7 лет назад 0
Привет Ramhound, я посмотрел на предоставленную ссылку, и она почти такая же, как и для шифрования / дешифрования. У меня есть сценарий, созданный для шифрования данных, и он использует сценарий выше, чтобы расшифровать его без проблем. Проблема в том, что когда я вызываю ключ реестра (сохраненный в $ HEXA) для его расшифровки, я получаю указанную ошибку. Когда вы сказали, что аргумент имеет значение NULL, вы предполагаете, что ключ не был зашифрован с помощью CurrentUser в качестве параметра вначале? Спасибо NicolasL 7 лет назад 0
Я не знаю; Я не собираюсь отлаживать ваш сценарий. Ramhound 7 лет назад 0
Хорошо, спасибо, я добавил больше информации в вопрос. NicolasL 7 лет назад 0
* интересно, может ли это вызвать проблему * поэтому измените энтропию на что-то отличное от нуля и выясните Ramhound 7 лет назад 0

2 ответа на вопрос

0
NicolasL

Пользователь / пароль для WPA-Enterprise зашифрован с использованием двух пользователей. Сначала я расшифровал всю строку с помощью локальной системы. Затем снова расшифровывается с использованием текущего пользователя. Энтропия установлена ​​в $ Null в обоих случаях. Третий параметр будет зависеть от вашей операционной системы.

0
Andrea Giudiceandrea

Дополнительную информацию о схеме шифрования учетных данных WPA2-Enterprise для MSMUserData можно найти в моем ответе https://superuser.com/a/1259271/780533 на «Как найти защищенные учетные данные EAP беспроводной сети, хранящиеся в Windows 7?» вопрос. В частности, «нечитаемые символы» (обратите внимание, что они начинаются с 01 00 00 00 d0 8c 9d df ...), следующие за именем пользователя в расшифрованном MSMUserData, являются зашифрованным паролем, поэтому вам необходимо расшифровать снова с помощью CryptProtectData.