Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
DbDat — Db Herramienta de Evaluación de Bases de Datos | Kitploit
Herramientas/GitHubGitHub/foospidy/dbdat
Escáneres de VulnerabilidadesAuditoría de ConfiguraciónPruebas de PenetraciónSeguridad de Bases de Datos
GitHubfoospidy/dbdat

DbDat

Db Herramienta de Evaluación de Bases de Datos

Ver Repositorio
2114412hace 8 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

DbDat

Herramienta de Evaluación de Bases de Datos DbDat

DbDat realiza numerosas comprobaciones en una base de datos para evaluar la seguridad. Las categorías de comprobaciones realizadas son configuración, privilegios, usuarios e información. Las comprobaciones se realizan ejecutando consultas o leyendo archivos de configuración de la base de datos. El objetivo de esta herramienta es destacar los problemas que requieren atención inmediata e identificar ajustes de configuración que deben revisarse para determinar su idoneidad. Esta herramienta no está diseñada para identificar vulnerabilidades de inyección SQL en una aplicación; ya existen buenas herramientas para eso (por ejemplo, https://github.com/sqlmapproject). Además, esta herramienta no intenta determinar qué CVE pueden afectar la versión de la base de datos objetivo (pero podría hacerlo en el futuro, quizás). Más bien, esta herramienta puede ayudarle a comprender mejor el impacto potencial de un ataque de inyección SQL exitoso debido a una configuración débil o controles de acceso inadecuados. La mayoría de las comprobaciones provienen de los Benchmarks de Seguridad CIS (https://cisecurity.org) para bases de datos, ¡gracias a CIS! Los documentos de referencia se pueden encontrar aquí: https://benchmarks.cisecurity.org/downloads/browse/index.cfm?category=benchmarks.servers.database

Recomiendo encarecidamente descargar el documento de referencia para su base de datos objetivo, ya que contiene información adicional sobre las comprobaciones realizadas.

Finalmente, DbDat está diseñado para ser un marco que permita la creación fácil de nuevos plugins y comprobaciones. Las contribuciones de la comunidad de seguridad, o incluso de administradores de bases de datos, son lo que harán de esta una gran herramienta. El conjunto actual de comprobaciones no está completo, ciertamente se necesita hacer más. ¡Por favor, contribuya!

Desarrollando Nuevas Comprobaciones de Base de Datos

¡Las pull requests son muy bienvenidas! Las comprobaciones están organizadas por tipo de base de datos (por ejemplo, MySQL, Oracle, MS SQL, etc.) en la carpeta de plugins. Cada comprobación es un archivo Python que debe comenzar con check_ al inicio del nombre del archivo. Cada archivo contiene una clase con un método do_check. Este método es la lógica principal de las comprobaciones. La forma rápida de empezar es copiar un archivo de comprobación existente y modificarlo. Sin embargo, consulte la sección Desarrollo de Plugins a continuación para más detalles.

Ejecutando DbDat

  1. Asegúrese de tener las dependencias necesarias instaladas para que los scripts de Python se conecten a su base de datos objetivo. Consulte la sección de dependencias a continuación.
  2. Agregue una entrada de perfil de conexión en el archivo etc/dbdat.conf para cada base de datos que desee evaluar.
  3. Ejecute: python dbdat.py -p <nombre_del_perfil>
  4. Vea el informe. Para ver el informe, cd al directorio de informes y ejecute python -m SimpleHTTPServer 9000 (o elija un número de puerto de su preferencia). Luego abra su navegador y navegue a http://localhost:9000.

Para ver una lista de argumentos de línea de comandos adicionales, ejecute python dbdat.py -h

Salida del Informe

El informe organiza los resultados por niveles, que son ROJO, AMARILLO, NARANJA, GRIS y VERDE.

  • ROJO - elementos que requieren atención inmediata.
  • AMARILLO - elementos que necesitan revisión.
  • NARANJA - comprobaciones que fallaron al ejecutarse correctamente.
  • GRIS - elementos que pueden no ser aplicables a la versión de la base de datos que se está evaluando.
  • VERDE - elementos que pasaron

Dependencias

Hasta ahora, DbDat ha sido probado en Debian Linux, CentOS Linux y Windows 7 con Python 2.7

Soporte MySQL

Ejecute: pip install MySQL-python

O en Debian, ejecute: apt-get install python-mysqldb

Soporte PostgreSQL

Ejecute: pip install psycopg2

Soporte Oracle

Ejecute: pip install cx_Oracle

  • https://cx-oracle.readthedocs.org/en/latest/index.html

Nota: necesitará instalar las bibliotecas cliente de Oracle para que esto funcione.

Soporte MS SQL

Ejecute: pip install pymssql

  • https://pymssql.readthedocs.org/en/latest/index.html
Soporte Sybase
  • pendiente
Soporte DB2

Ejecute: pip install ibm_db o easy_install ibm_db

Nota: deberá asegurarse de que el usuario que ejecuta DbDat tenga acceso para ejecutar comandos CLP de DB2 (por ejemplo, db2 y db2level).

Soporte MongoDB

Ejecute: pip install pymongo

Para soportar archivos de configuración YAML de MongoDB, ejecute: pip install pyyaml

Soporte CouchDB

Ejecute: pip install couchdb

Desarrollo de Plugins

Carpetas de Plugins

Dentro de la carpeta de plugins hay una carpeta para cada tipo de base de datos, y cada carpeta contiene archivos de comprobación. Esta es una estructura muy simple, pero también puede explorar la carpeta de plugins para familiarizarse https://github.com/foospidy/DbDat/tree/master/plugins

Las carpetas de base de datos contendrán:

  • __init.py - El archivo init tiene una declaración de importación para cada archivo de comprobación.
  • Archivos check_ - Estos son los archivos que realizan las comprobaciones de la base de datos. El archivo y la clase definida dentro del archivo deben tener el mismo nombre.
  • helper.py - Un archivo que contiene funciones comunes. Los archivos de comprobación pueden importar helper.py para aprovechar funciones comunes.

Archivos de Comprobación

Al agregar un nuevo archivo de comprobación, se debe agregar una declaración de importación al archivo __init__.py del directorio de plugins correspondiente. El patrón de código para las comprobaciones es bastante consistente. Revise los archivos existentes para tener una idea de cómo están estructurados. Observe la diferencia entre las comprobaciones de tipo sql y configuration_file.

Archivo de Comprobación

Hay diferentes "tipos" de comprobaciones que se pueden definir. El tipo de comprobación está determinado por la variable TYPE y puede ser sql, configuration_file, nosql o clp. A continuación se presentan ejemplos de implementaciones para los diferentes escenarios de tipo de comprobación.

tipo de comprobación sql

Para comprobaciones sql, la firma del método do_check debe ser: do_check(self, *results)

Comprobación sql típica

https://github.com/foospidy/DbDat/blob/master/plugins/mysql/check_user_empty_password.py

Comprobación sql donde la variable SQL se establece en init

En este ejemplo, necesitamos la variable appuser de la clase padre que llama. El appuser debe agregarse dinámicamente a la sentencia sql, por lo que la variable self.SQL se establece en el método __init__. Además, dado que este método do_check necesita ejecutar el sql, también necesitamos el cursor DB (conexión), esto se establece en el método __init__ con self.dbcurs = parent.dbcurs.

https://github.com/foospidy/DbDat/blob/master/plugins/mysql/check_privilege_user_grants.py

tipo de comprobación configuration_file

Para comprobaciones configuration_file, la firma del método do_check debe ser: do_check(self, configuration_file)

Analizando archivos de configuración compatibles con el módulo ConfigParser de Python

https://github.com/foospidy/DbDat/blob/master/plugins/mysql/check_configuration_general_log.py

Analizando archivos de configuración que no son compatibles con el módulo ConfigParser de Python

En este ejemplo, el archivo de configuración de PostgreSQL no tiene secciones (por ejemplo, [nombre_seccion]), por lo que el módulo helper en la carpeta de PostgreSQL contiene una función que maneja esto. Consulte la función get_config_value definida en helper.py.

https://github.com/foospidy/DbDat/blob/master/plugins/postgresql/check_configuration_host_wildcards.py

Descargar herramienta