it-swarm-ru.tech

Как вы узнаете, использует ли Active Directory Kerberos или NTLM?

Есть ли программа командной строки, которую вы можете использовать?

15
LeWoody

Я думаю, что вопрос должен быть закручен с ног на голову. Active Directory поддерживает как Kerberos, так и NTLM. Сначала Windows попытается выполнить Kerberos, и если все требования не будут выполнены, она вернется к NTLM.

Я приведу вам пример: доступ к файловому ресурсу по имени, например\server1\share, вызовет Kerberos и должен успешно выполняться при наличии соответствующего разрешения. Но доступ к той же общей папке с использованием IP-адреса сначала вызовет Kerberos и завершится неудачно (так как для IP-адреса нет имени участника-службы), а затем переключится на NTLM.

Поэтому определите, как ваша программа пытается пройти аутентификацию в AD, и должна указать, какой протокол используется.

Мне было бы интересно узнать, что побудило вас задать этот вопрос.

9
KAPes

Вы можете просмотреть список активных билетов Kerberos, чтобы увидеть, есть ли один для интересующей службы, например, запустив klist.exe .

Есть также способ регистрировать события Kerberos, если вы взломаете registry .

6
TonyUser

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

Вы можете изменить свою Политику аудита с помощью групповой политики: Пуск ... Выполнить ... gpedit.msc ... Конфигурация компьютера, Параметры Windows, Параметры безопасности, Локальные политики, Политика аудита, "Аудит событий входа в систему". Установите флажки "Успех" и "Сбой". Попробуйте выйти и войти, чтобы увидеть некоторые типичные события 540 в журнале событий безопасности Windows.

2
Eric H

Netstat показывает все прослушивающие TCP и UDP-соединения. Использование опции -na для всех соединений и без разрешения имен или портов. Опция 'b' показывает программу, связанную с ней. Если DNS работает, он может показать много других соединений, поэтому вы можете также указать TCP.

Kerberos наиболее точно работает, если он развернут контроллер домена Active Directory.

netstat -nab

0
Jason B Shrout

Вы можете попробовать этот инструмент. http://blog.michelbarneveld.nl/media/p/33.aspx

Это инструмент для проверки подлинности на веб-сайтах. Он покажет, какой тип аутентификации используется: Kerberos, NTLM, basic, none. Но он также показывает другую информацию, такую ​​как: используемый SPN, заголовки HTTP, расшифрованные заголовки авторизации NTLM и Kerberos. И он также может показать и удалить ваши билеты Kerberos.

0
Davis

Предполагая, что вы проверяете события входа в систему, проверьте журнал событий безопасности и найдите 540 событий. Они скажут вам, была ли определенная аутентификация выполнена с Kerberos или NTLM.

0
Boden
 public string FindAllUsers()
        {
            string strReturn="";
            try
            {
                DirectoryEntry directoryEntry = new DirectoryEntry("WinNT://" + Environment.UserDomainName);
                string userNames = "";
                string authenticationType = "";
                foreach (DirectoryEntry child in directoryEntry.Children)
                {
                    if (child.SchemaClassName == "User")
                    {
                        userNames += child.Name + Environment.NewLine; //Iterates and binds all user using a newline
                        authenticationType += child.Username + Environment.NewLine;
                    }
                }

                strReturn = userNames + "\n\n" + authenticationType;
                //Console.WriteLine("************************Users************************");
                //Console.WriteLine(userNames);
                //Console.WriteLine("*****************Authentication Type*****************");
                //Console.WriteLine(authenticationType);
            }
            catch (Exception)
            {
                Console.WriteLine("Network error occured.");
                strReturn = "";
            }
            return strReturn;
        }
0
user262211