Developer's Diary

15 junio, 2013

Problemas de seguridad con el CLR de SqlServer

Filed under: .net, ASP.Net, BBDD, Programación, Seguridad — Etiquetas: , , , , , — jnavero @ 4:35 PM

En los post anteriores veíamos como crear procedimientos almacenados además de ver un procedimiento almacenado un poco mas complejo.

Como comenté en el segundo post, esto también tiene un problema de fondo que tras hacer diferentes pruebas corroboré lo que me temía. Con lo que debéis tener muy en cuenta antes de utilizar esto.

La práctica…

Para este experimento, he usado una maquina virtual con SqlServer instalada a la que le he dado permisos para ejecutar procedimientos almacenados con el CLR, además he habilitado la conectividad para poder acceder a ella desde otro ordenador (en mi caso mi maquina host).

Mi procedimiento almacenado es el siguiente:

_
Public Shared Sub ejecuta()
Try
Dim s As String = "c:windowssystem32calc.exe"
Dim p As New Process()
p.StartInfo.FileName = s
p.Start()
SqlContext.Pipe.Send("Main Ok")
Catch ex As Exception
SqlContext.Pipe.Send("Error: " + ex.Message)
End Try
End Sub

Implementamos este procedimiento almacenado y lo ejecutamos. Como vemos un simple código que ejecuta la calculadora de Windows.
Una vez ejecutado, aparece el cartel de Main Ok. Si miramos los procesos de nuestro ordenador donde estamos ejecutando el Management Studio ni rastro de la calculadora.
Si miramos el servidor la calculadora tampoco ha arrancado ahora bien, si miramos los procesos y le damos a ver todos los procesos, tenemos esto:

proceso

Si, veis bien!! la calculadora de Windows como un servicio de red…

Reflexión de todo esto:
No se me ocurre una forma segura de utilizar esto en un servidor teniendo en cuenta que con esta funcionalidad podemos hacer prácticamente lo que queramos. Desde mi punto de vista, se puede hacer un procedimiento almacenado para subir un troyano, que posteriormente se almacene en alguna ruta del servidor y después ejecutar el proceso.

Anuncios

Dejar un comentario »

Aún no hay comentarios.

RSS feed for comments on this post. TrackBack URI

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: