Как исправить код ошибки 80090016: набор ключей не существует в Outlook и Teams
Если вы столкнетесь с Код ошибки 80090016 (Набор ключей не существует) при попытке использовать Outlook, Teams или любое другое приложение Microsoft, то, скорее всего, это связано с неисправностью доверенного платформенного модуля (TPM). TPM — это специализированная микросхема, установленная почти на каждой современной материнской плате. Его целью является обработка шифрования и других функций, связанных с безопасностью. К сожалению, когда TPM не работает должным образом, это может вызвать проблемы с различными компонентами Windows, что приведет к таким проблемам, как упомянутый выше код ошибки. Причина этого обычно сводится к трем наиболее популярным причинам: из-за недавней замены материнской платы, после которой токены TPM больше не совпадают с папками, созданными изначально; проблемы с учетной записью пользователя; или просто какое-то повреждение программного обеспечения, которое требует переустановки. В любом случае, наше руководство ниже поможет вам избавиться от проблемы и продолжить использовать необходимое приложение без ошибки 80090016.

Скачать средство восстановления Windows

Существуют специальные утилиты для восстановления Windows, которые могут решить проблемы, связанные с повреждением реестра, неисправностью файловой системы, нестабильностью драйверов Windows. Мы рекомендуем вам использовать Advanced System Repair Pro, чтобы исправить «код ошибки 80090016: (набор ключей не существует)» в Windows 11 или Windows 10.
1. Переименуйте папку Microsoft.AAD.BrokerPlugin.
Если код ошибки 80090016 начал возникать именно после замены материнской платы на компьютере, то для решения этой проблемы лучше всего просто переименовать Microsoft.AAD.BrokerPlugin_cw5n1h2txyewy папку, чтобы Windows создала новую папку с соответствующими маркерами аутентификации. Обратите внимание, что перед переименованием вы должны войти в другую учетную запись администратора. Если у вас нет другого доступного, создайте его и войдите в него, прежде чем начинать выполнять шаги, описанные ниже.
- Нажмите Windows Key + R кнопки вместе, скопируйте и вставьте это C:\Users\%username%\AppData\Local\Packages\ , а затем нажмите кнопку OK.
- Найдите папку с именем Microsoft.AAD.BrokerPlugin_cw5n1h2txyewy и скопируйте его на рабочий стол. Он будет действовать как резервная копия, которую можно использовать для восстановления в случае, если что-то пойдет не так.
- После этого вернитесь туда, где находится папка, и переименуйте ее, добавив .old в конце своего имени (от Microsoft.AAD.BrokerPlugin_cw5n1h2txyewy до Microsoft.AAD.BrokerPlugin_cw5n1h2txyewy.old).
- После переименования перезагрузите компьютер и посмотрите, устранена ли проблема.
2. Переподключите проблемную учетную запись
Как упоминалось ранее, код ошибки 80090016: сообщение «Набор ключей не существует» может быть связано с временными проблемами с учетной записью Microsoft, в которую вы вошли в данный момент. Решение, которое сработало для некоторых людей, состоит в том, чтобы удалить учетную запись из Windows и снова войти в нее с нуля. Вы можете сделать это, выполнив следующие действия:
- Откройте строку поиска Windows и введите Доступ к работе или школе. Это перенаправит вас к списку учетных записей Microsoft, которые в настоящее время подключены к вашей системе.
- Нажмите на тот, с которым у вас возникли проблемы, и нажмите Отключить.
- После этого попробуйте снова войти в свою учетную запись и посмотреть, решит ли это проблему.
3. Отключите ADAL в редакторе реестра.
Некоторые пользователи извлекли выгоду из отключения записи ADAL в своем реестре. ADAL — это, по сути, инструмент .Net Framework, который позволяет аутентифицировать пользователя в локальной среде Active Directory или в облаке. Всякий раз, когда дело доходит до внесения изменений в реестр, всегда рекомендуется сделать его резервную копию, чтобы в случае сбоя его можно было вернуть в предыдущее состояние. Выполните следующие шаги, чтобы сделать это и отключить запись ADAL.
- Убедитесь, что все не встроенные приложения Microsoft закрыты.
- Затем нажмите Windows Key + R кнопки вместе, копипаст regedit и нажмите OK для открытия редактора реестра.
- Чтобы сделать резервную копию, перейдите на Файл в левом верхнем углу и нажмите Экспортировать, Назови это Registry_backup и сохраните его, где хотите.
- После этого перейдите по этим папкам на левой панели. HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Common\Identity .
- Выберите Личность папку и проверьте, есть ли у вас ВключитьADAL запись на правой панели. Если у вас еще нет этой записи, вам нужно будет ее создать. Просто щелкните правой кнопкой мыши на Личность папку и выберите Новая >Значение DWORD 32-бит. Назовите созданное вручную значение как ВключитьADAL.
- Затем щелкните правой кнопкой мыши на ВключитьADAL , а затем выбрать Изменить . .
- Под Значение изменить номер на 0 и нажмите OK после. Это отключит ВключитьADAL записи.
- Теперь вы можете закрыть редактор реестра и перезагрузить компьютер, чтобы увидеть результат.
4. Переустановите проблемное приложение.
Последнее, что нужно сделать, если больше ничего не помогло, — это просто удалить неисправное приложение (будь то Outlook, Teams или что-то еще) и установить его заново. Это гарантирует, что само приложение не повреждено и не является корнем проблемы. Чтобы удалить приложение:
- Щелкните правой кнопкой мыши Меню Пуск и перейти в Приложения и возможности.
- Оттуда найдите проблемное приложение, выберите его и нажмите Удалить в конце.
- Следуйте инструкциям на экране и снова установите приложение.
Итоги
Мы надеемся, что наше руководство помогло вам устранить код ошибки 80090016: набор ключей не существует и вернуться к безупречной работе с любым приложением Microsoft, которое вы используете. Наиболее распространенной причиной обычно является новый чип TPM, который не соответствует токенам аутентификации, которые были созданы до него, и поэтому приводит к ошибке. И, как показано выше, проблему можно легко решить, внеся небольшие изменения в имя папки, в которой хранятся эти токены. Однако, если проблема не в этом, есть и другие решения, которые также должны вам помочь.
- Тэги
- исправить ошибку 80090016
- набор ключей не существует в ошибках Outlook и Teams
Как исправить код ошибки Microsoft Teams «80090016»

Trusted Platform Module (TPM) — это аппаратная функция безопасности, встроенная в материнскую плату или процессор. Он защищает критически важные данные и проверяет подлинность доверенных приложений.
Основная функция TPM — защита компьютеров от вредоносных программ и кибератак. Однако если при обмене данными с TPM возникают проблемы с безопасностью оборудования системы, при запуске или входе в Microsoft Teams может появиться сообщение об ошибке с кодом 80090016 «Модуль доверенной платформы вашего компьютера неисправен».
Программы для Windows, мобильные приложения, игры — ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале — Подписывайтесь:)
Эта ошибка, хотя и связана с TPM, также может быть вызвана проблемами с учетными данными Microsoft или повреждением папки Microsoft.AAD.BrokerPlugin. Это ключевые причины. Давайте перейдем к методам устранения неполадок, чтобы решить эту проблему.
1. Удалите учетные данные Microsoft Office из диспетчера учетных данных.
Как указывалось ранее, эта ошибка связана с проблемой с учетными данными для входа в Microsoft. Начните с очистки учетных данных Microsoft Office в диспетчере учетных данных, прежде чем переходить к другим методам устранения неполадок. Следуй этим шагам:
- Откройте меню «Пуск», нажав клавишу Win.

- Затем введите Панель управления, чтобы открыть ее.
- Нажмите на опцию «Категория» и выберите «Маленькие значки» в правом верхнем углу.

