Як зламати паролі

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

Спроба зламати систему, якою ви не володієте, швидше за все є незаконною у вашій юрисдикції (крім того, хакерство ваших власних систем може [і часто робить] порушення будь-якої гарантії на цей продукт).

Почнемо з основ. Що таке атака грубої сили?

Цей тип атаки передбачає неодноразові спроби увійти в систему як користувач, пробуючи всі можливі комбінації літер, цифр і символів (за допомогою автоматизованих інструментів).

Це можна зробити як в Інтернеті (тому в реальному часі, постійно пробуючи різні комбінації імені користувача / пароля в облікових записах, таких як соціальні медіа чи банківські сайти), так і в автономному режимі (наприклад, якщо ви отримали набір хешованих паролів і намагаєтеся зламати їх в автономному режимі).

Офлайн не завжди можливо (буває важко отримати набір хешованих паролів), але він набагато менш галасливий. Це тому, що команда безпеки, ймовірно, помітить багато-багато невдалих облікових записів для входу з одного і того ж облікового запису, але якщо ви можете зламати пароль в автономному режимі, у вас не буде запису про невдалі спроби входу.

Це порівняно просто за допомогою короткого пароля. Завдяки довшому паролю стає експоненціально важче через велику кількість можливостей.

Наприклад, якщо ви знаєте, що хтось використовує 5-символьний пароль, що складається лише з малих літер, загальна кількість можливих паролів становить 26 ^ 5 (26 можливих букв на вибір для першої літери, 26 можливих варіантів для другої лист тощо) або 11 881 376 можливих комбінацій.

Але якщо хтось використовує 11-символьний пароль, лише з малих літер, загальна кількість можливих паролів становить 26 ^ 11, або 36703444886878776 можливих паролів.

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

Як захиститися

Захистити цей тип атаки можна кількома різними способами. По-перше, ви можете використовувати досить довгі, складні паролі (щонайменше 15 символів). Ви також можете використовувати унікальні паролі для кожного облікового запису (використовуйте менеджер паролів!), Щоб зменшити небезпеку від порушення даних.

Команда безпеки може заблокувати обліковий запис після певної кількості невдалих спроб входу. Вони також можуть застосувати вторинний метод перевірки, такий як Captcha, або використовувати двофакторну автентифікацію (2FA), для якої потрібен другий код (SMS або електронна пошта, на основі додатків або апаратний ключ).

Ось стаття про те, як здійснити атаку грубої сили.

Як можна швидше зламати паролі?

Атака на словник передбачає спробу повторного входу в систему шляхом випробування ряду комбінацій, включених до попередньо складеного «словника» або списку комбінацій.

Зазвичай це швидше, ніж атака грубої сили, оскільки комбінації літер і цифр вже розраховані, що економить ваш час та обчислювальні потужності.

Але якщо пароль досить складний (наприклад, 1098324ukjbfnsdfsnej) і не відображається у "словнику" (попередньо складений список комбінацій, з якого ви працюєте), атака не спрацює.

Часто це вдається, оскільки часто, коли люди вибирають паролі, вони вибирають загальновживані слова або варіанти цих слів (наприклад, „пароль“ або „p @ SSword“).

