Я пытаюсь создать тикет для удаленного помощника. Часть этого требует создания параметра PassStub. По состоянию на документацию:
http://msdn.microsoft.com/en-us/library/cc240115(PROT.10).aspx
PassStub: зашифрованная строка пароля начинающего компьютера. Когда пульт
Строка подключения Assistance отправляется в виде файла по электронной почте, чтобы обеспечить дополнительную безопасность,
используется пароль. <16>
В части 16 они подробно описывают, как создать как PassStub.
В Windows XP и Windows Server 2003, когда используется пароль, он шифруется с использованием
PROV_RSA_FULL предопределенный провайдер криптографии с хешированием MD5 и CALG_RC4, RC4
алгоритм потокового шифрования.
Как PassStub выглядит так в файле:
PassStub = "LK # 6Lh * gCmNDpj"
Если вы хотите создать его самостоятельно, запустите msra.exe в Vista или запустите средство удаленного помощника в WinXP.
В документации говорится, что эта заглушка является результатом функции CryptEncrypt с ключом, полученным из пароля и зашифрованным с помощью идентификатора сеанса (они также находятся в файле заявки).
Проблема в том, что CryptEncrypt создает двоичный выходной путь, превышающий 15-байтовый PassStub. Также PassStub не кодирует никоим образом, который я видел прежде.
Несколько интересных вещей о кодировке PassStub. После проведения статистического анализа 3-й символ всегда является одним из:! # $ & () + - = @ ^. Только символы, видимые повсюду: * _. В противном случае допустимыми символами являются 0-9 a-z A-Z. Всего допустимых 75 символов, и они всегда 15 байтов.
Запуск msra.exe с одним и тем же паролем всегда генерирует другой PassStub, указывая на то, что это не прямой хеш, а, как говорится, включает rasessionid.
Другая идея, которая у меня возникла, заключается в том, что это не прямой результат CryptEncrypt, а результат рассионионида в хеше MD5. В MS-RA (http://msdn.microsoft.com/en-us/library/cc240013(PROT.10).aspx). "Новичок PassStub" просто закодирован в шестнадцатеричном формате и выглядит как правильная длина. Проблема в том, что я понятия не имею, как перейти от любого хэша к тому, как выглядит PassStub.