- Перейдите в Диспетчер учетных данных.

- Нажмите «Учетные данные Windows».

- Здесь найдите запись с именем MicrosoftOffice16… и нажмите на нее.
- Затем нажмите «Удалить» и нажмите «Да», чтобы подтвердить действие.

- После этого откройте любое офисное приложение и перейдите в «Учетная запись». и нажмите «Выйти».
- После этого войдите в офисное приложение и запустите Microsoft Teams, чтобы увидеть, исправлена ошибка или нет.
2. Удалите Microsoft.AAD.BrokerPlugin.
Microsoft.AAD.BrokerPlugin — это пакет для рабочих и корпоративных учетных записей, который обычно работает без проблем. Если возникнут проблемы, вы можете увидеть сообщение об ошибке. Чтобы исключить возможное повреждение папки, вызывающее эту ошибку, мы попытаемся удалить Microsoft.AAD.BrokerPlugin.
Папка Microsoft.AAD.BrokerPlugin будет автоматически создана при перезапуске Microsoft Teams. Пожалуйста, выполните следующие действия:
- Откройте программу «Выполнить», одновременно нажав клавиши Win + R.
- Здесь введите appdata в поле и нажмите «ОК», чтобы открыть папку.

- Отсюда перейдите в раздел «Локальные» > «Пакеты».

- Здесь найдите папку Microsoft.AAD.BrokerPlugin.
- Щелкните правой кнопкой мыши по нему и щелкните значок «Удалить», чтобы удалить папку.

- Если при попытке удалить папку возникла ошибка, создайте новую локальную учетную запись с правами администратора. Инструкции см. в 6-м методе данного руководства.
- После завершения процесса запустите Microsoft Teams; вы должны быть готовы продолжить.
3. Удалите TPM из диспетчера устройств.
Чтобы устранить ошибку Microsoft Teams, вы можете удалить TPM (модуль доверенной платформы) из диспетчера устройств. Чтобы исправить это, выполните следующие действия для удаления TPM:
- Щелкните правой кнопкой мыши меню «Пуск» и выберите «Диспетчер устройств».

- Как только он откроется, разверните Устройства безопасности.
- Щелкните правой кнопкой мыши модуль Trusted Platform Module 2.0 и выберите «Удалить».

- Нажмите «Удалить» для подтверждения.
- После этого проверьте, сохраняется ли ошибка или нет.
4. Запустите SFC Scannow.
Проверка системных файлов (SFC) — это утилита командной строки Windows, которая позволяет пользователям восстанавливать поврежденные системные файлы. Сообщается, что один затронутый пользователь решил проблему, выполнив команду SFC. Следовательно, ваше четвертое решение — использовать командную утилиту SFC. Вот шаги, которые необходимо выполнить:
- Нажмите клавишу Win и введите «Командная строка».
- Щелкните его правой кнопкой мыши и выберите «Запуск от имени администратора».

- Теперь введите sfc /scannow и нажмите клавишу Enter, чтобы выполнить команду.

- Как только вы нажмете Enter, начнется проверка. Просто подождите, пока оно будет завершено.
- После этого запустите Microsoft Teams и посмотрите, сработало это или нет.
5. Переустановите команды Microsoft.
Проблемы с файлами приложений также могут вызывать эту ошибку. Несмотря на то, что эта проблема маловероятна, по-прежнему рекомендуется переустановить Microsoft Teams, если ошибка не устранена. Для этого выполните следующие действия:
- Нажмите клавишу Win и введите «Добавить или удалить программы».

- Откройте настройки «Программы и компоненты», нажав клавишу Enter.
- Здесь найдите приложение Microsoft Teams.
- Нажмите на три точки и нажмите «Удалить».

- Еще раз нажмите «Удалить», чтобы удалить приложение.
- После удаления Microsoft Teams откройте Microsoft Store и установите Microsoft Teams.

