Конференция DEFCON 20. Захват за 60 секунд: от гостевой учетной записи до администратора домена Windows. Часть 1 Хорошо, что мы можем войти в локальную сеть, подменив DNS. А как насчет социальной инженерии, учитывающей предпочтения и склонности пользователей? Пентестеры знают, что в IE вы можете пометить файлы изображений, например в формате .
jpg, к сетевому пути UNC, а затем IE передаст это обратно в Windows и автоматически подключится к сетевой папке, пытаясь получить запрошенное изображение или что-то еще.
например , JavaScript, iFrame и т. д. Итак, сегодня в IE есть автоматическая аутентификация.
То же самое можно сделать в Firefox и Chrome, хотя люди считают эти браузеры более безопасными.
На этом снимке экрана показана консоль ошибок Firefox, в которой говорится, что браузер не может загрузить этот файл изображения из общедоступной сети, поскольку политика безопасности запрещает загрузку файлов, которые не находятся в контексте безопасности браузера.
Интересной особенностью нашего инструмента является то, что браузеры Firefox и Chrome можно заставить загружать файлы, просто отправив HTTP-заголовки для принудительной загрузки Content-Type: application/force-download, а затем открыв эти файлы из папки Temp или непосредственно с рабочего стола.
.
Итак, мы настроили контекст безопасности файлов и включили автоматическую аутентификацию на общем SMB, так что теперь вы можете заставить пользователей проходить аутентификацию на вашем мошенническом сервере.
Но что, если они не нажмут «загрузить файл» или не откроют его из папки Temp? В этом случае вы можете убедиться, что пользователи проходят автоматическую аутентификацию, просто просмотрев HTML-страницу в браузере.
Для этого вам необходимо подключить плагины к Firefox и Chrome. Мое внимание привлек плагин QuickTime, который часто устанавливается у пользователей по умолчанию.
Я знаю, что существуют десятки различных плагинов, но чаще всего вы видите людей с iTunes на своих iPhone и установленным QuickTime. Я просмотрел список функций QuickTime и задался вопросом, как я могу подключить его к моему мошенническому сетевому серверу, чтобы заставить людей проходить аутентификацию с использованием своего имени пользователя и пароля.
Мы немного подумали и решили, что можно вставить список воспроизведения в сетевой путь UNC, и тогда пользователи будут автоматически аутентифицироваться и обходить локальный контекст безопасности.
Нам нужно еще немного поработать над двумя другими плагинами, но на данный момент QuickTime отлично справляется со своей задачей.
Еще один способ заставить людей автоматически проходить аутентификацию на нашем сервере — это электронная почта.
Некоторые люди знают, что в Outlook вы можете использовать электронную почту в формате HTML или электронные письма в формате HTML. Если у нас есть общий сетевой ресурс, то мы можем вставить внутрь такое письмо, и если пользователь откроет это письмо, произойдет автоматическое подключение к этому ресурсу и его аутентификация.
Для наших целей вы можете использовать файлы в формате .
docs. Любой документ можно использовать так же, как вставленное UNC-изображение или HTML-файл, при открытии которого произойдет автоматическое подключение к общему сетевому ресурсу.
Не забудьте о файле Desktop.ini. Это малоизвестно, но вы можете создать этот файл для установки ресурсов рабочего стола, таких как значки и обои, и поместить его в «общую» папку.
В этом случае, опять же, система автоматически подключится для получения этих значков и «зарегистрируется», используя текущую учетную запись пользователя.
Аналогичным образом вы можете изменить настройки файла ярлыка с расширением .
lnk для автоматического подключения к ресурсу.
Таким образом, наш инструмент быстро и легко автоматически генерирует эти файлы .
ini или HTML. Последнее, о чем я хочу поговорить, — это MITM, или «человек посередине».
Вы можете перенаправить запросы аутентификации NTLM или встроить HTML-содержимое в страницы, поскольку инструмент этого не делает, и тем самым помочь ему выполнить свою работу.
Вот как вы можете заставить клиентов подключаться к мошенническому серверу, чтобы реализовать NTLM Relay. Существуют и другие инструменты, которые позволяют вам выполнять NTLM Relay через SMB или HTTP и заставлять пользователей проходить аутентификацию за вас.
Еще одна интересная особенность Squirtle — возможность сделать его отправной точкой для создания запросов API, где вы можете использовать любой написанный вами инструмент для получения сообщений типа 2 и 3. Сообщение типа 3 является окончательным запросом аутентификации.
Для его получения необходимо отправить сообщение API типа 2 и получить его обратно.
Я быстро написал API, который позволяет вам использовать любой набор инструментов, который вы хотите, вы можете изменять исходный код и использовать мошеннические серверы для подключения и так далее.
Однако, если вы пентестер или тестируете пользователей, вам нужны какие-то отношения, взаимное взаимодействие.
Поэтому наш инструмент включает в себя набор правил.
Я уже говорил, что все существующие инструменты отсылают пользователей к одному источнику, и мы должны определить, кто эти пользователи.
Я хотел сделать это в один клик, чтобы, как я уже сказал, получить права администратора домена за 60 секунд. Я прописал в наше приложение правила, основанные на том, что пользователи принадлежат группам, а цели принадлежат группам целей.
Как только мы выясним, что пользователь принадлежит к группе и может получить доступ к чему-либо при автоматическом подключении, нам не нужно заставлять его подключаться, ждать и надеяться, что он вернется.
Мы установили простое правило (которое я покажу позже в пользовательском интерфейсе): если пользователь находится в группе X, специальный модуль Y используется для выполнения действия Z над целевыми группами T. Я продемонстрирую, как это работает на примере пару секунд. Правила также заключаются в том, чтобы немедленно проверять запросы API, проверять общие правила и повторять это до тех пор, пока не наступит таймаут. После истечения тайм-аута вам необходимо ответить статическим запросом и сохранить состояние аутентификации, не позволяя пользователю отключиться.
Мы можем использовать SMB для подключения к SMB, HTTP для подключения к HTTP, HTTP для подключения к SMB и так далее, выполняя ретрансляцию NTLM. Проблема в том, что люди на самом деле не используют многие другие протоколы, поэтому я решил поближе взглянуть на такие протоколы, как LDAP и MSSQL. О LDAP я расскажу чуть позже, а пока отмечу, что MSSQL — классная штука, потому что мы можем получить базу данных, мы можем получить доступ к данным, и это потрясающе.
Поскольку мы имеем дело с клиентами, мы хотим, чтобы действия выполнялись автоматически сразу после нашего подключения.
Поэтому мы перечислили пользователей и группы, использующие Metasploit, который был представлен на конференции BlackHat в этом году.
Таким образом, будучи пентестером, я получил доступ к общим файлам, смог выполнять команды и получить информацию о целевых пользователях и целевых группах, не имея при этом прав администратора.
Однако, несмотря на все это, я не могу подключиться к контроллерам домена.
Причина в том, что по умолчанию большинство контроллеров домена подписаны SMB. Для тех, кто не знаком с подписями SMB, это механизм безопасности протокола SMB, также называемый подписями безопасности.
Он использует исходный хэш NTLM для подписи сеанса и подписывает каждый пакет, а если подписи нет, он отключает вас.
Поэтому по умолчанию мы не можем применить ретрансляцию NTLM к контроллеру домена.
Это меня разозлило, поэтому я решил узнать, как быстро и легко добраться до этого контроллера.
Вернемся на пару слайдов назад.
Оказывается, на контроллере домена по умолчанию включен LDAP, что позволяет осуществлять аутентификацию NTLM, и это здорово.
Но мы не смогли изменить пароль, поскольку обычно для изменения пароля или добавления пользователя требуется SSL, а SSL включен в LDAP, если у домена есть сертификат CA. Мы прописали в нашем инструменте возможность менять пароли пользователей, удалять и добавлять пользователей, составлять список доменов, извлекать хэши активных пользователей из памяти, входить в систему управления доменом и делать другие интересные вещи.
Самое замечательное, что можно добавлять пользователей в группы без SSL и прочего, так как пентестер можно брать и подключать аккаунты других пользователей, добавлять их в группу администраторов домена, если вы получили права администратора и т.д. так далее.
Вернемся к SMB. Во время моего 4-часового перелета сюда из Чикаго мне пришла в голову идея использовать для наших целей SMB SOCKS-прокси.
Знающие люди знают, что этот протокол позволяет приложениям взаимодействовать через брандмауэр, который блокирует прямые соединения, используя промежуточный сервер, к которому могут подключаться оба клиента.
То есть прокси-сервер SOCKS отправляет чистые данные от одного клиента к другому и обратно.
Таким образом, этот прокси-сервер может заменять пакеты NTLM ретранслируемыми данными.
Используя HTTP, мы можем связать серверы SharePoint с внутренними веб-сайтами.
Некоторые думают, что с NTLM проблем не будет, поскольку вы находитесь во внутренней сети, а как насчет внешних сетей? Иногда там тоже бывают серверы SharePoint, но не слишком часто.
Я подумал о том, что многие организации открыты для внешнего доступа, поддерживают NTLM и разрешают обмен веб-сервисами.
Для тех, кто не знаком с веб-службами Exchange (EWS): они представляют собой своего рода HTTP API, который обычно находится на том же сервере, что и веб-почта Outlook Web Access. По умолчанию они используют метод аутентификации HTTP Negotiate, который поддерживает NTLM, поэтому мы можем выполнить внешнюю ретрансляцию HTTP к службе, находящейся в EWS. Это вызывает беспокойство, поскольку посторонние могут получить доступ к переписке, контактам, календарям событий и устанавливать собственные правила электронной почты с помощью точек подключения HotSpot. Доступ к серверу EWS возможен через Интернет, если у него нет правил брандмауэра для исходящих подключений, которые не позволяют подключаться к мошенническому SMB-серверу и автоматически получать аутентификацию.
И все это возможно благодаря тому, что у каждого есть мобильный телефон, подключенный к сервисам EWS и синхронизированный с ними.
Теперь мне нужно выпить, потому что именно с этого я хотел начать демо.
Итак, на этом слайде показано, как выглядит графический интерфейс моего приложения ZackAttack. Я немного прокрутю страницу вниз, чтобы вы могли увидеть настройки действий, целей, целевых групп и групп пользователей.
Таким образом, вы сможете получить представление о его функциональности и о том, насколько мощным он может быть.
Прямо сейчас работают мошеннический HTTP-сервер, мошеннический SMB-сервер и мошеннический HTTP-сервер.
На следующем слайде показано, к каким группам принадлежат пользователи.
Здесь показано, кто и когда подключался к сети, поэтому вы можете отслеживать, какие пользователи повторно подключились.
Справа красным цветом показаны системные учетные записи и существующие учетные записи пользователей, откуда одним щелчком мыши вы можете перечислить цели по SMB, получать почту от веб-служб Exchange, использовать командную оболочку, если вы администратор сеанса, получать доступ к общим файлам, SharePoint , и так далее.
Как я уже сказал, мы можем создавать правила и добавлять пользователей в группы путем автоматического перечисления или путем создания групп вручную, например, путем создания группы под названием «moo».
Что-то у меня не получается, как я уже говорил, боги демки меня не любят. Нам придется вернуться и подправить кое-что в программе.
Извините, ребята, но это всего лишь альфа-релиз, я один написал этот код за 3 недели.
Теперь я добавлю группу под названием «яр», теперь вы можете видеть, что внизу появились обе эти группы с добавленным к ним выбранным пользователем.
Как я уже говорил, мы также можем перечислить разные группы пользователей с контроллера домена, это вкладка UserGroups, и создать правила автоматической аутентификации с помощью вкладки «Правила атаки».
Здесь вы видите пользователей вновь созданной группы Yar, которые могут быть подключены к веб-службам Exchange для определенных целей целевой группы, и здесь вы также можете добавить любой IP-адрес, например 10.1.10.250, в целевую группу.
Как только от кого-то из группы пользователей поступает запрос на аутентификацию, мы автоматически подключаемся к EWS и вытаскиваем все письма из папки «Входящие», из папки «Черновики» мы легко можем добавить еще одну папку, скажем папку «Отправленные».
Самое лучшее в этом инструменте то, что после аутентификации сеанс остается открытым на протяжении всего соединения с мошенническим сервером и всех этих действий.
Таким образом, нам не нужно проходить повторную аутентификацию для получения входящих писем.
Поскольку от системы поступает 30 запросов, мы можем для начала настроить около 30 правил, а затем выполнять самые разнообразные действия над этим конкретным соединением.
Как я уже сказал, мы можем повторить все эти шаги для всех пользователей и всех целей данного соединения или для конкретных целей.
В то же время мы можем сгенерировать полезную нагрузку, щелкнув вкладку «Полезные нагрузки аутентификации».
Отсюда вы можете создавать HTML-файлы для определения операционной системы пользователя и использовать один из трех методов для принудительной аутентификации браузера.
Здесь вы можете создать файл Desktop.ini для загрузки файлов в общие папки и использовать генератор файлов для вставки пути UNC в XML-файл .
doc, создавать файлы ярлыков .
lnk и файлы zip-архивов, точно так же, как автоматическое создание почтовых файлов XTML. Все это делается максимально просто с помощью Firesheep и NTLM Relaying. Наконец, на вкладке «Результаты+Журналы» мой инструмент отслеживает хэши пользователей, как и до статической аутентификации, поэтому вы можете попытаться взломать пароли.
Итак, это была демонстрация возможностей ZackAttack. Так как же мы можем защитить себя от этого? Защита заключается в ограничении поверхности атаки.
У каждого свои методы защиты от подобных атак.
Люди предлагают использовать NTLM версии 2. Мой инструмент поддерживает эту версию, но между версией 2 и версией 1 нет существенных различий.
Вы можете установить брандмауэр на исходящий порт 445, который защитит вас от отправки мошеннических полезных данных, вызывающих автоматическую аутентификацию.
Однако это не защищает от проникновения через мобильные устройства.
Вы можете настроить групповые политики ограничения программ в Windows 7, чтобы ограничить цели аутентификации NTLM. Все утверждают, что Kerberos — лучшее решение.
Однако проблема в том, что организации придется перевести все на Kerberos, а это не сработает, поскольку существует множество вещей, которые не поддерживают Kerberos. Другое дело, что если вы включите Kerberos, вы вообще не сможете поддерживать NTLM, то же самое касается и подписи, потому что для тех, кого вы не знаете, потребуется подписывать каждый пакет хешем исходного пароля.
Подписание LDAP, подписание SMB, расширенная HTTP-аутентификация — все это не поддерживается Cerberus, поэтому люди заблуждаются, думая, что подписи решат все проблемы.
Если вы сделаете подписи обязательными, это может многое сломать.
Поэтому, защищая организацию, необходимо сохранять определенный баланс.
Если вы конечный пользователь, вы обычно не беспокоитесь об этих вещах, но если вы корпоративный системный администратор, вашей самой большой заботой будет необходимость отказаться от использования NTLM. Поскольку Windows 8 и Windows 2012 по-прежнему поддерживают NTLM по умолчанию, потребуется некоторое время, чтобы отказаться от этого и перейти на Kerberos, и я надеюсь, что мой инструмент поможет в этом.
Он будет опубликован во вторник, 31 июля, как только я вернусь домой, на сайте.
Он также доступен на DVD этой конференции, как и мои слайды.
Если вы хотите рассказать мне, насколько дерьмовым было мое выступление и демо, отправьте мне электронное письмо по адресу [email protected] или найдите мой адрес в Твиттере @zfasel. Спасибо, что остаетесь с нами.
Вам нравятся наши статьи? Хотите увидеть больше интересных материалов? Поддержите нас, разместив заказ или порекомендовав друзьям, Скидка 30% для пользователей Хабра на уникальный аналог серверов начального уровня, который мы придумали для вас: Вся правда о VPS (KVM) E5-2650 v4 (6 Cores) 10GB DDR4 240GB SSD 1Gbps от 20$ или как правильно расшарить сервер? (доступны варианты с RAID1 и RAID10, до 24 ядер и до 40 ГБ DDR4).
VPS (KVM) E5-2650 v4 (6 ядер) 10 ГБ DDR4 240 ГБ SSD 1 Гбит/с бесплатно до весны при оплате на срок от шести месяцев и более вы можете заказать здесь .
Dell R730xd в 2 раза дешевле? Только здесь 2 x Intel Dodeca-Core Xeon E5-2650v4 128 ГБ DDR4 6x480 ГБ SSD 1 Гбит/с 100 ТВ от 249 долларов США в Нидерландах и США! Прочтите об этом Как построить корпоративную инфраструктуру класса, используя серверы Dell R730xd E5-2650 v4 стоимостью 9000 евро за копейки? Теги: #информационная безопасность #программирование #ИТ-инфраструктура #Конференции #Арест аккаунта #Арест аккаунта #Передай хеш #Передай хэш
-
Snmp Мониторинг Принтера В The Dude
19 Oct, 24 -
Скрипач В Метро – Социальный Эксперимент
19 Oct, 24 -
Размытие Js
19 Oct, 24 -
Myfeedz
19 Oct, 24 -
Рунет: Корпоративные Сайты В Стиле Web 2.0
19 Oct, 24