bopscrk
Générez des listes de mots intelligentes et puissantes pour des attaques ciblées
Explorer les documents »
Voir la démo · Signaler un bug · Demander une fonctionnalité
Table des matières
- À propos du projet
- Quoi de neuf
- Construit avec
- Commencer
- Installation
- Exécuter le mode interactif
- Usage
- Comment ça marche
- Conseils
- Utilisation avancée
- Passe paroles
- Feuille de route
- Contribuer
- Liste des modifications
- Licence
- Contact
- Remerciements
- Mentions légales
À propos du projet
- Créateur de liste de mots d'attaque ciblée : introduisez des informations personnelles liées à la cible, combine chaque mot et transforme les résultats en mots de passe possibles. Le module lyricpass permet de rechercher des paroles liées aux artistes et de les inclure dans les listes de mots.
- Transformations de casse et de leet personnalisables : créez des jeux de caractères personnalisés et des modèles de transformation via un simple fichier de configuration .
- Mode interactif et interface de commande sur une ligne pris en charge.
- Inclus dans la distribution de test d'intrusion BlackArch Linux et dans l'inventaire de cybersécurité de Rawsec depuis août 2019.
Construit avec
- Python 3 (la branche secondaire conserve la prise en charge héritée de Python 2.7)
Quoi de neuf
- 2.4.7 SORTIE (09/02/2024) : Vitesse et performances considérablement augmentées. Le nouveau mode de transformation de cas étendu permet de générer toutes les transformations de cas possibles.
(retour en haut)
Commencer
Installation
Alternativement, si vous souhaitez cloner le dépôt depuis Github au lieu de l'installer depuis Pypi :
git clone --recurse-submodules https://github.com/r3nt0n/bopscrk
cd bopscrk
pip install -r requirements.txt
Exécuter le mode interactif
(retour en haut)
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 exit
Pour plus d'informations, veuillez vous référer à la section Utilisation avancée.
(retour en haut)
Comment ça marche
- Vous devez fournir quelques mots qui serviront de base.
- La fonctionnalité lyricpass permet de présenter des artistes . L'outil téléchargera les paroles de toutes ses chansons et chaque ligne sera ajoutée comme un nouveau mot. Par défaut, les noms d'artistes et un mot formé par l'initiale du mot sur chaque phrase seront également ajoutés.
- L'outil générera toutes les combinaisons possibles entre eux.
- Pour générer plus de combinaisons, il ajoutera des séparateurs courants (par exemple "-", "_", "."), des chiffres et des caractères spéciaux fréquemment utilisés dans les mots de passe.
- Vous pouvez utiliser les transformations leet et case pour augmenter vos chances.
Conseils
- Les champs peuvent rester vides .
- Vous pouvez utiliser l'accentuation dans vos mots et vos caractères spéciaux (si vous utilisez le mode non interactif, échappez les caractères spéciaux comme
'
et "
avec des barres obliques inverses, par exemple : bopscrk -w John,O'hara,Doe,foo,bar
). - Dans le champ Autres, vous pouvez écrire plusieurs mots séparés par des virgules . Exemple : 2C,Flipper.
- Si vous souhaitez produire toutes les transformations leet possibles , activez l' option recursive_leet dans le fichier de configuration.
- Si vous souhaitez produire toutes les transformations de cas possibles , activez l' option extensive_case dans le fichier de configuration.
- Vous pouvez sélectionner les transformations à appliquer aux phrases de paroles trouvées via le fichier cfg .
- En utilisant le mode non interactif , vous devez prévoir des années dans le sens long et court (1970,70) pour obtenir le même résultat qu'avec le mode interactif.
- Vous devez être prudent avec l'argument -n . Si vous définissez une valeur élevée, cela pourrait entraîner des listes de mots trop volumineuses . Je recommande des valeurs entre 2 et 5.
- Pour fournir plusieurs noms d'artistes via la ligne de commande, vous devez les fournir séparés par des virgules . Exemple :
-a johndoe,johnsmith
- Pour fournir des noms d'artistes avec des espaces via la ligne de commande, vous devez le fournir entre guillemets . Exemple :
-a "john doe,john smith"
(retour en haut)
Utilisation avancée
Personnalisation du comportement à l'aide du fichier .cfg
Dans le fichier bopscrk.cfg
, vous pouvez spécifier vos propres jeux de caractères et activer/désactiver les options :
- extra_combinations (comme
(john, doe) => 123john, john123, 123doe, doe123, john123doe doe123john
) sont activés par défaut . Vous pouvez le désactiver dans le fichier de configuration afin d'obtenir des listes de mots plus ciblées. - separators_chars : caractères à utiliser dans les extra-combinaisons. Peut être un seul caractère ou une chaîne de caractères, par exemple :
!?-/&(
- separators_strings : chaînes à utiliser dans des combinaisons supplémentaires. Il peut s'agir d'une seule chaîne ou d'une liste de chaînes séparées par des espaces, par exemple :
123
34!@
- leet_charset : caractères à remplacer et remplacement correspondant dans les transformations leet, par exemple :
e:3 b:8 t:7 a:4
- recursive_leet : permet un appel récursif à la fonction leet_transforms() pour obtenir toutes les transformations leet possibles. ATTENTION : l'activation avec des valeurs
--max
énormes (par exemple : supérieures à 18) peut prendre beaucoup de temps. Peut être vrai ou faux. - extensive_case : par défaut, bopscrk n'applique que les transformations de casse les plus courantes : tous les caractères vers le bas, tous les caractères vers le haut, chaque caractère vers le haut, toutes les paires vers le haut, toutes les cotes vers le haut, toutes les consonnes vers le haut et toutes les voyelles vers le haut. Vous pouvez activer cette option pour obtenir TOUTES les transformations de casse possibles, ce qui peut donner lieu à des listes de mots beaucoup plus volumineuses, mais peut être utile dans certains scénarios. Peut être vrai ou faux.
- remove_parenthesis : supprime toutes les parenthèses dans les paroles trouvées avant toute transformation
- take_initials : produit des mots basés sur l'initiale de chaque mot dans les phrases lyriques trouvées (si activé avec Remove_parenthesis désactivé, cela peut produire des mots inutiles)
- artist_split_by_word : divisez les noms d'artistes et ajoutez chaque mot comme un nouveau
- lyric_split_by_word : idem avec les paroles trouvées
- artist_space_replacement : remplace les espaces dans les noms d'artistes par des caractères/chaînes définis dans le jeu de caractères
- lyric_space_replacement : idem avec les paroles trouvées
- space_replacement_chars : caractères à insérer à la place des espaces à l'intérieur d'un nom d'artiste ou d'une phrase lyrique. Peut être un seul caractère ou une chaîne de caractères, par exemple :
!?-/&(
- space_replacement_strings : chaînes à insérer à la place des espaces à l'intérieur d'un nom d'artiste ou d'une phrase lyrique. Il peut s'agir d'une seule chaîne ou d'une liste de chaînes séparées par des espaces, par exemple :
123
34!@
Exemples de configuration des paramètres
- Combinez tous les mots en utilisant des points comme séparateur, et pareil en utilisant des virgules
separators_chars=.,
- Convertir toutes les occurrences "a/A" en "4" et toutes les occurrences "e/E" en "3"
leet_charset=a:4 e:3
(retour en haut)
Passe paroles
Cette fonctionnalité est basée sur une version modifiée d'un outil développé initialement par initstring. Les modifications sont apportées pour intégrer l'outil d'entrée et de sortie avec bopscrk.
Il récupérera toutes les paroles de toutes les chansons appartenant aux artistes que vous fournissez. Par défaut, il stockera chaque artiste, chaque phrase trouvée avec substitution d'espace, chaque phrase trouvée réduite à ses initiales (qui seront transformées plus tard si vous avez activé les transformations leet et case).
(retour en haut)
Feuille de route
Consultez les problèmes ouverts pour une liste complète des fonctionnalités proposées (et des problèmes connus).
(retour en haut)
Contribuer
Les contributions sont ce qui fait de la communauté open source un endroit si formidable pour apprendre, inspirer et créer. Toutes les contributions que vous apportez sont grandement appréciées .
Si vous avez une suggestion pour améliorer les choses, veuillez créer le dépôt et créer une pull request. Vous pouvez aussi simplement ouvrir un ticket avec la balise « amélioration ». N'oubliez pas de donner une étoile au projet ! Merci encore!
- Forkez le projet
- Créez votre branche de fonctionnalités (
git checkout -b feature/AmazingFeature
) - Validez vos modifications (
git commit -m 'Add some AmazingFeature'
) - Pousser vers la branche (
git push origin feature/AmazingFeature
) - Ouvrir une demande de tirage
Contributeurs
- noraj a contribué à l'ouverture de plusieurs tickets et pull request qui ont permis de corriger certains bugs importants. Il a également géré lui-même l'ajout de l'outil dans les référentiels BlackArch et RawSec, ce qui a augmenté sa popularité et son utilisation.
- nylocx et agoertz-fls ont contribué à l'ajout du support Python3
- glozanoa et fabaff ont contribué à l'ajout de la commande bopscrk (améliorations sur setup.py)
Merci à tous !
(retour en haut)
Liste des modifications
2.4.7 version notes (02/09/2024)
- Amélioration de la logique de transformation de la casse (il respecte désormais la casse du mot original)
- Y compris de nouvelles opérations de transformation de cas de base
- Implémentation du mode de transformation de cas étendu
- Correction des fautes de frappe
2.4.6 version notes (30/08/2024)
- Augmentation des performances de parallélisme (implémentation réelle du multitraitement)
- Meilleure gestion des erreurs de l'analyseur de configuration
- Correction des fautes de frappe
2.4.5 version notes (02/08/2022)
- barre de progression implémentée et fonctionnelle
- argument
version
inclus - Documents améliorés
2.4.4 version notes (31/07/2022)
- Bug des importations relatives corrigé
- Commencer à refactoriser la structure générale pour permettre l'inclusion des fonctionnalités de la barre de progression
2.4.3 version notes (28/07/2022)
- Correction de la structure du projet pour permettre une installation correcte via pip :
- Ajoutez MANIFEST pour exclure les fichiers compilés et tests lors de la création de la distribution
- Amélioration de la structure pour copier correctement toute la structure dans le répertoire des packages Python à l'intérieur d'un répertoire parent
- Correction du chemin relatif au fichier de configuration
- Exception de détection lorsqu'un mauvais fichier de configuration a été fourni (avis et sortie)
2.4 version notes (26/07/2022)
- Rendre le processus d'installation plus facile en activant la méthode
pip install
- Commencer à implémenter une meilleure gestion de la mémoire (listes de mots mises en cache, écriture et lecture de fichiers d'E/S), ne fonctionne pas encore
- Mise à jour et correction de bugs mineurs liés aux dépendances
- FONCTION SUPPRIMÉE : 'exclure des autres listes de mots', ne semble pas utile, il existe d'autres outils pour faire ce travail spécifique
2.3.1 version notes
- Correction d'un bug d'espace de noms (lié au module aux.py, renommé auxiliars.py) lors de l'exécution sur les systèmes Windows
- unittest (et tests unitaires simples pour les fonctions de transformation, d'exclusion et de combinateur) implémentés .
2.3 version notes (15/10/2020)
- Configuration personnalisable pour les transformations des artistes et des paroles à l'aide du fichier cfg
- Exigences sur setup.py mises à jour
- Logique multithread améliorée
- L'ordre des Leet et des cas a été inversé pour améliorer l'efficacité des opérations
- BUG FIXÉ dans le remplacement de l’espace des paroles
- BUG CORRIGÉ lors de la suppression des doublons ( Erreur de type : type non hachable : 'list' )
- Gestion de la mémoire et efficacité améliorées
- DIVISÉ EN MODULES pour améliorer la structure du projet
- BUG CORRIGÉ dans la fonction d'exclusion des listes de mots
2.2 version notes (11/10/2020
- Fichier de configuration implémenté
- NOUVELLE FONCTION : Permet de créer des jeux de caractères personnalisés et de transformer des modèles via le fichier de configuration
- NOUVELLE FONCTION : Transformations leet récursives implémentées ( désactivées par défaut , peuvent être activées dans le fichier cfg)
2.2~beta version notes (10/10/2020)
- L'intégration de lyricpass a été mise à jour pour fonctionner avec la dernière version publiée par initstring
- Option
--lyrics-all
supprimée (fonctionnalité intégrée dans d'autres options)
2.1 version notes (11/07/2020)
- Correction d' un bug de longueur min et max
2.0/1.5 version notes (17/06/2020)
- PYTHON 3 EST MAINTENANT PRIS EN CHARGE : la branche principale passe à Python 3. La branche secondaire conserve le support hérité de Python 2.7
0-1.2(beta) version notes
- EXCLUDE WORDLISTS : amélioration de la vitesse grâce aux exclusions multithread
- NOUVELLE FONCTION : la recherche de paroles liées aux artistes augmente les chances de la liste de mots
(retour en haut)
Licence
Distribué sous la licence publique générale GNU v3.0. Voir LICENSE
pour plus d’informations.
(retour en haut)
Contact
r3nt0n : Github - e-mail
bopscrk : Github - Pypi
(retour en haut)
Remerciements
- Le module lyricpass est basé sur un projet créé par initstring.
- Police Pixel Gothic par Kajetan Andrzejak.
- Meilleur modèle README par othneildrew.
(retour en haut)
Mentions légales
Cet outil est créé dans le seul but de sensibilisation et d'éducation à la sécurité. Il ne doit pas être utilisé contre des systèmes que vous n'êtes pas autorisé à tester/attaquer. L'auteur n'est pas responsable de la mauvaise utilisation ou des dommages que vous pourriez causer. Vous acceptez d'utiliser ce logiciel à vos propres risques.
(retour en haut)