root@thehacksparrow:~/writeups$ SYSTEM ONLINE
root@sparrow:~/writeups$ cat cewl.md
// cracking

CeWL

21 Jul 2026 · 6 min read
CeWL (Custom Word List generator) is a Ruby spider that crawls a website and returns a list of the words it contains. It is used to build target-tailored wordlists, far more effective against passwords based on the organization's jargon, products or proper names than generic dictionaries.

The point is not the volume of words but their relevance: a small wordlist scraped from the target itself often beats rockyou.txt because users recycle terms they see every day. Tuning -d (depth) and -m (minimum length) filters noise, and the real potential shows when you chain the output into john or hashcat with mutation rules.

1. Beginner level — crawling and basic wordlist

CEWL cheat sheet — Beginner
CommandWhat it does
cewl https://<t>Generates a wordlist from the site
cewl https://<t> -w wl.txtSaves the wordlist
cewl https://<t> -d 3Crawl depth
cewl https://<t> -m 6Minimum word length
cewl https://<t> -cCounts the frequency of each word
cewl https://<t> --lowercaseConverts everything to lowercase
cewl https://<t> -eAlso extracts email addresses
cewl https://<t> -aIncludes file metadata
cewl https://<t> -oLeaves the domain (offsite)
cewl https://<t> -vVerbose mode
cewl -hShows the help
cewl https://<t> --with-numbersIncludes words containing numbers
cewl https://<t> -u 'Mozilla/5.0'Customizes the User-Agent
cewl https://<t> -d 2 -m 5 -w wl.txtTypical combination

2. Advanced level — metadata, auth and chaining

CEWL cheat sheet — Advanced
CommandWhat it does
cewl https://<t> -a -e --email_file mails.txtMetadata + emails to a file
cewl https://<t> --meta_file meta.txt -aSaves the metadata found
cewl https://<t> -d 4 -m 6 -c -w wl.txtDeep crawl with counting
cewl https://<t> --proxy_host 127.0.0.1 --proxy_port 8080Through a proxy
cewl https://<t> -H 'Cookie: s=x'Headers (authenticated area)
cewl https://<t> --auth_type basic --auth_user u --auth_pass pBasic authentication
cewl https://<t> -w wl.txt; john --wordlist=wl.txt hashChains with john
cewl https://<t> --with-numbers -w base.txtBase for hashcat rules
cewl https://<t> -o -d 1One hop outside the domain
cewl https://<t> | grep -iv the > wl.txtStrips very common words
cewl https://<t> -m 8 --lowercase -w wl.txtLong words in lowercase
cewl file:///ruta/local.htmlGenerates from a local file
cewl https://<t> -a --meta-temp-dir /tmpTemporary directory for metadata
hashcat -a 0 hash wl.txt -r best64.ruleUses the wordlist with rules

3. Details people miss

  • CeWL honours the domain scope by default: without -o it never leaves the starting host, which keeps you from crawling half the internet, but if the useful content lives on a subdomain or CDN you must point at it explicitly.
  • Raise the depth carefully: each -d level multiplies requests and time. On large sites a -d 4 can take ages or generate detectable noise; start low and only increase it if the wordlist comes out thin.
  • Metadata extraction (-a) needs the exifr gem and only pays off when the site publishes documents (PDF, DOCX, images) with embedded author or software fields; on sites without office files you will get nothing.
  • CeWL builds the wordlist, it does not crack: its output is raw material. Always chain it into john or hashcat and apply rules (best64.rule) to cover the uppercase, numbers and symbols the raw list omits.
  • Mind TLS: sites with self-signed certificates or broken chains can make the crawl fail; also make sure the URL carries the scheme (https://), because CeWL does not assume it.

Responsible use

These commands are for systems you own or have explicit written authorisation to test (labs, CTFs, contracted engagements). Using them against third-party infrastructure without permission is illegal in most countries.