Linux по-російськи злом паролів за допомогою gpu

Бібліотека сайту rus-linux.net

Видобуток біткоіни залишилася в минулому. Використовуйте дорогі і потужні GPU для злому паролів.

Потім Bitcoin "накрився мідним тазом". І це, загалом-то, мене не особливо засмутило, оскільки я не встиг задурити створенням власної "бурової". Крім того, я знайшов більш цікаве застосування "залозу" для видобутку біткоіни: злом паролів. Видобуток біткоіни і злом паролів - вельми схожі операції, а GPU може зламувати паролі набагато швидше, ніж процесор або навіть невеликий кластер процесорів. У цій статті, що складається з двох частин, я поясню, як налаштувати і використовувати комп'ютер для злому паролів. У першій частині я зупинюся на принципах, що лежать в основі злому паролів і загальної налаштування обладнання. А про конкретні методи атак з прикладами команд я розповім в наступній статті.

Законні підстави для злому паролів

Перш ніж почати, слід визнати, що більшість причин для злому паролів, м'яко кажучи, не дуже законні. Дуже часто можна почути історію про зламаний веб-сайт, скомпрометовану базу паролів, і тисячі розкритих "слабких" паролів. Часто люди займаються зломом паролів, тому що вони намагаються проникнути в чужу систему, або вже проникли, вкрали хеші паролів і зламують їх, щоб отримати можливість атакувати чергову систему.

Проте є цілком легальні причини зламувати паролі, особливо для системного адміністратора або веб-майстра:

  • Перевірка надійності паролів локальних користувачів;
  • Можливість упевнитися, що користувачі дотримуються політику, прийняту щодо паролів;
  • Спосіб зрозуміти, якою має бути ця політика;
  • Криптографія сама по собі - цікаве заняття;
  • Видобуток біткоіни більше не приносить прибутку.

Введення в хеші паролів

Хеші паролів були придумані для вирішення однієї хитрою завдання. Якщо користувачі повинні вводити паролі для того, щоб увійти в систему, то ви повинні десь в системі ці паролі зберігати. Яким же чином зробити це так, щоб вони не зберігалися у вигляді відкритого тексту, але при цьому можна було б перевірити, чи правильно користувачі їх набирають при вході в систему? Рішенням є односпрямоване шифрування паролів за допомогою хеш-кодування. Ідея односпрямованого хеширования полягає в тому, що пароль досить легко зашифрувати, але майже неможливо відновити його по хешу. Якщо ви коли-небудь скачували ISO-образ дистрибутива Linux і запускали md5sum, щоб перевірити, чи не "битий" він, то знайте, що ви використовували дуже популярний односпрямований алгоритм хешування MD5. Інші поширені односпрямовані алгоритми хешування включають в себе сімейство SHA (SHA1, SHA256 і SHA512), а також phpass, що став де-факто сучасним стандартом для сайтів, написаних на PHP, наприклад, WordPress.

Коли ви входите в систему на базі Linux, введений вами пароль конвертується в хеш за допомогою алгоритму, який використовувався при створенні цього пароля. Система порівнює отриманий хеш з уже наявними і якщо вони збігаються, введений пароль вважається правильним і ви допускати в систему. До речі, для прикладу, якщо ви зареєстровані на якомусь сучасному сайті, написаному на PHP і ваш пароль - "123456", то він цілком може зберігатися в такому вигляді - "$ P $ BPlIiO5xdHmThnjjSyJ1jBICfPkpay1".

Як відбувається злом паролів

Файли / etc / passwd і / etc / shadow

Найважливіша річ, яка вам буде потрібна перед початком злому паролів - це їх хеши. Оскільки ми говоримо про абсолютно законному використанні злому, отримати хеші буде просто. Зрештою, у вас просто зобов'язаний бути доступ з правами root до ваших власних систем і баз даних, в тому числі і до Хешам паролів. У Linux ці хеші колись зберігалися в файлі / etc / passwd. Начебто логічне місце для зберігання паролів, але проблема виявилася в тому, що в цьому файлі зберігаються також імена і ідентифікатори користувачів, а через це він повинен бути доступний на читання всім. Знову ж таки, коли в цьому файлі перебували дані паролів, будь-який локальний користувач міг отримати повний список хешів і почати їх зламувати. В наші дні Linux тримає хеші паролів в файлі / etc / shadow, доступному для читання тільки користувачеві root. Що стосується паролів для веб-сайтів, то їх хеши зазвичай зберігаються або де-небудь в файлової системі сервера, або (і це буває частіше) в спеціальній таблиці бази даних.

Друга важлива річ, яку вам необхідно знати - це алгоритм, за допомогою якого були хешировані паролі, адже для атаки потрібно буде користуватися саме їм. Якщо ви маєте справу з хешамі паролів від облікових записів ОС, то знайте, що тип хешу ви можете дізнатися з самого хешу. Якщо ви подивіться на записи в файлі / etc / shadow, то ви помітите безліч дивних символів з декількома символами долара ( "$"), розкиданими серед них. Символи "$" поділяють запис хешу на наступні секції:

У секції "id" міститься інформація про тип алгоритму:

В даний час ви швидше за все зіткнетеся з паролями, захешірованнимі за допомогою алгоритмів SHA-256 і SHA-512. Оскільки тип алгоритму і сіль зберігаються разом з хешем, хеші паролів Linux є дуже добре переносяться. Маючи хеш, ви можете скопіювати його на інший комп'ютер і використовувати для входу той же самий пароль.

Навіщо використовувати GPU?

устаткування

Що стосується мого випадку, то у мене не було під рукою підходящої машини і тому я зібрав комп'ютер спеціально для злому паролів. Якщо вам захочеться піти по моїх стопах, то ось точний список мого обладнання з цінами:

На цьому, мабуть, і закінчимо. Отже, тепер у вас є якийсь час, щоб зібрати обладнання, а в наступний раз я розгляну програмну сторону злому паролів, поясню, що з себе представляють атаки по словнику, методом грубої сили і по масці, а також наведу приклади з власного досвіду.

Посилання на використані ресурси

Схожі статті