Abuso de procedimientos almacenados
¿Qué es Abuso de procedimientos almacenados?
Abuso de procedimientos almacenadosExplotacion de procedimientos almacenados privilegiados o inseguros para ejecutar SQL arbitrario, comandos del sistema operativo o escalar privilegios desde la base de datos.
Los procedimientos almacenados encapsulan SQL en el servidor de base de datos y suelen ejecutarse con derechos elevados. El abuso ocurre cuando un atacante invoca primitivas peligrosas (xp_cmdshell, OPENROWSET, sp_OACreate en MS SQL; UTL_FILE, DBMS_SCHEDULER en Oracle; COPY ... PROGRAM en PostgreSQL) o cuando procedimientos propios concatenan parametros en EXEC/sp_executesql sin enlazarlos, reintroduciendo inyeccion SQL dentro de codigo confiado. Resultados: ejecucion de comandos como la cuenta del servicio, movimiento lateral via servidores enlazados, exfiltracion mediante escritura de ficheros y bypass del control de acceso de la aplicacion. Endurecimiento: deshabilitar procedimientos peligrosos, minimo privilegio, sp_executesql con parametros tipados y restringir EXECUTE.
● Ejemplos
- 01
Tras una inyeccion en MS SQL, usar xp_cmdshell para ejecutar whoami como la cuenta del servicio.
- 02
Aprovechar COPY ... PROGRAM en PostgreSQL desde un procedimiento para abrir un reverse shell.
● Preguntas frecuentes
¿Qué es Abuso de procedimientos almacenados?
Explotacion de procedimientos almacenados privilegiados o inseguros para ejecutar SQL arbitrario, comandos del sistema operativo o escalar privilegios desde la base de datos. Pertenece a la categoría de Ataques y amenazas en ciberseguridad.
¿Qué significa Abuso de procedimientos almacenados?
Explotacion de procedimientos almacenados privilegiados o inseguros para ejecutar SQL arbitrario, comandos del sistema operativo o escalar privilegios desde la base de datos.
¿Cómo funciona Abuso de procedimientos almacenados?
Los procedimientos almacenados encapsulan SQL en el servidor de base de datos y suelen ejecutarse con derechos elevados. El abuso ocurre cuando un atacante invoca primitivas peligrosas (xp_cmdshell, OPENROWSET, sp_OACreate en MS SQL; UTL_FILE, DBMS_SCHEDULER en Oracle; COPY ... PROGRAM en PostgreSQL) o cuando procedimientos propios concatenan parametros en EXEC/sp_executesql sin enlazarlos, reintroduciendo inyeccion SQL dentro de codigo confiado. Resultados: ejecucion de comandos como la cuenta del servicio, movimiento lateral via servidores enlazados, exfiltracion mediante escritura de ficheros y bypass del control de acceso de la aplicacion. Endurecimiento: deshabilitar procedimientos peligrosos, minimo privilegio, sp_executesql con parametros tipados y restringir EXECUTE.
¿Cómo defenderse de Abuso de procedimientos almacenados?
Las defensas contra Abuso de procedimientos almacenados combinan habitualmente controles técnicos y prácticas operativas, como se detalla en la definición.
¿Cuáles son otros nombres para Abuso de procedimientos almacenados?
Nombres alternativos comunes: Abuso de xp_cmdshell.
● Términos relacionados
- attacks№ 1084
Inyección SQL
Ataque de inyección de código que incrusta SQL controlado por el atacante en una consulta a la base de datos para leer, modificar o destruir datos.
- attacks№ 767
Inyeccion en ORM
Inyeccion contra aplicaciones que usan un ORM, abusando de consultas dinamicas, asignacion masiva o salidas a SQL crudo para manipular el acceso a datos.
- vulnerabilities№ 860
Escalada de privilegios
Clase de vulnerabilidades que permite al atacante obtener permisos superiores a los concedidos inicialmente, por ejemplo pasar de usuario normal a administrador.