Как я стал взломщиком паролей. Часть 2. Восстановление паролей
Итак, с чашкой чая на столе, с закрытым почтовым клиентом и играющими в наушниках Arvo Pärt я начал свой эксперимент. Первым делом, мне нужен был список аккаунтов. Где я могу найти хотя бы один?
Вопрос не тривиальный. Это интернет, и такой материал постоянно бывает рядом, как блестящая монета в сточной канаве, надо только дотянуться и поднять ее. Брешей в паролях тьма, и целые форумы существуют с целью распространения информации об этих дырах и оказания взаимопомощи в их взломе.
Дэн, желая помочь мне ускориться в процессе взлома паролей, предположил, что стоит начать с одного простого в использовании форума и простеньких, хэшированных MD5 паролей, которые взламываются наиболее примитивно. И затем он оставил меня с моими устройствами. Я нашел файл с 15000 паролей, названный MD5.txt, скачал его и начал искать программу для взлома паролей.
Для взлома паролей, скажем, сайта банка не подойдут попытки залогиниться миллион раз, сайты обычно не позволяют сделать множество неверных попыток, да и процесс будет слишком долгим, даже если это возможно. Взлом всегда происходит оффлайн после того, как взломщик получит длинный список захэшированных паролей, часто через грубое проникновение (но иногда и под вполне легальным предлогом, таким как аудит безопасности или когда бизнес-пользователь забывает пароль, который использовал для зашифровки важного документа).
Хэширование включает в себя сбор всех паролей пользователя и прохождение их через однонаправленную математическую функцию, которая генерирует уникальную строку чисел и букв, которая называется хэшем. Хэширование делает очень сложным процесс возвращения пароля из хэша и таким образом позволяет сайтам безопасно (на самом деле нет в большинстве случаев) хранить пароли вместо того, чтобы просто держать их в простом виде. Когда пользователь вводит пароль онлайн для того, чтобы войти в какой-либо сервис, система хэширует пароль и сравнивает его с сохраненным хэшем; если они совпадают, значит пользователь ввел корректный пароль.
Для примера, хэширование пароля «arstechnica» с алгоритмом MD5 выдает следующий результат: с915e95033e8c69ada58eb784a98b2ed. При этом даже незначительные изменения в исконный пароль выдадут совершенно другой результат; «ArsTechnica» (с двумя буквами другого регистра) становится 1d9a3f8172b01328de5acba20563408e. Соответственно, предположить, что ты близок к верной разгадке, зная один из хэшей, невозможно: варианты пароля могут быть либо идеально точны, либо абсолютно ложными.
Известные программы для взлома паролей, такие как Джон Риппер и Хэшкэт, работают по такому же принципу, только они автоматизируют процесс создания паролей-попыток и может хэшировать миллиарды запросов в минуту. Несмотря на то, что я знал об этих программах, я никогда ими не пользовался; единственная точная информация, которой я располагал, это то, что Хэшкэт умопомрачительно быстр. Это было просто идеально для моей задачи, поскольку я взял для взлома паролей только 2 ноутбука: годовалый Macbook Air с Core i5 и древний Dell с Core2Duo на Windows. В конце концов, я был всего лишь скриптовым проказником - зачем мне что-то большее?
Я начал с MacBook Air, и это значило, что я должен использовать 64-битную версию Hashcat через командную строку вместо графического интерфейса. Я не буду обливать грязью любителей командной строки, которые любят рассказывать мне бесконечные истории о том, как они могут пропустить sed через awk и затем grep в 50 раз быстрее, чем эти несчастные неучи, которые кликают мышкой по симпатичным иконкам и меню. Я верю им, но все еще предпочитаю графический интерфейс, когда пытаюсь понять неизвестную мне программу с множеством опций. И Hashcat дает то, что мне нужно.
Итак, ради науки, я скачал Hashcat и перешел в консоль. Hashcat не включает в себя краткое руководство, и я не нашел ни одного простого примера (хотя, как я потом узнал, для программы есть вики). Внутренний раздел помощи не образец ясного изложения, но основы оказались весьма понятными. Я указал в программе, какой метод атаки использовать, затем сообщил, какой алгоритм использовать для хэширования и место, где хранится файл с хэшами MD5. Я также мог дополнительно приложить "правила" и воспользоваться несколькими опциями по созданию масок. Ах да, вордлисты - они также были важной частью процесса. Без графического интерфейса и без инструкций, на то, чтобы заставить работать Hashcat, я бы потратил большую часть часа в набивании строчек подобных этой:
./hashcat-cli64.app MD5.txt -a 3 -m 0 -r perfect.rule
Вышеупомянутая строчка была моей попыткой натравить Hashcat на мой MD5.txt со списком хэшей, используя режим атаки 3 (брутальная мощь) и метод хэширования 0 (MD5) с применением вариаций «perfect rule». Как оказалось, это было чудовищной ошибкой. Во-первых, как я потом узнал, я неправильно разобрал синтаксис командной строки и ввел запись «MD5.txt» в неправильном месте. Во-вторых, «брутальные» атаки не поддерживают правила, которые оперируют только вордлистами (списками слов) - они требуют множество других опций, включая маски и минимальную/максимальную длину пароля.
Этого было достаточно, чтобы продолжать пробиваться через паутину командной строки. Я принял свою недееспособность в плане скриптов и переключился на Windows-ноутбук, где я установил Hashcat и его отдельный графический front end. Все опции здесь доступны через чекбоксы и выпадающие меню, и я теперь мог видеть, что мне нужно настраивать и что это можно делать без написания надлежащего синтаксиса командной строки самому. Теперь я был готов взламывать хэши.
Оглавление
Часть 2. Восстановление паролей
Часть 6. Ускорение и замедление
Часть 7. Наставить на себя пушку
Перевод статьи: http://arstechnica.com/security/2013/03/how-i-became-a-password-cracker/
О компании StarForce
Компания «Протекшен Технолоджи» (торговая марка StarForce) – ведущий российский разработчик программных решений в области контроля и защиты программ и электронной информации от утечек, копирования и нелегального распространения. С 2000 года компания разрабатывает и внедряет ультрасовременные технологические решения, защищенные соответствующими патентами РФ, США и Канады, что позволяет обеспечить охрану интеллектуальной собственности и авторских прав во всем мире.
Являясь экспертом в области защиты цифровой информации и программного обеспечения от утечек, копирования, взлома и несанкционированного распространения, компания разработала собственную систему Управления Цифровыми Правами (StarForce DRM), открывающую перед нашими клиентами широчайшие возможности по доставке цифрового контента и слежению за продажами. Технологии StarForce внедрены в таких компаниях как РЖД, Corel, 1С, Mail.ru, Аэрофлот, SUN InBev Russia, АМД Лаборатории, ATC International, МедиаХауз, Руссобит-М, Новый Диск, Бука, Snowball, 2Play, GFI, CENEGA, Akella и в ряде других.
Контакты для прессы:
pr@star-force.com