
Um plugin para DataSurgeon que extrai números de CVE de texto (ex.: CVE-2021-56789)
Um plugin para DataSurgeon que extrai números de CVE de texto (ex.: CVE-2021-56789)
Se você for usuário do Windows, encontrará o arquivo do plugin no diretório C:\ds\. Se estiver no Linux, procure o arquivo do plugin aqui: ~/.DataSurgeon/plugins.json. E se por acaso o arquivo do plugin não for encontrado em nenhum desses diretórios, verificaremos automaticamente o diretório de trabalho atual.
Cada campo no objeto json é importante. Para garantir que o seu plugin funcione perfeitamente com as opções --add e --remove do DataSurgeon, lembre-se de enviar o arquivo plugins.json para um repositório do GitHub. Certifique-se de que o nome do arquivo permaneça como plugins.json e inclua apenas as opções de plugin que deseja enviar. Aqui está um guia rápido sobre os campos:
Aqui está um exemplo:
[
{
"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/"
}
]
Depois que o arquivo do seu plugin for carregado, a opção será adicionada como um argumento adicional. Como você pode ver, o nome do argumento é o arg_long_name.
drew@DESKTOP-A5AO3TO$ ds -h
Options:
......
-a, --aws Extract AWS keys
--cve Extracts CVE Identifiers
-V, --version Print version
E aqui está como você pode executá-lo:
┌──(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
Para adicionar um novo plugin, você precisa usar a opção --add <URL>. A URL precisa ser um repositório remoto do GitHub que hospede um arquivo plugins.json. Como usar o seu novo 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/
Para listar todos os plugins, você pode usar a opção --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
Para remover um plugin que você não quer mais, você pode usar a opção --remove.
drew@DESKTOP-A5AO3TO:~$ ds --remove https://github.com/DataSurgeon-ds/ds-cve-plugin//
[*] Removed plugin: https://github.com/DataSurgeon-ds/ds-cve-plugin//
| Field | Description |
|---|
| content_type | Deve ser uma descrição de uma palavra do conteúdo que você está procurando (sem espaços). É essa palavra que é impressa junto ao conteúdo correspondente. |
| arg_long_name | Este é o nome exclusivo do argumento para a interface de linha de comando. Ele deve ser único em todos os plugins. |
| help_message | Esta é uma descrição curta e objetiva do que o seu plugin faz. Ela aparecerá na mensagem de ajuda da ferramenta. |
| version | Este é o número da versão do seu plugin (ex.: 1.0.0) |
| regex | Esta é a expressão regular usada para corresponder ao conteúdo. Para garantir compatibilidade com a opção --clean, sua regex deve ser projetada de modo que toda a correspondência ($0) contenha exatamente o conteúdo de seu interesse. Isso permite que a opção --clean extraia apenas o conteúdo correspondente relevante. Para testar seus padrões de regex, recomendamos usar https://regexr.com/ |
| source_url | Esta é a URL do repositório GitHub que hospeda o seu plugin |