Как да разбивам пароли

Кратка бележка - тази статия е за теорията за това как да се взломяват пароли. Разбирането как киберпрестъпниците изпълняват атаки е изключително важно за разбирането как да се защитят системите срещу тези видове атаки.

Опитът за хакване на система, която не притежавате, вероятно е незаконно във вашата юрисдикция (плюс хакерството на вашите собствени системи може [и често] нарушава всяка гаранция за този продукт).

Нека започнем с основите. Какво представлява атака с груба сила?

Този тип атака включва многократни опити за влизане като потребител чрез изпробване на всяка възможна комбинация от букви, цифри и знаци (с помощта на автоматизирани инструменти).

Това може да се направи или онлайн (така че в реално време, чрез непрекъснато изпробване на различни комбинации от потребителско име / парола в акаунти като социални медии или банкови сайтове) или офлайн (например ако сте получили набор от хеширани пароли и се опитвате да пробиете ги офлайн).

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

Това е сравнително лесно с кратка парола. Експоненциално става по-трудно с по-дълга парола поради огромния брой възможности.

Например, ако знаете, че някой използва парола с дължина 5 знака, съставена само от малки букви, общият брой на възможните пароли е 26 ^ 5 (26 възможни букви за избор за първата буква, 26 възможни избора за втората писмо и др.), или 11 881 376 възможни комбинации.

Но ако някой използва парола от 11 знака, само с малки букви, общият брой на възможните пароли е 26 ^ 11 или 3,670,344,486,987,776 възможни пароли.

Когато добавяте с главни букви, специални знаци и цифри, това става още по-трудно и отнема много време за разбиване. Колкото повече възможни пароли има, толкова по-трудно е някой да влезе успешно с атака с груба сила.

Как да се предпазите

Този тип атака може да бъде защитена по няколко различни начина. Първо, можете да използвате достатъчно дълги, сложни пароли (поне 15 знака). Можете също да използвате уникални пароли за всеки акаунт (използвайте мениджър на пароли!), За да намалите опасността от пробиви на данни.

Екипът по сигурността може да заключи акаунт след определен брой неуспешни опити за влизане. Те могат също така да принудят вторичен метод за проверка като Captcha или да използват двуфакторно удостоверяване (2FA), който изисква втори код (SMS или имейл, базиран на приложение или хардуерен ключ).

Ето статия за това как да се извърши атака с груба сила.

Как можете да разбивате пароли по-бързо?

Речниковата атака включва опит за многократно влизане, като се изпробват редица комбинации, включени в предварително съставен „речник“ или списък с комбинации.

Това обикновено е по-бързо от атака с груба сила, защото комбинациите от букви и цифри вече са изчислени, спестявайки ви време и изчислителна мощ.

Но ако паролата е достатъчно сложна (например 1098324ukjbfnsdfsnej) и не се появява в „речника“ (предварително съставения списък от комбинации, от които работите), атаката няма да работи.

Често е успешен, защото често, когато хората избират пароли, избират често срещани думи или варианти на тези думи (например „парола“ или „p @ SSword“).

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

Мерки, подобни на описаните по-горе срещу атаки с груба сила, могат да попречат на успеха на тези видове атаки.

Ами ако вече имате списък с хеширани пароли?

Паролите се съхраняват във файла / etc / shadow за Linux и C: \ Windows \ System32 \ config файл за Windows (които не са налични при стартиране на операционната система).

Ако сте успели да получите този файл или ако сте получили хеш на парола по различен начин, като например подушване на трафик в мрежата, можете да опитате „офлайн“ разбиване на парола.

Докато атаките по-горе изискват многократни опити за влизане, ако имате списък с хеширани пароли, можете да опитате да ги взломите на вашата машина, без да изключвате предупреждения, генерирани от многократни неуспешни опити за влизане. След това се опитвате да влезете само веднъж, след като успешно сте пробили паролата (и следователно няма неуспешен опит за влизане).

Можете да използвате груби атаки или речникови атаки срещу хеш файловете и може да са успешни в зависимост от това колко силен е хешът.

Чакай малко - какво е хеширането?

35D4FFEF6EF231D998C6046764BB935D

