Windows 10 WiFi защита хранения паролей

Какой алгоритм шифрования и какой ключ используется для шифрования хранилища парольных фраз WiFi в Windows 10. Я пытаюсь понять это.

Я посмотрел на файл XML на C:\ProgramData\Microsoft\Wlansvc\Profiles\Interfaces\{INTERFACE UUID} и сохраненная там парольная фраза защищена каким-либо шифрованием.

Это не может быть пароль пользователя, так как все пользователи могут получить к нему доступ. Я не могу думать ни о чем другом.

1 ответ

Решение

Windows 10 Wifi расположение хранилища:

В Windows 10 (как и в предыдущих версиях Windows Vista, 7 и 8) больше не используется регистр для хранения информации для "Wireless Configuration Manager". Теперь вместо этого хранится вся информация, как вы упоминали в следующем файле,

C:\ProgramData\Microsoft\Wlansvc\Profiles\Interfaces\{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}\{Random-GUID}.xml

Вы найдете, что каждое беспроводное устройство представлено своим GUID {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}, а его настройки хранятся в файле XML со случайным именем GUID.


Понимание Windows 10 Шифрование / Дешифрование

Он использует функции Windows Cryptography ( см. Здесь)

Подпись в начале каждого зашифрованного пароля 01000000D08C9DDF0115D1118C7A00C0, Таким образом, мы можем понять, что "Wireless Configuration Manager" использует функции CryptProtectData для шифрования беспроводных ключей и паролей.

К счастью, расшифровка так же проста, как и использование CryptUnprotectData, главное, что вам нужно запускать ее как систему. Я знаю, что это можно сделать следующими способами:

  1. Создайте запланированное задание как системное ( см. Здесь), убедитесь, что пользователь превратилось в SYSTEM, затем откройте scheudaler и запустите задачу ect.
  2. Программа Internals системы пользователя psexec64.exe Windows Sysinternals является частью веб-сайта Microsoft TechNet, который предлагает технические ресурсы и утилиты для управления, диагностики, устранения неполадок и мониторинга среды Microsoft Windows. Скачать здесь
  3. Если вы запускаете CMD от имени администратора, перейдите в папку с исполняемым файлом и затем выполните команду psexec64.exe -i -s cmd.exe смотрите здесь для более подробной информации
  4. Или запустите powershell от имени администратора, затем перейдите к exe и запустите

    PsExec64.exe -i -s powershell.exe –ExecutionPolicy Bypass

  5. (Рискованно, но часто) Внедрить код через удаленный поток в системный процесс - LSASS.EXE

  6. Зайдите на nirsoft.net и прочтите там процедуру.


Также вам нужно научиться работать с C++ для кода ниже:


//
// Wireless Key/Password Decryption Algorithm for Vista/Windows 7/Windows 8/Windows 10
//
void DecryptWiFiPassword(BYTE *buffer, DWORD dwSizeBuffer)
{
    DATA_BLOB DataIn;
    DATA_BLOB DataOut;

    DataIn.pbData = buffer;
    DataIn.cbData = dwSizeBuffer;

    if(CryptUnprotectData(&DataIn, 0, NULL, NULL,NULL,0,&DataOut))
    {
        printf("\n Wireless Key Password : %s", (char *) DataOut.pbData);

    }
 }

На чем основаны функции CryptProtectData и CryptUnprotectData?

  • Через API защиты данных.
  • Пользовательские интерфейсы доступны через Windows SDK и MSDN Library. Функция CryptProtectData. Функция CryptUnprotectData.

Интерфейс прикладного программирования для защиты данных

Вот краткий обзор, взятый из статьи Microsoft с дополнительной информацией о CryptProtectData и DPAPI от октября 2001 года, поскольку Windows 2000 была началом интерфейса программирования приложений для защиты данных (API).

Этот API защиты данных (DPAPI) представляет собой пару вызовов функций, которые предоставляют услуги защиты данных на уровне операционной системы для пользовательских и системных процессов. Они работают на системном уровне и не требуют никаких дополнительных библиотек. А защита данных осуществляется с помощью шифрования. Таким образом, любая программа того времени имела возможность шифровать данные без необходимости какого-либо специального криптографического кода, кроме необходимых вызовов функций для DPAPI. Эти вызовы представляют собой две простые функции с различными параметрами для изменения поведения DPAPI.

