cewl
Générateur de wordlist personnalisée qui spidere les sites web et en extrait les mots. Crée des listes de mots de passe ciblées à partir du propre contenu web d'une cible : bien plus efficace que les wordlists génériques. Custom wordlist generator that spiders websites and extracts words. Creates targeted password lists from a target's own web content — much more effective than generic wordlists.
↗ https://github.com/digininja/CeWLOverview
cewl crawls a target website and extracts unique words to build a custom wordlist. Since organizations use domain-specific terminology in passwords (company name, products, internal jargon), wordlists generated from their own website significantly improve cracking success rates compared to generic lists like rockyou.
Basic Usage
Basic crawl and wordlist generation
cewl https://example.com
Save to file
cewl https://example.com -w wordlist.txt
Set crawl depth (default: 2)
cewl https://example.com -d 3 -w wordlist.txt
Minimum word length (default: 3)
cewl https://example.com -m 6 -w wordlist.txt
Include numbers
cewl https://example.com --with-numbers -w wordlist.txt
Include email addresses found on site
cewl https://example.com -e -w wordlist.txt
Meta Tag and Auth
Include meta description content
cewl https://example.com --meta -w wordlist.txt
HTTP Basic Auth
cewl https://example.com --auth_type basic --auth_user admin --auth_pass secret
With cookies for authenticated pages
cewl https://example.com --header "Cookie: session=abc123"
Follow offsite links
cewl https://example.com --offsite
Advanced Options
Combine with mutations for more variants
cewl https://example.com -w base.txt
Create wordlist with min 8 chars
cewl https://example.com -m 8 -w wordlist.txt
Verbose (show words as they’re found)
cewl https://example.com -v -w wordlist.txt
Debug (show crawl activity)
cewl https://example.com --debug
Post-Processing Wordlists
# Append common suffixes (year, !, 123)
cat wordlist.txt | while read w; do
echo "$w"
echo "${w}123"
echo "${w}!"
echo "${w}2024"
echo "${w}@123"
done > wordlist_expanded.txt
Generate case variations with john
john --wordlist=wordlist.txt --rules --stdout > wordlist_mangled.txt
Combine with hashcat rules
hashcat -a 0 -m 0 hashes.txt wordlist.txt -r /usr/share/hashcat/rules/best64.rule
Use Cases
Generate list for password spray
cewl https://company.com -m 5 -d 2 -w company_words.txt
Then spray against OWA / Office365
spray -t https://mail.company.com -u users.txt -p company_words.txt
Or against SMB
crackmapexec smb 10.10.10.1 -u users.txt -p company_words.txt
Crack captured hashes with custom list
hashcat -m 1000 hashes.txt company_words.txt
Tips
- Set
-m 6or higher to skip short words that rarely appear in passwords - Use
--with-numbersto include version numbers, years, etc. - Crawl the company’s LinkedIn, careers page, and blog — lots of unique terminology
- Combine the CeWL output with
john --rulesfor mutated variants
Help / Man page
cewl [options] <url>
-d N Depth (default: 2)
-m N Minimum word length (default: 3)
-w FILE Output file
-e Include email addresses
--meta Include meta tag content
--offsite Follow offsite links
--with-numbers Include words with numbers
--auth_type T Auth type: basic or digest
--auth_user U Username for auth
--auth_pass P Password for auth
--proxy PROXY Proxy URL
--header H Add header (repeatable)
-v Verbose
--debug Debug output
Vue d’ensemble
cewl parcourt un site web cible et en extrait les mots uniques pour construire une wordlist personnalisée. Comme les organisations emploient dans leurs mots de passe une terminologie propre à leur domaine (nom de l’entreprise, produits, jargon interne), les wordlists générées depuis leur propre site améliorent nettement les taux de réussite de crack par rapport aux listes génériques comme rockyou.
Utilisation de base
# Crawl de base et génération de wordlist
cewl https://example.com
# Sauvegarder dans un fichier
cewl https://example.com -w wordlist.txt
# Définir la profondeur de crawl (défaut : 2)
cewl https://example.com -d 3 -w wordlist.txt
# Longueur minimale de mot (défaut : 3)
cewl https://example.com -m 6 -w wordlist.txt
# Inclure les nombres
cewl https://example.com --with-numbers -w wordlist.txt
# Inclure les adresses e-mail trouvées sur le site
cewl https://example.com -e -w wordlist.txt
Meta tags et authentification
# Inclure le contenu de la meta description
cewl https://example.com --meta -w wordlist.txt
# HTTP Basic Auth
cewl https://example.com --auth_type basic --auth_user admin --auth_pass secret
# Avec des cookies pour les pages authentifiées
cewl https://example.com --header "Cookie: session=abc123"
# Suivre les liens externes
cewl https://example.com --offsite
Options avancées
# Combiner avec des mutations pour plus de variantes
cewl https://example.com -w base.txt
# Créer une wordlist avec min 8 caractères
cewl https://example.com -m 8 -w wordlist.txt
# Verbeux (afficher les mots au fur et à mesure)
cewl https://example.com -v -w wordlist.txt
# Debug (afficher l'activité de crawl)
cewl https://example.com --debug
Post-traitement des wordlists
# Ajouter des suffixes courants (année, !, 123)
cat wordlist.txt | while read w; do
echo "$w"
echo "${w}123"
echo "${w}!"
echo "${w}2024"
echo "${w}@123"
done > wordlist_expanded.txt
# Générer des variations de casse avec john
john --wordlist=wordlist.txt --rules --stdout > wordlist_mangled.txt
# Combiner avec les règles hashcat
hashcat -a 0 -m 0 hashes.txt wordlist.txt -r /usr/share/hashcat/rules/best64.rule
Cas d’usage
# Générer une liste pour du password spray
cewl https://company.com -m 5 -d 2 -w company_words.txt
# Puis sprayer contre OWA / Office365
spray -t https://mail.company.com -u users.txt -p company_words.txt
# Ou contre le SMB
crackmapexec smb 10.10.10.1 -u users.txt -p company_words.txt
# Cracker des empreintes capturées avec la liste personnalisée
hashcat -m 1000 hashes.txt company_words.txt
Conseils
- Mettez
-m 6ou plus pour ignorer les mots courts qui apparaissent rarement dans les mots de passe - Utilisez
--with-numberspour inclure numéros de version, années, etc. - Crawlez le LinkedIn de l’entreprise, sa page carrières et son blog : beaucoup de terminologie unique
- Combinez la sortie de CeWL avec
john --rulespour des variantes mutées
Aide / Page de manuel
cewl [options] <url>
-d N Depth (default: 2)
-m N Minimum word length (default: 3)
-w FILE Output file
-e Include email addresses
--meta Include meta tag content
--offsite Follow offsite links
--with-numbers Include words with numbers
--auth_type T Auth type: basic or digest
--auth_user U Username for auth
--auth_pass P Password for auth
--proxy PROXY Proxy URL
--header H Add header (repeatable)
-v Verbose
--debug Debug output