• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

Помощь с приложением на C# для NTLM аутентификации

Fake1sBack

New member
26.11.2019
1
0
BIT
0
Я работаю над приложением С#, которое выполняет аутентификацию NTLM. Я создал серверное приложение ASP.NET Core и настроил его на использование NTLM.
C#:
 public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
            .ConfigureWebHostDefaults(webBuilder =>
            {
                webBuilder.UseHttpSys(options =>
                {
                    options.Authentication.Schemes = Microsoft.AspNetCore.Server.HttpSys.AuthenticationSchemes.NTLM;
                    options.Authentication.AllowAnonymous = false;
                });
                webBuilder.UseUrls("http://192.168.1.45:5000");
                webBuilder.UseStartup<Startup>();
            });
Клиентское консольное приложение Код консольного приложения. Моя операционная система Windows 10.
Клиент посылает NTLM Negotiate сообщение и сервер отвечает NTLM Challenge сообщением. Проблемы начинаются на 3-тем этапе. При отправке клиентом 3 типа сообщения (NTLM Authenticate) сервер всегда отвечает 401 Unauthorized. Если заходить на сайт через браузер, то браузер успешно делает аутентификацию и на 3-тий тип сообщения сервер отвечает статусом 200.
Пробовал локальную аутентификацию с пустыми LM,NTLM,Domain Name,User Name и Host Name полями . Единственное различие между моим сообщением и тем что отправляет браузер, так это поле MIC. Подозреваю, что проблема в реализации подсчёта MIC.
Я пробовал библиотеки Python, такие как ntlm-auth и impacket, для аутентификации ntlm, но результат тот же.
Когда конфигурация серверного приложения была изменена для использования IIS вместо HTTPSys, система начала выполнять аутентификацию по . Не знаю, что там выполняется. В конце концов, когда система выполняет аутентификацию, это 200 OK, а когда мое приложение выполняет аутентификацию, это 401 Unauthorized.
Что я собственно хочу, так это сделать хотя-бы успешную локальную NTLM аутентификацию и узнать что выполняется на .
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!