¿Qué deben saber los analizadores de penetración sobre las bases de datos?

2

Quiero comenzar a aprender sobre bases de datos desde la perspectiva de un evaluador de penetración y me gustaría saber qué cosas serán útiles a largo plazo.

¿También conoces algún buen libro para poner en marcha mi experiencia con bases de datos?

    
pregunta Spyros Chiotakis 01.10.2012 - 22:16
fuente

3 respuestas

3

Esta pregunta es muy amplia. En general, necesita saber cómo están configuradas todas las diferentes tecnologías y cuáles son sus puntos débiles (consulte google).

"Bases de datos" es un término amplio. Hay muchos tipos de bases de datos que utilizan diferentes idiomas:

  • LDAP (directorio activo, OpenLDAP, ...)
  • SQL (MySQL, PostgreSQL, SQL server, Oracle, ...)
  • noSQL (MongoDB, Cassandra, ...)

Al realizar un pentesting, puede concentrarse en el servicio proporcionado por la propia base de datos:

  • autenticación
  • conexiones concurrentes

    o puede intentar llegar a la base de datos a través de un programa que se conecta a ella (por ejemplo, inyección LDAP / SQL).

Los medios también pueden ser diferentes: es posible que desee volcar el contenido de la base de datos o intente hacer que la base de datos emita un comando (si se ejecuta como SISTEMA / raíz, puede obtener acceso al servidor subyacente a la etapa) más ataques).

Hay toneladas de libros diferentes en bases de datos. En general, siempre miro todo lo que O'Reilly tiene para ofrecer. Tienen un proceso de revisión y admisión bastante riguroso. Sugiero comenzar con SQL y LDAP, ya que los verás más en forma salvaje que cualquier otro protocolo.

    
respondido por el Lucas Kauffman 01.10.2012 - 22:34
fuente
1

Dependiendo de lo que necesite, la base de datos en sí misma podría ser un buen primer paso para infiltrarse o exfiltrar el resto del sistema operativo. Aprende los comandos que te permiten acceder al sistema de archivos (por ejemplo, LOAD DATA INFILE)

El uso de datos de bases de datos puede ser muy efectivo para la enumeración de cuentas. A menudo, los nombres de las bases de datos, los nombres de los usuarios y el nombre de la tabla coinciden con los nombres de los usuarios del sistema.

Las contraseñas son mi contenido favorito de las bases de datos. Las personas tienden a reutilizar las contraseñas, por lo que puede usarlas en las cuentas de usuario del sistema, las cuentas de correo electrónico, etc. Otra cosa sobre las contraseñas en las bases de datos, generalmente se almacenan utilizando hashes pésimos, como el hash de MySQL anterior o el hash basado en DES de oracle son todos muy rápidamente craqueables.

También, puede encontrar más información sobre el sistema con SHOW VARIABLES MySQL ejemplo que le muestra rutas para varios motores de almacenamiento, plataforma en la que se está ejecutando, ya sea 32 / 64bit, la versión exacta de la base de datos, dónde se encuentran las claves o certificados criptográficos, qué otras IP son las que el demonio está escuchando. .

Entonces, por lo general, tendrá algún tipo de mecanismo de subshell, o al menos capacidad para ejecutar scripts SQL desde el sistema de archivos. Eso es más DB < - > sistema de archivos de comunicación, que puede ser útil.

    
respondido por el Marcin 24.01.2013 - 15:45
fuente
1

Me gustaría decirle que, aparte de lo anterior, también aprenda inyección SQL. La inyección de SQL es principalmente para desarrolladores, pero es bueno saber que ya está pensando como un probador de penetración.

    
respondido por el sujeesh 25.01.2013 - 06:10
fuente

Lea otras preguntas en las etiquetas