Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
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
DB_Audit_Research — Auditorías Autoderrotantes: laboratorio reproducible que muestra un rol de PostgreSQL con bajos privilegios cegando reversiblemente a un auditor basado en disparadores + envenenando la atribución (PG14/16), con defensas. Datos sintéticos; se citan primitivas de CVE-2018-1058. | Kitploit
Herramientas/GitHubGitHub/mthamil107/db_audit_research
Herramientas DefensivasExplotaciónPapers e InvestigaciónMala ConfiguraciónSeguridad de Bases de DatosAtaque AdversarioLabs y Práctica
GitHubmthamil107/db_audit_research

DB_Audit_Research

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 →

Auditorías Autoderrotantes: laboratorio reproducible que muestra un rol de PostgreSQL con bajos privilegios cegando reversiblemente a un auditor basado en disparadores + envenenando la atribución (PG14/16), con defensas. Datos sintéticos; se citan primitivas de CVE-2018-1058.

Ver Repositorio
6hace 19 díasAún no revisado
Compartir

Auditorías autodestructivas — laboratorio reproducible

DOI  Licencia: MIT (código) / CC BY 4.0 (documentación)

Investigación de seguridad defensiva que comprueba si un rol de base de datos de bajos privilegios y solo inyección puede cegar reversiblemente a un auditor basado en disparadores y envenenar la atribución en PostgreSQL estándar — y qué defensas lo detienen realmente. Todo se ejecuta en contenedores Docker locales desechables con datos totalmente sintéticos (IPs de documentación RFC 5737, identidades inventadas). No se involucran sistemas, credenciales ni datos reales.

Consulta el informe del laboratorio en self-defeating-audits-lab.md.

Qué hace

Construye la víctima de "disparador de auditoría" del wiki de PostgreSQL, ampliamente copiada, y luego recorre una matriz de viabilidad celda por celda en PostgreSQL 14 y 16, midiendo — fuera de banda — si cada vector de ataque realmente impide que una escritura sea auditada, si es reversible sin residuos, y qué defensas lo neutralizan.

Ejecutarlo

root@kitploit:~
cd scripts ./00_up.sh 16 # bring up postgres:16-alpine on localhost:55432 ./run_matrix.sh 16 # run every matrix cell + defenses -> ../results/RESULTS_pg16.md docker rm -f sda_pg16 # free the port between versions ./00_up.sh 14 ./run_matrix.sh 14 # -> ../results/RESULTS_pg14.md ./teardown.sh # remove all lab containers

Requiere Docker. Utiliza las imágenes -alpine (motor funcionalmente idéntico).

Multi-motor (familia MySQL + SQL Server)

El estudio se reproduce en dos familias de motores más. Familia MySQL (MariaDB, modelo de disparador DEFINER) en scripts/mysql/:

root@kitploit:~
cd scripts/mysql
./00_up.sh 10.11 && ./run_matrix_mysql.sh 10.11   # -> results/RESULTS_mariadb_10.11.md
docker rm -f sda_maria_10_11 && ./00_up.sh 10.6 && ./run_matrix_mysql.sh 10.6

SQL Server (modelo de encadenamiento de propiedad) en scripts/mssql/ — se ejecuta en una instancia LocalDB local mediante sqlcmd del host (sin Docker; el atacante de bajos privilegios se modela con suplantación EXECUTE AS USER):

root@kitploit:~
cd scripts/mssql
./run_matrix_mssql.sh        # -> results/RESULTS_mssql.md ; then ./teardown.sh

Advertencia de reproducibilidad (SQL Server). A diferencia de los motores Docker, el tercer motor, SQL Server, tiene una dependencia del host: se ejecuta en una instancia local de SQL Server LocalDB mediante sqlcmd (ruta fijada en run_matrix_mssql.sh), por lo que solo funciona en Windows y no puede fijarse a un digest de imagen. El atacante de bajos privilegios se modela con suplantación EXECUTE AS USER (LocalDB solo admite autenticación de Windows). Los hallazgos sobre el comportamiento del motor (DISABLE sin residuos; el guard de DDL no detecta DISABLE) son independientes del tipo de sesión y se mantendrían para un login real; los hallazgos sobre concesiones de objetos se aplican fielmente mediante la suplantación. Es el menos portable de los tres motores — se señala con honestidad.

