{"id":18005170,"url":"https://github.com/unicornsasfuel/keybrute","last_synced_at":"2025-03-26T10:31:51.029Z","repository":{"id":86588563,"uuid":"132782447","full_name":"unicornsasfuel/keybrute","owner":"unicornsasfuel","description":"A wordlist-based encryption key brute forcer targeting weak key choice/derivation","archived":false,"fork":false,"pushed_at":"2018-11-21T21:42:16.000Z","size":109,"stargazers_count":27,"open_issues_count":0,"forks_count":8,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-03-21T15:12:33.435Z","etag":null,"topics":["aes","aes-encryption","brute-force","computer-security","crack","cryptanalysis","crypto","cryptography","encryption","information-security","infosec","security"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/unicornsasfuel.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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":"2018-05-09T16:11:14.000Z","updated_at":"2024-08-12T19:38:25.000Z","dependencies_parsed_at":null,"dependency_job_id":"bc474f21-be13-4170-9c8d-1030ed9abddd","html_url":"https://github.com/unicornsasfuel/keybrute","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unicornsasfuel%2Fkeybrute","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unicornsasfuel%2Fkeybrute/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unicornsasfuel%2Fkeybrute/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unicornsasfuel%2Fkeybrute/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/unicornsasfuel","download_url":"https://codeload.github.com/unicornsasfuel/keybrute/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245636867,"owners_count":20648041,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["aes","aes-encryption","brute-force","computer-security","crack","cryptanalysis","crypto","cryptography","encryption","information-security","infosec","security"],"created_at":"2024-10-30T00:17:54.296Z","updated_at":"2025-03-26T10:31:51.024Z","avatar_url":"https://github.com/unicornsasfuel.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# keybrute\n\nThis is a tool for cracking encryption keys using captured encrypted data, adapted from the FeatherDuster AES cracking module to be a standalone tool.\n\nkeybrute expects Python 2.7 and supports PyPy. This is mostly a proof of concept tool that will be deprecated once a rewrite in a language that can properly parallelize tasks can be written for performance reasons.\n\nYou'll need to capture at least one encrypted message. If possible, capture multiple unique encrypted messages produced with the same key. Place them, newline-separated and hex- or base64-encoded, into a single file.\n\nNext, you'll need a list of keys to try. A keylist based off of the password list included with John the Ripper and repeating bytes is included. You can generate your own by taking your favorite password cracking wordlist (rockyou, anyone?) and running it through `convert_wordlist.py` like so:\n\n`python ./convert_wordlist.py -nrm wordlist.txt keylist.txt`\n\nNow you can crack your file of samples. If you provide a crib, every sample will be checked for this crib. If any of your samples do not contain your provided crib once decrypted, the key, even if correct, will not be identified as such. If you do not provide a crib, samples will be checked for the presence of pkcs7 padding. If any decrypted samples are improperly pkcs7 padded, the key being tested, even if correct, will not be identified as correct.\n\nWhen specifying a crib, ciphertexts are decrypted in their entirety. Otherwise, only the last block of the ciphertext will be decrypted for speed. If working with very large ciphertexts, you should not specify a crib, and generate a list of potentially correct keys to use in another round of cracking using your crib.\n\nFor CBC-mode ciphertext, you can provide an IV to be used if it is known.\n\nYou can choose from several different ciphers. Currently keybrute supports the following ciphers:\n\n```buildoutcfg\nAES\nDES\n3DES\n```\n\nIf you'd like to write the list of candidate keys to a file, you can use the `-o` or `--output` option to specify a file name. The output format is a list of hex-encoded keys, suitable for use with keybrute.\n\n## Examples\n####Basic usage\nThe key cracking script can be invoked like so:\n\n`pypy ./key_brute.py keylist.txt sample.txt`\n\nThis will default to AES cracking with no known IV, with keys validated based on PKCS7 padding correctness.\n\n####Advanced usage\nUsing all the options looks like this:\n\n`pypy ./key_brute.py -o outfile -a 3DES --iv 0102010201020102 --crib Password1 -e base64 keylist.txt sample.txt`\n\nThis will crack the base64-encoded samples in `sample.txt` with 3DES using keys from `keylist.txt` and the specified IV, and will record any key that produces decrypted data containing `Password1` to the file `outfile`.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Funicornsasfuel%2Fkeybrute","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Funicornsasfuel%2Fkeybrute","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Funicornsasfuel%2Fkeybrute/lists"}