Разпознавате ли това съобщение? Пише „Здравей, името ми е Меган“

7DBDA24A2D10DAF98F23B95CFAF1D3AB

Това е първият параграф на тази статия. Да, изглежда като глупост, но всъщност е „хеш“.

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

Хеш може да се създаде от почти всяко цифрово съдържание. По принцип цялото цифрово съдържание може да бъде сведено до двоично или поредица от 0s и 1s. Следователно цялото цифрово съдържание (изображения, документи и т.н.) може да бъде хеширано.

Има много различни хеширащи функции, някои от които са по-сигурни от други. Хешовете по-горе бяха генерирани с MD5 (MD означава „Съобщение за обобщение“). Различните функции се различават и по дължината на хеш, който те произвеждат.

Едно и също съдържание в една и съща хеш функция винаги ще произвежда един и същ хеш. Въпреки това, дори малка промяна ще промени изцяло хеша. Например,

2FF5E24F6735B7564CAE7020B41C80F1

Дали хешът за „Здравей, казвам се Меган“ Само с главни букви М в Меган напълно промених хеша отгоре.

Хешовете също са еднопосочни функции (което означава, че не могат да бъдат обърнати). Това означава, че хешовете (уникални и еднопосочни) могат да се използват като вид цифров пръстов отпечатък за съдържание.

Какъв е пример за това как се използват хешове?

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

Когато изпратите имейл, например, можете да хеширате целия имейл и също да изпратите хеша. Тогава получателят може да стартира полученото съобщение чрез същата хеш функция, за да провери дали съобщението е фалшифицирано по време на транзит. Ако двете хешове съвпадат, съобщението не е променено. Ако не съвпадат, съобщението е променено.

Също така паролите обикновено се хешират, когато се съхраняват. Когато потребителят въведе паролата си, компютърът изчислява хеш-стойността и я сравнява със съхранената хеш-стойност. По този начин компютърът не съхранява пароли в открит текст (така че някой любопитен хакер не може да ги открадне!).

Ако някой е в състояние да открадне файла с парола, данните са безполезни, тъй като функцията не може да бъде обърната (макар че има начини, като дъгови таблици, да разберем какъв чист текст създава известния хеш).

Какъв е проблемът с хешовете?

Ако хеш може да вземе данни с всякаква дължина или съдържание, има неограничени възможности за данни, които могат да бъдат хеширани.

Тъй като хеш преобразува този текст в съдържание с фиксирана дължина (например 32 знака), има ограничен брой комбинации за хеш. Това е много много голям брой възможности, но не безкраен.

В крайна сметка два различни набора данни ще дадат една и съща хеш стойност. Това се нарича сблъсък.

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

Какво обаче, ако не ви интересува кои две хешове се сблъскват?

Това се нарича „проблем на рождения ден“ в математиката. В клас от 23 ученици вероятността някой да има рожден ден в определен ден е около 7%, но вероятността всеки двама души да споделят един и същи рожден ден е около 50%.

Същият тип анализ може да се приложи към хеш функции, за да се намерят всеки два хеша, които съвпадат (вместо конкретен хеш, който съответства на другия).

За да избегнете това, можете да използвате по-дълги хеш функции като SHA3, където възможността за сблъсъци е по-малка.

Можете да опитате да генерирате свои собствени хеш функции за SHA3 тук и MD5 тук.  

Можете да опитате да грубите силови хешове, но това отнема много време. По-бързият начин да направите това е да използвате предварително изчислени дъгови таблици (които са подобни на речникови атаки).

Изглежда наистина лесно да бъдеш хакнат. Трябва ли да съм загрижен?

Най-важното нещо, което трябва да запомните за хакерството, е, че никой не иска да свърши повече работа, отколкото трябва. Например, принуждаването на груби хешове може да отнеме много време и да е трудно. Ако има по-лесен начин да получите паролата си, вероятно това ще опита първо един нечестив актьор.

Това означава, че активирането на най-добрите практики за киберсигурност е може би най-лесният начин да се предотврати хакване. Всъщност наскоро Microsoft съобщи, че само активирането на 2FA ще блокира 99,9% от автоматизираните атаки.

Допълнително четене:

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