В компьютерной безопасности передача хэша — это метод взлома, который позволяет злоумышленнику пройти аутентификацию на удаленном сервере или в службе, используя базовый хэш NTLM или LanMan пароля пользователя, вместо того, чтобы требовать связанный с ним текстовый пароль, как это обычно бывает. Он заменяет необходимость кражи текстового пароля для получения доступа кражей хэша.
Атака использует уязвимость протокола аутентификации, где хэши паролей остаются статичными от сеанса к сеансу до тех пор, пока пароль не будет изменен.
Эту технику можно применить к любому серверу или службе, принимающей аутентификацию LM или NTLM, независимо от того, работает ли она на компьютере с Windows, Unix или любой другой операционной системой.
В системах или службах, использующих аутентификацию NTLM, пароли пользователей никогда не отправляются в открытом виде по сети. Вместо этого они предоставляются запрашивающей системе, например контроллеру домена , как хэш в ответе на схему аутентификации «вызов-ответ» . [1]
Собственные приложения Windows запрашивают у пользователей пароль в открытом виде, а затем вызывают API, такие как LsaLogonUser [2], которые преобразуют этот пароль в одно или два хэш-значения (LM или NT-хэши), а затем отправляют его на удаленный сервер во время аутентификации NTLM. [Примечания 1] [3]
Если у злоумышленника есть хэши пароля пользователя, ему не нужен открытый текст пароля; он может просто использовать хэш для аутентификации на сервере и выдавать себя за этого пользователя. [4] [5] [6] [ постоянная неработающая ссылка ] Другими словами, с точки зрения злоумышленника хэши функционально эквивалентны исходным паролям, из которых они были сгенерированы.
Техника pass the hash была первоначально опубликована Полом Эштоном в 1997 году [6] и состояла из модифицированного клиента Samba SMB , который принимал хэши паролей пользователей вместо открытых текстовых паролей. Более поздние версии Samba и другие сторонние реализации протоколов SMB и NTLM также включали эту функциональность.
Эта реализация техники была основана на стеке SMB, созданном третьей стороной (например, Samba и другими), и по этой причине страдала от ряда ограничений с точки зрения хакера, включая ограниченную или частичную функциональность: Протокол SMB продолжал развиваться на протяжении многих лет, это означает, что третьи стороны, создающие свою собственную реализацию протокола SMB, должны были внедрять изменения и дополнения в протокол после того, как они были введены более новыми версиями Windows и SMB (исторически путем обратного проектирования, что очень сложно и требует много времени). Это означает, что даже после успешного выполнения аутентификации NTLM с использованием техники передачи хэша , инструменты, такие как клиент SMB Samba, могли не реализовать функциональность, которую злоумышленник мог бы захотеть использовать. Это означало, что было трудно атаковать программы Windows, которые использовали DCOM или RPC.
Кроме того, поскольку злоумышленники были ограничены использованием сторонних клиентов при проведении атак, было невозможно использовать встроенные приложения Windows, такие как Net.exe или инструмент Active Directory Users and Computers и другие, поскольку они просили злоумышленника или пользователя ввести открытый пароль для аутентификации, а не соответствующее ему хэш-значение пароля.
В 2008 году Эрнан Очоа опубликовал инструмент под названием «Pass-the-Hash Toolkit» [7] , который позволял «передавать хэш» нативно в Windows. Он позволял изменять имя пользователя, доменное имя и хэши паролей, кэшированные в памяти Local Security Authority, во время выполнения после аутентификации пользователя — это позволяло «передавать хэш» с помощью стандартных приложений Windows и тем самым подрывать фундаментальные механизмы аутентификации, встроенные в операционную систему.
Инструмент также представил новую технику, которая позволяла выгружать хэши паролей, кэшированные в памяти процесса lsass.exe (не в постоянном хранилище на диске), что быстро стало широко использоваться тестировщиками на проникновение (и злоумышленниками). Эта техника сбора хэшей является более продвинутой, чем ранее используемые техники (например, выгрузка локальной базы данных диспетчера учетных записей безопасности (SAM) с помощью pwdump и подобных инструментов), в основном потому, что значения хэшей, хранящиеся в памяти, могут включать учетные данные пользователей домена (и администраторов домена), которые вошли в машину. Например, хэши аутентифицированных пользователей домена, которые не хранятся постоянно в локальном SAM, также могут быть выгружены. Это позволяет тестировщику на проникновение (или злоумышленнику) скомпрометировать весь домен Windows после компрометации одной машины, которая была членом этого домена. Более того, атака может быть реализована мгновенно и без необходимости в дорогостоящих вычислительных ресурсах для проведения атаки методом подбора.
Этот набор инструментов впоследствии был заменен «Windows Credential Editor», который расширяет функциональность оригинального инструмента и поддержку операционной системы. [8] [9] Некоторые поставщики антивирусных программ классифицируют набор инструментов как вредоносное ПО. [10] [11]
Прежде чем злоумышленник сможет провести атаку pass-the-hash, он должен получить хэши паролей целевых учетных записей пользователей. Для этого тестировщики на проникновение и злоумышленники могут собирать хэши паролей, используя ряд различных методов:
Любая система, использующая аутентификацию LM или NTLM в сочетании с любым протоколом связи (SMB, FTP, RPC, HTTP и т. д.), подвержена риску этой атаки. [1] От этой уязвимости очень сложно защититься из-за возможных эксплойтов в Windows и приложениях, работающих в Windows, которые могут быть использованы злоумышленником для повышения своих привилегий, а затем для сбора хэшей, облегчающего атаку. Более того, для того, чтобы злоумышленник нашел способ проникновения, может потребоваться всего лишь одна машина в домене Windows, которая не была правильно настроена или на которой отсутствовало исправление безопасности. Кроме того, доступен широкий спектр инструментов для тестирования на проникновение, которые автоматизируют процесс обнаружения уязвимости на машине.
Не существует единой защиты от этой техники, поэтому применяются стандартные методы глубокой защиты [12] — например, использование брандмауэров , систем предотвращения вторжений , аутентификации 802.1x , IPsec , антивирусного программного обеспечения , сокращение числа людей с повышенными привилегиями, [13] проактивное исправление безопасности [14] и т. д. Запрет Windows на хранение кэшированных учетных данных может ограничить злоумышленников в получении хэшей из памяти, что обычно означает, что целевая учетная запись должна быть зарегистрирована на машине, когда выполняется атака. [15] Разрешение администраторам домена входить в системы, которые могут быть скомпрометированы или ненадежны, создаст сценарий, в котором хэши администраторов станут целями злоумышленников; ограничение входа администраторов домена доверенными контроллерами домена может, таким образом, ограничить возможности для злоумышленника. [12] Принцип наименьших привилегий предполагает, что следует использовать подход наименьшего доступа пользователя (LUA), в котором пользователи не должны использовать учетные записи с большими привилегиями, чем необходимо для выполнения поставленной задачи. [12] Настройка систем без использования LM или NTLM также может усилить безопасность, но более новые эксплойты способны пересылать билеты Kerberos аналогичным образом. [16] Ограничение области действия привилегий отладки в системе может помешать некоторым атакам, которые внедряют код или крадут хэши из памяти конфиденциальных процессов. [12]
Ограниченный режим администратора — это новая функция операционной системы Windows, представленная в 2014 году в бюллетене по безопасности 2871997, которая предназначена для снижения эффективности атак. [17]
{{cite journal}}
: Цитировать журнал требует |journal=
( помощь ){{cite journal}}
: Цитировать журнал требует |journal=
( помощь )