Forum: PC Hard- und Software Passwort modifizieren - Liste erstellen


von Robert E. (Gast)


Lesenswert?

Hallo


ich habe das Password eines rar Archives vergessen. Jedoch kann ich es 
relativ gut eingrenzen

es ist eine kombination von etwa 15 möglichen Wörtern (insgesamt 3 oder 
4 davon), maximal 2 Buchstaben im gesamten Password sind großBuchstaben, 
maximal 2 Buhcstaben sind L33T (verwende nur 3 L33T Paare) und eine 
anschließende maximal 5 stellige Kombination von Zahlen und 
Sonderzeichen (ausschließlich *-+). Das gesamte Passwort hat etwa 28 
Stellen.

wenn ich eine Passwortliste erstellen könnte mit genau diesen Vorgaben, 
wäre es durchaus machbar. Wenn ich aber bei den mir bekannten Programmen 
eine Passwortliste mit den 15 genannten Wörtern erstelle, jede der 28 
Stellen klein- und groß geschrieben wird, alles gel33tet wird usw, 
dauert der Prozess Monate wenn nicht Jahre

Also die Frage ist, gibt es Programme mit denen ich eine Passwortliste 
mit diesen Vorgaben erzeugen kann?

von georg (Gast)


Lesenswert?

Robert E. schrieb:
> Also die Frage ist, gibt es Programme mit denen ich eine Passwortliste
> mit diesen Vorgaben erzeugen kann?

Lies c't 13 vom 6.6., Seite 162: Hacker-Angriff gegen mich selbst. Da 
wird ziemlich genau das beschrieben.

Georg

von Imonbln (Gast)


Lesenswert?

Robert E. schrieb:
> Wenn ich aber bei den mir bekannten Programmen
> eine Passwortliste mit den 15 genannten Wörtern erstelle, jede der 28
> Stellen klein- und groß geschrieben wird, alles gel33tet wird usw,
> dauert der Prozess Monate wenn nicht Jahre

Wenn du schon Monate brauchst um die Liste zu erstellen, dann wird das 
durch Probieren der Liste mindestens genau so lange brauchen. :D

Spontan fallen mir Hashcat oder "John the ripper" ein. Beide lassen sich 
parametrieren, auch was den Passwort Suchraum angeht. Details musst du 
selbst googlen.

von Nano (Gast)


Lesenswert?

Robert E. schrieb:
> wenn ich eine Passwortliste erstellen könnte mit genau diesen Vorgaben,
> wäre es durchaus machbar.
> ....
> Also die Frage ist, gibt es Programme mit denen ich eine Passwortliste
> mit diesen Vorgaben erzeugen kann?

Ich hatte mal ein vergleichbares Problem wie deines bei einer Truecrypt 
Containerdatei bei der ich das Passwort vergessen hatte.
Die bekannten Programme habe ich nicht genutzt, da ich wusste, dass ich 
mir das Passwort aus einem Algorithmus definiert habe.
Allerdings wusste ich die Parameter nicht mehr genau und beim 
Algorithmus war ich mir nicht sicher, ob ich den einen Weg oder den 
anderen Weg gegangen bin.

Also habe ich mir ein C Programm geschrieben das anhand dem Algorithmus 
mit verschiedener Parametrisierung alle Kombinationen einfach durchging 
und an die Truecrypt EXE Datei das Passwort via system() Aufruf zum 
gleich testen übergab.

Damit konnte ich mein Passwort wieder berechnen und auch finden. Beim 
korrekten Passwort brach das Programm ab und gab das Passwort an der 
Konsole aus.
Das ganze hat auf einem Athlon TB vielleicht ca. 5 min gedauert um das 
Passwort zu finden.


> Wenn ich aber bei den mir bekannten Programmen
> eine Passwortliste mit den 15 genannten Wörtern erstelle, jede der 28
> Stellen klein- und groß geschrieben wird, alles gel33tet wird usw,
> dauert der Prozess Monate wenn nicht Jahre

Wenn ich dich richtig verstanden habe, dann besteht dein PW aus 3 
Wörtern aus einem Worterbuch von 15 Wörtern.
Sagen wir mal "Haus", "Baum", "Esel"

Eine Kombination könnte also sein:
hauseselbaum

2 Buchstaben sind Großbuchstaben, also bspw so:
hauSeselbaUm

maximal 2 Buchstaben sind L33T Sprech, also:
hauS3s3lbaUm

und am Ende gibt's ne fünf stellige Kombination von Zahlen und
Sonderzeichen (ausschließlich *-+).

Also bswp.
hauS3s3lbaUm67*3+

Habe ich dich hier richtig verstanden?

Die Fünfstellige Kombination am Ende lässt sich einfach generieren.
Cache ist schneller als RAM. Eine Liste in eine Datei zu schreiben 
kannst du ganz vergessen, denn SSDs und Festplatten sind noch langsamer.
Es kann also Sinn machen die Kombination in einer innersten 
Programmschleife jedes mal neu zu erzeugen und dann dem vorherigen 
Wörterstring einfach dranzuhängen und das Ergebnis dann zu testen.
Bei 10 Ziffern und 3 Sonderzeichen und einer Länge von 5 sind das nur 
13^5 Kombinationen für dieses Teilstück.
Die musst du dann für jeden zuvor generierten Wörterstring dann 
durchprobieren.

Bei dem Wörterstring lässt sich der Aufwand eingrenzen, sofern das nur 
Buchstaben und Zeichen aus dem ASCII Zeichensatz sind.
Wenn die Wörter auch Umlaute enthalten sollten, musst du die halt 
gesondert dazu nehmen.
Die Wörter gehören jeweils in einen eigenen String, dann kannst du die 
Strings aneinanderketten.

Beim L33T Sprech könntest du dir überlegen, ob du die Suche noch weiter 
eingrenzen kannst. Vielleicht hast du nur e in 3 umgewandelt, dann 
kannst  du andere L33T Zeichen ignorieren und somit die Suche noch 
weiter eingrenzen.

Falls die Wörter, wie im obigen Beispiel, alle klein geschrieben werden, 
fängst du mit kleingeschriebenen Wörtern an und Kombinierst 3 Wörter aus 
den 15.
Dann änderst du zwei Kleinbuchstaben in Großbuchstaben und 2 Buchstaben 
in L33T Sprech.
Am Schluss hängst du den Zahlencode in einem Schleifendurchlauf hinten 
dran.
Wenn nichts gefunden wurde, gehst du in die vorherige Schleife zurück, 
und änderst dort nochmal den L33T Sprech.
Eine Schleife davor entsprechend dann die Großbuchstaben.

Im Prinzip kannst du die Anzahl der möglichen Kombinationen ausrechnen, 
dass wäre das erste was du tun solltest, dann kannst du auch ungefähr 
einschätzen wie lange es dauert. Ich mach das jetzt aber nicht für dich, 
da es momentan recht spät ist.
Siehe dazu das Mathekapitel Kombinatorik.
https://de.wikipedia.org/wiki/Kombination_(Kombinatorik)

Stell dazu am besten die Formel auf und rechne es dann aus.
Beachte auch, dass die Wörter ohne Wiederholung sind.
3 Wörter aus einem Wortschatz von 15 gibt mit Wiederholung 15^3 
Möglichkeiten. Ohne Wiederholung siehe oben der Link, also noch weniger 
und somit sehr überschaubar.
Die Kombinationen für Großbuchstaben und L33T Sprech, sowie der 
Reststring am Ende kommen noch dazu.

Wenn du dann deinen eigenen Code schreibst, dann mach keine Listen, 
sondern berechne das direkt und teste es gleich auf der CPU bzw. füre es 
im Cache aus.
Die Aufgabe ist durchaus parallelisiberbar, also verteile es auf alle 
deine Kerne.

Meine Lösung war Quick & Dirty, da ich das bestehende truecrpyt Programm 
immer einfach aufgerufen habe. Das kostet Zeit, da der Prozess erzeugt 
und beendet werden muss und der Kernel entsprechend zwischen den 
Prozessen switchen muss.
Schneller ginge es über API Aufrufe ohne Umweg über den Aufruf externe 
Kommandozeilenprogramme. Eventuell gibt's ne API die das in RAR 
verwendete  Verschlüsselungsverfahren durchführen kann. Die 
Passwortcrackprogramme werden darauf natürlich spezialisiert sein, mit 
denen geht das alles, wenn du sie richtig Parametrisieren kannst und das 
genug einschränken kannst, schneller.

Hilfreich wäre übrigens auch, wenn du dich daran erinnern könntest, ob 
die Zahlenkombination mit einer großen oder kleinen Ziffer anfing.
Wenn du bspw. weiß, dass die erste Ziffer nicht größer als sagen wir mal 
eine 4 war, dann kannst du alle Kombination => 5XXXX schon einmal 
ausschließen.
Wenn du weißt, dass die erste Ziffer nicht kleiner als sagen wir mal 
eine 3 war, dann kannst du auch da alle Kombinationen < 3XXXX 
ausschließen.

Grundsätzlich macht es immer Sinn, sich ausgiebig Gedanken darüber zu 
machen, wo man das PW noch weiter eingrenzen kann.

Wenn du bspw. weiß, dass das PW mit einem Buchstaben begann, der nach 
sagen wir mal m im Alphabet kommt, kannst du alle Kombinationen die mit 
Wörtern mit Bu8chstaben <= m anfangen, ebenfalls auschließen.

Wenn das getan ist, dann stell die Formel auf und rechne aus, wieviele 
mögliche Kombinationen es überhaupt geben kann.
Anhand dieser Anzahl und einem kleinen Benchmarktest, der zeigt, 
wieviele Kombinationen du bspw, in 10 s mit der CPU durchtesten kannst, 
kannst du dann auch einschätzen, wie lange das im Worst Case Fall 
dauert.
Mit etwas glück, wird das PW lange vor dem Worst Case Fall gefunden.

von sid (Gast)


Lesenswert?

dafür gibt es sogenannte 
Wordlist-generatoren..(https://github.com/topics/wordlist-generator)
die können aus listen generieren, case wechseln, 1337 implementieren 
etc.
sowas zusammen mit elcomsofts archpr
und schon kanns losgehen, dauert dennoch unfassbar lange..
aber manchmal ist "dauert lange" eben besser als "ist nicht zu machen" 
;)

welcher generator für dich der richtige ist musst Du selber entscheiden, 
aber sicherlich ist einer dabei der Dir den grössten teil der Arbeit 
abnehmen kann.

'sid

von sid (Gast)


Lesenswert?

uups vergessen:
ich schlage aus der Liste da oben
Mentalist vor:
https://github.com/sc0tfree/mentalist

ich hab damit recht gute Erfolge erzielt gehabt jdf.

'sid

von imonbln (Gast)


Lesenswert?

sid schrieb:
> sowas zusammen mit elcomsofts archpr

Was ist denn der Vorteil von dieser Software gegenüber dem Opensource 
tools
Hashcat oder John the ripper ?  oder anders gefragt warum sollte ich 
dafür 49 oder 99 euro zahlen wen ich die anderen in mein Blackarch für 
umme bekomme?

von sid (Gast)


Lesenswert?

imonbln schrieb:
> Was ist denn der Vorteil von dieser Software gegenüber dem Opensource
> tools
> Hashcat oder John the ripper?

keiner wirklich ausser Bequemlichkeit.

bei jtr wusste ich nichtmal dass man den auf archive ansetzen kann um 
ehrlich zu sein.
hashcat hatte ich mal Probleme beim neustart mit
(hat die session nicht genommen...)
das war minimal lästig
(ging da aber nicht um archivpasswort sondern n ios backup... egal)

in meinem Satz da oben fehlt ein "zB" ..

'sid

von Nano (Gast)


Lesenswert?

sid schrieb:
> dafür gibt es sogenannte
> Wordlist-generatoren..

Sobald RAM-Zugriffe ins Spiel kommen wird's langsam.

Die PW in der CPU generieren, dann prüfen und wegwerfen und gucken das 
alles was Speicherplatz braucht, inkl. dem Code für die Prüfung des 
generierten PW, in den Cache passt ist viel schneller.

Die Wordlistgeneratoren werden die generierten PW ganz sicher im RAM 
zwischenspeichern und dann auch irgendwann auf den Datenträger 
schreiben.

von Le X. (lex_91)


Lesenswert?

Nano schrieb:
> Sobald RAM-Zugriffe ins Spiel kommen wird's langsam.
>
> Die PW in der CPU generieren, dann prüfen und wegwerfen und gucken das
> alles was Speicherplatz braucht, inkl. dem Code für die Prüfung des
> generierten PW, in den Cache passt ist viel schneller.
>
> Die Wordlistgeneratoren werden die generierten PW ganz sicher im RAM
> zwischenspeichern und dann auch irgendwann auf den Datenträger
> schreiben.

Ich bin mir nicht sicher ob beim Problem des TE eine frühzeitige 
Optimierung was bringt.
Die Regeln nach denen er sein Passwort erstellt hat sorgen ja dafür dass 
"nur noch" eine relativ kleine Wordlist übrig bleibt. Da sollte der 
RAM-Zugriff kein Problem sein, wahrscheinlich nicht mal das HDD-IO.

Irgendwann muss ja schließlich auch mal unrar oder was-was-auch-immer 
aufgerufen werden um das PW zu testen.
Wenn ja bei jedem Versuch ein neuer Prozess gespawnt wird wirds eh schon 
"teuer".

von moep (Gast)


Lesenswert?


von sid (Gast)


Lesenswert?

Nano schrieb:
> Sobald RAM-Zugriffe ins Spiel kommen wird's langsam.

rar zu knacken alleine ist so unglaublich langsam,
dass das absolut keine Rolle spielt.
Wordlisten haben mMn immense vorteile ggü der on-the-fly Generierung,
man kann sie nämlich schön partitionieren und parallel auf mehreren 
Rechnern rechnen lassen,
das wird schon schwierig wenn man dasselbe mit der on-the-fly methode 
versucht.
Aber selbst auf nur einem Rechner hab ich lieber ne Liste und weiss
das selbst wenn das pause/resume fehlschlägt (wie mir passiert)
dass ich nur die ersten 32000 Zeilen der Liste entfernen muss um 
einigermassen wieder da bin wo ich pausiert hatte.
(man ist ja eh neugierig und guckt immer wieder nach wo er grad ist ;))

'sid

von georg (Gast)


Lesenswert?

moep schrieb:
> https://www.heise.de/ct

Hab ich oben auch schon vorgeschlagen (ist sehr fundiert), aber entweder 
ist das dem TO zu mühsam selbst zu lesen oder er hat überhaupt das 
Interesse verloren.

Oder das Passwort ist ihm wieder eingefallen.

Georg

von Oliver S. (oliverso)


Lesenswert?

Robert E. schrieb:
> wenn ich eine Passwortliste erstellen könnte mit genau diesen Vorgaben,
> wäre es durchaus machbar.

Sicher? Wie viele Variationen erwartest du denn ungefähr?

Oliver

von Nano (Gast)


Lesenswert?

Le X. schrieb:
> Nano schrieb:
>> Sobald RAM-Zugriffe ins Spiel kommen wird's langsam.
>>
>> Die PW in der CPU generieren, dann prüfen und wegwerfen und gucken das
>> alles was Speicherplatz braucht, inkl. dem Code für die Prüfung des
>> generierten PW, in den Cache passt ist viel schneller.
>>
>> Die Wordlistgeneratoren werden die generierten PW ganz sicher im RAM
>> zwischenspeichern und dann auch irgendwann auf den Datenträger
>> schreiben.
>
> Ich bin mir nicht sicher ob beim Problem des TE eine frühzeitige
> Optimierung was bringt.
> Die Regeln nach denen er sein Passwort erstellt hat sorgen ja dafür dass
> "nur noch" eine relativ kleine Wordlist übrig bleibt. Da sollte der
> RAM-Zugriff kein Problem sein, wahrscheinlich nicht mal das HDD-IO.

Es kommt auf die Anzahl der Kombinationen an. Bei sehr vielen addieren 
sich die ms die man im RAM verschwendet zu einer ordentlichen Dauer.
Deswegen mein Vorschlag allein im Cache zu bleiben.


> Irgendwann muss ja schließlich auch mal unrar oder was-was-auch-immer
> aufgerufen werden um das PW zu testen.

Nicht unbedingt.
Ich weiß jetzt nicht, wie genau die RAR Dateien gesichert werden, aber 
ich könnte mir vorstellen, dass ein asymmetrisches 
Verschlüsselungsverfahren einen Schlüssel für ein symmetrischen 
Verschlüsselungsverfahren in der RAR Datei sichert und nur der 
symmetrische Schlüssel auf die gesamte RAR Datei angewendet wird, 
während dieser dann durch das asymmetrische Verfahren gesichert ist und 
für letzteres ist dann das PW notwendig.
Wenn dem so ist, würde es genügen, den verschlüsselten symmetrischen 
Schlüssel aus der RAR Datei in verschlüsselter Form zu extrahieren und 
dann das generierte PW mit dem asymmetrischen Verfahren auf diesen 
anzuwenden.

> Wenn ja bei jedem Versuch ein neuer Prozess gespawnt wird wirds eh schon
> "teuer".

Das ist richtig. Wenn es irgendwie möglich ist, sollte man das daher bei 
einer zu großen Zahl an möglichen Kombinationen vermeiden.

von Nano (Gast)


Lesenswert?

sid schrieb:
> Nano schrieb:
>> Sobald RAM-Zugriffe ins Spiel kommen wird's langsam.
>
> rar zu knacken alleine ist so unglaublich langsam,
> dass das absolut keine Rolle spielt.

Es summiert sich in der Summe auf.


> Wordlisten haben mMn immense vorteile ggü der on-the-fly Generierung,
> man kann sie nämlich schön partitionieren und parallel auf mehreren
> Rechnern rechnen lassen,

Das geht mit on the fly Generatoren genauso.
Du musst halt Start und Stop Bedingungen für die on the fly Generatoren 
richtig einstellen und dann den einzelnen Kernen und Prozessoren 
zuweisen.



> Aber selbst auf nur einem Rechner hab ich lieber ne Liste und weiss
> das selbst wenn das pause/resume fehlschlägt (wie mir passiert)
> dass ich nur die ersten 32000 Zeilen der Liste entfernen muss um
> einigermassen wieder da bin wo ich pausiert hatte.

On the fly kann den letzten Schlüssel genauso ausgeben und da wieder 
weitermachen, wo es aufgehört hat.



> (man ist ja eh neugierig und guckt immer wieder nach wo er grad ist ;))

Ja, da könnte man sich alle 1000 PW auch mal ein PW oder die Parameter 
für die Schleifen ausgeben lassen, dann weiß man auch wo man ist.
Ich habe das bei meinem Code damals so gemacht.

von sid (Gast)


Lesenswert?

Nano schrieb:
> Es summiert sich in der Summe auf.

was summiert sich denn da auf?
das rar passwort aktueller Versionen kann soweit ich weiss NUR von der 
unrar überprüft werden (weil es keinen passwort hash gibt den man 
extrahieren könnte, sondern nur den hash der "unkomprimierten" dateien;
solange die unrar braucht zu entpacken und den hash zu prüfen hat
'was auch immer tool' laaange genug zeit n film zu gucken, radio zu 
hören, kaffee zu kochen und nebenbei ne wordlist zu laden ...
geschätzt sind je nach dateigrösse 5-10 p/s realistisch.
Deswegen muss man soweit ich mich erinnere den Dateinamen eines file im 
Archiv an hascat übergeben (um nur jene -hoffentlich kleine- Datei zu 
prüfen statt aller enthaltenen Dateien)

mit bekanntem pw hash gäbe ich Dir recht das wären aber auch 20k mal 
mehr passworte in der sekunde die man überprüfen könnte
passwort hashes in rar archiven gibt es aber meines Wissens nach seit 
rar2.x nichtmehr;
gestehe allerdings, dass ich mich um Derartiges nur sehr sporadisch 
kümmere ;)

'sid

von imonbln (Gast)


Lesenswert?

sid schrieb:
> mit bekanntem pw hash gäbe ich Dir recht das wären aber auch 20k mal
> mehr passworte in der sekunde die man überprüfen könnte
> passwort hashes in rar archiven gibt es aber meines Wissens nach seit
> rar2.x nichtmehr;
> gestehe allerdings, dass ich mich um Derartiges nur sehr sporadisch
> kümmere ;)

Zumindest hat  das Projekt JohnTheRipper ein rar2john.c 
(https://github.com/magnumripper/JohnTheRipper/blob/bleeding-jumbo/src/rar2john.c) 
welches angeblich den Hash aus ein rar3 und rar5 bekommen kann. von 
daher ist schon wahrscheinlich dass man nur den Hash probieren muss und 
nicht immer unrar auf verdacht starten muss.

von Cyblö D. (cybloed)


Lesenswert?

Robert E. schrieb:
> maximal 2 Buchstaben im gesamten Password sind großBuchstaben,
> maximal 2 Buhcstaben sind L33T

Vielleicht wäre ein erster Ansatz, deine vermuteten Passwörter 
fehlerfrei einzutippen, damit scheinst du ein Problem zu haben.

Ansonsten habe ich deine Beschreibung nicht vollständig verstanden, aber 
nach dem was ich meine, verstanden zu haben, gibt es mindestens 
1.4*10^14 Möglichkeiten. Viel Spaß!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.