Sådan knækker du adgangskoder

En kort note - denne artikel handler om teorien om, hvordan man knækker adgangskoder. At forstå, hvordan cyberkriminelle udfører angreb, er ekstremt vigtigt for at forstå, hvordan man sikrer systemer mod disse typer angreb.

Forsøg på at hacke et system, som du ikke ejer, er sandsynligvis ulovligt i din jurisdiktion (plus hacking af dine egne systemer kan [og ofte bryder] enhver garanti for det produkt).

Lad os starte med det grundlæggende. Hvad er et brutalt kraftangreb?

Denne type angreb involverer gentagne gange forsøg på at logge ind som bruger ved at prøve alle mulige bogstaver, tal og tegnkombinationer (ved hjælp af automatiserede værktøjer).

Dette kan gøres enten online (så i realtid ved løbende at prøve forskellige kombinationer af brugernavn og adgangskode på konti som sociale medier eller banksider) eller offline (for eksempel hvis du har fået et sæt hashede adgangskoder og forsøger at knække dem offline).

Offline er ikke altid mulig (det kan være svært at få et sæt hashede adgangskoder), men det er meget mindre støjende. Dette skyldes, at et sikkerhedsteam sandsynligvis vil bemærke mange, mange mislykkede login-konti fra den samme konto, men hvis du kan knække adgangskoden offline, har du ikke en oversigt over mislykkede loginforsøg.

Dette er relativt let med en kort adgangskode. Det bliver eksponentielt sværere med en længere adgangskode på grund af det store antal muligheder.

For eksempel, hvis du ved, at nogen bruger en adgangskode på 5 tegn, der kun består af små bogstaver, er det samlede antal mulige adgangskoder 26 ^ 5 (26 mulige bogstaver at vælge imellem for det første bogstav, 26 mulige valg for det andet brev osv.) eller 11.881.376 mulige kombinationer.

Men hvis nogen bruger et kodeord på 11 tegn, kun med små bogstaver, er det samlede antal mulige adgangskoder 26 ^ 11 eller 3.670.344.486.987.776 mulige adgangskoder.

Når du tilføjer store bogstaver, specialtegn og tal, bliver det endnu sværere og mere tidskrævende at knække. Jo flere mulige adgangskoder der er, jo sværere er det for nogen at med succes logge ind med et brutalt kraftangreb.

Sådan beskytter du dig selv

Denne type angreb kan forsvares mod på et par forskellige måder. For det første kan du bruge tilstrækkeligt lange, komplekse adgangskoder (mindst 15 tegn). Du kan også bruge unikke adgangskoder til hver konto (brug en adgangskodeadministrator!) For at reducere faren for dataintrængninger.

Et sikkerhedsteam kan låse en konto ud efter et bestemt antal mislykkede loginforsøg. De kan også tvinge en sekundær verifikationsmetode som Captcha eller bruge 2-faktor-godkendelse (2FA), som kræver en anden kode (SMS eller e-mail, app-baseret eller hardware-nøglebaseret).

Her er en artikel om, hvordan man udfører et brutalt kraftangreb.

Hvordan kan du knække adgangskoder hurtigere?

Et ordbogangreb indebærer forsøg på gentagne gange at logge ind ved at prøve et antal kombinationer inkluderet i en forudkompileret 'ordbog' eller en liste over kombinationer.

Dette er normalt hurtigere end et brutalt kraftangreb, fordi kombinationerne af bogstaver og tal allerede er beregnet, hvilket sparer tid og computerkraft.

Men hvis adgangskoden er tilstrækkelig kompleks (for eksempel 1098324ukjbfnsdfsnej) og ikke vises i 'ordbogen' (den forudkompilerede liste over kombinationer, du arbejder fra), fungerer angrebet ikke.

Det lykkes ofte, fordi de ofte vælger almindelige ord eller variationer på disse ord, når folk vælger adgangskoder (for eksempel 'adgangskode' eller 'p @ SSword').

En hacker bruger muligvis også denne type angreb, når de kender eller gætter på en del af adgangskoden (for eksempel en hunds navn, børns fødselsdage eller en jubilæum - oplysninger, som en hacker kan finde på sociale mediesider eller andre open source-ressourcer).

Lignende beskyttelsesforanstaltninger som dem, der er beskrevet ovenfor mod brute force-angreb, kan forhindre, at disse typer angreb bliver vellykkede.

Hvad hvis du allerede har en liste over hashede adgangskoder?

Adgangskoder gemmes i / etc / shadow-filen til Linux og C: \ Windows \ System32 \ config-fil til Windows (som ikke er tilgængelige, mens operativsystemet startes op).

Hvis det er lykkedes dig at hente denne fil, eller hvis du har fået en adgangskodeshash på en anden måde som f.eks. At snuse trafik på netværket, kan du prøve 'offline' adgangskodekrakning.

Mens angrebene ovenfor kræver gentagne forsøg på at logge ind, hvis du har en liste over hashede adgangskoder, kan du prøve at knække dem på din maskine uden at modregne alarmer genereret ved gentagne mislykkede loginforsøg. Derefter prøver du kun at logge ind en gang, efter at du har knækket adgangskoden med succes (og derfor er der intet mislykket loginforsøg).

