Passcovery Suite – Password Recovery
Zolang we met wachtwoorden werken zullen we te maken hebben met wachtwoorden die kwijtraken. Soms kun je naar je systeembeheerder gaan zodat hij het wachtwoord voor je kan resetten, maar soms zul je zelf heel, heel diep moeten graven in je geheugen om het wachtwoord te kunnen achterhalen. En als zelfs dat niet lukt, dan heb je een probleem! Openstaande opties zijn dan nog om “er om heen” te hacken. Aangezien dit lastig is blijft er nog 1 prachtige optie over. Password Recovery Software. In deze post laat ik jullie de password recovery suite zien van “Passcovery”. Zit je met een verloren wachtwoord, dan is Passcovery je allerbeste vriend. Waarom dat is, dat ga ik jullie vertellen. Lezen jullie mee?
Passcovery is een Russisch bedrijf waarvan de eerste producten als in 1999 verschenen. In 2008 is Passcovery zich bedrijfsmatig gaan vestigen en tot op de dag van vandaag is het een kennisbedrijf waar programmeurs met passie werken om een zo optimaal mogelijk password recovery oplossing te maken. En dat resulteert in een aantal zeer mooie producten. Passcovery brengt producten uit als losse tools voor b.v. verschillende soorten Office bestanden. Deze zijn te vinden op https://passwordrecoverytools.com/. Maar het vlaggenschip van Passovery is de totale Passcovery suite: https://passcovery.com. De Passcovery suite is in staat om wachtwoorden vele soorten bestandsformaten te achterhalen zoals b.v. MS Office bestanden, Adobe PDF, WinRAR, ZIP, Apple IOS etc.
Niet alle password recovery tools hebben “GPU acceleration”. Passcovery kent zowel GPU acceleration voor NVIDIA als AMD grafische kaarten. Middels “GPU-computing technologie” is het mogelijk een significant snellere crack-cyclus te doorlopen doordat wachtwoorden op een maximale rekensnelheid worden berekend. Mede door deze techniek wordt het brute-forcen van wachtwoorden ontzettend versneld. De basis licentie voor Passcovery (standaard) ondersteund 1 GPU. De Professional ondersteund 2 GPU’s en heb je een dikke crackbox thuis met meerdere GPU’s dan is de Ultimate licentie geschikt want deze ondersteund alle GPU’s in het systeem.
Office bestanden v.a. Office XP (2003) maken gebruik van 128-bits encryptie of hoger. Alle bestanden van oudere Office versies kunnen door Passcovery instantly (direct) gekraakt worden. Voor latere Office bestanden zijn diverse andere mogelijkheden aan boord om deze te kraken. Denk aan dictionary attacks, brute force attacks, rainbow tables maar ook:
- Mask Attack
- Extended (position) Mask Attack
- Attack with dictionary integration and mutation
Laten we de laatste 3 specialistische methodes eens nader bekijken:
Mask Attack
Met een dictionary attack worden alle woorden van de lijst als wachtwoord geprobeerd. En met een brute force attack proberen we met random combinaties (meestal in chronologische volgorde) het wachtwoord te achterhalen. Maar met een “mask attack” houden we rekening met de manier waarop we als mens vaak een wachtwoord samenstellen. Mensen gebruiken vaak een combinatie van “woorden”, “letters” en “symbolen”. Stel je het volgende wachtwoord voor:
Jarno##2000
De kans dat ik ook het volgende wachtwoord zou gebruiken is aannemelijk:
Jarno$$2010
Zoals je ziet bestaat dit wachtwoord altijd uit 5 letters, 2 symbolen en 4 cijfers. Met een mask attack houden we rekening met deze wetenschap en kunnen we dus veel gerichter wachtwoorden brute-forcen. Hierbij zullen op de eerste 5 en laatste 4 posities geen symbolen geprobeerd worden en op de middelste 2 posities zullen nooit cijfers of letters geplaatst worden. Omdat bij dit type aanval de keyspace veel Kleiner is, is deze methode ook en stuk sneller en efficiënter. Een mask attack is altijd veel beter van een brute force attack. Een voorwaarde hierbij is dat je enig idee moet hebben (of verzinnen) hoe het wachtwoord opgebouwd kan zijn.
Extended (position) Mask Attack
Deze methode is een uitbreiding / variant op bovenstaande (normale) mask attack. De extended mask attack is nog efficienter omdat je per positie het aantal karakter om te proberen kunt beperken. Bij een normale mask attack zouden op de eerste 5 posities de volgende letters geprobeerd worden [a-z | A-Z]. Wanneer je iets van het wachtwoord en zijn structuur weet dan kun je deze kennis gebruiken om slechts per karakter een paar variaties te proberen. Dit maakt de aanval nog effectiever.
Attack with dictionary integration and mutation
Een normale dictionary attack is soms erg handig. Maar Passcovery heeft hier een zeer waardevolle uitbreiding op gemaakt, namelijk “dictionary attack integration and mutation”. Dit betekend dat de Passcovery software slim genoeg is om verschillende dictionaries samen te voegen en om nieuwe wachtwoorden te combineren van de woorden in de separate dictionaries. Zo kun je b.v. een dictionary met postcodes, jaartallen en achternamen hanteren en Passcovery maakt hier vervolgens combinaties van. Maar dat is niet het enige. Door het toepassen van de juiste mask (mutation) kun je Passcovery ook op basis van mutation de woorden laten aanpassen. Je kunt er dus voor kiezen om naast alle woorden met een kleine letter ook alle woorden te laten starten met een hoofdletter. Op deze manier hoef je zelf geen custom dictionaries te maken maar laat je Passcovery het werk voor je doen.
Daarnaast ondersteund Passcovery multilingual Unicode dictionaries (dictionary attack), 8 verschillende talen en naast een GUI ook CLI ondersteuning.
Een belangrijke feature is de mogelijkheid om de attack status op te slaan zodat je later op een ander tijdstip weer door kunt gaan waar je gebleven was. Hier verlies je dus geen tijd mee.
Maar genoeg over de features. We willen het zelf natuurlijk ook zien. Passcovery is zo vriendelijk geweest om mij een licentie van de software op te sturen. Laten we dus eens aan de slag gaan met de Passcovery Suite!
Passcovery Installatie
We gaan eerst de software downloaden van de Passcovery site (https://passcovery.com/download/?prod=suite) en vervolgens gaan we deze middels “volgende – volgende – voltooiden” installeren.
Gedurende de installatie vul je het serienummer in om de volledige versie te activeren. Doe je dit niet dan maak je gebruik van de trail versie.
Nadat je de Passcovery suite voor het eerst start en tijdens installatie een licentiesleutel ingegeven hebt is het zaak om de licentie te activeren:
En wanneer dat dat allemaal klaar is, is Passcovery klaar voor gebruik:
Werken met de Passcovery Suite
Nu de Passcovery Suite geïnstalleerd en geactiveerd is wordt het tijd om wat wachtwoorden te kraken. Maar laten we eerst eens door de interface lopen:
De menubalk is optimaal ingericht. Het mapje om een file in te laden, de play knop om het kraken te starten en de stop/pauze knop om dit proces te onderbreken. Daarnaast zit het tandwieltje om de instellingen te openen en tenslotte aan de rechterkant bevindt zich een goede helpfuctie.
Via de instellingen bepaal je hoe je wilt dat Passcovery te werk gaat met en met name hoe je wilt dat de CPU en GPU gebruikt worden. Dit is voor iedere setup anders maar wanneer Passcovery op een niet-dedicated PC draait zijn de basisinstellingen prima. Ik heb zelf een aardig videokaart in mijn PC zitten en dus zien mijn instellingen er als volgt uit:
Vervolgens, om meer inzicht te krijgen in de snelheid (en review van de ingestelde settings) is het verstandig om de “Benchmark” tool te draaien (onder “Tools” in het menu):
Onder “File” vinden we een WPA-PMK generator welke een file genereerd op basis van je SSID en vervolgens hiervan het WPA wachtwoord probeert te kraken. Zo maakt de Passcovery suite het heel gemakkelijk om offline WPA wachtwoord te kraken. Zoals je ziet heb je na het onderbreken van een password attack de mogelijkheid om deze opnieuw te starten of om door te gaan waar je gebleven was:
Een belangrijk onderdeel van de Passcovery Suite is de “Rules Editor” (te vinden onder Tools). De Rules Editor stelt de gebruiker in staat om regels te maken voor password mutaties. De Rules Editor heeft een duidelijke legenda zodat je weet wat een bepaalde regel doet:
In de rechterbovenhoek bevinden zich de “test” woorden (elke lijst stelt een dictonary voor). De box linksonder is de rules editor en de box rechtsonder is de “result” box waarin je kunt zien wat je “rules” doen met de opgegeven testwoorden.
We beginnen een rules file altijd met een header waarin we zetten welke versie het, wat zijn naam is en wat volgens onze logica de hoofd- en kleine letters zijn:
Id=IGPRSRULES_V1.0 Name=General-Rules Language=Dutch Smals=abcdefghijklmnopqrstuvwxyz Caps=ABCDEFGHIJKLMNOPQRSTUVWXYZ |
En vervolgens starten we de “rules” met de [Rules] indicatie:
[Rules] |
Ik wil graag dat:
1 – Alle wachtwoorden uit de lijst geprobeerd worden (dit doen we met $w, voor “word”)
2 – Alle wachtwoorden geprobeerd worden met een hoofdletter vooraan (dit doen we met $w.c)
3 – Wachtwoorden volledig in hoofdletters geprobeerd worden (dit doen we met $w.u)
4 – Wachtwoorden geprobeerd worden met als afsluiter “2020” (dit doen we met $w.Bs2 @eql(2020))
5 – Wachtwoorden van dictionary 2 ook geprobeerd worden volgens dezelfde regels
6 – De woorden van dictionary 1 en dictionary 2 worden samengevoegd als 1 wachtwoord (en visa versa). Dit doen we met $w$x en $x$w.
In het totaal hebben we dan de volgende regels:
$w $w.c $w.u $w.Bs2 @eql(2020) $x $x.c $x.u $x.Bs2 @eql(2020) $x$w $w$x |
Dit ziet er dan als volgt uit:
Om vervolgens ook dictionary 3 en 4 te betrekken gebruik je de variabele $y en $z. Wanneer je klaar bent met het definiëren van je ruleset kun je je regels opslaan naar een bestand om die vervolgens later weer in te laden. Op deze manier kun je gemakkelijk verschillende rulesets voor verschillende toepassingen maken.
Wanneer alle regels in-play zijn kunnen we beginnen met het kraken van een wachtwoord. Laten we een kijken hoe dit eruit ziet:
Allereerst gaan we een document opslaan met het wachtwoord “abygurl69”. Dit wachtwoord komt voor in de bekende “rockyou.txt” wachtwoordlijst:
En nu gaan we een normale dictionary attack uitvoeren met de rockyou.txt lijst. Wanneer we het bestand openen geeft Passcovery mooi aan welke versleuteling er op zit.
Door op de “Extract data required for attack” button te klikken kunnen we een “bin” file opslaan welke we eventueel kunnen gebruiken in een andere password cracker. Feitelijk worden hier de hashes mee opgeslagen. Aangezien we gewoon Passcovery willen gebruiken kiezen we voor “Volgende” en maken we de keuze voor een Dictionary based attack. Default staat een Passcovery attack scenario geselecteerd. Dit is een Passcovery profiel voor een zo optimale brute force aanval op dit type bestand:
We hebben de keuze om een ruleset te selecteren en om een dictionary te selecteren. Passcovery komt zelf met een aantal basis dictionaries en een paar pre-defined ruleset. Wij selecteren gewoon geen ruleset en de rockyou.txt dictionary:
Wanneer we op voltooien klikken gaat Passcovery aan de slag.
Al met al doet Passcovery er +/- 1.5 uur over om het wachtwoord te achterhalen. Het wachtwoord stond helemaal aan het einde van de lijst en dus heeft Passcovery 14 miljoen wachtwoorden in 90 minuten geprobeerd.
Op eenzelfde manier kun je natuurlijk ook kiezen voor een Brute Force attack. Bij een Brute Force attack is het belangrijk om te kiezen welke karakters er getest moeten worden. Passcovery laat je dit gemakkelijk selecteren. Ook moet je aangeven v.a. hoeveel karakters Passcovery moet starten en hoeveel karakters hij maximaal moet testen. De counter onderaan geeft aan hoeveel wachtwoorden er geprobeerd worden met de reeds gekozen opties. Daarnaast kun je een “mask” selecteren. Weet je b.v. al een deel van het wachtwoord, dan geef je met de vraagtekens aan welke posities nog ge-brute-forced moeten worden:
Je kunt ook kiezen voor een “Brute Force with extended mask” attack. Het voordeel van dit type aanval is dat je veel specifieker je mask kunt opbouwen. De mask symbolen die je hier ter beschikking hebt zijn:
?c — all capital latin letters
?s — all small latin letters
?d — all digits
?e — all special characters (34 symbols, from space (0x20) to 0x7F)
?a — all printable characters (96 symbols from 0x20 to 0x7F but in special order)
?? — ? symbol itself
Een paar voorbeelden:
Mask:
?a |
Karakters in brute-force:
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~ (and 0x7F |
Mask:
?s |
Karakters in brute-force:
abcdefghijklmnopqrstuvwxyz |
Mask:
?s?d |
Karakters in brute-force:
abcdefghijklmnopqrstuvwxyz0123456789 |
Mask:
?s?c |
Karakters in brute-force:
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ |
In het uiteindelijke masker betekend elke ? een positie van het wachtwoord. Stel je voor dat je een wachtwoord tot maximaal 5 karakters wilt kraken en elke positie moet getest worden met kleine letters dan geef je dit als volgt aan:
?s?s?s?s?s
Naast het vraagteken kun je ook een sterretje (*) gebruiken als positieplek. Dit betekend dan niet 1 posities maar alles. Dus wanneer ik een wachtwoord met 5 karakters wil testen waarvan de eerste en laatste kleine letters mogen bevatten en alle tussenliggende hebben cijfers dan ziet dit mask er als volgt uit:
?s*d?s
Wil je eigen karaktersets maken dan kan dat ook. Stel voor dat je een positie wilt testen met hoofd en kleine letters dan kun je een eigen karakterset maken met “?c?d”. Deze kun je dan aanroepen in je mask met het nummer van je custom karakterset. B.v. ?0.
Stel je voor dat je karakterset 0 de hoofdletters en kleine letters heeft (?c?d) en je wilt een woord testen van 5 letters waarvan de eerste positie getest moet worden op een hoofd en kleine letter (dus je custom karakterset 0) en de overige 4 op alleen kleine letters dan ziet dit mask er als volgt uit:
?0?s?s?s?s
OF
?0*s
Zie hierbij het volgende voorbeeld:
Conclusie
Passcovery zit al ruim 20 jaar in het vak en dat kun je merken. De Passcovery tools zien er goed uit, huisvesten professionele functionaliteiten en werken intuïtief. Ik zou zelf heel graag een Linux variant zien zodat ik ook mijn “Kali” machine kan uitbreiden met een handig password cracker voor allerhande bestanden. Maar naast dat is dit absoluut een van de betere en meest degelijke password crackers op Windows. GPU processing wordt goed ondersteund en het kunnen hervatten van een “crack task” is in de praktijk en zeer waardevolle feature. Passcovery is niet de goedkoopste maar je haalt hiermee zeker een stukje kwaliteit in huis waarmee je het achterhalen van wachtwoorden op een degelijke manier, volledig naar eigen inzicht en wensen kunt vormgeven.