miércoles, 22 de mayo de 2002

SQLsnake: viejas vulnerabilidades, nuevo gusano

SQLsnake es un gusano que ataca los servidores Microsoft SQL
Server configurados de forma deficiente. El objetivo: obtener una
relación de los usuarios del sistema y sus contraseñas, así como
datos sobre la red y la configuración de las bases de datos.
El gusano se aprovecha de la existencia de una configuración
deficiente en muchas instalaciones de Microsoft SQL Server, donde
la cuenta de usuario "sa" no tiene asignada ninguna contraseña y
de algunos procedimientos extendidos que ofrece el servidor de
base de datos.

Los procedimientos extendidos son una característica de SQL
Server que permite acceder, desde las consultas SQL, a funciones
externas al gestor de base de datos. El producto incluye una gran
cantidad de procedimientos extendidos y es posible añadir nuevos
procedimientos personalizados.

Descripción del gusano

El gusano, que según los diferentes servicios de medición y
seguimiento de incidencias está generando una gran actividad,
intenta localizar servidores Microsoft SQL. Para ello realiza
peticiones de conexión contra el puerto 1433/tcp.

Cuando localiza un sistema con este puerto abierto, el gusano
intenta ejecutar un script de inicialización mediante el
procedimiento extendido xp_cmdshell y utilizando el usuario de
administración "sa", sin ninguna contraseña.

En caso de que sea posible la ejecución del script, el gusano
entra y en acción y realiza las siguientes funciones:

* Activa la cuenta de usuario invitado de Windows

* Se otorgan privilegios de administración a esta cuenta
(inclusión dentro de "Administrators" y "Domain Admins").

* Copia los siguientes archivos:
o system32\drivers\services.exe
o system32\sqlexec.js
o system32\clemail.exe
o system32\sqlprocess.js
o system32\sqlinstall.bat
o system32\sqldir.js
o system32\run.js
o system32\timer.dll
o system32\samdump.dll
o system32\pwdump2.exe

* Oculta estos nuevos archivos, activando el atributo "hidden".

* Desactiva la cuenta de usuario invitado de Windows.

* Elimina esta cuenta de los grupos de administración.

* Modifica la contraseña del usuario "sa" por una secuencia de
cuatro pares de letras y números aleatorios.

* Ejecuta "netdde".

* Conecta a SQL Server como "sa", utilizando la nueva contraseña.

* Copia el editor de registro (regedt32.exe) a %SystemRoot%.

* Ejecuta "ipconfig /all" y registra la salida en "send.txt"

* Añade a "send.txt" una relación de las tables de bases de datos
existentes en el sistema.

* Ejecuta pwdump2.exe para extraer las contraseñas del sistema y
las añade a "send.txt".

* Envía el archivo "send.txt" a la dirección ixltd@postone.com
(utiliza como tema "SystemData-[PW]", donde [PW] es la nueva
contraseña asignada al usuario "sa".

Una vez realizadas estas tareas, el gusano empieza la función de
localización de nuevos sistemas vulnerables:

* Utiliza el programa services.exe para localizar nuevos
servidores vulnerables. Lanza 100 threads simultáneos,
registrando los resultados en el archivo "rdata.txt", dentro de
system32.

* Extrae del archivo "rdata.txt" las direcciones IP que tienen el
puerto 1433 abierto.

* Envía el código del gusano a todas estas direcciones IP.

* Realiza una pausa de un minuto.

* Borra el archivo "rdata.txt" y los archivos donde registra el
resultado de la ejecución del gusano.

El gusano también establece una serie de claves del registro para
asegurar su ejecución cada vez que se inicia Windows:

* HKLM\System\CurrentControlSet\Services\NetDDE\ImagePath
"%COMSPEC% /c Stara netdde && sqlprocess INIT",

* HKLM\System\CurrentControlSet\Services\NetDDE\Start
"2"

También se establece otra clave del registro para asegurar la
conectividad SQL:

* HKLM\software\Microsoft\mssqlserver\client\connectto\dsquery
"dbmssocn"

Desinfección

Si el gusano ha conseguido entrar en un sistema, los pasos a
seguir son:

1. Borrar los archivos listados anteriormente como parte del gusano.
2. Cambiar la contraseña del usuario "sa".
3. Cambiar las contraseñas de los usuarios del sistema.

Otros productos vulnerables

SQL Server forma parte de otros productos de Microsoft que pueden
ser igualmente infectados por el gusano:

* Microsoft Access 2000 (no se instala por defecto, pero es
posible instalarlo de forma opcional. En caso de instalación, el
usuario "sa" no tiene asignada ninguna contraseña).
* Microsoft Visio Enterprise Network Tools
* Microsoft Project Central
* Microsoft Visual Studio 6



Xavier Caballé
xavi@hispasec.com


Más información:

SQLsnake code análisis

http://www.incidents.org/diary/diary.php?id=157

MSSQL Worm (SQLsnake) on the rise
http://www.incidents.org/diary/diary.php?id=156

Microsoft SQL Spida Worm Propagation
http://www.iss.net/security_center/alerts/advise118.php

Una al día (21-05-02): Nuevo gusano SQLsnake ataca servidores SQL Server
http://www.hispasec.com/unaaldia.asp?id=1304

Avís: SQLsnake, un cuc que ataca a SQL Server
http://www.quands.info/alertes/html/sqlsnake.html

SQLSecurity
http://www.sqlsecurity.com/