Взлом грубой силы в среде терминального сервера

Опубликовано: 24 Апреля, 2023

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

Введение

Угадывание паролей — один из старейших, но в то же время один из самых эффективных методов получения доступа к системе. Причина того, что это один из самых эффективных методов взлома, заключается в том, что во всем процессе есть слабое звено: люди. Это потому, что людям больше нравится «samantha1» в качестве пароля, чем «Tr15%^<<lOPi>!+». Хотя последний пароль взломать гораздо труднее, чем первый, есть большая вероятность, что ни один пользователь никогда не запомнит последний пароль.

Этим и пользуются хакеры. Единственное, что нужно хакеру, — это «автомобиль» для входа в систему. Это может быть командная строка, веб-страница или… подключение к удаленному рабочему столу Microsoft, которое удобно включено в каждую последнюю версию Windows или доступно на сайте загрузки Microsoft.

Хакерский сленг

Для ясности я кратко рассмотрю некоторые термины, используемые в отношении взлома паролей. По сути, существует два вида атак взлома паролей:

  • Взлом грубой силы, также известный как взлом словаря
  • Взлом пароля, также известный как взлом хэшей.

В этой статье мы сосредоточимся на взломе методом грубой силы с использованием атак по словарю. Это просто означает, что хакер будет использовать инструмент для автоматизации подбора пароля с сопровождающим файлом словаря: файл, который содержит все пароли, которые хакер хочет попробовать. Обычно в файле словаря есть десятки тысяч паролей, и хакерский инструмент пробует их все, забивая сервер попытками входа в систему: отсюда и термин «взлом методом грубой силы».

Влияние подбора пароля в среде терминального сервера

Как и в других областях безопасности, среда терминального сервера занимает особое место. Это связано с тем, что серверы терминалов по своей природе допускают интерактивный доступ. Интерактивный доступ в этом контексте означает, что вы вошли на сам сервер. Это тот же эффект, как если бы вы подошли к консоли в центре обработки данных и вошли в нее. Это в основном позволяет вам выполнять любую программу, которую вы можете получить, и запускать ее в пространстве памяти этого сервера.

Еще одна важная проблема, возникающая из-за того, что терминальные серверы занимаются предоставлением интерактивного доступа, — это проблема с блокировкой администратора. Как вы, наверное, знаете, по умолчанию учетная запись локального администратора не может быть заблокирована. Даже если вы используете утилиту passprop, вы можете заблокировать учетную запись администратора только для удаленного входа в систему, а не для интерактивного входа (вход на сервер терминалов). Только использование passprop в Windows Server 2003 позволяет заблокировать учетную запись локального администратора. Поскольку это может фактически полностью заблокировать вас от вашей собственной сети, эта конфигурация не используется часто. Хакеры знают об этом и используют эти знания для выполнения попыток грубого взлома учетных записей администраторов.

Инструмент взлома сервера терминалов грубой силой: TSGrinder

Есть несколько инструментов, которые позволяют вам подобрать пароль методом грубой силы в среде вашего терминального сервера. Однако наиболее известным является бесплатный инструмент под названием TSGrinder. TSGrinder — это инструмент командной строки, который в основном позволяет автоматизировать подбор пароля через RDP-соединения. TSGrinder — инструмент атаки на основе «словаря», поддерживает несколько окон атаки из одного файла словаря (вы можете указать это в командной строке программы).

Очень интересной опцией в программе является функция «leet». Эта функция позволяет программе справиться с популярной разработкой в области паролей. Я имею в виду, что, начиная со знающего пользователя, люди склонны защищать свои пароли, заменяя буквы общеизвестными символами. Например, пароль становится [email protected] (замена a на @ и o на 0). Это очень хорошо продуманный вариант, потому что, как мы увидим, попытка использовать эти пароли не требует от вас изменения файла словаря.

Еще один очень интересный вариант — вариант «баннер». Что делает эта опция, так это подтверждает любые сообщения перед входом в систему. Это тип сообщений, которые вы должны подтвердить, прежде чем вы сможете войти на сервер, обычно это какой-то юридический отказ от ответственности. Это сообщение при входе в систему можно настроить в групповой политике в разделе «Политики компьютера» > «Параметры безопасности» > «Локальные политики» > «Параметры безопасности» > «Интерактивный вход».

Это было проблемой в более ранних версиях TSGrinder, но сейчас она исправлена. Эта опция в основном делает сообщение-баннер бесполезным в качестве меры противодействия такого рода атакам.

TSGrinder также поддерживает несколько попыток ввода пароля в одном и том же соединении и позволяет вам указать, сколько раз использовать комбинацию имени пользователя и пароля в рамках определенного соединения (по умолчанию — 5). Это используется хакерами, чтобы избежать обнаружения, потому что по умолчанию после 5 неудачных попыток входа в систему сервер терминалов разрывает соединение, и событие регистрируется в журнале событий сервера терминалов. Событие выглядит так:

