first
This commit is contained in:
parent
3b59f35cde
commit
e762663932
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
spectrum-bruteforce*
|
40
README.md
40
README.md
@ -1,3 +1,43 @@
|
||||
# spectrumwordlistgen
|
||||
|
||||
A tool to create wordlists for cracking Spectrum WIFI router default passwords.
|
||||
|
||||
# usage
|
||||
|
||||
```
|
||||
./make_spectrum_wordlist <outfile-root> <num_word0> <num_words1> <dictfile>
|
||||
```
|
||||
|
||||
Provided is a `lowercase-english` wordlist pulled from `/use/share/dict/american-english`.
|
||||
|
||||
Spectrum routers use a default password of the format:
|
||||
|
||||
```
|
||||
<lowercase_word_1><lowercase_word_2><three_digit_number>
|
||||
```
|
||||
|
||||
So for example:
|
||||
|
||||
```
|
||||
rainbowcake123
|
||||
bacontrumpet456
|
||||
moonlander789
|
||||
```
|
||||
|
||||
and etc...
|
||||
|
||||
`outfile-root` specifies the base filename of the outputted wordlists.
|
||||
|
||||
By default, this script will attempt to split the generated file into files containing 100000 lines each.
|
||||
|
||||
This can be useful if you wish to distribute the cracking to many machines, or if you only wish to run small batches at a time.
|
||||
|
||||
This can also be useful for eliminating which passwords you've tried already without re-running a job on the WHOLE list.
|
||||
|
||||
Naturally, who else is crazy enough to do CPU cracking in 2024?
|
||||
|
||||
**budget mage** :D
|
||||
|
||||
[https://www.evildojo.com](https://www.evildojo.com)
|
||||
[https://www.x.com/evildojo666](https://www.x.com/evildojo666)
|
||||
|
||||
|
73506
lowercase-english
Normal file
73506
lowercase-english
Normal file
File diff suppressed because it is too large
Load Diff
60
make_spectrum_wordlist.sh
Executable file
60
make_spectrum_wordlist.sh
Executable file
@ -0,0 +1,60 @@
|
||||
#!/usr/bin/zsh
|
||||
|
||||
OUTFILE_ROOT="$1";
|
||||
COUNT0=$2;
|
||||
COUNT1=$3;
|
||||
#DICTFILE="lowercase-english";
|
||||
DICTFILE="$4";
|
||||
TMPFILE="$OUTFILE_ROOT.tmp.txt";
|
||||
|
||||
if [ -z "$OUTFILE_ROOT" ]; then
|
||||
echo "Usage: $0 <outfile-root> <num_words0> <num_words1> <dictfile>";
|
||||
exit 1;
|
||||
fi;
|
||||
|
||||
if [ ! -f "$DICTFILE" ]; then
|
||||
echo "Error: $DICTFILE not found";
|
||||
exit 1;
|
||||
fi;
|
||||
|
||||
if [ -z "$COUNT0" ]; then
|
||||
COUNT0=100;
|
||||
fi;
|
||||
|
||||
if [ -z "$COUNT1" ]; then
|
||||
COUNT1=100;
|
||||
fi;
|
||||
|
||||
rm -v $OUTFILE_ROOT.txt;
|
||||
rm -v $TMPFILE;
|
||||
rm -v $OUTFILE_ROOT-*;
|
||||
|
||||
echo "Generating $TMPFILE";
|
||||
|
||||
for i in `shuf -n $COUNT0 $DICTFILE`; do
|
||||
for j in `shuf -n $COUNT1 $DICTFILE | grep -v $i`; do
|
||||
echo $i$j;
|
||||
done;
|
||||
done > $TMPFILE;
|
||||
|
||||
|
||||
echo "Generating $OUTFILE_ROOT.txt";
|
||||
|
||||
for i in `cat $TMPFILE`; do
|
||||
for j in `seq 0 9`; do echo $i"00"$j; done;
|
||||
for j in `seq 10 99`; do echo $i"0"$j; done;
|
||||
for j in `seq 100 999`; do echo $i$j; done;
|
||||
done > $OUTFILE_ROOT.txt
|
||||
|
||||
rm -v $TMPFILE;
|
||||
|
||||
echo "Shuffling $OUTFILE_ROOT.txt";
|
||||
sort -u -R $OUTFILE_ROOT.txt -o $OUTFILE_ROOT.txt;
|
||||
|
||||
wc -l $OUTFILE_ROOT.txt;
|
||||
|
||||
echo "Splitting $OUTFILE_ROOT.txt";
|
||||
split -l 100000 -d -a 3 $OUTFILE_ROOT.txt $OUTFILE_ROOT-;
|
||||
|
||||
echo "Done";
|
||||
echo "Split files are $OUTFILE_ROOT-000 to $OUTFILE_ROOT-xxx";
|
Loading…
Reference in New Issue
Block a user