6. Создайте новый профиль пользователя.
Когда пользователь устанавливает новый профиль, Windows создает новые системные файлы, включая приложения Microsoft Store. Поскольку ни одно из предыдущих решений не было эффективным, решением может быть создание нового профиля пользователя. Для этого следуйте этим инструкциям:
- Откройте «Настройки», используя комбинацию клавиш Win + I.
- Перейдите в «Учетные записи» > «Другие пользователи».

- Нажмите кнопку «Добавить учетную запись».

- Затем нажмите «У меня нет данных для входа этого человека».
Выберите Добавить пользователя без учетной записи Microsoft.
- Здесь введите имя учетной записи и нажмите «Далее», чтобы создать учетную запись.

- После этого выберите учетную запись и нажмите «Изменить тип учетной записи».
Выберите «Администратор» в качестве типа учетной записи и нажмите «ОК».
- После этого войдите в новую учетную запись пользователя и посмотрите, работает это или нет.
7. Настройте MMC (консоль управления Microsoft).
Консоль управления Microsoft (MMC) контролирует аппаратные, программные и сетевые компоненты Windows, позволяя пользователям создавать, сохранять и открывать инструменты администрирования. Он может управлять сертификатами для Microsoft Teams. Вот инструкции, как это сделать:
- Щелкните правой кнопкой мыши меню «Пуск» и выберите «Выполнить».

- Здесь введите mmc в поле ввода и нажмите «ОК», чтобы запустить консоль управления Microsoft.

- Теперь нажмите «Файл» и выберите «Добавить/удалить оснастку». Вы также можете использовать сочетание клавиш Ctrl + M для навигации.

- Здесь выберите «Сертификаты» и нажмите «Добавить».

- Выберите учетную запись компьютера и нажмите «Далее».

- Нажмите «Готово» и нажмите «ОК», чтобы закрыть окно.
- Разверните Сертификаты на левой панели.
- Затем разверните «Личные» и нажмите «Сертификаты».

- Здесь найдите запись с названием «MS-ORGanization». Если вы можете его найти, щелкните его правой кнопкой мыши и удалите.

- После этого закройте программу MMC, и это должно исправить эту ошибку.
8. Сбросьте команды Microsoft.
После выполнения вышеуказанных методов эта проблема больше не должна возникать. Однако, если проблема не устранена, последним вариантом может быть сброс приложения Microsoft Teams, при котором данные приложения будут удалены. В отличие от удаления, сброс может исправить потенциальное повреждение данных. Вот шаги для выполнения этого сброса:
- Щелкните правой кнопкой мыши меню «Пуск» и выберите «Настройки», чтобы открыть его.

- Откройте «Приложения» > «Установленные приложения».
- Найдите Microsoft Teams, затем щелкните три точки.
- Выберите «Дополнительные параметры», чтобы просмотреть дополнительные параметры.

- Прокрутите вниз до пункта «Сброс» и нажмите кнопку «Сброс».

- После этого проверьте, решена ли проблема или нет.
Программы для Windows, мобильные приложения, игры — ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале — Подписывайтесь:)
Облачные токены Microsoft – больше никаких «секретиков». Часть 1
Данный цикл статей сформировался по итогам нашего выступления на Offzone-2022 в конце августа. Ввиду ограниченности времени презентации, нам не удалось в полной мере рассказать о данном исследовании. Поэтому, чтобы исправиться и разложить всё «по полочкам», представляем вам данный материал. Итак, поехали…
1. С чего все началось
В процессе RedTeam-кампаний мы постоянно сталкиваемся не только с анализом технической части внутренней инфраструктуры заказчика, но и с изучением процессов управления данной инфраструктурой. Это позволяет более эффективно спланировать проведение той или иной атаки. Примером такого планирования может послужить проведение атаки на систему управления гипервизором непосредственно через рабочую станцию администратора этого гипервизора. В его рабочее время и используя его реквизиты доступа. Это означает, что нам придётся изучать внутреннюю документацию ИТ-персонала, читать почту администраторов, анализировать логи доступа и куки веб-браузеров ключевых IT-сотрудников компании. С анализом технической документации и данными различных браузеров всё более-менее ясно (с технической точки зрения). В сети доступно множество различного инструментария для расшифровки сохраненных паролей и cookies.



