Взлом паролей

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

Существует два метода подбора паролей: по словарю и полный перебор всех возможных вариантов. Рассмотрим каждый из них. 

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

Преимущество этого метода состоит в том, что пароль может быть найден достаточно быстро, если он простой и есть в словаре. Взломщик для подбора может использовать словарь английского языка, и количество возможных вариантов не превысит 20000 слов (я имею в виду наиболее часто используемые). 

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

С другой стороны, если использованы все рекомендации по подбору пароля (длинный и сложный, состоящий из букв и символов, да еще с использованием разного регистра), то вероятность того, что такая комбинация окажется в словаре хакера, стремится к нулю. И поэтому время, затраченное хакером, окажется зря потерянным. 

Более эффективным будет создание словаря из данных уже взломанных сайтов. От взломов страдало большое количество достаточно серьезных сайтов, в результате которых в сеть попадало большое количество данных пар имя/пароль. Если взять эти данные и использовать в отношении другого сайта, то есть большая вероятность того, что пароли совпадут. 

Как часто мы создаем одинаковые пароли для разных сайтов? В интернете огромное количество сайтов и если для каждого из них создавать уникальный пароль, то запомнить их все будет нереально сложно. Поэтому пользователи часто выбирают одинаковый пароль. Если вы делаете так же, и везде ставите одни и те же данные, то это может стать серьезной проблемой. 

Достаточно взять недавний взлом и найти с него пароли. Взять эти пароли в паре с e-mail (если есть) поставить в словарь и прогнать по другому сайту. Аналитики говорят, что количество совпадений может достигать 10%. 

Полный перебор. В этом случае программа последовательно перебирает все возможные комбинации букв, цифр и символов в различных регистрах. Количество вариантов при таком алгоритме исчисляется миллиардами и прямо пропорционально зависит от длины пароля.

Метод дает 100 % гарантию удачного подбора, но реализация может отнять недели или даже месяцы. Если администратор системы ежемесячно меняет пароли, то пока хакер занимается подбором, результат уже устаревает. 

Подбор паролей разделяют на удаленный и локальный. В первом случае хакер пытается подключиться к компьютеру по сети с разными паролями. Это наиболее опасный для хакера метод, потому что каждая неверная попытка регистрации записывается в журнал безопасности. Если вы хотя бы иногда заглядываете туда, то уже на раннем этапе сможете найти злоумышленника и предотвратить подбор с помощью запрета подключения с IP-адреса хакера. Есть еще одна проблема — подбор осуществляется к определенному сервису, но нет гарантии, что другая программа тоже будет использовать этот пароль. Кроме того, большинство сервисов имеют настройки, лимитирующие попытки входа. И если хакер не уложится в это ограничение, то соединение разрывается, и его приходится восстанавливать. Каждое подключение — это лишние затраты времени, которые увеличивают время подбора даже по словарю. 

Для того чтобы подбор оказался долгим занятием, в некоторых сервисах есть возможность при неправильном указании параметров доступа искусственно делать задержку между попытками ввода. Ярким примером является сама ОС. Попробуйте при регистрации в Linux указать неверный пароль или имя пользователя. ОС будет производить проверку намного дольше, чем при указании правильных параметров. Чем больше задержка, тем больше времени необходимо хакеру для подбора пароля.

Но это препятствие довольно просто обойти. Достаточно запустить несколько потоков подбора, которые будут параллельно подключаться к серверу. 

Наиболее эффективный метод защиты в этом случае — запрет подключения с IP-адреса к серверу с помощью сетевого экрана. Если вы заметили, что кто-то пытается подобрать пароль, немедленно определите IP-адрес злоумышленника и добавьте запрещающий фильтр в сетевой экран. 

Из-за сложности подбора пароля хакеры стремятся получить доступ к файлу /etc/shadow и скачать его на свой компьютер, чтобы работать с ним локально. В этом случае операция происходит намного быстрее по следующим причинам:

хакеру становятся известны реальные имена пользователей, которые зарегистрированы на сервере;

защита сервера уже не может ничем помочь, потому что вы потеряли контроль над паролями;

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

в больших файлах паролей существует вероятность, что хотя бы один пользователь задал в качестве пароля регистрационное имя.

Локальный взлом намного быстрее и безопаснее, единственная проблема заключается в том, как получить файл /etc/shadow. Этот файл доступен для чтения и записи только администратору root, а все остальные пользователи не могут его увидеть. 

Если хакер получит доступ к файлу /etc/shadow, то можно считать, что пароль у него в руках. Но если следовать следующим правилам, то можно избежать взлома:

меняйте пароли каждый месяц. Если хакер взламывает систему удаленно, то это может сделать подбор невыполнимым. Если взлом происходит локально, то пока хакер подберет пароль, он уже изменится;

проверяйте свои пароли на стойкость от подбора по словарю. Если найдено несоответствие критерию, заставьте пользователя сменить пароль;

устанавливайте сложные и длинные пароли, чтобы подбор по словарю стал невозможным;

