De tekniska principerna för lösenordsprovning: hur man ökar framgångsrikt dekryptering, och hur man framgångsrikt dekrypterar och återställer lösenord.

Tänk som en hacker och fråga dig själv hur snabbt lösenordet kan knäckas beroende på dess struktur.

När hackare eller penetrationstestare bryter ett system och vill få tillgång till lösenord i klar text från en databasdump måste de först knäcka de lagrade lösenordshashvärdena. Många angripare kastade sig in i konceptet: de försökte någon godtycklig lösenordsattack de ville försöka, och det fanns lite anledning. Den här diskussionen kommer att visa några effektiva lösenordsbrytande metoder och hur man kombinerar statistisk analys av lösenord med verktyg för att skapa ett tidsbegränsat tillvägagångssätt för effektiv och framgångsrik knäckning.

Varför är detta viktigt?

Knäckning av lösenord är en döende sak. Användare behöver skapa mer komplexa lösenord, och vissa back-end-utvecklare börjar använda mekanismer som   Bcrypt   för att ersätta standard hashfunktioner. BCrypt-hashvärden tar längre tid att generera, så lösenord blir svårare att knäcka. Hackare behöver generera hashvärden mycket snabbt för att knäcka lösenord effektivt, så Bcrypt är ett mycket kraftfullt verktyg mot sådana attacker. För att illustrera detta exempel kan ett lösenordsknäckningsprogram producerat av 25 GPU-kluster som lanserades 2012 uppnå en NTLM-hashgenereringshastighet på 350 miljarder hashs per sekund, medan BCrypt-hashgenereringshastigheten är 71 000 hashs. Med detta som en jämförelsemodell kan 5 miljoner NTLM-hash genereras för varje genererad BCrypt-hash. När man står inför BCRPYTED-algoritmen måste hackare göra mer beräknade gissningar på lösenordet och kan inte förlita sig på att använda brå kraft för varje möjlighet.

执行流程的顺序

Obs: Om angriparen vet att lösenordets längd är så kort att det inte tar lång tid att brutkracka nyckelutrymmet, behöver det inte vidta inkrementella attacksteg.

Tidslinje

Tidseffektivitet blir en nyckelfaktor för att lyckas knäcka lösenord. Även om det skulle vara bra att täcka hela det kritiska utrymmet för användarlösenordet, är den tid som krävs för att göra det vanligtvis inte genomförbar. Vid knäckning är det därför viktigt att först försöka den mest tidsbesparande attacken och om det inte lyckas fortsätta med en långsammare kryptografisk attack som täcker mer nyckelutrymme. Det snabbaste sättet är en enkel ordboksattack baserad på vanliga användarlösenord och tidigare lösenordsdumpar. Därifrån bör man försöka manipulera ordboken för att lägga till siffror eller symboler i slutet eller ändra bokstäver. Detta kallas en hybridattack eller regelbaserad attack. Därefter kan du försöka använda maskininlärningsfunktioner för att generera möjliga lösenord. Markov-kedjan är ett bra exempel. Genom att kombinera vanliga element som finns på engelska för att bilda ord (t.ex. "ing", "er", "qu") kan en bra gissning på lösenordet genereras, till exempel lösenordet nedan. Även om det är lätt att knäcka detta specifika lösenord med vilken metod som helst, kommer vi att använda det lösenordet för att förenkla alla attackvektorer. lösenord1234lösenord1234

Pa +   ss   +   Word   +   1234

Slutligen täcker riktade brute force attacker (kallade maskattacker) hela nyckelutrymmet för ett givet lösenord baserat på en kryptografisk struktur. Med "struktur" av lösenord menar jag typen och ordningen av tecken som används för att skapa lösenordet. Till exempel en "struktur" med stora bokstäver, följt av 7 små bokstäver, följt av 4 siffror (noterade som). lösenord1234ullllllldddd

Små bokstäver, stora bokstäver, symboler, siffror (l) (u) (s) (d)

Så om en angripare bestämmer sig för att använda strukturen för att skapa alla möjligheter för teckenkombinationer, kommer han eller hon så småningom att hitta lösenordet. Då blir angriparens fråga: Vilken struktur ska riktas in först när man attackerar en uppsättning hashvärden? lösenord1234

Statistisk analys

För att hjälpa till att svara på denna fråga har jag gjort lite statistisk analys av populära lösenordsdumpar för att se om det finns en mer vanlig lösenordsstruktur än andra, och i vilken utsträckning denna struktur är korrekt. Provstorleken på över 34 miljoner offentligt exponerade lösenord inkluderar välkända lösenordsdumpar som RockYou, LinkedIn, phpBB, etc.

 

Figuren nedan visar hur ofta maskstrukturen riktar sig till varje unik mask. Den röda linjen representerar 50% linjen, som förekommer efter den 13:e vanligaste masken.


从示例图派生的密码掩码

