Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #68, АВГУСТ 2004 г.

Расшифруем зашифрованное

Докучаев Дмитрий aka Forb

Xakep, номер #068, стр. 068-064-1


(forb@real.xakep.ru)

Методы получения криптованных паролей

Все чаще и чаще я получаю от читателей просьбы расшифровать какой-нибудь пароль либо поделиться софтом, который этим занимается. Действительно, существует так много алгоритмов и программ для расшифровки, что нормальному человеку легко в них запутаться. Чтобы с тобой этого не произошло, я решил написать о том, где искать и как взламывать пароли в самых популярных системах.

Такие разные пароли

Важное требование к любому паролю - его сложность. Но даже мастодонтская строка длиной в 30 символов не поможет, если взломщик целиком украл файл с паролями всех юзеров. Именно по этой причине в нормальных операционках пароли всегда были объектом для шифрования с помощью самых современных алгоритмов. Соответственно, хакеры тоже не дремлют и пишут различный софт, чтобы эти самые пароли расшифровывать. Основная цель этой статьи - классифицировать софт для расшифровки паролей и раскрыть секреты основных алгоритмов криптования.

Пингвиньи хэши

Начнем с Linux, как одного из самых популярных Unix-клонов. Чтобы получить в ней какие-либо привилегии, необходимо знать имя пользователя и пароль. Много лет назад эта конфиденциальная информация хранилась в файле /etc/passwd, но со временем все изменилось. С появлением мощных процессоров и ушлых хакеров пароли пришлось затенить, перенеся их в базу /etc/shadow. Это было связано с тем, что /etc/passwd должен быть открыт на чтение обычным юзерам для сличения идентификаторов. После затенения паролей на shadow установили режим 0600, таким образом, его мог посмотреть только рут. Казалось бы, круг замкнулся: чтобы прочитать файл, нужны абсолютные права, а чтобы узнать пароль рута - необходимо прочитать файл. Но юзая различные эксплойты, взломщик мог получить абсолютные привилегии без знания пароля. Тем не менее, расшифровка пассвордов - весьма актуальная задача, ведь зная рутовый пароль, ты всегда сможешь удержать себя в системе.

В последних дистрибутивах шифрование пользовательских аккаунтов (в том числе и рутового) происходит с помощью алгоритма MD5. На этот вид шифрования перешли с ненадежного MD4. Он хорошо зарекомендовал себя в Unix-системах, потому как вычисление криптующей функции - довольно ресурсоемкая задача, что осложняет перебор. Чтобы один и тот же пароль мог быть представлен разными способами, в MD5-хэш входит случайная подстрока. С ее помощью становится возможным варьирование процесса шифрования. Если говорить о секурности MD5, то нельзя не упомянуть такое явление, как коллизия - это когда значение криптующей функции на двух различных наборах символов совпадает. Таким образом, получается, что атакующему совсем не обязательно подбирать оригинальный пароль - достаточно угадать строку, значение функции MD5 на которой совпадает с оригинальным. Неприятный сюрприз, правда? Но не все так плохо - вероятность коллизии чрезвычайно мала, и это скорее исключение, чем правило. Каким же образом хакеры расшифровывают хэши MD5? Для этой цели написано немеренное количество софта, но самой популярной программой остается легендарный John The Ripper (www.openwall.com/john/a/john-16w.zip - для Windows, www.openwall.com/john/a/john-1.6.tar.gz - для Unix). Помимо Джонни существует и другой софт, созданный для взлома MD5. Могу выделить интересную программу MDCrack (http://mdcrack.df.ru/download/mdcrack.exe, win-версия). Перебор на современных кристаллах осуществляется в среднем со скоростью около 5 миллионов хэшей в секунду.

Содержание  Вперед на стр. 068-064-2