DPAPI требует пароль для защиты информации, поэтому это служба защиты данных на основе пароля. Недостатком этого метода является то, что он опирается только на пароль, поэтому DPAPI использует проверенные криптографические процедуры, в частности, надежный алгоритм Triple-DES и надежные ключи для обеспечения защиты.

DPAPI первоначально генерирует сильный ключ, называемый MasterKey, который защищен паролем пользователя. DPAPI использует стандартный криптографический процесс, называемый "Получение ключа на основе пароля", описанный в PKCS #5 (Стандарт шифрования на основе пароля 2.1) ( см. Вики PKCS здесь), для генерации ключа из пароля. Этот ключ, полученный из пароля, затем используется с Triple-DES ( см. Вики здесь) для шифрования MasterKey, который в итоге сохраняется в каталоге профиля пользователя.

Чтобы познакомить вас с DPAPI, пожалуйста, прочитайте полную статью здесь и статью о поиске и устранении неисправностей DPAPI здесь.

Статья относится к более старой версии Windows, хотя, насколько я понимаю, основные принципы совпадают.


Объяснение процесса двумя другими людьми / группами:

  • Вот PDF от blackhat, объясняющий процесс.
  • @HennoBrandsma из Stackover Flow говорит: "По сути, хэш SHA-1 вашего текущего пароля защищает мастер -ключи DPAPI, которые, в свою очередь, защищают каждый DPAPI-блоб (также есть соль для каждого блоба). У каждого мастер-ключа есть GUID, который идентифицирует пароль, который используется для его защиты. Каждый BLOB-объект также имеет GUID, который идентифицирует, какой мастер-ключ использовался для его шифрования. Срок действия этих мастер-ключей истекает через три месяца, и создается новый, но старые сохраняются."


Примеры о шифровании и дешифровании

Nirsoft.net, который создал бесплатную программу дешифрования, работающую в Windows 10, говорит, что дешифрованные данные DPAPI всегда начинаются со следующей последовательности байтов, поэтому вы можете легко ее обнаружить:

01 00 00 00 D0 8C 9D DF 01 15 D1 11 8C 7A 00 C0 4F C2 97 EB 

Nirsoft.net перечисляет несколько примеров паролей и других данных, зашифрованных с помощью DPAPI:

  • Пароли учетных записей Microsoft Outlook, хранящиеся в реестре.
  • Файлы учетных данных Windows (т.е. C:\Users\[User Profile]\AppData\Roaming\Microsoft\Credentials)
  • Ключи беспроводной сети как эта статья
  • Пароли в некоторых версиях Internet Explorer, в разделе реестра: HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\IntelliForms\Storage2
  • Пароли хранятся в файле паролей веб-браузера Chrome (файл "Данные для входа" в профиле Chrome).
  • Зашифрованные файлы cookie в веб-браузере Chrome (файл "Cookies" в профиле)

Даже они признают, что если расшифровка не удалась "Попробуйте расшифровать данные, выполнив код внутри процесса lsass.exe (требует повышения прав)", так что для системных паролей это может быть трудной задачей.


Источники статьи:

Бесплатные инструменты

  • DPAPIck - это набор инструментов для Python, обеспечивающий независимую от платформы реализацию криптографического подсистемы Microsoft под названием DPAPI (Data Protection API).
  • DataProtectionDecryptor - это мощный инструмент для Windows, который позволяет расшифровывать пароли и другую информацию, зашифрованную системой DPAPI (Data Protection API) операционной системы Windows. Вы можете использовать этот инструмент для дешифрования данных DPAPI в вашей текущей работающей системе и для дешифрования данных DPAPI, хранящихся на внешнем жестком диске.
  • WirelessKeyView восстанавливает все ключи / пароли безопасности беспроводной сети (WEP/WPA), хранящиеся на вашем компьютере, с помощью службы "Wireless Zero Configuration" в Windows XP или "WLAN AutoConfig" в Windows Vista, Windows 7, Windows 8, Windows 10, и Windows Server 2008. Он позволяет легко сохранять все ключи в текстовом /html/xml файле или копировать один ключ в буфер обмена. Вы также можете экспортировать свои беспроводные ключи в файл и импортировать эти ключи на другой компьютер.

Ресурсы DPAPI и криптофункций

Примеры

Дальнейшее чтение

Идеи о том, как скомпилировать C и C++ просто

Другие вопросы по тегам