А вот со сбором почты с почтовых серверов часто возникают проблемы. В последнее время всё больше и больше компаний «уходят в облака» и переводят туда все свои информационные потоки. Одним из популярных провайдеров облачных сервисов является Microsoft, которая предоставляет богатый инструментарий по организации и управлению почтовой системой на базе своей ActiveDirectory и сервисов Outlook Office365. И если пару-тройку лет назад почту пользователей корпоративного Outlook можно было смело читать/качать, выполнив обычную Basic-авторизацию, то сейчас такого уже практически нигде нет. У всех более-менее зрелых в отношении ИБ компаний включена 2х-факторная аутентификация для пользователей с добровольно-принудительной установкой 2го фактора (это когда ты либо привязываешь телефон или Microsoft Authenticator в качестве 2го фактора, либо тебе запрещено пользоваться всеми облачными благами).
Мы не первые, кто задался вопросом, как обойти подобную защиту. Однако обнаруженный нами инструментарий обычно сводился к парсингу и анализу PST-файлов, добытых с рабочих станций пользователей. Проблема в том, что данные файлы во-первых могут быть довольно таки-большого размера (мы встречали PST по 10-15 Гб), а во-вторых это не решало проблему возможной необходимости анализа свежеприбывающей почты. Например, вам нужно проанализировать новые письма, которые пришли уже после скачки PST. Снова качать все 10 Гб ради пары новых сообщений??
Так или иначе, нам необходимо было разобраться как приложение Outlook хранит на рабочих станциях пароли доступа к почтовым сервисам Outlook365, и как в данном случае работает 2х факторная аутентификация.
2. Первые шаги
Чтобы выяснить это, мы привязали Outlook к специально созданному корпоративному аккаунту с двухфакторной авторизацией в майкрософтовском облаке. А затем «вежливо попросили» desktop-приложение Outlook Office проверить почту под нашим чутким руководством (импортировали сертификат бурпа и выставив соответствующие настройки прокси-сервера в IE). В HTTP-пакетах мы увидели, что Outlook работает с облаком по двум почтовым протоколам: EWS (Microsoft Exchange Web Wervices) и MAPI. И в том, и в другом случаях авторизация происходит через Json Web Token (JWT) в HTTP-заголовке Authorization Bearer.


Немного о JWT
Здесь необходимо сделать небольшое лирическое отступление и вкратце напомнить читателю, что такое Json Web Token. JWT — это открытый стандарт (RFC 7519) для создания токенов доступа, основанный на формате JSON. Как правило, используется для передачи данных для аутентификации в клиент-серверных приложениях. Обычно такие токены создаются сервером, подписываются секретным ключом и передаются клиенту, который в дальнейшем использует его для подтверждения своей личности. Простыми словами, JWT — это лишь строка в следующем формате header.payload.signature, где JSON-данные закодированы в base64-виде.

В заголовке JWT закодированы его основные характеристики: тип, алгоритм подписи/шифрования, а также возможные дополнительные характеристики, такие как случайная соль, сертификат подписи и т.д. Поле payload содержит непосредственно информативную часть токена. Тут может быть всё что угодно, что может потребоваться приложению для авторизации: информация о пользователе, его правах доступа, хеш пароля (ну а что, а вдруг…). Главное, чтобы в JSON-формате, и base64 «сверху». Signature – это сама цифровая подпись header+payload (прямо вместе с точкой), осуществлённая по алгоритму, указанному в заголовке, т.е. —sign(base64(header).base64(payload)).
Для работы с JWT внутри линукса (как правило внутри скриптов на bash) удобно применять утилиту jwt из одноименного deb-пакета. Утилита позволяет декодировать JWT, подписывать и проверять подпись используя подготовленный ключевой файл.

