
Un plugin pour DataSurgeon qui extrait les numéros CVE du texte (par ex.: CVE-2021-56789)
Un plugin pour DataSurgeon qui extrait les numéros CVE à partir de texte (ex: CVE-2021-56789)
Si vous êtes un utilisateur Windows, vous trouverez le fichier plugin dans le répertoire C:\ds\. Si vous êtes sous Linux, cherchez le fichier plugin ici : ~/.DataSurgeon/plugins.json. Et si par hasard le fichier plugin n'est trouvé dans aucun de ces répertoires, nous vérifierons automatiquement le répertoire de travail actuel.
Chaque champ de l'objet json est important. Pour que votre plugin fonctionne parfaitement avec les options --add et --remove de DataSurgeon, n'oubliez pas de télécharger votre fichier plugins.json vers un dépôt GitHub. Assurez-vous que le nom du fichier reste plugins.json et incluez uniquement les options de plugin que vous souhaitez télécharger. Voici un guide rapide des champs :
Voici un exemple :
[
{
"content_type": "windows_registry",
"arg_long_name": "winregistry",
"version": "1.0.0",
"help_message": "Extracts windows registry paths",
"regex": "^(HKEY_(?:LOCAL_MACHINE|CURRENT_USER|CLASSES_ROOT|CURRENT_CONFIG|USERS)\\\\[\\w\\-\\.\\\\]*)",
"source_url": "https://github.com/DataSurgeon-ds/ds-cve-plugin/"
}
]
Une fois votre fichier plugin chargé, l'option sera ajoutée en tant qu'argument supplémentaire. Comme vous pouvez le voir, le nom de l'argument est arg_long_name.
drew@DESKTOP-A5AO3TO$ ds -h
Options:
......
-a, --aws Extract AWS keys
--cve Extracts CVE Identifiers
-V, --version Print version
Et voici comment l'exécuter :
┌──(drew㉿IT-DREW)-[~]
└─$ ds --cve -f cves.txt
cve: The first one is CVE-2023-1234. This is a hypothetical vulnerability that was supposedly discovered in 2023.
cve: Here's another one: CVE-2021-56789. This one was supposedly discovered in 2021.
cve: And here's a third one: CVE-2020-1234567. This one was supposedly discovered in 2020.
cve: But not all strings that look like CVE identifiers are actual CVE identifiers. For example, CVE-23-1234 is not a valid identifier because the year part only has two digits. Similarly, CVE-2023-123 is not valid because the identifier part only has three digits. And CVE-2023-12345678 is not valid because the identifier part has eight digits, which is too many.
cve: Finally, note that not all CVE identifiers are associated with actual vulnerabilities. For example, CVE-2023-9999 might not be associated with any known vulnerability. To check if a CVE identifier is real, you would need to look it up in a CVE database.
┌──(drew㉿IT-DREW)-[~]
└─$ ds --cve -f cves.txt --clean
cve: CVE-2023-1234
cve: CVE-2021-56789
cve: CVE-2020-1234567
cve: CVE-2023-1234567
cve: CVE-2023-9999
Pour ajouter un nouveau plugin, vous devez utiliser l'option --add <URL>. L'URL doit être un dépôt github distant hébergeant un fichier plugins.json. Comment utiliser votre nouveau plugin.
drew@DESKTOP-A5AO3TO:~$ ds --add https://github.com/DataSurgeon-ds/ds-cve-plugin/
[*] Download and added plugin: https://github.com/DataSurgeon-ds/ds-cve-plugin/
Pour lister tous les plugins, vous pouvez utiliser l'option --list.
drew@DESKTOP-A5AO3TO$ ds --list
Plugin File: /home/drew/.DataSurgeon/plugins.json
Source URL | Argument Long Name
https://raw.githubusercontent.com/DataSurgeon-ds/ds-cve-plugin | cve
Pour supprimer un plugin que vous ne voulez plus, vous pouvez utiliser l'option --remove.
drew@DESKTOP-A5AO3TO:~$ ds --remove https://github.com/DataSurgeon-ds/ds-cve-plugin//
[*] Removed plugin: https://github.com/DataSurgeon-ds/ds-cve-plugin//
| Champ | Description |
|---|
| content_type | Ce doit être une description en un mot du contenu que vous recherchez (sans espaces). C'est le mot qui est imprimé à côté du contenu correspondant. |
| arg_long_name | C'est le nom d'argument unique pour l'interface en ligne de commande. Il doit être unique parmi tous les plugins. |
| help_message | C'est une description courte et agréable de ce que fait votre plugin. Elle apparaîtra dans le message d'aide de l'outil. |
| version | C'est le numéro de version de votre plugin (ex: 1.0.0) |
| regex | C'est l'expression régulière utilisée pour correspondre au contenu. Pour assurer la compatibilité avec l'option --clean, votre regex doit être conçue de sorte que la correspondance entière ($0) contienne exactement le contenu qui vous intéresse. Cela permet à l'option --clean d'extraire uniquement le contenu correspondant pertinent. Pour tester vos motifs regex, nous recommandons d'utiliser https://regexr.com/ |
| source_url | C'est l'URL du dépôt GitHub hébergeant votre plugin |