Я пытаюсь изучить и внедрить SMB2 Server. Мне очень интересно изучить GSS-API (NTLMSSP, NTLMSSP_AUTH) внутри. Итак, я экспериментирую со своим собственным компонентом GSS-API. Я прочитал описание mechListMIC в RFC4178 и RFC2478. Но я не мог понять, как вычислить mechListMIC для ответа "SessionSetup Response, Unknown message type".
На самом деле, я могу сгенерировать mechListMIC для фазы negTokenInit 'NegotiateProtocol Response'. Но проблема в том, что когда клиент отправляет запрос 'SessionSetup Request, NTLMSSP_AUTH, User: Domain\Administrator, Unknown message type', я не могу понять, как он генерирует 'mechListMIC: 01 00 00 00 78 1E E9 4A DB 99 7F E9 00 00 00 00' и как мне отправить ответ обратно в 'SessionSetup Response, Unknown message type' с соответствующим mechListMIC strong> на основе предыдущего запроса SessionSetup.
Я попытался использовать следующую информацию: SMB2.CSessionSetup.securityBlob.GSSAPI.InitialContextToken.InnerContextToken.SpnegoToken.NegTokenInit.MechTypes, шестнадцатеричные данные = 30 0C 06 0A 2B 06 01 04 01 82 37 02 02 0A
И SMB2.CSessionSetup.securityBlob.GSSAPI.NegotiationToken.NegTokenResp.MechListMic, шестнадцатеричные данные = 01 00 00 00 78 1E E9 4A DB 99 7F E9 00 00 00 00
SecBuffer SignBuffers[2];
SignBufferDesc.ulVersion = SECBUFFER_VERSION; // SECBUFFER_VERSION = 0
SignBufferDesc.cBuffers = 2;
SignBufferDesc.pBuffers = SignBuffers;
SignBuffers[0] = 30 0C 06 0A 2B 06 01 04 01 82 37 02 02 0A;
SignBuffers[1] = 01 00 00 00 78 1E E9 4A DB 99 7F E9 00 00 00 00;
SignBuffers[0].BufferType = SECBUFFER_DATA; // SECBUFFER_DATA = 1
SignBuffers[1].BufferType = SECBUFFER_TOKEN; // SECBUFFER_TOKEN = 2
Может ли кто-нибудь сказать мне, какую информацию мне нужно использовать в алгоритме HMAC-MD5 (ключ, данные) для создания mechListMIC для ответа SessionSetup и как ?
Если можно создать пошаговый пример, используя мой тестовый пример, для вычисления mechListMIC для ответа 'SessionSetup Response, Unknown message type', это было бы очень полезно. для меня. Пожалуйста, дайте мне знать, если вам нужна дополнительная информация.
Спасибо,
Шишир