¿Qué se puede usar para mantener deshabilitado xp_CmdShell en SQL Server?

4

Es un hecho bien conocido que cualquier persona con "SA" privs puede activar xp_CmdShell y usarlo, y eso incluye a los posibles atacantes que pueden obtener acceso a SQL Server como un inicio de sesión que tiene "SA" privs. Existen algunas prácticas recomendadas muy buenas para ayudar a evitar que un atacante "ingrese como 'SA'", incluida la desactivación del inicio de sesión "SA", pero eso no impide que un atacante ingrese como DBA que pueda tener privilegios de "SA". utilizando cualquiera de una docena de métodos automatizados para descifrar contraseñas.

En mi estudio sobre el tema, encontré un artículo en la siguiente URL enlace donde encontré la siguiente cita:

  

Porque los usuarios maliciosos a veces intentan elevar sus privilegios   Al usar xp_cmdshell, xp_cmdshell está deshabilitado de forma predeterminada. Utilizar   sp_configure o Policy Based Management para habilitarlo.

Eso es realmente una recomendación bastante inútil en lo que a mí respecta. Como los usuarios malintencionados no pueden usar xp_CmdShell a menos que tengan privilegios "SA" (o Servidor de control), intentarán ingresar como alguien con privilegios "SA". Si tienen éxito, no hay NADA de lo que yo sepa en SQL Server que les impida activar xp_CmdShell y usarlo para lo que sea que necesiten. Por supuesto, puede limitar el daño limitando los privilegios de los inicios de sesión para el Servicio de SQL Server y el Agente SQL, pero todavía pueden alterar mucho su servidor utilizando xp_CmdShell.

Por lo tanto, lo mejor sería hacer que los inicios de sesión con privilegios "SA" no puedan habilitar xp_CmdShell. La parte útil de la cita anterior es que puede usar "Administración basada en políticas para habilitarla", lo que implica que también puede usar PBM para deshabilitarla.

Con ese pensamiento en mente, ¿hay una manera de usar Windows o cualquier cosa dentro de SQL Server para que las personas con privilegios "SA" no puedan habilitar xp_CmdShell? Mi pensamiento inicial es "NO", pero definitivamente no soy un gurú de la seguridad de Windows de ninguna manera y ni siquiera estoy seguro de qué debo buscar para responder a esta pregunta.

Y, para ser honesto, no me importa de qué manera salga ... Solo necesito una respuesta definitiva de una forma u otra.

Gracias por la ayuda, amigos. Realmente lo aprecio.

    
pregunta Jeff Moden 17.05.2013 - 03:47
fuente

1 respuesta

2

Bueno, se supone que si un hacker tiene poderes de administrador, entonces se acabó el juego. Es lo mismo para el sistema operativo. Tan pronto como un hacker obtiene acceso a la raíz, normalmente puede hacer todo.

Lo que solía ser posible hacer (al menos MSSQL 2000) era abandonar este procedimiento de almacenamiento con un comando:

exec sp_dropextendedproc 'xp_cmdshell'

y volver a agregar el procedimiento almacenado xp_cmdshell con un comando:

exec sp_addextendedproc 'xp_cmdshell', 'xplog70.dll'

Puede consultar este artículo para obtener más detalles enlace

    
respondido por el VP. 21.05.2013 - 10:50
fuente

Lea otras preguntas en las etiquetas