Wordlist Manipulation

Wordlist Manipulation

Password file merge, sort by unique entries:

Sorts all files in a directory

find . -maxdepth 1 -type f ! -name ".*" -exec cat {} + | sort -u -o $out_file

https://unix.stackexchange.com/questions/365114/efficiently-merge-sort-unique-large-number-of-text-files

Remove the space character with sed

# sed -i 's/ //g' file.txt OR # egrep -v "^[[:space:]]*$" file.txt

Remove the last space character with sed

# sed -i s/.$// file.txt

Sorting Wordlists by Length

# awk '{print length, $0}' rockyou.txt | sort -n | cut -d " " -f2- > rockyou_length-list.txt

Convert uppercase to lowercase and the opposite

# tr [A-Z] [a-z] < file.txt > lower-case.txt
# tr [a-z] [A-Z] < file.txt > upper-case.txt

Remove blank lines with sed

sed -i '/^$/d' $text_file

Remove a specific character with sed

sed -i "s/$char//" $text_file

Delete all instances of a string with sed

cat $text_file | sed -e "s/$string//g" > $out_text_file

Replace characters with tr

# tr '@' '#' < emails.txt OR # sed 's/@/#' file.txt

# awk -F "," '{print $3}' infile.csv > outfile.csv OR # cut -d "," -f 3 infile.csv > outfile.csv

Note: if you want to isolate all columns after column 3 put a - (dash) after the number: # cut -d "," -f 3- infile.csv > outfile.csv

Generate Random Passwords with /dev/urandom

tr -dc 'a-zA-Z0-9._!@#$%^&*()' < /dev/urandom | fold -w 8 | head -n 500000 > wordlist.txt
tr -dc 'a-zA-Z0-9-_!@#$%^&*()_+{}|:<>?=' < /dev/urandom | fold -w 12 | head -n 4
base64 /dev/urandom | tr -d '[^:alnum:]' | cut -c1-10 | head -2
tr -dc 'a-zA-Z0-9' < /dev/urandom | fold -w 10 | head -n 4
tr -dc 'a-zA-Z0-9-_!@#$%^&*()_+{}|:<>?=' < /dev/urandom | fold -w 12 | head -n 4 | grep -i '[!@#$%^&*()_+{}|:<>?=]'
tr -dc '[:print:]' < /dev/urandom | fold -w 10| head -n 10
tr -cd '[:alnum:]' < /dev/urandom | fold -w30 | head -n2

Remove Parenthesis with tr

# tr -d '()' < in_file > out_file

Generate wordlists from your file names

# ls -A | sed 's/regexp/& /g'

Process text files when cat is unable to handle strange characters

# sed 's/([[:alnum:]]*)[[:space:]]*(.)(..*)/12/' *.txt

Generate length based wordlists with awk

# awk 'length == 10' file.txt > 10-length.txt

Merge two different txt files

# paste -d' ' file1.txt file2.txt > new-file.txt

Faster sorting

# export alias sort='sort --parallel=<number_of_cpu_cores> -S <amount_of_memory>G ' && export LC_ALL='C' && cat file.txt | sort -u > new-file.txt

Mac to unix

# tr '\015' '\012' < in_file > out_file

Dos to Unix

# dos2unix file.txt

Unix to Dos

# unix2dos file.txt

Extract the difference between two files

# grep -F -v -f file1.txt -w file2.txt > file3.txt

Isolate specific line numbers with sed

# sed -n '1,100p' test.file > file.out

Create Wordlists from PDF files

# pdftotext file.pdf file.txt

Find the line number of a string inside a file

# awk '{ print NR, $0 }' file.txt | grep "string-to-grep"

Create your own Dictionaries

Find as much information about the target as you can and generate a custom dictionary. Tools that may help:

Crunch

Create a wordlist with lengths from 4 to 6 using a specified character set

crunch 4 6 0123456789ABCDEF -o crunch1.txt

Create a list of 4 character "words" using the character set mixalpha (inside file charset.lst)

crunch 4 4 -f /usr/share/crunch/charset.lst mixalpha 

Character set examples:

@ Lower case alpha characters
, Upper case alpha characters
% Numeric characters
^ Special characters including spaces

Using this you can make wordlists using custom character sets with shortcuts

crunch 6 8 -t ,@@^^%%

Cewl

Generate a wordlist based on a target website

cewl example.com -m 5 -w words.txt

CUPP

Generate passwords based on your knowledge of the victim (names, significant dates, etc...)

python3 cupp.py -h

Hashcat

TODO: add more

Rules

If you like this content and would like to see more, please consider buying me a coffee!

Last updated

Was this helpful?