защищайте файл /etc/shadow. Если файл /etc/passwd нужен для чтения всем пользователям для нормальной работы множества утилит, то /etc/shadow необходимо охранять всеми возможными средствами;

следите за журналом безопасности на предмет появления большого количества записей о неверном входе в систему. 

Если система поддерживает, то используйте двуфакторную аутентификацию. Даже если хакер получит пароль, он не сможет пройти второй уровень защиты, который может потребовать ввести код, присылаемый на сотовый телефон или использование уникального кода, который выдают специальные устройства или программы. 

Соблюдая эти правила, вы понизите вероятность взлома вашей системы методом перебора паролей. 

Все говорят о необходимости создания сложных паролей и рассмотрели некоторые рекомендации по этому вопросу. А сейчас я хочу предложить вам для этого еще один интересный метод:

создайте файл pass.txt с текстом, который нужно использовать в качестве пароля, например: echo "password" >> pass.txt;

шифруем файл с помощью OpenSSL. Для этого выполняем команду: openssl des –in pass.txt –out pass.txt.s. Ключ, который запросит программа для шифрования, не имеет значения, можно даже использовать слово password;

просмотрите содержимое файла pass.txt.s. В нем будет зашифрованный текст, который вы записали в файл pass.txt. Выберите читаемые символы и используйте их в качестве пароля. Такое нарочно не придумаешь, поэтому программы подбора по словарю будут бессильны, останется только полный подбор. 

Отличным методом защиты от удаленного подбора может быть модульная аутентификация. Среди PAM есть очень удобный в защитных целях модуль /lib/security/pam_tally.so. Он позволяет блокировать доступ после определенного количества попыток входа в систему. Рассмотрим использование модуля на примере авторизации в Linux, настройки которой находятся в файле /etc/pam.d/login. Для ограничения попыток ввода паролей добавим в этот файл следующую строку:

account required /lib/security/pam_tally.so

    deny=5 no_magic_root

В качестве аргумента модулю передается параметр deny, который равен 5. Это значит, что после этого количества попыток учетная запись блокируется. Число 5 является наиболее оптимальным. Меньшие значения приведут к проблемам, когда пользователи по несколько раз ошибаются при вводе своего пароля. Ну а если пяти попыток не хватило исправиться или вспомнить пароль, то далее идет уже подбор случайным образом, что надо запретить. 

Теперь рассмотрим на практике, как происходит подбор паролей. Это необходимо, чтобы понять технологию и уметь использовать ее самостоятельно для тестирования стойкости паролей ваших пользователей. 

John the Ripper — самая популярная программа для взлома паролей, которая завоевала сердца большинства хакеров и администраторов. Она поддерживает основные алгоритмы шифрования MD5, DES и Blowfish. 

Чтобы подобрать пароли, для начала необходимо выполнить следующие команды:

unshadow /etc/passwd /etc/shadow > pass.txt

jhon –incremental pass.txt

С помощью первой директивы мы получаем файл pass.txt, в котором находятся соответствия имен пользователей и паролей. Этот файл можно создать и вручную, перенеся пароли из файла /etc/shadow в файл /etc/passwd, но это занятие не для слабонервных, поэтому лучше довериться программе. 

Вторая команда запускает полный перебор паролей. Если у вас есть файл со словарем, то для его использования выполните следующую команду:

jhon –wordfile:filename pass.txt

В данном случае filename — это имя файла словаря. 

В ОС Linux уже есть словарь, который находится в файле /usr/share/dict/words. На заре становления Интернета самый знаменитый вирус Морриса благодаря подбору паролей по словарю, встроенному в ОС Unix (в те времена Linux еще не было) смог взломать множество систем и заразить самое большое число компьютеров для своего времени. Для того чтобы использовать встроенный словарь, выполните команду:

jhon –wordfile: /usr/share/dict/words pass.txt

На сайте http://packetstorm.sequrity.com есть большая коллекция словарей, которую можно использовать для тестирования своей системы на сложность паролей. Если с помощью такого лексикона вы подберете пароль для одной из своих учетных записей, то поверьте мне, то же самое сделает и хакер. 

Если нажать любую клавишу, то на экране будет отображена информация о ходе подбора. Для прерывания программы необходимо нажать сочетание клавиш <Ctrl>+<C>. Для продолжения процесса подбора можно выполнить команду:

jhon –restore

Чтобы просмотреть пароли, которые подобрала программа, необходимо выполнить следующую директиву:

jhon –show pass.txt



Внимание!!! Если ты копируешь эту статью себе на сайт, то оставляй ссылку непосредственно на эту страницу. Спасибо за понимание

О блоге

Программист, автор нескольких книг серии глазами хакера и просто блогер. Интересуюсь безопасностью, хотя хакером себя не считаю

Обратная связь

Без проблем вступаю в неразборчивые разговоры по e-mail. Стараюсь отвечать на письма всех читателей вне зависимости от страны проживания, вероисповидания на русском или английском языке.

Пишите мне


Я в социальных сетях
Facebook Telegram Youtube Програмысли Instagram