{"id":13530849,"url":"https://github.com/clem9669/hashcat-rule","last_synced_at":"2026-02-28T16:06:58.950Z","repository":{"id":38410507,"uuid":"245478215","full_name":"clem9669/hashcat-rule","owner":"clem9669","description":"Rule for hashcat or john. Aiming to crack how people generate their password","archived":false,"fork":false,"pushed_at":"2024-09-02T20:14:15.000Z","size":47880,"stargazers_count":431,"open_issues_count":0,"forks_count":47,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-04-01T19:36:33.702Z","etag":null,"topics":["hashcat","hashcat-rule","hashcat-rules","john","john-rules"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/clem9669.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-03-06T17:20:40.000Z","updated_at":"2025-03-24T01:24:48.000Z","dependencies_parsed_at":"2023-12-20T07:32:50.350Z","dependency_job_id":"3dff8d33-c012-41a5-b4d2-6e077afe343f","html_url":"https://github.com/clem9669/hashcat-rule","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/clem9669/hashcat-rule","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clem9669%2Fhashcat-rule","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clem9669%2Fhashcat-rule/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clem9669%2Fhashcat-rule/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clem9669%2Fhashcat-rule/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/clem9669","download_url":"https://codeload.github.com/clem9669/hashcat-rule/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/clem9669%2Fhashcat-rule/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29941847,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-28T13:49:17.081Z","status":"ssl_error","status_checked_at":"2026-02-28T13:48:50.396Z","response_time":90,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["hashcat","hashcat-rule","hashcat-rules","john","john-rules"],"created_at":"2024-08-01T07:00:56.464Z","updated_at":"2026-02-28T16:06:58.933Z","avatar_url":"https://github.com/clem9669.png","language":null,"funding_links":[],"categories":["Hashcat"],"sub_categories":["Rules"],"readme":"\u003c!-- PROJECT LOGO --\u003e\n\u003cbr /\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/clem9669/hashcat-rule\"\u003e\n    \u003cimg src=\"https://www.fai.org/sites/default/files/styles/basic_page_highlighted_mlarge/public/isc/rules.jpeg\" alt=\"Logo\" width=\"400\" height=\"200\"\u003e\n  \u003c/a\u003e\n\n  \u003ch3 align=\"center\"\u003eHashcat-rules\u003c/h3\u003e\n\n  \u003cp align=\"center\"\u003e\n    Crack people's passwords with rules (hashcat \u0026 john)\n  \u003c/p\u003e\n\n\u003e Check out my wordlist project at: https://github.com/clem9669/wordlists\n\n## Introduction\nI use hashcat (https://github.com/hashcat/hashcat/).\nRule are supposed to be compatible for john and hashcat or others.\n\n\u003e 3 rules exists to adapt to hashing algorithm speed. Large for fast hash algorithms like MD5/NTLM/MySQL3. Small for slow hash algorithms like bcrypt.\n\nThis was for basic coverage of passwords for non-educated people who only add 1 letter, 1 digit, 1 punctuation, 1 digit+punctuation, 2 digits+punctuation or a year or some other famous tricks *(ex: p@$$w0rd)* to their **password**.\n\n\u003e 📣 Update: I have extended these rules to be more than just that. 📣\n\n\n## Running rules\n\nI have removed casing in Large \u0026 Medium. Please run as: `-r toggle-case.rule -r clem9669_big.rule`\n\nThe **Big** rule is :\n* clem9669 medium list\n* mp64 (https://hashcat.net/wiki/doku.php?id=maskprocessor)\n* One Rule to Rule Them All\n* InsidePro-PasswordsPro\n* InsidePro-HashManager\n* Fordy50K\n\nThe **medium** is mine.\n\nThe **small** is only adding 1 character (start \u0026 end) with toogle cases. \nIts purpose is to be combined with others rules as: `-r clem9669_big.rule -r clem9669_small.rule` or to be used as is with low rate cracking algorithms.\n\n### Rules size\n\n```sh\n$ wc -l *.rule\n      19 clem9669_case.rule\n 4091517 clem9669_large.rule\n  179552 clem9669_medium.rule\n     386 clem9669_small.rule\n    5715 emojis.rule\n 4277189 total\n```\n\n## Write your own rules\n\nThis is the only thing you need to write your rules : **https://hashcat.net/wiki/doku.php?id=rule_based_attack**\n\nI recommend using [clem9669_small](https://github.com/clem9669/hashcat-rule/blob/master/clem9669_small.rule) as a reference to start understanding how to write rules.\n\n## Why another\n\n\u003e There are already some really good rules out there but best64 is too small and bigger ones might be too big with too many random things when targeting a certain language like french.\n\n\n* https://github.com/NotSoSecure/password_cracking_rules, is good but does many random things\n\n* https://github.com/praetorian-code/Hob0Rules, too many random rules\n\n* https://github.com/NSAKEY/nsa-rules, idem\n\nI wanted to make my own and I feel better using mine now. My rules are not random rules in clem9669_medium.\n\n\nMoreover getting your hands dirty gives you a better understanding of what you're doing.\n\n## Saving which rules matched\n\n\nThis becomes handy especially in combination with the rules generator but also for statistical analysis of your rule sets.\n\nTo save any rule that generated a matched password, use these switches:\n\n`--debug-mode=4 --debug-file=matched.rule`\n\n\nThis will save the matched rule on every match, so the resulting rule file might contain many duplicate rules.\n\n\u003e At high rates of cracking per second, this may slow down cracking a little bit. \n\u003e At lower rates of cracking per second, the impact is probably negligible.\n\n## Testing and ouputing rules\n\nWith hashcat we can debug our rules easily. This means we can verify that the rule we wrote actually does what we want it to do. \nAll you need to use is the **--stdout** switch and omit the hashlist. \n\n`hashcat -r clem9669_large.rule --stdout password`\n\nSee sample [password_ruled.txt](https://github.com/clem9669/hashcat-rule/blob/master/password_ruled.txt)\n\n## What I have done : \n\n\u003e Input= password\n\u003e Please see a output example for [clem9669_large.rule](https://github.com/clem9669/hashcat-rule/blob/master/clem9669_large.rule) in [**password_ruled.txt**](https://github.com/clem9669/hashcat-rule/blob/master/password_ruled.txt) !!\n\nAlmost exhaustive list of rules:\n\nAction performed | Rule | Output \n-----|-------|-------\nSwaps first two characters\t | k | \nSwaps last two characters | K | \nDuplicate entire word\t | d | \nVarious substitutions | s |\nTitle case | e |\nAdd 1  at the end (printable) | Script python | \nAdd 2 digits |Script python | \nAdd 1 digit + 1 punctuation | Script python | \nAdd 2 digits + 1 punctuation | Script python | \nAdd 1 character at the end (printable) with capitalize the first letter | Script python | \nAdd 2 digits with capitalize the first letter| Script python | \nAdd 1 digit + 1 punctuation with capitalize the first letter| Script python | \nAdd 2 digits + 1 punctuation with capitalize the first letter| Script python | \nAdd 1 punctuation + 1 digit | Script python | \nAdd 1 punctuation + 2 digits | Script python | \nAdd 1 punctuation + 1 digit with capitalize the first letter| Script python | \nAdd 1 punctuation + 2 digits with capitalize the first letter| Script python | \nAdd all years from 1900 to 2099 | Script python | \nAdd all years from 1900 to 2099 with ! at the end | Script python | \nAdd all years from 1900 to 2099 with capitalize the first letter|Script python | \nAdd all years from 1900 to 2099 with ! at the end with capitalize the first letter|Script python | \nAdd all caps character at the end (printable) | See rule| \nAdd all caps character + years from 1900 to 2099 | See rule| \nAdd all caps character + years from 1900 to 2099 with ! at the end | See rule| \nAdd all caps character + 1 digit | See rule| \nAdd all caps character + 1 digit + 1 punctuation | See rule| \nAdd famous number | See rule | \nAdd famous number all caps| See rule | \nAdd high frequency overwrite | See rule | \nAdd high frequency prepend | See rule | \nAdd high frequency overwrite at start | See rule | \nLeetify | See rule | \nPreappend top 100 prenoms | See rule | \nPreappend top adverbs | See rule | \nPreappend top verbs | See rule | \nPreappend top adjectives | See rule | \nPreappend top 100 prenoms with capitalize the first letter| See rule | \nPreappend top adverbs with capitalize the first letter| See rule | \nPreappend top verbs with capitalize the first letter| See rule | \nPreappend top adjectives with capitalize the first letter| See rule | \nTmesis keyword (app/sec/api/secret/db/srv/...) |\nTmesis characters |\nTmesis names |\nConnexion strings (rdp://, ssh://, ftp://,...) |\n\nAND MORE!!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclem9669%2Fhashcat-rule","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fclem9669%2Fhashcat-rule","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclem9669%2Fhashcat-rule/lists"}