Los procedimientos almacenados son un conjunto de sentencias SQL preescritas almacenadas en SQLServer, entre las cuales los procedimientos almacenados extendidos más peligrosos son xp_cmdshell, que pueden ejecutar cualquier instrucción del sistema operativo, y SA es la cuenta de administrador de Microsoft SQLServer, con los mayores privilegios, puede ejecutar procedimientos almacenados extendidos y obtener valores de retorno, como la ejecución:
Maestro ejecutivo... xp_cmdshell 'test de usuario neta 1234 /add' y maestro ejecutivo: xp_cmdshell 'net localgroup administrators test /add'
De este modo, se añaden un usuario llamado test, contraseña 1234 y privilegios de administrador al sistema de la otra parte, como se muestra en la Figura 1.
Ahora deberías entender por qué obtienes la contraseña de SA y los mayores privilegios del sistema. A menudo muchos administradores de red no conocen esta situación y tienen algunas contraseñas sencillas como 1234 y 4321 para sus usuarios de SA, o incluso no establecen contraseñas en absoluto, de modo que los intrusos de red puedan escanear fácilmente la contraseña de SA con algunas herramientas de hackeo y luego controlar el ordenador.
Además de xp_cmdshell, también existen procedimientos almacenados que pueden ser explotados por intrusos:
1. xp_regread (este procedimiento almacenado extendido puede leer el valor especificado en la clave especificada en el registro), cómo usarlo (obtener el nombre de la máquina):
DECLARAR@testvarchar (50) director ejecutivo... xp_regread @rootkey='HKEY_LOCAL_MACHINE', @key='system\controlset001\control\nombredeordenador\nombrecomputadora', @value_name='nombreordenador', @value=@test SELECCIÓN DE SALIDA @test
2. xp_regwrite (este procedimiento almacenado extendido puede escribir el valor especificado en la clave especificada en el registro), y cómo usarlo (escribir bbb en la clave HKEY_LOCAL_MACHINE\SOFTWARE\aaa\aaaValue):
Maestro ejecutivo... xp_regwrite @rootkey='HKEY_LOCAL_MACHINE', @key='SOFTWARE\aaa', @value_name='aaaValue', @type='REG_SZ', @value='bbb'
Si el usuario administrador del ordenador comprometido puede navegar por la información HKEY_LOCAL_MACHINE\SAM\SAM\ en el registro, entonces los dos procedimientos almacenados de xp_regread y xp_regwrite pueden usarse para clonar al usuario administrador y obtener privilegios de administrador. xp_regdeletekey. xp_regdeletevalue también traerá riesgos de seguridad al sistema. 3. Una serie de procedimientos de almacenamiento relacionados con OLE, esta serie de procedimientos de almacenamiento tienen sp_OACreate, sp_OADestroy, sp_OAGetErrorInfo, sp_OAGetProperty, sp_OAMethod, sp_OASetProperty, sp_OAStop, uso:
DECLARE @shell INT EXEC SP_OACREATE 'wscript.shell',@shell OUTPUT EXEC SP_OAMETHOD @shell,'run',null, 'c:\WINNT\system32\cmd.exe /c net user test 1234 /add'--
De este modo, el otro sistema añade un usuario llamado test y un usuario con contraseña 1234, y luego ejecuta:
DECLARE @shell INT EXEC SP_OACREATE 'wscript.shell',@shell OUTPUT EXEC SP_OAMETHOD @shell,'run',null, 'c:\WINNT\system32\cmd.exe /c net localgroup administrators test /add '--
Prueba de usuario, añadida al grupo de Administradores. Solución: Proporcionar a SA una contraseña lo suficientemente compleja como para dificultar que los ciberatacantes la descifren. Por seguridad, también necesitamos usar procedimientos almacenados en SQLS sp_addextendedproc sp_dropextendedproc el analizador de consultas de Erver sp_dropextendedproc eliminar procedimientos almacenados como xp_cmdshell y luego usar sp_addextendedproc recuperación cuando sea necesario. Cabe señalar que eliminar procedimientos almacenados relacionados con OLE puede hacer que algunas funciones en Enterprise Manager sean inutilizables, y el autor no recomienda eliminarlas aquí.
Ahora que sabemos cómo usar SP_OACREATE, podemos ir a \WINNT \system32 para encontrar los archivos cmd.exe, net.exe y net1.exe tres archivos, y eliminar a todos los usuarios que puedan acceder a ellos en las "Propiedades" - "Seguridad", para que no podamos usar SP_OACREATE para aumentar el número de usuarios del sistema, y podemos añadir usuarios de acceso cuando necesitemos acceder a estos archivos.
|