Utilities
Build a target-specific wordlist from site text
Spider a URL and return a wordlist for password crackers.
overview
What cewl does
CeWL spiders a URL to a set depth and emits words found on the pages as a cracking wordlist. Product names, jargon, and employee terms beat a generic dictionary for one organization.
Set -d for crawl depth, --min_word_length to drop short tokens, --email and --meta for addresses and document authors, and leave --offsite off unless you mean to leave the host.
Run early to seed a target-specific list, then pass it to a cracker or fuzzer. For endpoints instead of words, use katana. Trickest runs CeWL as a managed node with file and folder output.
source github.com/digininja/CeWL
use cases
Where cewl fits
Build a target-specific password wordlist
Spider a company site to harvest its own terminology, then feed the list to a cracker so guesses match the words employees reuse in passwords.
Harvest emails and metadata while crawling
Enable --email and --meta to pull addresses and document author data alongside the wordlist, useful for OSINT and username generation.
Crawl authenticated pages
Supply basic or digest credentials so CeWL reaches words on pages behind a login, where the richer internal vocabulary tends to live.
Seed a fuzzing stage with real words
Pass the generated wordlist into a content or parameter fuzzer so brute-force guesses draw on terms the target itself exposes.
reference
cewl inputs and flags
| Name | Type | Flag | Description |
|---|---|---|---|
| url | STRING | · | The site to spider (passed as the positional target URL). |
| depth | STRING | -d | Depth to spider to (default 2). |
| min-word-length | STRING | --min_word_length | Minimum word length to keep (default 3). |
| count | BOOLEAN | --count | Show the count for each word found. |
| with-numbers | BOOLEAN | --with-numbers | Accept words containing numbers, not only letters. |
| BOOLEAN | Include email addresses found while crawling. | ||
| meta | BOOLEAN | --meta | Include document metadata in the results. |
| offsite | BOOLEAN | --offsite | Let the spider visit sites beyond the target. |
Showing key inputs. cewl exposes 25 inputs in total.
Full flag reference (25 inputs)
| Name | Type | Flag | Description |
|---|---|---|---|
| url | STRING | · | The site to spider (passed as the positional target URL). |
| depth | STRING | -d | Depth to spider to (default 2). |
| min-word-length | STRING | --min_word_length | Minimum word length to keep (default 3). |
| max-word-length | STRING | --max_word_length | Maximum word length (default unset). |
| count | BOOLEAN | --count | Show the count for each word found. |
| with-numbers | BOOLEAN | --with-numbers | Accept words containing numbers, not only letters. |
| lowercase | BOOLEAN | --lowercase | Lowercase all parsed words. |
| groups | BOOLEAN | --groups | Return groups of words as well as single words. |
| BOOLEAN | Include email addresses found while crawling. | ||
| meta | BOOLEAN | --meta | Include document metadata in the results. |
| offsite | BOOLEAN | --offsite | Let the spider visit sites beyond the target. |
| allowed | STRING | --allowed | Regex pattern a path must match to be followed. |
| exclude | FILE | --exclude | File listing paths to exclude from the crawl. |
| header | STRING | --header | Extra header in name:value form; can be passed multiple times. |
| user-agent | STRING | --ua | User agent string to send with requests. |
| auth-type | STRING | --auth_type | Authentication type: digest or basic. |
| auth-user | STRING | --auth_user | Authentication username for pages behind a login. |
| auth-pass | STRING | --auth_pass | Authentication password. |
| proxy-host | STRING | --proxy_host | Proxy host to route requests through. |
| proxy-port | STRING | --proxy_port | Proxy port (default 8080). |
| proxy-username | STRING | --proxy_username | Username for the proxy, if required. |
| proxy-password | STRING | --proxy_password | Password for the proxy, if required. |
| convert-umlauts | BOOLEAN | --convert-umlauts | Convert common Latin-1 umlauts (ä to ae, ö to oe, ü to ue, ß to ss). |
| verbose | BOOLEAN | --verbose | Verbose output. |
| debug | BOOLEAN | --debug | Print extra debug information. |
example
Run cewl
# spider example.com to depth 2, keep words 5+ chars, show counts, allow digitscewl -d 2 --min_word_length 5 --count --with-numbers https://example.com > wordlist.txtexample, 318security, 205platform, 154research, 132engineering, 118automation, 96credentials, 74workflow, 61onboarding, 47guidance
Choosing cewl
Reach for CeWL when a target's own vocabulary will beat a generic dictionary, such as cracking credentials at one organization. Skip it for a static reusable wordlist with nothing to crawl. For links and endpoints rather than raw words, use katana.
katana
Crawls for endpoints and links, not words. Use it to map an app; use CeWL to harvest vocabulary.
gospider
Fast web spider for URLs. CeWL is purpose-built to emit a wordlist for cracking.
clean-wordlist
Cleans and normalizes a list. Run it after CeWL to tidy the harvested words.
faq
cewl questions
related
More Utilities tools
dnsgen
Wordlist and mined-word subdomain permutation.
pup
CSS selectors over HTML, the jq counterpart for markup.
unfurl
Extract chosen URL parts from stdin into clean line lists.
airtable-integration
Import, export, and upsert workflow data against an Airtable base.
apktool-decode
Decode Android APK files into smali sources and resources.
assert-tool
Check a file's values against conditions and exit with a matching code.
Run cewl yourself
A target URL feeds CeWL, which spiders the site, collects its words, and writes a target-specific wordlist ready for cracking or fuzzing.
Facts on this page come from the live Trickest tool library.