Повышение безопасности с помощью Credential Guard
Незадолго до выпуска Windows Server 2016 меня и нескольких других технических журналистов пригласили в Редмонд на семинар для обозревателей. Microsoft обычно проводит такие семинары для технических журналистов перед выпуском основных продуктов, чтобы помочь нам быстро узнать о функциях и архитектуре продукта. Хотя основная часть содержания этих семинаров для рецензентов носит технический характер, обычно к презентации прилагается несколько тонкое маркетинговое сообщение. На этот раз сообщения Microsoft были как нельзя более четкими. Перефразируя, сообщение заключалось в том, что мир становится все более опасным местом, поэтому Microsoft поставила безопасность во главу угла процесса разработки Windows Server 2016.
Должен признаться, что я был действительно впечатлен некоторыми функциями безопасности, которые Microsoft представила в своей последней операционной системе. Одной из таких функций является защита учетных данных. Как следует из названия, защита учетных данных — это механизм, предназначенный для предотвращения кражи учетных данных. Это имеет большое значение для предотвращения передачи хеша и других типов атак с повышением привилегий.
Прежде чем я начну говорить о том, как работает защита учетных данных, я хочу уделить немного времени разговору о передаче хеш-атак. Я надеюсь, что, зная, как работают хеш-атаки, вы будете лучше подготовлены к тому, чтобы оценить то, что Microsoft сделала с Credential Guard.
Первое, что вам нужно знать о передаче хеш-атак, это то, что существует несколько вариантов. Поскольку я хотел бы начать обсуждение Credential Guard в какой-то момент, я не собираюсь превращать это в исчерпывающее обсуждение атак pass the hash. Вместо этого я сосредоточусь на одной из наиболее популярных форм.
Передача хеш-атак основана на двух основных принципах. Первый принцип заключается в том, что для хакера важно получить доступ к учетной записи пользователя, независимо от того, насколько эта учетная запись может быть ограничена. Причина этого в том, что даже самая простая учетная запись пользователя может помочь хакеру закрепиться в сети.
Второй принцип, который является ключом к пониманию прохождения хеш-атак, заключается в том, что хакеру не обязательно знать пароль пользователя, чтобы скомпрометировать систему. Иногда наличие хэша пароля работает так же хорошо, как наличие фактического пароля. Это важно, потому что операционная система Windows на самом деле не хранит пароли пользователей, а хранит хэши паролей. Если бы Windows хранила настоящие пароли, хакеру было бы относительно легко взломать и украсть пароли. Вместо этого Windows берет пароль пользователя, а затем передает его математической функции для создания хэша. Хэш создается таким образом, что его нельзя подвергнуть обратному проектированию, чтобы получить пароль из хэша. На TechNet есть интересная статья, в которой подробно объясняется, как работает процесс хеширования и как пароли (или, скорее, хэши паролей) хранятся в Windows (https://technet.microsoft.com/en-us/library/hh994558(v= ws.10).aspx).
Итак, теперь, когда вы знаете, как хэши паролей используются в операционной системе Windows, фраза «передать хэш», вероятно, начинает обретать немного больше смысла. Но ради интереса давайте представим, что я хакер и предпочитаю передачу хэша, и что я хочу использовать эту технику, чтобы получить полный административный доступ к чьей-то сети. Давайте также представим, что все пользователи сети используют надежные пароли.
Как хакеру, первое, что мне нужно, это точка входа в сеть. Однако техника pass the hash мне в этом помочь не может. Передать хэш можно только после получения доступа к сети.
В таком случае я, как хакер, скорее всего, попытаюсь использовать социальную инженерию, чтобы получить доступ к сети. Я могу звонить пользователям по телефону и притворяться, что я из техподдержки. Наивный пользователь может раскрыть свой пароль и информацию о корпоративной VPN. Другой вариант — каким-то образом заставить пользователя запустить троянскую программу, которая перехватывает пароль пользователя и некоторую базовую информацию о сети. Независимо от того, какой метод используется, первым шагом в этом процессе должно быть получение пароля пользователя и поиск портала, через который можно получить удаленный доступ к сети.
Итак, давайте представим, что я обманом заставил пользователя установить трояна, который дает мне удаленный доступ к его ПК, и что троянец оснащен регистратором нажатий клавиш, поэтому мне удалось перехватить пароль пользователя. Теперь я могу войти как пользователь. Однако, чтобы сделать вещи интересными, давайте предположим, что у пользователя нет доступа ни к чему интересному.
Даже если этот конкретный пользователь не имеет никакого полезного доступа к сети, это не имеет большого значения. Важно то, что я, как хакер, зашел на настольный ПК пользователя и теперь имею доступ к содержимому этого устройства. Из-за того, как работает Windows, хэш пароля пользователя хранится на устройстве. Однако хэши паролей для любого другого пользователя, недавно вошедшего на ПК, также хранятся на жестком диске ПК. Я могу захватить эти хэши и использовать их для входа в сеть, чтобы увидеть, куда они меня приведут.
Скорее всего, ни один из хэшей паролей, хранящихся на устройстве, не предоставит доступ к чему-либо полезному. Даже в этом случае я могу использовать пароль пользователя для входа на другие ПК. Это дало бы мне возможность изучить хэши паролей, хранящиеся на этих компьютерах. Если я соберу хэши с достаточного количества ПК, то рано или поздно я, вероятно, найду ПК, на который недавно входил администратор. Как только у меня будет хэш административного пароля, я смогу получить административный контроль над сетью.
Вывод
Моя цель в этой статье не в том, чтобы научить вас взламывать сеть Windows. На самом деле, я намеренно опустил некоторые тонкости взлома хэша, чтобы не давать подробных инструкций потенциальным хакерам. Однако дело в том, что передача хеша является популярным методом взлома, и новая функция Microsoft Credential Guard может помочь предотвратить этот тип взлома. В следующей статье я покажу вам, как работает Credential Guard.