Resultado principal entre motores: la clase de sombra search_path (1A/1B) no se traslada ni a MySQL ni a SQL Server (no existe search_path), pero la sustitución de disparadores, la evasión latente y el envenenamiento de atribución sí se trasladan. El enlace de privilegios DEFINER de MySQL hace que el cegado sea más detectable; SQL Server, como PostgreSQL, permite una restauración perfecta byte a byte y añade una primitiva DISABLE TRIGGER sin residuos que su propia defensa DDL no detecta. Comparación completa de los tres motores en FINDINGS.md.

Estructura

RutaDescripción
scripts/00_up.shcontenedor desechable fijado a una versión (PostgreSQL)
scripts/mysql/víctima, ataques, defensas y orquestador de la familia MySQL (MariaDB)
scripts/mssql/víctima, ataques, defensas y orquestador de SQL Server (LocalDB)
results/RESULTS_mariadb_*.mdmatrices de viabilidad y defensa de la familia MySQL
results/RESULTS_mssql.mdmatriz de viabilidad y defensa de SQL Server
scripts/10_victim.sqlla víctima de auditoría con patrón de wiki (disparador SECURITY DEFINER); parámetros: pub_create, pin_path, app_owns
scripts/20_attacks.sqltodos los vectores de ataque (1A/1B/1C, estado latente GUC, envenenamiento de atribución), un guard \if por celda
scripts/30_defenses.sqlguard de disparador de eventos DDL + sumidero de solo adición encadenado por hash
scripts/40_snapshot.sqlinstantánea de catálogo para el diff de objetos RQ2
scripts/run_matrix.shorquestador: construye cada celda, mide, escribe results/RESULTS_pg<VER>.md
scripts/teardown.shelimina contenedores
results/RESULTS_pg14.md, results/RESULTS_pg16.mdmatrices de viabilidad y defensa completadas por versión
results/_evidence_pg*.log, results/_snap_1C_*.txtevidencia bruta de comandos/salidas
FINDINGS.mdveredicto RQ1–RQ5 en lenguaje sencillo, matriz defensa×ataque, posicionamiento de novedad, resumen

Resultado principal

  • 1A plantar una sombra en un esquema nuevo — falla en la configuración (un rol recién creado no puede ejecutar CREATE SCHEMA), no porque "pg_catalog gana". Plantar en public, que ya es escribible, sí genera sombra: 1S (misma firma, orden de esquemas) y 1T (la sobrecarga exacta vence a la función integrada incluso con pg_catalog primero — aísla la especificidad de tipo) ambas ciegan (payload anulado).
  • 1B sobrecarga exacta de tipo compuesto de row_to_json — ciega al auditor cuando public es escribible y el search_path del disparador no está fijado. Alcanzable en PostgreSQL estándar ≤14; en 15+ requiere una mala configuración. Fijar search_path lo neutraliza en todos los casos.
  • 1C reemplazar una función de auditoría propiedad de la aplicación — ciega y es reversible con un diff de objetos limpio (reproducción verbatim de la fuente) — pero un canario de escritura-vs-auditoría y un disparador de eventos DDL siguen detectándolo.
  • El estado latente controlado por GUC y el envenenamiento de atribución dentro de la base de datos funcionan ambos bajo sus precondiciones (de mala configuración); la fila de auditoría fabricada es indistinguible considerando únicamente la tabla de auditoría.
  • El registro a nivel de motor (pgaudit/log_statement) + el sumidero encadenado por hash son las defensas que cierran el conjunto.

Postura de divulgación responsable

Reproducido en PostgreSQL estándar en un laboratorio local con datos anonimizados/sintéticos. El SQL de ataque está limitado al esquema de laboratorio construido aquí; se trata de un estudio de viabilidad/defensa, no de un payload armado. Las primitivas subyacentes ya son públicas (CVE-2018-1058; escalada de search_path en SECURITY DEFINER) — la contribución es la composición y la evaluación de defensas. No se identifica ningún sistema real.

Descargar herramienta