
Generator für gängige Passwortmuster unter Verwendung einer Zeichenfolgenliste
$ git clone https://github.com/localh0t/m4ngl3m3
$ cd m4ngl3m3
$ ./main.py
usage: main.py [-h] [-fy FROM_YEAR] [-ty TO_YEAR] [-sy] [-nf NUMBERS_FILE]
[-sf SYMBOLS_FILE] [-cf CUSTOM_FILE] [-sbs] [-sap]
[-mm MUTATION_METHODS]
MUTATION_MODE STRINGS_FILE OUTPUT_FILE
Common password pattern generator using strings list
positional arguments:
MUTATION_MODE Mutation mode to perform: (prefix-mode |
suffix-mode | dual-mode)
STRINGS_FILE File with strings to mutate
OUTPUT_FILE Where to write the mutated strings
optional arguments:
-h, --help show this help message and exit
-fy FROM_YEAR, --from-year FROM_YEAR
Year where our iteration starts (default:
2015)
-ty TO_YEAR, --to-year TO_YEAR
Year where our iteration ends (default:
2020)
-sy, --short-year Also add shorter year form when iterating
(default: False)
-nf NUMBERS_FILE, --numbers-file NUMBERS_FILE
Numbers prefix/suffix file (default:
./files/numbers/numbers_set2.txt)
-sf SYMBOLS_FILE, --symbols-file SYMBOLS_FILE
Symbols prefix/suffix file (default:
./files/symbols/symbols_set2.txt)
-cf CUSTOM_FILE, --custom-file CUSTOM_FILE
Custom words/dates/initials/etc file
(default: None)
-sbs, --symbols-before-suffix
Insert symbols also before years/numbers/
custom (when in suffix-mode or dual-mode)
(default: False)
-sap, --symbols-after-prefix
Insert symbols also after years/numbers/
custom (when in prefix-mode or dual-mode)
(default: False)
-mm MUTATION_METHODS, --mutation-methods MUTATION_METHODS
Mutation methods to perform (comma
separated, no spaces) (valid: see
MUTATION_METHODS.md)
(default:
normal,uppercase,firstup,replacevowels)
Hier legen wir fest, wo unser Skript mit der Iteration über Jahre beginnen und enden soll. Oft fügen Benutzer das aktuelle Jahr hinzu, um etwas Entropie zu erzeugen. Da Passwörter veraltet sein können oder die einbezogenen Jahre in der (nahen) Zukunft liegen, fügen wir sie als Bereich hinzu. Für Online-Umgebungen empfehlen wir einen konservativen Ansatz und verwenden nur Bereiche in der Größenordnung von (-1, +1) oder (-2, +2). Für Offline-Umgebungen kann der Bereich weiter gefasst sein, etwa (-20, +5) oder sogar (-50, +10). Ausgabebeispiel:
password2017
[...]
password2018
[...]
password2019
Beim Iterieren über Jahre wird auch die kurze zweistellige Form hinzugefügt. Ausgabebeispiel:
password17
[...]
password18
[...]
password19
Mit diesem Argument wählen wir eine Datei aus, die Zahlen enthält, die Benutzer häufig zu ihren Passwörtern hinzufügen. Standardmäßig sind 6 Sätze enthalten, wobei der größte der 6. und der Rest Teilmengen des vorherigen sind. Die Zahlen in den ersten Sätzen (1,2…) treten wahrscheinlicher auf als die, die nur in den letzten Sätzen (…5,6) enthalten sind. Auch hier gilt: Für Online-Umgebungen verwenden wir die ersten drei Sätze, während wir in Offline-Umgebungen die letzten verwenden können. Standardmäßig verwendet das Skript den Satz 2. Ausgabebeispiel:
password1
[...]
password123
[...]
password1234
Mit diesem Argument wählen wir eine Datei aus, die Symbole enthält, die Benutzer häufig zu ihren Passwörtern hinzufügen. Auch hier ist Satz 1 der kürzeste, Satz 6 der größte. Die Symbole in den ersten Sätzen (1,2…) treten wahrscheinlicher auf als die, die nur in den letzten Sätzen (…5,6) enthalten sind. Standardmäßig verwendet das Skript den Satz 2. Ausgabebeispiel:
password123!
[...]
password2018?
[...]
password1234.
Hier fügen wir alles andere hinzu, das wir über unsere Ziele wissen (und das nicht als „Basis“ des Passworts selbst betrachtet wird). Lassen Sie der Kreativität freien Lauf! Es kann sich um Firmeninitialen, Geburtsdaten, besondere Daten … bis hin zu speziellen Jahren, kurzen Schlüsselwörtern usw. handeln. Diese benutzerdefinierten Zeichenfolgen werden genauso behandelt wie die Jahre/Zahlen. Ausgabebeispiel:
passwordABC
[...]
password01011980!
[...]
password.admin
In diesem Parameter legen wir fest, wie das Tool beim Verschieben von Zeichenketten arbeiten soll. Sie können eine von drei Optionen wählen:
Datei mit zu mutierenden Zeichenketten. Wenn Sie zum Beispiel einen Pentest durchführen und nicht wissen, wo Sie anfangen sollen, empfehle ich ein Tool wie CeWL, um die Unternehmenswebsite zu crawlen und die häufigsten Wörter (natürlich inklusive Firmenname) zu behalten.
Einfach die Datei, in die wir die mutierten Zeichenketten schreiben möchten.
Wenn dieses Flag aktiviert ist und das Tool entweder im suffix-mode oder dual-mode läuft, werden die Symbole auch vor Jahre/Zahlen/Benutzerdefiniertem eingefügt. Ausgabebeispiel:
password2018!
[...]
password!2018
[...]
Wenn dieses Flag aktiviert ist und das Tool entweder im prefix-mode oder dual-mode läuft, werden die Symbole auch nach Jahre/Zahlen/Benutzerdefiniertem eingefügt. Ausgabebeispiel:
!2018password
[...]
2018!password
[...]
In diesem Parameter legen wir fest, welche Mutationsmethoden angewendet werden sollen. Mutationsmethoden sind Basisumwandlungen, die vor der Iteration über Jahre/Zahlen/Symbole/Benutzerdefiniertes durchgeführt werden. Sie können beliebig viele Mutationsmethoden auswählen. Eine Liste aller gültigen Mutationsmethoden finden Sie unter: MUTATION_METHODS.md.
Standardmäßig führt m4ngl3m3! die folgenden Methoden aus: Normal, UpperCase, FirstUp und ReplaceVowels.
Beispiele für die grundlegende Verwendung finden Sie unter: USAGE_EXAMPLES.md
Siehe: LICENSE.md