Хакер також може використовувати цей тип атаки, коли він знає або вгадує частину пароля (наприклад, ім'я собаки, дні народження дітей або ювілей - інформація, яку хакер може знайти на сторінках соціальних мереж або інших ресурсах з відкритим кодом).

Заходи захисту, подібні до описаних вище від нападів грубої сили, можуть запобігти успіху цих типів атак.

Що робити, якщо у вас вже є список хешованих паролів?

Паролі зберігаються у файлі / etc / shadow для Linux та C: \ Windows \ System32 \ config для Windows (які недоступні під час завантаження операційної системи).

Якщо вам вдалося отримати цей файл або якщо ви отримали хеш пароля по-іншому, наприклад, нюхаючи трафік у мережі, ви можете спробувати зламати пароль "в автономному режимі".

Тоді як для наведених вище атак потрібно повторити спробу входу, якщо у вас є список хешованих паролів, ви можете спробувати зламати їх на своїй машині, не вимикаючи попереджень, що генеруються при повторних невдалих спробах входу. Потім ви спробуєте увійти лише один раз, після того, як успішно зламали пароль (і, отже, не вдалася спроба входу).

Ви можете використовувати атаки грубої сили чи атаки за допомогою словника проти хеш-файлів і можуть бути успішними залежно від того, наскільки сильним є хеш.

Хвилинку - що таке хешування?

35D4FFEF6EF231D998C6046764BB935D

Розпізнати це повідомлення? Там написано: "Привіт, мене звуть Меган"

7DBDA24A2D10DAF98F23B95CFAF1D3AB

Це перший абзац цієї статті. Так, це виглядає як нісенітниця, але насправді це "хеш".

Хеш-функція дозволяє комп’ютеру вводити рядок (деяку комбінацію букв, цифр та символів), приймати цей рядок, змішувати його та виводити рядок фіксованої довжини. Ось чому обидва наведені вище рядки мають однакову довжину, хоча входи рядків були дуже різними.

Хеш можна створювати практично з будь-якого цифрового вмісту. В основному весь цифровий вміст може бути зведений до двійкового або до послідовностей 0 і 1. Отже, весь цифровий вміст (зображення, документи тощо) можна хешувати.

Існує багато різних функцій хешування, деякі з яких є більш безпечними, ніж інші. Хеші вище були створені за допомогою MD5 (MD означає "Дайджест повідомлень"). Різні функції також відрізняються тривалістю хешу, який вони виробляють.

Один і той же вміст в одній і тій же хеш-функції завжди створюватиме один і той же хеш. Однак навіть невелика зміна повністю змінить хеш. Наприклад,

2FF5E24F6735B7564CAE7020B41C80F1

Чи є хеш для "Привіт, мене звуть Меган" Просто написання великих літер М у Меган повністю змінило хеш зверху.

Хеші - це також односторонні функції (тобто їх неможливо змінити). Це означає, що хеші (унікальні та односторонні) можна використовувати як тип цифрового відбитка пальця для вмісту.

Який приклад того, як використовуються хеші?

Хеші можна використовувати як підтвердження того, що повідомлення не було змінено.

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

Крім того, паролі зазвичай хешуються, коли вони зберігаються. Коли користувач вводить свій пароль, комп'ютер обчислює хеш-значення та порівнює його із збереженим хеш-значенням. Таким чином, комп’ютер не зберігає паролі у відкритому тексті (тому якийсь хитрий хакер не може їх вкрасти!).

Якщо хтось може вкрасти файл пароля, дані марні, оскільки функцію неможливо змінити (хоча існують способи, наприклад, райдужні таблиці, з’ясувати, який відкритий текст створює відомий хеш).

У чому проблема хешів?

Якщо хеш може приймати дані будь-якої довжини або змісту, існує необмежена кількість даних, які можна хешувати.

Оскільки хеш перетворює цей текст у вміст фіксованої довжини (наприклад, 32 символи), для хешу існує кінцева кількість комбінацій. Це дуже велика кількість можливостей, але не безмежних.

Зрештою два різні набори даних дадуть однакове хеш-значення. Це називається зіткненням.

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

Однак що, якщо вам все одно, які два хеші стикаються?

Це називається "проблемою дня народження" в математиці. У класі з 23 учнів вірогідність того, що хтось має день народження в конкретний день, становить близько 7%, але ймовірність того, що будь-які двоє людей мають однаковий день народження, становить близько 50%.

Той самий тип аналізу можна застосувати до хеш-функцій, щоб знайти будь-які два хеші, які збігаються (замість конкретного хешу, який відповідає іншому).

Щоб уникнути цього, ви можете використовувати довші хеш-функції, такі як SHA3, де ймовірність зіткнень менша.

Ви можете спробувати створити власні хеш-функції для SHA3 тут і MD5 тут.  

Ви можете спробувати грубий хеш, але це займає дуже багато часу. Швидший спосіб зробити це - використовувати заздалегідь розраховані таблиці веселки (які схожі на атаки за словником).

Здається, насправді легко зламати. Я повинен бути стурбований?

Найголовніше, що слід пам’ятати про хакерство, - це те, що ніхто не хоче виконувати більше роботи, ніж повинен робити. Наприклад, хеш-форсинг грубих дій може бути надзвичайно трудомістким і складним. Якщо є простіший спосіб отримати свій пароль, це, мабуть, спробує спочатку підлий актор.

Це означає, що увімкнення найкращих практик кібербезпеки, мабуть, найпростіший спосіб запобігти злому. Фактично, нещодавно Microsoft повідомила, що ввімкнення 2FA призведе до блокування 99,9% автоматизованих атак.

Додаткове читання:

Популярні засоби злому паролів