Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Сохранение учетных данных профиля беспроводной сети Windows

Автор вопроса: pupkinsenОтветов: 2

Есть ли способ воспроизвести функциональность кнопки "Сохранить учетные данные" в меню "Настройки 802.1x" с помощью Windows API? Или какой-либо другой способ навсегда сохранить учетные данные PEAP для профиля беспроводной сети.

Я пробовал использовать функцию WlanSetProfileEapXmlUserData для установки MsChapV2:Username и MsChapV2:Password. Он кэширует учетные данные, но не сохраняет их постоянно.

UPD: удалось найти пользовательские данные, хранящиеся в HKLM\SOFTWARE\Microsoft\Wlansvc\UserData\Profiles\{GUID}, но они зашифрованы. Я предполагаю, что CryptProtectData используется для его шифрования. Если бы я только знал, какая соль используется.

  • Проверьте подкоманду netsh wlan. Хм, если подумать, извините. Это то, что я бы сделал. т.е. запустите IDA, а затем проверьте что-то, что, как я знаю, реализует то, что я хочу, чтобы увидеть, что оно делает. 0xC0000022L 19.03.2013
  • Взглянул на netshell.dll. Ознакомьтесь с функциями из Wlanapi.dll (представлены в W7). Они могут помочь вам начать. 0xC0000022L 19.03.2013
  • Спасибо за совет. Похоже, что CryptProtectData вызывается не из Wlanapi.dll напрямую, а через какую-то другую функцию, вызываемую RPC. Нам нужно идти глубже. pupkinsen 20.03.2013
  • Я нашел вызов CryptProtectData в wlansvc.dll. Похоже, это тот, который мне нужен. Соли нет и флага LOCAL_MACHINE тоже нет. Таким образом, только пользователь локальной системы может декодировать зашифрованные данные. Мне удалось декодировать некоторые данные профиля, созданные Windows, и они представлены в каком-то двоичном формате. Я подозреваю, что здесь замешан EapHostPeerCredentialsXml2Blob. pupkinsen 20.03.2013

credentialswindowswireless

Ответы

Ответ 1 · рейтинг 3 · pupkinsen

HKLM\SOFTWARE\Microsoft\Wlansvc\UserData\Profiles\{GUID}\MSMUserData содержит данные, относящиеся к учетным данным PEAP. Он зашифрован с помощью CryptProtectData. Расшифровка дала нам бинарный блоб, который, к счастью, легко понять. Он содержит имя пользователя и, возможно, домен входа в систему в виде обычного текста. Информация о пароле снова шифруется с помощью функции CryptProtectData и помещается ближе к концу большого двоичного объекта.

Шифрование выполняется без флага LOCAL_MACHINE, поэтому только пользователь локальной системы может генерировать новые учетные данные. После того, как вы поместите его в раздел реестра, Windows считает, что у вас есть сохраненный набор учетных данных, и никогда не будет запрашивать их даже в случае неудачной аутентификации.

Ответ 2 · Andrea Giudiceandrea

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

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы