Custom Wordlists

Kali includes a number of tools that can be used to help generate custom wordlists. These wordlists could then be used in online or offline brute force attacks.


Cewl

Cewl is a tool used to generate wordlists by scraping websites. It’s commonly used to create customized wordlists from the content of a website, which can then be used in password cracking attempts.

Command Line Options
OptionDescriptionExample
-d [depth]Set the depth to crawl (default is 2).cewl -d 3 https://bordergate.co.uk (Crawl to a depth of 3 levels)
-m [min_length]Set the minimum word length (default is 3).cewl -m 5 https://bordergate.co.uk (Words longer than 5 characters)
-w [output_file]Write the wordlist to a file.cewl -w wordlist.txt https://bordergate.co.uk (Save to wordlist.txt)
-cCount the frequency of words in the list.cewl -c https://bordergate.co.uk (List words with frequency counts)
-nDisable the addition of numbers to the wordlist.cewl -n https://bordergate.co.uk (No numbers in wordlist)
-eExtract email addresses from the website.cewl -e https://bordergate.co.uk (Find and list email addresses)
-a [user-agent]Specify a custom user-agent string for the request.cewl -a “Mozilla/5.0” https://bordergate.co.uk
–no-wordsDon’t output the wordlist; used with --meta or --emails.cewl –no-words –meta https://bordergate.co.uk
–metaExtract meta descriptions and keywords from the website.cewl –meta https://bordergate.co.uk (Extract metadata)
–offsiteFollow links to external sites (offsite links).cewl –offsite https://bordergate.co.uk
–lowercaseConvert all words to lowercase.cewl –lowercase https://bordergate.co.uk
–verboseProvide detailed output.cewl –verbose https://bordergate.co.uk
Usage
┌──(kali㉿kali)-[~]
└─$ cewl -d 1 -m 5 -w wordlist.txt https://www.bordergate.co.uk
CeWL 6.1 (Max Length) Robin Wood (robin@digi.ninja) (https://digi.ninja/)

┌──(kali㉿kali)-[~]
└─$ head wordlist.txt 
image
bordergate
Infrastructure
local
using
Windows
featured
https
System
BorderGate


Crunch

Crunch is a tool for creating custom word lists. It’s installed by default in Kali Linux. Crunch is particularly powerful because it lets users define not only the characters but also the length and complexity of the words generated, making it highly customizable for brute-force attacks or dictionary-based cracking attempts.

Command Line Options
OptionDescriptionExample
-o <file>Specify the output file for the wordlist.-o mywordlist.txt
-c <number>Number of characters per line (useful for specific length).-c 12
-t <pattern>Use a pattern to generate the wordlist.-t @@@1 (e.g., abc1, def1)
-a <charset>Define a custom character set.-a lsd (includes lowercase, special chars, digits)
-b <number>Set the number of bytes (for binary files).-b 16
-e <charset>Exclude specific characters from the charset.-e 0 (exclude zeros)
-iIncremental mode (useful for generating sequences).-i
-l <length>Generate wordlists of specific length.-l 8
-n <length>Generate wordlists up to a specific length.-n 12
-m <number>Minimum number of characters in the wordlist.-m 8
-p <number>Maximum number of permutations.-p 10000
-uUse unique words (avoids duplicates).-u
Usage Examples
DescriptionCommand
Generate a wordlist with one lowercase letter followed by 5 digitscrunch 6 6 -t @%%%%% -o wordlist
Generate a wordlist between 6 and 8 characters.crunch 6 8 -o wordlist.txt
Generate a wordlist with lowercase letters, digits, and special characters.crunch 4 6 -a lsd -o wordlist.txt
Generate all permutations of a word followed by two numbers.crunch 12 12 -t bordergate%%
Generate all permutations of a word followed by a special character.crunch 11 11 -t bordergate^
Generate wordlist of specific length (e.g., 12 characters).crunch 12 12 -o fixed_length_wordlist.txt
Generate a wordlist with a custom character set (e.g., abc123).crunch 4 6 -a abc123 -o custom_charset_wordlist.txt

Cupp

Cupp is a tool for creating custom word lists based on known information. In interactive mode, it asks a series of questions about the target user that might help in guessing their password.

┌──(kali㉿kali)-[~]
└─$ cupp -i
 ___________ 
   cupp.py!                 # Common
      \                     # User
       \   ,__,             # Passwords
        \  (oo)____         # Profiler
           (__)    )\   
              ||--|| *      [ Muris Kurgas | j0rgan@remote-exploit.org ]
                            [ Mebus | https://github.com/Mebus/]


[+] Insert the information about the victim to make a dictionary
[+] If you don't know all the info, just hit enter when asked! ;)

> First Name: Fred
> Surname: Flintstone
> Nickname: Twinkletoes
> Birthdate (DDMMYYYY): 30091960


> Partners) name: Wilma
> Partners) nickname: 
> Partners) birthdate (DDMMYYYY): 30091960


> Child's name: Pebbles
> Child's nickname: 
> Child's birthdate (DDMMYYYY): 22021980


> Pet's name: Dino
> Company name: Slate Rock and Gravel Company


> Do you want to add some key words about the victim? Y/[N]: Y
> Please enter the words, separated by comma. [i.e. hacker,juice,black], spaces will be removed: Brontosaurus
> Do you want to add special chars at the end of words? Y/[N]: Y
> Do you want to add some random numbers at the end of words? Y/[N]:Y
> Leet mode? (i.e. leet = 1337) Y/[N]: N

[+] Now making a dictionary...
[+] Sorting list and removing duplicates...
[+] Saving dictionary to fred.txt, counting 8896 words.
[+] Now load your pistolero with fred.txt and shoot! Good luck!

┌──(kali㉿kali)-[~]
└─$ tail fred.txt      
wilma_93060
wilma_960
wilma_9600
wilma_96009
wilma_96030
wilma_96060
wilma_9609
wilma_96090
wilma_9960
wilma_99600