RSMangler

Prend une wordlist et génère des permutations mutilées : leetspeak, changements de casse, ajout de nombres/années, pour construire des wordlists ciblées de devinette de mot de passe. Takes a wordlist and generates mangled permutations — leetspeak, case changes, appended numbers/years — for building targeted password-guessing wordlists.

↗ https://github.com/digininja/RSMangler

Overview

RSMangler is a Ruby wrapper around John the Ripper’s mangling rule concepts, applying a broad set of transformations (leetspeak substitution, case flipping, year/number appending, pluralization, reversal, doubling) to an input wordlist and emitting every permutation. It’s typically paired with a targeted base wordlist — company names, employee names from OSINT, seasons/years — to build a small, high-hit-rate list for password spraying or offline cracking rather than relying on a massive generic list.

Common Usage

Mangle a base wordlist and print results to stdout

rsmangler --file base_words.txt

Write mangled output to a file

rsmangler --file base_words.txt --output mangled.txt

Combine multiple base word files

rsmangler --file names.txt --file seasons.txt --output combined.txt

Restrict output to realistic password lengths

rsmangler --file base_words.txt --min-length 8 --max-length 16 --output mangled.txt

Example

# Base word: "Summer"
# RSMangler produces variants such as:
#   Summer2026, summer2026, Summer!, $ummer, Summ3r
#   Summer123, SUMMER, rem mus (reversed), Summers

Tips

  • Chain a small OSINT-derived name/season/company list through RSMangler before feeding it to a password spray tool — far more effective than brute-forcing with rockyou.txt against AD lockout policies
  • Output can grow very large fast; use --min-length/--max-length to keep it aligned with the target’s known password policy
  • Disable specific rule categories (e.g. --not-leet, --not-years) when you know they don’t apply, to cut down noise
Help / Man page
Usage: rsmangler [options] file1 file2 ...

Specific options:
    -f, --file FILE              Read words from FILE (can be used multiple times)
    -o, --output FILE            Write output to FILE instead of stdout
    -p, --min-length INT         Minimum length of output words
    -x, --max-length INT         Maximum length of output words
        --not-leet                Disable leetspeak substitution
        --not-years                Disable year appending
        --not-mixcase              Disable case mangling
        --not-pluralize            Disable pluralization
        --not-reverse              Disable word reversal
        --not-double                Disable word doubling
    -h, --help                    Show this help

Vue d’ensemble

RSMangler est un wrapper Ruby autour des concepts de règles de mangling de John the Ripper, appliquant un large ensemble de transformations (substitution leetspeak, inversion de casse, ajout d’années/nombres, pluralisation, inversion, doublement) à une wordlist d’entrée et produisant chaque permutation. Il est typiquement associé à une wordlist de base ciblée (noms d’entreprise, noms d’employés issus d’OSINT, saisons/années) pour construire une petite liste à fort taux de succès pour le password spraying ou le cracking hors-ligne, plutôt que de s’appuyer sur une liste générique massive.

Utilisation courante

# Mutiler une wordlist de base et afficher les résultats sur stdout
rsmangler --file base_words.txt

# Écrire la sortie mutilée dans un fichier
rsmangler --file base_words.txt --output mangled.txt

# Combiner plusieurs fichiers de mots de base
rsmangler --file names.txt --file seasons.txt --output combined.txt

# Restreindre la sortie à des longueurs de mot de passe réalistes
rsmangler --file base_words.txt --min-length 8 --max-length 16 --output mangled.txt

Exemple

# Mot de base : "Summer"
# RSMangler produit des variantes telles que :
#   Summer2026, summer2026, Summer!, $ummer, Summ3r
#   Summer123, SUMMER, rem mus (inversé), Summers

Conseils

  • Chaîner une petite liste de noms/saisons/entreprises issue d’OSINT via RSMangler avant de l’injecter dans un outil de password spraying : bien plus efficace que le brute-force avec rockyou.txt face aux politiques de verrouillage AD
  • La sortie peut grossir très rapidement ; utiliser --min-length/--max-length pour rester aligné avec la politique de mot de passe connue de la cible
  • Désactiver des catégories de règles spécifiques (par ex. --not-leet, --not-years) quand on sait qu’elles ne s’appliquent pas, pour réduire le bruit
Aide / Page de manuel
Usage: rsmangler [options] file1 file2 ...

Specific options:
    -f, --file FILE              Read words from FILE (can be used multiple times)
    -o, --output FILE            Write output to FILE instead of stdout
    -p, --min-length INT         Minimum length of output words
    -x, --max-length INT         Maximum length of output words
        --not-leet                Disable leetspeak substitution
        --not-years                Disable year appending
        --not-mixcase              Disable case mangling
        --not-pluralize            Disable pluralization
        --not-reverse              Disable word reversal
        --not-double                Disable word doubling
    -h, --help                    Show this help