Возникает вопрос: а почему бы не сделать передачу имени пользователя и пароля в зашифрованном виде? Видимо, проблема в том, что базовые прикладные протоколы семейства TCP/IP разрабатывались очень давно, в период с конца 60-х до начала 80-х годов, и с тех пор абсолютно не изменились. При этом точка зрения на построение глобальных сетей стала иной. Инфраструктура Сети и ее протоколы разрабатывались исходя, в основном, из соображений надежности связи, но не из соображений безопасности.
Таким образом возможно отследить сетевой поток и выявить пакеты содержащие необходимые данные (Имя, пароль, и т.д.). Так как в данном документе рассматривается толькосервер ЛГТУ octopus.lstu, то я проанализировав сеть, пришел к выводу, что сервер не всегда находится в активном состоянии. Таким образом, данный вариант атаки отпадает, да и еще чтобы постоянно отслеживать трафик, необходимо, чтобы все это время в сети находился хотя бы один компьютер, что невозможно из-за финансовых трудностей.
Перебор паролей в файле /etc/passwd
В ранних версиях операционных системах семейства UNIX зашифрованные пароли (точнее их хэш-копии) хранились в файле /etc/passwd. В современных UNIX’ах пароли хранятся в /etc/shadow. Хранение зашифрованных паролей в /etc/passwd делает систему сервера octopus.lstu уязвимой. Здесь используется хэш-функция Data Encryption Standard (DES 48/64 4K). Поскольку данная шифровка работает только «в одну сторону», а проверка подлинности пароля заключается в том, что при вводе пароля пользователя, операционная система шифрует введенную последовательность и сравнивает ее со строкой в файле /etc/passwd. Вот пример записи паролей и имен пользователей в /etc/passwd:
root:LyavHDdahFcwU:0:1:Superuser:/:
…
malysh:7DnDkTMD9/wG2:1007:25:Olga A. Bocharnikova, AS-98-1:/user/students/as98/malysh:
|
|
|
|
|
Для перебора паролей мы используем тот же метод, что и операционная система: перебираю все возможные комбинации букв латинского алфавита (причем имеет значение прописная буква или строчная), цифр и специальных знаков. Здесь можно использовать как функции самой операционной системы, так и написать свою функцию шифровки. Но нужно быть точно уверенным что за алгоритм используется в данном случае, иначе перебор не приведет ни к каким результатам. На компьютере octopus используется алгоритм шифрования DES [48/64 4K]. Так как на octopus’e столь неважные, по сегодняшним меркам, аппаратные средства (см. следующий пункт), то ни о каком переборе пароля не может идти и речи. Тем более, даже на более быстрых машинах (Pentium III – 650MHz) расшифровка заняла примерно 30 суток (!!!). Да и сервер не все время находится в рабочем состоянии, как уже было замечено выше. В отчете прилагается часть программы, для расшифровки паролей файла /etc/passwd.