Brute Force attack

{title}

I denna handledning kommer vi att prata om attacken för brute force och några verktyg för att utföra denna attack kommer att nämnas. Den första av allt är att säga vad brute force handlar om, även om man med sitt namn kan föreställa sig det.

Det är en teknik som bygger på prövning och fel, används för att få lösenord eller dekryptera data, den här metoden letar inte efter en intelligent strategi, men den testar alla möjliga kombinationer tills du hittar nyckeln.

Är det möjligt att ta ut något lösenord eller dekryptera någon fil? Om vår tid var oändlig, förmodligen, men om inte, är svaret nej, lösenord eller långa lösenord och med flera faktorer (versaler, versaler, siffror, specialtecken) skulle det ta oss lång tid att få dem ut med den här metoden (kom igen, i ett liv nr skulle uppnås).

Vi kan använda den här metoden för att kontrollera säkerheten för våra lösenord eller kryptering mot sådana attacker. Om du vill veta hur du skapar ett starkt lösenord rekommenderar jag att du läser den här handledning. En krypteringsalgoritm som är sårbar för denna typ av attack är DES, det motsatta inträffar med AES, som inte är sårbar för brute force. Det är bäst att förstå kryptografifältet väl.

Kryptografiens värld

Att ha ett säkert lösenord är det första steget, men du kan också sätta ytterligare ett lager skydd genom att använda den dubbla autentiseringsfaktorn i dina konton (åtminstone de mest värdefulla), för närvarande finns det redan tjänster som erbjuder det integrerat och på ett sätt gratis, som Google, Twitter och Linkedin. Dessa system skickar normalt ett meddelande till din mobil med en kod när du har angett rätt lösenord, så tills du anger den koden kommer du inte att kunna ange ditt konto.

Det bör noteras att brute force vanligtvis kombineras med ordboksattacker, denna attack består av att ha en fil med mer typiska lösenord (människor använder ofta ord kända för sina lösenord, så de kommer ihåg dem bättre) och prova dem alla tills de hittar nyckeln eller Slutför lösenord utan framgång. Attacken i allmänhet är mer effektiv, även om vi använder flera faktorer i vårt lösenord minskar chanserna för framgång avsevärt.

Brute force-verktyg

John ripparen

{title}

Det är öppen källkod och gratis, vanligtvis hittar du det distribuerat i källkod. Det huvudsakliga målet är att hitta svaga lösenord i UNIX-operativsystem.

John ripparen

THC Hydra

{title}

Med det här verktyget kan du använda brute force på fjärrverifieringstjänster. Du kan utföra ordbokattacker mot mer än 50 protokoll.

THC Hydra

maneter

{title}

Det är ett modulärt verktyg som fungerar parallellt med brute force i början av sessionen. Kompatibel med protokoll som FTP, HTTP, IMAP, SSH, etc.

maneter

Ncrack

{title}

Det är ett verktyg för att knäcka nätverksautentiseringar, det fungerar snabbt. Du kan utöka verktyget genom att skapa dina egna moduler.

Ncrack

Kain och Abel

{title}

Det är ett verktyg för att återställa lösenord i Windows, för att knäcka kan du använda brute force, men också ordboksattacker och attacker med regnbågtabeller (Rainbow Table).

Kain och Abel

Jag lägger ned en kod i Python nedan som får lösenord som endast innehåller siffror från en webbsida, upp till 5 siffror, det kan också göras med bokstäver, längre längd etc. Först lämnar jag koden som adresserar inläggsförfrågningarna i PHP :

 Vi ser att vi inte har några begränsningar för försök, att användaren och hans lösenord definieras just där (för att undvika databaser och komplikationer till koden), om användarnamnet och lösenordet är korrekta returnerar vi en kod 200 och om inte en 403.

$config[ads_text5] not found

Sedan lämnar jag Python-koden som är ansvarig för att skicka förfrågningar till föregående kod.

 importera http.client, urllib.parsfrån tid import objektiv tid = "/bruteForce/index.php"headers = {" Content-type ":" applikation / x-www-form-urlencoded ", " Accept ":" applikation / xhtml + xml, text / html; q = 0, 9, text / vanlig; ", } hittade = Falsepassword = 0 start = tid () medan lösenord <= 99999 och inte hittat: parameters = urllib.parse.urlencode ({'user': 'josue ', ' pass ': lösenord}) anslutning = http.client.HTTPConnection ("localhost") connection.request ("POST", mål, parametrar, rubriker) answer = connection.getresponse () if (answer.status == 200 ): print ("Lösenord hittades för user josue, es", lösenord) print ("Det tog: {0: .2f} s" .format ((tid () - start))) found = Sant annat: print ( lösenord) connection.close () lösenord + = 1if hittades inte: skriv ut ("Inget lösenord hittades för josue") 
Den här koden gör att förfrågningarna publiceras, i varje pass till slingan, allt vi gör är att ändra lösenordet och lägga till 1, så vi testar alla möjliga lösenord från 0 till 99999 (om vi inte hittade det förut). Måla alla siffror du hittar, eftersom jag ville ha det till exempel kan du ta bort det, för detta tar du bort det andra. Låt oss köra den här koden för att se om den hittar lösenorden.

Det första exemplet kommer att starta det för att hitta lösenordet 2087, nedan är bilden, du kan se att det inte tar ens 18 sekunder att ta bort det.

Om jag tar bort det andra så att det inte målar på skärmen tar varje nummer mycket mindre, här kan du se en skärmdump:

För det andra och sista försöket satte jag lösenordet 20870 för att se hur lång tid det tar den här tiden.

Skillnaden märks genom att lägga till ett tecken till lösenordet, men det är fortfarande en tid som vi kan vänta utan problem, även om vi sätter trådar skulle tiden minska. Det är därför vi använder starka lösenord och i våra applikationer robusta autentiseringar, som inte kan automatisera denna attack.

Om du vill se ett praktiskt exempel där lösenordet för en zip eller rar bryts kan du besöka följande handledning:

Bryt lösenordet .rar eller .zip

  • 0