Package: bopscrk
bopscrkA tool to generate smart and powerful wordlists for targeted attacksExplore the docs »View Demo·Report Bug·Request FeatureTable of contentsAbout the ProjectWhat's newBuilt withGetting startedInstallationRun interactive modeUsageHow it worksTipsLyricpassAdvanced usageRoadmapContributingContributorsChangelistLicenseContactAcknowledgmentsLegal disclaimerAbout the ProjectTargeted-attack wordlist creator: introduce personal info related to target, combines every word and transforms results into possible passwords. Thelyricpassmodule allows tosearch lyrics related to artistsand include them to the wordlists.Customizable caseandleet transforms: createcustom charsetsandtransforms patternstrough a simpleconfig file.Interactive modeandone-line command interfacesupported.Included inBlackArch Linuxpentesting distribution andRawsec's Cybersecurity Inventorysince August 2019.Built withPython 3(secondary branch keeps Python 2.7 legacy support)requestsalive-progressWhat's new2.4.5 RELEASED: Progress bar with ETA implemented!(back to top)Getting startedInstallationpip install bopscrkRun interactive modebopscrk -i(back to top)Usage-h, --help         show this help message and exit
  -i, --interactive  interactive mode, the script will ask you about target
  -w                 words to combine comma-separated (non-interactive mode)
  --min              min length for the words to generate (default: 4)
  --max              max length for the words to generate (default: 32)
  -c, --case         enable case transformations
  -l, --leet         enable leet transformations
  -n                 max amount of words to combine each time (default: 2)
  -a , --artists     artists to search song lyrics (comma-separated)
  -o , --output      output file to save the wordlist (default: tmp.txt)
  -C , --config      specify config file to use (default: ./bopscrk.cfg)
  --version          print version and exitFor more information, please refer to theAdvanced usagesection.(back to top)How it worksYou have toprovidesomewordswhich will act as a base.Thelyricpass featureallows to introduceartists. The tool will download all hissongs' lyricsand each line will be added as a new word. By default, artist names and a word formed by the initial of word on each phrase, will be added too.The tool will generateall possible combinationsbetween them.To generate more combinations, it will add somecommon separators(e.g. "-", "_", "."),numbersandspecial charsfrequently used in passwords.You can useleetandcase transformsto increase your chances.TipsFields can be leftempty.Youcan use accentuationin your words.In the others field you can writeseveral words comma-separated.Example: 2C,Flipper.If you want to produceall possible leet transformations, enable therecursive_leet optionin configuration file.You canselect which transforms to apply on lyrics phrasesfound through thecfg file.Using thenon-interactive mode, you should provide years in the long and short way (1970,70) to get the same result than the interactive mode.You have to be careful with-nargument. If you set a big value, it could result intoo huge wordlists. I recommend values between 2 and 5.To provideseveral artist namesthrough command line you should provides itcomma-separated.Example:-a johndoe,johnsmithTo provideartist names with spacesthrough command line you should provides itquotes-enclosed.Example:-a "john doe,john smith"LyricpassThis feature is based in a modified version of atooldeveloped originally byinitstring. The changes are made to integrate input and output's tool with bopscrk.It will retrieve all lyrics from all songs which belongs to artists that you provide.By default it will store each artist, each phrase found with space substitution, each phrase found reduced to its initials(which will be transformed later if you have activated leet and case transforms).Advanced usageCustomizing behaviour using .cfg fileInbopscrk.cfgfile you can specify your own charsets and enable/disable options:threads: number of threads to use in multithreaded operationsextra_combinations(like(john, doe) => 123john, john123, 123doe, doe123, john123doe doe123john) areenabled by default. You can disable it in the configuration file in order to get more focused wordlists.separators_chars: characters to use in extra-combinations.Can be a single char or a string of chars, e.g.:!?-/&(separators_strings: strings  to use in extra-combinations.Can be a single string or a list of strings space-separated, e.g.:12334!@leet_charset: characters to replace and correspondent substitute in leet transforms,e.g.:e:3 b:8 t:7 a:4recursive_leet: enables a recursive call to leet_transforms() function to get all possible leet transforms (disabled by default).WARNING: enabled with huge --max parameters (e.g.: greater than 18) could take even days.Can be true or false.remove_parenthesis: remove all parenthesis in lyrics found before any transformtake_initials: produce words based on initial of each word in lyric phrases found (if enabled with remove_parenthesis disabled, it can produce useless words)artist_split_by_word: split artist names and add each word as a new onelyric_split_by_word: same with lyrics foundartist_space_replacement: replace spaces in artist names with chars/strings defined in charsetlyric_space_replacement: same with lyrics foundspace_replacement_chars: characters to insert instead of spaces inside an artist name or a lyric phrase.Can be a single char or a string of chars, e.g.:!?-/&(space_replacement_strings: strings to insert instead of spaces inside an artist name or a lyric phrase.Can be a single string or a list of strings space-separated, e.g.:12334!@Some transforms have extensive charsets preincluded. To use it instead of the basic, just uncomment the corresponding line.Parameters configuration examplesCombine all the words using dots as separator, and same using commasseparators_chars=.,Convert all "a/A" occurrences into "4" and all "e/E" occurrences into "3"leet_charset=a:4 e:3(back to top)RoadmapImprovememory managementWrite wordlists into filesystem during execution and use it as cache (#12)ImproveperformanceRefactor and improve threads and transforms logicExtra featuresImplementprogress barto keep user informed of the execution stateImplementsession fileto keep track of the execution point andbe able to stop and resume sessions(#12)Createconfig optionsfor customizedcase transforms(e.g.: disable pair/odd transforms)See theopen issuesfor a full list of proposed features (and known issues).(back to top)ContributingContributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make aregreatly appreciated.If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement".
Don't forget to give the project a star! Thanks again!Fork the ProjectCreate your Feature Branch (git checkout -b feature/AmazingFeature)Commit your Changes (git commit -m 'Add some AmazingFeature')Push to the Branch (git push origin feature/AmazingFeature)Open a Pull RequestContributorsnorajcontributed opening several issues and pull requests that have allow to fix some important bugs. He also managed by his own the tool's addition in BlackArch and RawSec repositories, which has increase its popularity and usenylocxandagoertz-flscontributed adding Python3 supportglozanoaandfabaffcontributed adding bopscrk command (improvements on setup.py)Thank you all!(back to top)Changelist2.4.5 version notes (02/08/2022)progress barimplemented and workingversionargument includedDocs improved2.4.4 version notes (31/07/2022)Relative imports bug fixedStarting to refactor general structure to allowprogressbar feature inclusion2.4.3 version notes (28/07/2022)Fixing project structure to allow properly install via pip:Add MANIFEST to exclude compiled and tests files when building distImproving structure to properly copy all structure into python packages dir inside a parent dirFixing relative path to config fileCatch exception when a wrong config file was provided (notice and exit)2.4 version notes (26/07/2022)Make the installation process easier enablingpip installmethodStarting to implement better memory management (cached wordlists writing and reading i/o files), not working yetUpdating and fixing minor bugs related to dependenciesREMOVED FEATURE: 'exclude from other wordlists', doesn't seem useful, there is other tools to do this specific work2.3.1 version notesFixing namespace bug (related to aux.py module, renamed to auxiliars.py) when running on windows systemsunittest(and simple unitary tests for transforms, excluders and combinators functions)implemented.2.3 version notes (15/10/2020)Customizableconfiguration forartists and lyrics transformsusing the cfg fileRequirements atsetup.py updatedMultithreads logic improvedLeet and case order reversedto improve operations efficiencyBUG FIXEDin lyrics space replacementBUG FIXEDwhen remove duplicates (Type Error: unhashable type: 'list')Memory management and efficiency improvedSPLIT INTO MODULESto improve project structureBUG FIXEDin wordlists-exclusion feature2.2 version notes (11/10/2020Configuration fileimplementedNEW FEATURE: Allow to createcustom charsetsandtransforms patternstrough theconfig fileNEW FEATURE:Recursive leet transformsimplemented (disabled by default, can be enabled in cfg file)2.2~beta version notes (10/10/2020)Thelyricpassintegration have beenupdated to run with last version released by initstring--lyrics-alloption removed (feature integrated in other options)2.1 version notes (11/07/2020)Fixingmin and max length bug2.0/1.5 version notes (17/06/2020)PYTHON 3 NOW IS SUPPORTED: master branch moves to Python 3. Secondary branch keeps Python 2.7 legacy support0-1.2(beta) version notesEXCLUDE WORDLISTS: speed improvement using multithreaded exclusionsNEW FEATURE: lyrics searching related to artists increase the wordlist chances(back to top)LicenseDistributed under the GNU General Public License v3.0. SeeLICENSEfor more information.(back to top)Contactr3nt0n:Github-emailbopscrk:Github-Pypi(back to top)Acknowledgmentslyricpass module is based on aprojectcreated byinitstring.Pixel Gothic fontbyKajetan Andrzejak.(back to top)Legal disclaimerThis tool is created for the sole purpose of security awareness and education, it should not be used against systems that you do not have permission to test/attack. The author is not responsible for misuse or for any damage that you may cause. You agree that you use this software at your own risk.(back to top)