Для анализа JWT внутри http-пакетов удобнее всего применять специальный плагин для BurpSuite – JWT4B (внутри встроенного в BurpApp он называется «json web tokens»).


Данный плагин позволяет также просматривать и модифицировать JWT «налету», используя заранее заданные параметры подписи. Например, можно взять JWT, подписанный по HS256 и переподписать его уже на основе RSA. Плагин также подсвечивает http-пакеты, проходящие через Burp, в составе которых он обнаруживает JWT. Поиск сигнатур JWT происходит по ключевым словам, перечень которых также можно настроить. Забегая вперед добавим, что данный плагин позволяет проводить атаки на механизмы генерации и подписи JWT. В общем, этот плагин из разряда «must have», если Вы собираетесь работать с JWT посредством BurpSuite.
Ниже мы видим раскодированный JWT, который outlook посылает в качестве авторизационного токена на свой сервер:

Данный токен сформирован по расширенному компанией Microsoft стандарту OAUTH 2.0. Здесь следует обратить внимание, что токен подписан по алгоритму RSA закрытым ключом, известным только серверу, а также на поля aud (предназначение токена – сервис, для которого предназначен этот jwt), поля временных меток iat (issued at), nbf (used not before) и exp (expiration time). Последнее поле (exp) указывает нам, когда токен перестает действовать. Проанализировав временные метки (они указаны в секундах по стандарту Unix Epoch Time), мы пришли к выводу, что время жизни данного токена составляет порядка 25 часов.
3. Начинаем искать…
Дальше нам надо было найти, где же внутри системы Outlook хранит эти JWT. Так как это Microsoft, мы предположили (как оказалось, не зря), что JWT, будучи чувствительной с точки зрения безопасности информацией (этаким своеобразным временным паролем), скорее всего зашифрован, и в открытом тексте мы вряд ли его найдем. А так как это Windows, то механизм шифрования скорее всего лежит на основе подсистемы DPAPI. Держа это в уме, мы начали поиски внутри пользовательских профилей на диске и в реестре по сигнатурам DPAPI-блобов (0x01000000D08C9d и AQAAANCMnd). И соответствующие tbres-файлы нашлись внутри профиля пользователя в каталоге TokenBroker:


Внутри файлов мы обнаружили DPAPI-блобы зашифрованные на мастерключах пользователя. Для дешифровки DAPAPI-блобов мы применили уже не раз выручавший нас фрейморк DPAPIck3. К cлову, фреймворк DPAPIck недавно получил некоторое развитие — в частности, был перенесён на базу Python3. Итак, после дешифровки файла посредством фреймворка DPAPIck3 (универсального декриптора filegeneric.py) нам удалось заглянуть внутрь tbres-файла. Как видно из рисунков, внутри помимо самого JWT находились дополнительные поля, фактически дублирующие поля JWT — такие как user apn, token issuers, tenant ID, Expiration time и другие, видимо, необходимые приложению для корректной работы.

Помимо файла с данными и JWT для Outlook, в каталоге tokenbroker/cache можно обнаружить много других аналогичных файлов, только уже для других офисных (и не только) приложений. Например, Microsoft Teams, Microsoft OneDrive, Microsoft Azure Active Directory. Также можно встретить tbres-файлы с JWT для MS Graph – это такой специальный REST API интерфейс, предоставляющий доступ к различным сущностям внутри облачных сервисов Microsoft. Правда, так называемый scope у найденных нами токенов оказался не такой широкий как хотелось бы. Например, часто попадались JWT для MS graph, которые позволяют работать с почтой, контактами, файлами на Sharepoint-серверах, но не позволяют читать сообщения Microsoft Teams.
Давайте еще раз взглянем на раскодированный JWT внутри tbres-файла:


