Атака с груба сила

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

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

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

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

Светът на криптографията

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

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

Инструменти за груба сила

Джон изкормвача

Той е с отворен код и безплатен, обикновено ще го намерите разпространен в изходния код.Основната му цел е да намери слаби пароли в операционните системи UNIX.

THC Hydra

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

медузи

Това е модулен инструмент, работи паралелно с влизания с груба сила. Съвместим с протоколи като FTP, HTTP, IMAP, SSH и др.

Нкрак

Това е инструмент за разбиване на мрежови удостоверения, работи бързо. Можете да разширите инструмента, като създадете свои собствени модули.

Каин и Авел

Това е инструмент, предназначен за възстановяване на пароли в Windows, за да го пропуснете, позволява ви да използвате груба сила, но също и речникови атаки и атаки с помощта на дъгови таблици (Rainbow Table).

Ще поставя под код в Python, който получава пароли, които съдържат само числа от уеб страница, до 5 цифри, може да се направи и с букви, по -голяма дължина и т.н. Първо ви оставям код, който обслужва заявки за публикации в PHP:

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

След това оставям кода на Python, който отговаря за изпращането на заявки към предишния код.

 import http.client, urllib.parsefrom time import target time = "/bruteForce/index.php"headers = {" Content-type ":" application / x-www-form-urlencoded "," Accept ":" application / xhtml + xml, text / html; q = 0.9, text / plain; ",} намерен = Falsepassword = 0home = time (), докато паролата <= 99999 и не е намерена: параметри = urllib.parse.urlencode ({'user': ' josue ',' pass ': password}) connection = http.client.HTTPConnection ("localhost") connection.request ("POST", target, параметри, заглавки) response = connection.getresponse () if (response.status == 200): print ("Парола е намерена за потребителя josue, es", парола) print ("Отне време: {0: .2f} s".. (парола) connection.close () парола + = 1 ако не е намерено: print ("Не е намерена парола за josue")
Този код прави заявките за публикуване, при всяко преминаване към цикъла всичко, което правим, е да сменим паролата и да добавим 1 към нея, така че ще опитаме всички възможни пароли от 0 до 99999 (ако не я намерим преди). Нарисувайте всички числа, които намерите, защото така исках за пример, можете да го премахнете, за това елиминирате останалото. Нека стартираме този код, за да видим дали намира паролите.

Първият пример, който ще стартираме, за да намерим паролата 2087, по -долу е изображението, можете да видите, че не ми отнемат 18 секунди, за да го получа.

Ако премахна останалото, така че да не рисува на екрана, всяко число отнема много по -малко време, тук можете да видите екранна снимка:

Сега за втория и последен опит сложих паролата 20870, за да видя колко време отнема този път.

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

Ако искате да видите практически пример, в който паролата на цип или rar е счупена, можете да посетите следния урок:

Разбийте паролата .rar или .zip

Хареса ли ви и помогнахте на този урок?Можете да възнаградите автора, като натиснете този бутон, за да му дадете положителна точка
wave wave wave wave wave