Du kan bruge brute force-angreb eller ordbogangreb mod hash-filerne og kan være vellykket afhængigt af hvor stærk hashen er.

Vent et øjeblik - hvad er hashing?

35D4FFEF6EF231D998C6046764BB935D

Kan du genkende denne meddelelse? Det siger 'Hej jeg hedder megan'

7DBDA24A2D10DAF98F23B95CFAF1D3AB

Denne er første afsnit i denne artikel. Ja, det ser ud som vrøvl, men det er faktisk en 'hash'.

En hash-funktion gør det muligt for en computer at indtaste en streng (en kombination af bogstaver, tal og symboler), tage den streng, blande den og sende en streng med fast længde. Derfor har begge strengene ovenfor samme længde, selvom strengens input var meget forskellige længder.

Hashes kan oprettes fra næsten ethvert digitalt indhold. Dybest set kan alt digitalt indhold reduceres til binært eller en række på 0 og 1. Derfor kan alt digitalt indhold (billeder, dokumenter osv.) Hashes.

Der er mange forskellige hashing-funktioner, hvoraf nogle er mere sikre end andre. Ovenstående hash blev genereret med MD5 (MD står for "Message Digest"). Forskellige funktioner varierer også i længden af ​​hash, de producerer.

Det samme indhold i den samme hash-funktion producerer altid den samme hash. Selv en lille ændring vil dog ændre hashen fuldstændigt. For eksempel,

2FF5E24F6735B7564CAE7020B41C80F1

Er hash for 'Hej mit navn er Megan' Bare kapitalisering af M i Megan ændrede hash helt fra oven.

Hash er også envejsfunktioner (hvilket betyder at de ikke kan vendes). Dette betyder, at hash (unik og envejs) kan bruges som en type digitalt fingeraftryk til indhold.

Hvad er et eksempel på, hvordan hashes bruges?

Hashes kan bruges som bekræftelse på, at en besked ikke er blevet ændret.

Når du f.eks. Sender en e-mail, kan du hash hele e-mailen og også sende hashen. Derefter kan modtageren køre den modtagne besked gennem den samme hash-funktion for at kontrollere, om beskeden er blevet manipuleret under transport. Hvis de to hashes stemmer overens, er meddelelsen ikke ændret. Hvis de ikke stemmer overens, er meddelelsen ændret.

Adgangskoder hashes normalt også, når de er gemt. Når en bruger indtaster deres adgangskode, beregner computeren hash-værdien og sammenligner den med den gemte hash-værdi. På denne måde gemmer computeren ikke adgangskoder i almindelig tekst (så en nysgerrig hacker kan ikke stjæle dem!).

Hvis nogen er i stand til at stjæle adgangskodefilen, er dataene ubrugelige, fordi funktionen ikke kan vendes (selvom der er måder, som regnbue-tabeller, at finde ud af, hvilken almindelig tekst der skaber den kendte hash).

Hvad er problemet med hashes?

Hvis en hash kan tage data af en hvilken som helst længde eller indhold, er der ubegrænsede muligheder for data, der kan hashes.

Da en hash konverterer denne tekst til et fast længdeindhold (for eksempel 32 tegn), er der et endeligt antal kombinationer for en hash. Det er et meget stort antal muligheder, men ikke uendelig.

Til sidst giver to forskellige datasæt den samme hash-værdi. Dette kaldes en kollision.

Hvis du har en hash, og du prøver at gennemgå hver eneste mulige almindelig tekstværdi for at finde den almindelige tekst, der matcher din hash, vil det være en meget lang, meget vanskelig proces.

Men hvad hvis du ikke er ligeglad med hvilke to hashes kolliderer?

Dette kaldes 'fødselsdagsproblemet' i matematik. I en klasse på 23 studerende er sandsynligheden for, at nogen har fødselsdag en bestemt dag omkring 7%, men sandsynligheden for, at to personer deler den samme fødselsdag, er omkring 50%.

Den samme type analyse kan anvendes på hashfunktioner for at finde to hashes, der matcher (i stedet for en bestemt hash, der matcher den anden).

For at undgå dette kan du bruge længere hash-funktioner som SHA3, hvor muligheden for kollisioner er lavere.

Du kan prøve at generere dine egne hash-funktioner til SHA3 her og MD5 her.  

Du kan prøve at brute force hashes, men det tager meget lang tid. Den hurtigere måde at gøre det på er at bruge forudberegnede regnbueborde (der ligner ordbogangreb).

Det virker virkelig let at blive hacket. Skal jeg være bekymret?

Det vigtigste at huske på hacking er, at ingen ønsker at udføre mere arbejde, end de skal gøre. For eksempel kan brute-tvingende hashes være ekstremt tidskrævende og vanskelige. Hvis der er en nemmere måde at få dit kodeord på, er det sandsynligvis, hvad en ondskabsfuld skuespiller prøver først.

Det betyder, at muliggør grundlæggende bedste praksis for cybersikkerhed sandsynligvis er den nemmeste måde at forhindre at blive hacket på. Faktisk rapporterede Microsoft for nylig, at bare at aktivere 2FA vil ende med at blokere 99,9% af automatiserede angreb.

Yderligere læsning:

Populære værktøjer til krakning af adgangskoder