
Un plugin para DataSurgeon que extrae números CVE del texto (por ejemplo: CVE-2021-56789)
Un plugin para DataSurgeon que extrae números CVE de texto (p. ej.: CVE-2021-56789)
Si eres usuario de Windows, encontrarás el archivo de plugin en el directorio C:\ds\. Si usas Linux, busca el archivo de plugin aquí: ~/.DataSurgeon/plugins.json. Y si por casualidad el archivo de plugin no se encuentra en ninguno de estos directorios, comprobaremos automáticamente el directorio de trabajo actual.
Cada campo del objeto json es importante. Para asegurarte de que tu plugin funciona a la perfección con las opciones --add y --remove de DataSurgeon, recuerda subir tu archivo plugins.json a un repositorio de GitHub. Asegúrate de que el nombre del archivo siga siendo plugins.json e incluye únicamente las opciones de plugin que deseas subir. Aquí tienes una guía rápida de los campos:
| Campo | Descripción |
|---|---|
| content_type | Debe ser una descripción de una sola palabra del contenido que estás buscando (sin espacios). Esta es la palabra que se imprime junto al contenido coincidente. |
| arg_long_name | Este es el nombre de argumento único para la interfaz de línea de comandos. Debe ser único en todos los plugins. |
| help_message | Esta es una descripción breve y concisa de lo que hace tu plugin. Aparecerá en el mensaje de ayuda de la herramienta. |
| version | Este es el número de versión de tu plugin (p. ej.: 1.0.0) |
| regex | Esta es la expresión regular que se utiliza para hacer coincidir el contenido. Para garantizar la compatibilidad con la opción --clean, tu regex debe estar diseñada de modo que la coincidencia completa ($0) contenga exactamente el contenido que te interesa. Esto permite que la opción --clean extraiga solo el contenido coincidente relevante. Para probar tus patrones de regex, recomendamos usar https://regexr.com/ |
| source_url | Esta es la URL del repositorio de GitHub que aloja tu plugin |
Aquí tienes un ejemplo:
[
{
"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/"
}
]
Una vez cargado tu archivo de plugin, la opción se añadirá como un argumento adicional. Como puedes ver, el nombre del argumento es arg_long_name.
drew@DESKTOP-A5AO3TO$ ds -h
Options:
......
-a, --aws Extract AWS keys
--cve Extracts CVE Identifiers
-V, --version Print version
Y así es como puedes ejecutarlo:
┌──(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 añadir un nuevo plugin necesitas usar la opción --add <URL>. La URL debe ser un repositorio remoto de GitHub que aloje un archivo plugins.json. Cómo usar tu nuevo 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 los plugins puedes usar la opción --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 eliminar un plugin que ya no quieres puedes usar la opción --remove.
drew@DESKTOP-A5AO3TO:~$ ds --remove https://github.com/DataSurgeon-ds/ds-cve-plugin//
[*] Removed plugin: https://github.com/DataSurgeon-ds/ds-cve-plugin//