В культовом фильме начала двухтысячных «Пароль «Рыба-меч» талантливому хакеру необходимо подобрать пароль в течение одной минуты. В этом ему помогает приятель, который заботливо держит пистолет у виска и темпераментная блондинка, прячущаяся под столом. Что делать, если таких друзей поблизости нет, а пароль подобрать необходимо? Например, в ходе тестирования на проникновение… Небольшое, но важное предупреждение: если предлагаемым в статье подходом пользоваться не в рамках проектов по тестированию защищенности, то ваши действия легко могут подпасть под статью 272 УК РФ (Неправомерный доступ к компьютерной информации). Чтобы придумать эффективную стратегию подбора паролей, этичному хакеру надо постараться залезть в головы пользователей и администраторов.  Можно назвать, как минимум, следующие три: Что пользователи легко могут запомнить? Рассмотрим те вещи, которые нам легче всего запомнить: 1) То, что перед глазами. Перед нашим взором чаще всего предстают торговые марки мониторов, ноутбуков, компьютерных мышей и клавиатур, надписи «password:». Говорят, что выбор руководителем предвыборной кампании Хилари Клинтон такого тривиального пароля, как «password», гибельно отразился на результатах американских выборов. 2) То, что важно. Для человека важны: 3) То, что помнят пальцы: 4) Что за система/сайт: В 2014-м году произошла большая утечка паролей Gmail, Yandex и Mail.ru. Списки паролей были проанализированы varagian в статье "Анализ утёкших паролей Gmail, Yandex и Mail.Ru" и можно увидеть, что пользователи выбирают пароли именно по рассмотренной схеме. Чтобы обезопасить пользователей во многих системах разработчиками предусмотрен механизм парольной политики, который, к сожалению (для этичных хакеров – к счастью), не всегда используется. Рассмотрим ограничения и то, как они выполняются/обходятся креативными пользователями.
Типовые ограничения парольной политики: Придумать пароль длиной более 8 символов не представляет сложности, а вот использовать символы в различных регистрах – уже сложно, так как нужно помнить, для какого символа в своем пароле был выбран верхний регистр. Самое очевидное и вероятное решение: выбрать первый или последний символ.  Если система заставляет добавить цифры, то здесь пользователи чуть более изобретательные: Понимая эти маленькие хитрости пользователей, этичному хакеру довольно просто сузить список слов-кандидатов на пароль. В случае если пароль будет использоваться многими пользователями, например, системными администраторами или слушателями в учебном классе, то его, как правило, специально делают не очень сложным (например, совпадающим с именем учетной записи), а зачастую оставляют таким, каким он был установлен вендором по умолчанию. Разобравшись с нюансами выбора пароля пользователями, мы можем разработать и стратегию подбора пароля в ходе тестирования на проникновение.
Зафиксируем исходные условия: Для успешной авторизации одного пароля, как правило, недостаточно, нужно еще знать и имя учетной записи. Разберемся, как ее получить.  Вариант 1. Получение списка учетных записей, используя уязвимость в системе.
Например, контроллер домена Windows может быть сконфигурирован таким образом, что позволяет анонимному пользователю получать список учетных записей пользователей.
Любой может проверить свой контроллер домена на эту возможность, например, воспользовавшись утилитой командной строки rpcclient из состава «Сканер-ВС»: Вариант 2. Формирование списка на основе «разведданных» и анализа. Имена пользователей даже в небольших организациях задаются администраторами на основе некоторого стандарта. Самые распространенные варианты: первая буква имени + фамилии: adorofeev, тоже самое, но через точку a.dorofeev, полное имя + фамилия: alexander.dorofeev. Также часто имена внутренних учетных записей совпадают с учетной записью электронной почты, соответственно правило формирования имени пользователя можно определить просто «погуглив» адреса сотрудников, засветившихся в интернете, а полный перечень сформировать на основе списка сотрудников, который можно получить из внутреннего телефонного справочника, а также социальных сетей. В крайнем случае можно формировать комбинации наиболее часто встречающихся имен и фамилий по наиболее распространенным правилам формирования имен учетных записей. Вариант 3. Наиболее распространенные учетные записи и записи по умолчанию. Во многих системах есть учетные записи по умолчанию. Как минимум, это admin или administrator. В некоторых системах их довольно много, так в СУБД Oracle можно встретить SYSTEM, SYS, ANONYMOUS, CTXSYS, DBSNMP, LBACSYS, MDSYS, OLAPSYS, ORDPLUGINS, ORDSYS, OUTLN, SCOTT, WKSYS, WMSYS, XDB. Соответственно, имеет смысл заглянуть в руководства администраторов систем, которые вы хотите тестировать. Зачастую, в системах появляются учетные записи, которые очень легко вычислить, например, если в компании есть учебный класс, то вероятность наличия учетных записей teacher и student довольно высока. А много ли систем в которых, кто-нибудь да не создал учетную запись test? Понимая какие учетные записи в каких системах в тестируемой ИТ-инфраструктуре мы планируем скомпрометировать, можем определить последовательность систем для атаки: В случае если в системах включена блокировка учетных записей после нескольких неудачных попыток (как правило, выбирают число 5), а время на тестирование ограничено, и мы не можем выставлять таймаут между попытками для сброса счетчика, то имеет смысл «пробежаться» по всем пользователям, проверяя следующие вероятные пароли: Подобрав пароли к учетным записям, первое что должен сделать этичный хакер, так это авторизоваться и посмотреть, к чему он получил доступ.
В случае, если доступ получен к файловой системе, то необходимо провести поиск следующих файлов: Этичному хакеру на заметку: в крупных организациях часто встречаются среды для тестирования, в которых используются данные, восстановленные из не очень старой резервной копии БД боевой системы. При этом тестовые среды, как правило, плохо защищены, например, может быть несколько административных учетных записей администраторов и простые пароли. Компрометация подобной системы ведет к тому, что специалисты по тестированию получают доступ к хешам паролей пользователей, которые зачастую актуальны для боевой системы.  Классическим инструментом для онлайн-подбора паролей является утилита командной строки thc-hydra, а для этичных хакеров и администраторов, любящих комфорт, данный функционал с интуитивно понятным интерфейсом имеется в нашем комплексе «Сканер-ВС»: 


 Также ключевым фактором успешного подбора пароля является доступность хорошо составленных словарей, а вот с этим бывают проблемы. Словари, поставляемые вместе с современными отечественными средствами анализа защищенности не всегда содержат действительно полезные наборы слов. Например, включают стандартный словарь, распространяемый с одной бесплатной утилитой. Решение, конечно, простое, но не очень эффективное. Разве можно представить себе российского пользователя, выбравшего такие пароли, как: soccer, cutiepie, maganda или mustang. Как много в среднем российском городе счастливых обладателей Ford Mustang? Иногда включают замечательный словарь, основанный в основном на паролях, оставляемых по умолчанию, но совершенно забывают про обычных пользователей и их любимые пароли.  Мы решили исправить эту досадную ситуацию и составили свои списки паролей, которые теперь доступны не только пользователям нашего комплекса тестирования защищенности «Сканер-ВС», но и всем желающим на сайте нашего решения в разделе «Пароли»: Списки паролей: Списки учетных записей: Хакеру из фильма «Пароль «Рыба-меч» повезло и, несмотря на отвлекающие факторы и хаотичный стиль работы, он смог подобрать пароль и остаться в живых. Пользуясь структурированным подходом, этичные хакеры увеличивают свои шансы на успех в тестировании на проникновение и в меньшей степени полагаются на удачу. Данный подход будет работать, пока пароли будут выбираться людьми. генеральный директор