Здесь мы видим важные для нас поля aud, iat, nbf, exp о которых мы говорили чуть выше. Также хотим обратить ваше внимание на такие поля как:
· scp (scope) – область действия токена, фактически — его права. В данном случае, токен от Outlook имеет права на чтение/запись почты и контактов, а также на чтение/запись файлов;
· tid (tenant ID) – уникальный идентификатор компании в Microsoft;
· amr (auth claim) – json-массив, указывающий, при каких условиях был получен токен. В данном случае, токен был получен после ввода пароля и проверки второго фактора.
Помимо указанных значений здесь могут быть такие аббревиатуры, как otp, fed (federated authentication assertion), wia (Windows Integrated Authentication).
Как мы упоминали ранее, JWT из каталога tokenbroker, выписываются на период 25-27 часов. Но тот же Outlook не спрашивает нас про пароль спустя 27 часов после авторизации. Значит где-то ещё в системе должен быть механизм, ответственный за авторизацию и обновление этих самых tbres-файлов. Чтобы найти его мы осуществили старый хакерский трюк — запустили process monitor от sysinternals, чтобы узнать, кто же читает/создает эти файлы при работе того же outlook. К нашему удивлению это был не сам Outlook, а библиотека AAD.core.dll внутри процесса taskshost.exe. Тогда мы решили отследить какие ещё файлы создаются/читаются этим же процессом в те же временные таймстлоты, что и tbres-файлы. Так наш взгляд приковали к себе другие файлы в каталоге AAD.brokerPlugin.


Эти файлы выглядят по-другому (см. рисунок выше), и мы не смогли бы найти их ранее, когда искали внутри пользовательских профилей на диске или в реестре по сигнатурам DPAPI-блобов (0x01000000D08C9d и AQAAANCMnd). Мы догадывались, что это, вероятно, зашифрованные файлики, и что aad.core.dll умеет с ними работать. Вот тут мы уже почти что собрались открыть IDA и начать раскручивать алгоритм расшифровки, но в последний момент, внимательно присмотревшись к заголовкам файлов, заметили, что это ASN-кодировка (MIIJU…). Неплохо бы посмотреть эти файлы с помощью какого-нибудь ASN-Editor-а. Так мы и сделали. И это сэкономило нам кучу времени и сил, так как глядя на эти файлы в ASN-Editor-е, мы быстро разобрались, как именно они сформированы, что на чём зашифровано, и как это всё раскрутить в обратную сторону (см. картинку с ASN).

Выше мы видим, что вначале идёт DPAPI-blob, а ниже подсказка, что он зашифрован на пользовательском мастер-ключе. Расшифровываем и получаем 32 байта. Идём ниже и видим некий OID 2.16.840.1.101.3.4.1.45 (aes256-wrap). Он сообщает, что полученные из DPAPI-bloba 32 байта – это ключ AES256 с помощью которого мы можем сделать unwrap идущих следом 40 байт. Делаем unwrap и снова получаем 32 байта. Ниже мы видим еще один очень похожий OID 2.16.840.1.101.3.4.1.46 (aes256-GCM). Этот OID сообщает нам о том, что блок данных ниже зашифрован с помощью полученных ранее 32 байт ключа и представленных ниже 16 байт IV. С помощью AES256-GCM расшифровываем и получаем наконец-то «читаемые данные».
Промежуточный вывод: внимательно смотрите на заголовки зашифрованных файлов и не торопитесь проводить реверс.
PS. Забегая вперед, скажем что данный метод шифрования и хранения «чувствительной» информации пользователя принято называть DPAPI-NG. В отличие от DPAPI, где используются всего 4 наших любимых функции, здесь их побольше, но глобально это влияет на процесс расшифрования. DPAPI-NG = DPAPI+AES256-wrap+AES256-GCM
4. Def-файл — что внутри.
В итоге, после некоторых криптографических операций (произведенных в уме )) ), мы можем заглянуть внутрь def-файлов:


Как и предполагалось, def-файл содержит в себе refresh-token (начинается с символов 0.AX…), используемый AAD.Core для обновления JWT. Помимо refresh-токена, в файле присутствуют JWT access токены, очевидно полученные с помощью refresh-токенов. Правда, в отличие от JWT из tokenbroker, эти JWT действительны только в течение 1 часа после выпуска. Также в файле присутствуют URL и Microsoft application ID (уникальный GUID, определяющий облачное приложение в инфраструктуре Microsoft), указывающие на область действия refresh и access токенов (ресурс в облаке Microsoft).
Внутри каталога AAD.BrokerPlugin\LocalState находятся несколько подкаталогов со специфичными псевдослучайными названиями. В зависимости от количества установленных в системе приложений, таких каталогов, как правило, насчитывается штук 10-15. Но имена у них всегда одинаковые на всех системах независимо от версии, битности операционной системы, или самого приложения. Так, например, для офисных приложений это имя c_ko4enbntgqc0mpmhkk69sogh. Внутри этих подкаталогов расположены def-файлы, содержащие уже непосредственно данные для самих приложений.
Исходя их этих данных, а также из полей внутри JWT, нам удалось сопоставить имена каталогов с соответствующими приложениями:
Список приложений Windows в определенном формате в PowerShell
Чтобы получить список всех установленных приложений, откройте окно PowerShell с повышенными правами и введите:
Get-AppxPackage -AllUsers | Select Name
Это создаст список установленных приложений. Пример:
Microsoft.WindowsCalculator NAVER.LINEwin8 4DF9E0F8.Netflix
Мне нужно получить список, который не отображает префикс. Пример:
WindowsCalculator LINEwin8 Netflix
Как получить список установленных приложений без префикса, который предшествует пунктуации?
3 комментария
Я не думаю, что ты можешь. . является заменой пробела, и имя может содержать более одного пробела как для имени программы, так и для имени издателя. Get-Appxpackage не генерирует ничего другого, что помогает. LPChip 6 лет назад 2
Это позор, но я понимаю, что это странная просьба, хотя . Arete 6 лет назад 0
Вы всегда можете разделить имя на точку, а затем взять последний член полученного массива . например, если имя приложения хранится в `$ App`, то` ($ App -split «\.») [ -1] `получает имя после последнего периода. Jeff Zeitlin 6 лет назад 0
Комментировать
1 ответ на вопрос
LotPings 2017-06-21 в 19:59
При буквальном подходе вы получите последний . отделенный элемент от имени, но будет много записей 0,1,2,3,4,6,00,xaml из приложений с добавленной информацией о версии и типом xaml:
Get-AppxPackage -AllUsers | Select -Expand Name|%
BrokerPlugin Microsoft.AAD.BrokerPlugin BioEnrollment Microsoft.BioEnrollment LockApp Microsoft.LockApp MicrosoftEdge Microsoft.MicrosoftEdge PPIProjection Microsoft.PPIProjection ChxApp Microsoft.Windows.Apprep.ChxApp AssignedAccessLockApp Microsoft.Windows.AssignedAccessLockApp CloudExperienceHost Microsoft.Windows.CloudExperienceHost ContentDeliveryManager Microsoft.Windows.ContentDeliveryManager Cortana Microsoft.Windows.Cortana ParentalControls Microsoft.Windows.ParentalControls SecondaryTileExperience Microsoft.Windows.SecondaryTileExperience SecureAssessmentBrowser Microsoft.Windows.SecureAssessmentBrowser XboxGameCallableUI Microsoft.XboxGameCallableUI ContactSupport Windows.ContactSupport immersivecontrolpanel windows.immersivecontrolpanel MiracastView Windows.MiracastView PrintDialog Windows.PrintDialog 3 Microsoft.NET.Native.Runtime.1.3 3 Microsoft.NET.Native.Runtime.1.3 3 Microsoft.NET.Native.Framework.1.3 3 Microsoft.NET.Native.Framework.1.3