Detta innebär att de första 13 unika maskstrukturerna står för 50 % av exempellösenordet. Strukturen för mer än 20 miljoner lösenord i provet finns i de 13 första maskerna. Dessa resultat är ganska chockerande när det gäller universaliteten hos strukturerade lösenord. De andra 50% finns i den långa högra svansen och har reducerats i denna diagram. Faktum är att endast 400 av de 260 500 unika maskerna visas i den här figuren. Konceptet med detta universella strukturerade lösenord är otroligt; Det är dock inte förvånande när man tänker på hur användare skapar och kommer ihåg sina lösenord. Baserat på analysdata finns det några logiska faktorer som hjälper till att förklara hur detta är möjligt. När en användare ombeds ange ett lösenord som innehåller stora bokstäver används det som det första tecknet mer än 90% av tiden. När siffror ombeds lägger de flesta användare två siffror i slutet av lösenordet (troligen examensår). Nästa mest populära alternativ är att avsluta lösenordet med fyra siffror (förmodligen föregående år eller i år). I det här fallet har nästa mest populära nummer ett nummer i slutet och tre nummer i slutet. Strukturella gemensamheter som denna gör det möjligt för en angripare att förutsäga vad strukturen för användarens lösenord sannolikt är.

Statistisk blandning – acceleration

Med denna strukturkunskap kan man säkert anta att användaren sannolikt kommer att ställa in sitt lösenord till TAN (slumpmässiga bokstäver), även om de alla börjar med 9 bokstäver och har 9 bokstäver. Därför antar vi att med tanke på en kryptografisk struktur, om vi ser på varandra följande bokstäver, är det sannolikt ett ord. Detta är ett mycket användbart antagande för crackers eftersom det eliminerar mycket nyckelutrymme. Detta blir sedan en hybridattack som utnyttjar den statistiska signifikansen av den gemensamma kryptografiska strukturen. potatoespwivwdhpp

Effektivitet och tidsbegränsningar

Normalt, som penetrationstestare, även om vi bryter en uppsättning hashvärden, kanske vi inte hinner knäcka alla hashvärden. Att bryta dem kan dock hjälpa till att uppgradera åtkomsten till systemet och ge kunderna mer användbara upptäckter. Därför kan det vara användbart att bestämma hur mycket tid som ska tilldelas för att knäcka en uppsättning hashvärden när du knäcker lösenord. Med hjälp av de strukturer som hittades i den tidigare analysen kan en angripare bestämma vilka topp 10 populära strukturer han eller hon vill täcka baserat på lösenordskomplexitetskrav sorterade efter snabbaste slutförandetid. Slutligen kan en angripare tidsbegränsa sin metod genom att spendera högst en timme på att utföra knäckningen. Detta upptäcktes i ett nyligen genomträngningstest för att få hash. Nedan är en ögonblicksbild av resultatet av CPU-baserad cracker.

受损结果表

I det här fallet är den snabbast färdiga strukturen, som vi definierar som en stor bokstav följt av tre små bokstäver ("W" för "Word") och sedan fyra siffror. Det finns 69 lösenord i hash-uppsättningen som matchar strukturen och min standard CPU kan gå igenom alla möjligheter för strukturen på en minut. Vi slutade knäcka vid 62 minuter och knäckningen resulterade i 221 unika knäckhash som matchade 491 konton, vilket resulterade i totalt 11% av läckan. Anledningen till den stora skillnaden i antalet knäckta lösenord och kontoläckor är att Office-inställningar ofta leder till att folk använder vanliga lösenord. Om en angripare bestämmer att ett gemensamt lösenord används i miljön, kommer alla användare med samma lösenord också att hotas. U (W3) dddd

Även om hybridattacker eller regelbaserade attacker (t.ex.) kan knäcka flera av dessa lösenord snabbare, kan strukturen av attacklösenordet tillåta oss att täcka mer nyckelutrymme. Denna metod är ett effektivt nästa steg om FASTER-attacken visar sig misslyckas med att framgångsrikt förstöra målhashen. Dessutom är det viktigt att komma ihåg att det här exemplet gjordes på en ganska medioker CPU, och att utföra samma attack på en kraftfull GPU kan minska denna tid till några sekunder. Därför är den exakta tidpunkten inte lika viktig som det effektiva genomförandet av teorin. best64

Statistisk analys för

hjälper oss att attackera vanliga lösenordsstrukturer i allmänhet; Det finns dock verktyg som kan hjälpa till att lokalisera specifika applikationer. Verktyg som CeWL   kan genomsöka ord från webbsidor och användas för att skapa ordlistor eller ordböcker specifikt för företag. Det fungerar eftersom företag tenderar att använda lösenord som är kopplade till deras bransch, företag eller jobb. Dessutom, eftersom vi har fastställt att vanliga lösenord är populära i arbetsmiljön, är det också möjligt att använda redan knäckta lösenord som grund för andra lösenord, vilket kan vara liknande. Om vi till exempel upptäcker att "" är en användares lösenord kan vi lägga "" i en ny ordlista, lägga den i regeluppsättningen och sedan upptäcka att någon annan har lösenordet "". Detta koncept med att använda knäckta grundläggande ord (som ' ') och modifiera dem med omgivande tecken fungerar mycket effektivt när man knäcker hash-värden som dumpas från företagsmiljön, vilket går tillbaka till begreppet lösenordsåteranvändning. Enligt de penetrationstester vi genomfört är detta bäst att använda för att knäcka de sista 20% oknäckta hashvärdena. AcmeCorp1234AcmeCorpAcmeCorp@2015AcmeCorp

Det är också viktigt att trimma ordboken så att alla lösenord som gissas uppfyller de krav som ansökan anger, så att tiden inte slösas bort på att gissa lösenord som inte går att gissa på grund av längden eller teckensammansättningen.

Att sätta ihop det

Att börja med den snabbaste attacken och täcka det minsta nyckelutrymmet (standard ordboksattacker) till det långsammaste och största nyckelutrymmet (ren bruta kraft) är den mest idealiska utvecklingen för att ta hänsyn till den tid som tilldelats attacken. Därför bör en angripare implementera en standardmetod som tar hänsyn till detta. Om det konto som angriparen vill hacka slutförs i den första fasen, kan det inte finnas någon anledning att fortsätta med andra attacker. Men i många fall kanske en enkel ordboksattack inte räcker om ett målkonto finns, eller så vill angriparen helt enkelt bryta så många konton som möjligt och kan därför behöva använda en hybridattack med statistisk struktur och en riktad brute force attack. Därför är det viktigt att etablera metoder för att lyckas knäcka, vilket kan inkludera de tidigare nämnda metoderna tillsammans med några automatiserade processer. Nyare verktyg, som   PRINCE, kan hjälpa till att underlätta lösenordsbrytning. Det är viktigt att utveckla ett verktygsband, t.ex. PRINCE att försöka i metoderna, men att förstå funktionaliteten bakom verktygen, istället för att helt förlita sig på dem, kommer att göra knäckningen mer effektiv.

Försvar – hur man bekämpar statistik

Genom att analysera med dessa lösenord kan man identifiera de mest populära strukturer med tanke på den komplexitet som krävs. Därför bör utvecklare förmodligen implementera några kontroller för att förhindra användare från att använda några av dessa mycket populära strukturer för att platta kurvan i föregående grafik. Problemet med idén är dock att användarna kan ha svårt att komma ihåg sina lösenord utan en enkel struktur. Jag rekommenderar att du använder en lösenordshanterare som kräver dubbelautentisering. Dessa applikationer kommer att generera och lagra alla dina lösenord åt dig, så minnet är inget problem. De lösenord de genererar är strukturellt slumpmässiga och kan användas så länge som applikationen tillåter det. Som jag nämnde tidigare är krypterade lösenord ett annat mycket effektivt sätt att bromsa utsikterna för en angripare. Slutligen är implementering av strategier på kontoret som hjälper användarna att förstå farorna med att dela lösenord eller återanvända dem ett framgångsrikt steg i rätt riktning, även om användarna inte alltid följer dem. Även om de sannolikt inte kommer att följa det hela tiden, är det en effektiv kontroll.

Slutsatser och vinster

Knäckning av lösenord kan vara ett vagt begrepp. I takt med att svårigheten att knäcka ökar behövs riktade attacker baserade på effektivitet, och personliga knäckningsmetoder bör etableras. Det är inte värt att investera pengar för att i slutändan öka hashgenereringshastigheten. Genomförandet av en metod och förenklade processer med hjälp av statistik och verktyg som ett medel för attack kan därför underlätta lösenordsbrytning. Utvecklare kan utveckla kontroller för att hantera denna situation, och användare kan använda säkra lösenordshanterare för att minimera effektiviteten av dessa attacker. Sådana implementeringar är dock ännu inte särskilt populära. För närvarande är statistiska attacker mot lösenord effektiva när det gäller antalet knäckningar och effektiviteten i tidsanslutningen. Tänk på ditt eget lösenord och fråga dig själv hur snabbt de kan knäckas baserat på lösenordets struktur och vilka kontroller på ditt kontor som kan leda till att en angripare invaderar användarens konto.

Föregående:Hashcat påstår sig vara världens snabbaste lösenordsverktyg. Hur använder du hashcat för att dekryptera lösenord?
Nästa:Handledning: Använda professionell dekrypteringsprogramvara för att knäcka lösenord till Excel-, Word-, PDF- och komprimerade arkivfiler på din egen dator.
  • Fokusera på Word, Excel, PPT, PDF, RAR, ZIP, 7Z, komprimerade paket, Office krypterade filer upplåsning och dekryptering
  • Vi förser användare med högkvalitativ filkomprimerad paket lösenordsåterställning, PDF-upplåsning Word lösenordsåterställning
  • Upphovsrätt © Dokumentlösenordsåterställningsmästare Dekrypteringsplattform online