Таким образом, в конфигурации TSGrinder по умолчанию вы можете указать, что кто-то пытается ввести около 1 000 000 паролей, и в журнале событий не будет ни одного события (аудит исключен, мы доберемся до этого).

Давайте посмотрим на TSGrinder. Программа поставляется с очень ограниченным словарем и leet-файлом. Вы можете быть уверены, что у хакеров есть гораздо более продвинутые словари. Запуск TSGrinder из командной строки дает справку:

Применение:

tsgrinder.exe [параметры] сервер

Опции:

-w файл словаря (по умолчанию 'dict')

-l 'leet' файл перевода

-d доменное имя

-u имя пользователя (по умолчанию «администратор»

-b флаг баннера

-n количество одновременных потоков

-D уровень отладки (по умолчанию 9, чем меньше число, тем больше вывод)

Пример:

tsgrinder.exe -w слова -l leet -d рабочая группа -u администратор -b -n 2 10.1.1.1

Как видите, использование довольно простое. Вы можете попробовать это на своем собственном тестовом сервере, как это сделал я.

Отказ от ответственности: Будьте предельно осторожны при использовании этого инструмента. Использование TSGrinder может привести к судебным искам против вас, поскольку ваши действия могут быть расценены как настоящая попытка взлома.

В этом очень простом примере мы предполагаем, что:

  • у нас есть файл словаря под названием «testdict»
  • у нас есть leetfile под названием «testleet»
  • имя пользователя, которого мы атакуем, по умолчанию, администратор
  • мы хотим подтвердить любые баннерные сообщения входа в систему
  • мы хотим иметь 1 одновременный поток
  • сервер, который мы атакуем, имеет следующий IP-адрес: 192.168.62.53

Это оставило бы нас со следующей командной строкой:

tsgrinder.exe -w testdict -l testleet -b -n 1 -D 8 192.168.62.53

Как вы можете видеть на скриншоте ниже, через некоторое время tsgrinder аккуратно обнаруживает, что я использовал [email protected]! как мой пароль администратора. Это так просто.

Контрмеры

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

Переименовать учетную запись администратора

Вы должны знать, что переименование учетной записи администратора считается лучшей практикой. Если вы не знали об этом раньше, я очень надеюсь, что вы знаете сейчас. Когда вы переименовываете (локальную) учетную запись администратора, хакер не может использовать учетную запись администратора для атаки и должен знать точное имя переименованной учетной записи администратора. Это также имеет дополнительное преимущество, заключающееся в том, что вы можете создать фиктивную учетную запись администратора, которую можно заблокировать (у вас настроена блокировка учетной записи, верно?)

Безопасность подключения

В идеале вы хотели бы убедиться, что пользователи уже каким-то образом проверены , прежде чем они попытаются войти на сервер терминалов. Раньше это было огромной проблемой, но теперь есть бесплатный инструмент, который делает именно это и многое другое! Инструмент называется 2X SecureRDP. 2X SecureRDP работает, принимая или отклоняя входящие подключения RDP по IP, Mac-адресу, имени компьютера, версии клиента или в зависимости от времени суток, еще до того, как отобразится экран входа в систему. Это значительно расширяет возможности контроля над терминальными серверами. В качестве дополнительного бонуса вы можете ограничить пользователей одним одновременным сеансом. На самом деле это не предотвращает атаки грубой силы, но это очень хорошая функция, которую, как я знаю, ищут многие администраторы. Еще одна замечательная особенность этой программы заключается в том, что вы можете регистрировать информацию для каждого разрешенного или запрещенного соединения и сохранять ее в файл журнала. Ниже приведен скриншот 2X SecureRDP.

Конечно, этот инструмент предназначен не только для терминальных серверов. Он отлично подходит для любого сервера, к которому вы получаете доступ через RDP. Фактически, я рекомендую использовать этот инструмент на каждом сервере с поддержкой RDP.

Аудиторская проверка

Включите расширенный аудит. Итак, это не предотвращает атаки грубой силы, но, по крайней мере, позволяет вам регистрировать такие атаки. Следует проводить аудит успешных и неудачных входов в систему. Поскольку эти журналы аудита, как правило, очень быстро засоряются на загруженном сервере, вам следует подумать об автоматизированном инструменте аудита. Эти виды инструментов отслеживают и фильтруют журналы событий безопасности, чтобы вы могли видеть то, что вам нужно, и получать предупреждения, когда что-то идет не так. Примером и моим личным фаворитом такой программы является SELM (монитор журнала событий безопасности) от GFI. См. список известных подобных программ здесь.

Сообщение о входе в систему

Вы должны настроить все свои серверы для отображения сообщения при входе в систему, которое должно быть подтверждено, прежде чем вы сможете перейти к входу на сервер. На самом деле это не техническая контрмера, а скорее юридическая. Как только вы подтвердите сообщение о входе в систему, преступник не сможет сказать: «Я понятия не имел, что мне нельзя входить на этот сервер»……..

Вывод

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