SQLsnake és un cuc que ataca als servidors Microsoft SQL Servers configurats d'una forma deficient. L'objectiu: obtenir una relació dels usuaris del sistema i les seves contrasenyes, així com les dades sobre la xarxa i la configuració de les bases de dades.
El cuc s'aprofita de l'existència d'una configuració deficient en moltes instal·lacions de Microsoft SQL Server, on el compte d'usuari "sa" no té assignada cap contrasenya i de l'existència d'alguns procediments extesos que ofereix el servidor de base de dades.
Els procediments extesos són una característica de SQL Server que permet accedir, des de les consultes SQL, a funcions externes del gestor de base de dades. El producte inclou una gran quantitat de procediments extesos i és possible afegir-ne nous procediments personalitzats.
Descripció del cuc
El cuc, que segons els diferents serveis de medició i seguiment d'incidències està generant una gran activitat, intenta localitzar servidors Microsoft SQL. Per a fer-ho, realitza peticions de connexió contra el port 1433/tcp.
Quan localitza un sistema amb aquest port obert, el cuc intenta executar un script d'inicialització fent servir el procediment extès xp_cmdshell i utilizant el compte d'usuari d'administració "sa", sense cap contrasenya.
En el cas de que l'execució de l'script sigui possible el cuc entra en acció i realitza les següents funcions:
- Activa el compte d'usuari convidat de Windows
- Li dona privilegis d'administrador (l'inclou dins els grups "Administrators" i "Domain Admins".
- Copia els següents fitxers:
- system32\drivers\services.exe
- system32\sqlexec.js
- system32\clemail.exe
- system32\sqlprocess.js
- system32\sqlinstall.bat
- system32\sqldir.js
- system32\run.js
- system32\timer.dll
- system32\samdump.dll
- system32\pwdump2.exe
- Oculta aquests fitxers, activant l'atribut "hidden"
- Desactiva el compte d'usuari convidat de Windows.
- Elimina aquest compte dels grups d'administració.
- Modifica la contrasenya de l'usuari “sa” per una seqüència de quatre parells de lletres i números aleatoris.
- Executa "netdde".
- Connecta a SQL Server com “sa”, fent servir la nova contrasenya.
- Copia l'editor del registre (regedt32.exe) a %SystemRoot%.
- Executa "ipconfig /all" i registra la sortida a "send.txt".
- Afegeix a “send.txt” una relació de les taules de base de dades existents al sistema.
- Executa pwdump2.exe per tal d'extreure les contrasenyes dels usuaris del sistema i les afegeix a "send.txt".
- Envia el fitxer "send.txt" a l'adreça ixltd@postone.com (fa servir com a tema "SystemData-[PW]", on "[PW]" és la nova contrasenya assignada a l'usuari "sa".
Un cop fetes aquestes accions, el cuc comença a cercar nous sistemes vulnerables:
- Fa servir el programa services.exe per tal de localitzar nous servidors vulnerables. Executa 100 threads simultanis, enregistrant els resultats al fitxer "rdata.txt", dins de system32.
- Extreu del fitxer "rdata.txt" les adreces IP que tenen el port 1433 obert.
- Envia el codi del cuc a totes aquestes adreces.
- Fa una pausa d'un minut.
- Esborra el fitxer "rdata.txt" i els fitxers on ha enregistrat el resultat de l'execució del cuc.
El cuc també activa una sèrie de claus al registre de Windows per tal de garantir la seva execució cada vegada que s'inicia Windows:
HKLM\System\CurrentControlSet\Services\NetDDE\ImagePath
"%COMSPEC% /c start netdde && sqlprocess init"
HKLM\System\CurrentControlSet\Services\NetDDE\Start
"2"
També estableix una altra clau del registre per tal d'assegurar la connectivitat SQL:
HKLM\software\Microsoft\mssqlserver\client\connectto\dsquery
"dbmssocn"
Desinfecció
Si el cuc ha aconseguit entrar dins d'un sistema, s'han de seguir aquests passos per a eliminar-lo:
- Esborrar els fitxers indicats anteriorment.
- Canviar la contrasenya de l'usuari “sa”.
- Canviar la contrasenya a tots els usuaris del sistema.
Altres productes vulnerables
SQL Server forma part d'altres productes de Microsoft que es poden veure igualment afectats pel cuc:
- Microsoft Access 2000 (no s'instal·la per defecte, però és possible instal·lar-lo opcionalment. En cas d'instal·lació, l'usuari “sa” no té assignada cap contrasenya.
- Microsoft Visio Enterprise Network Tools
- Microsoft Project Central
- Microsoft Visual Studio 6
Més informació
Anàlisi del codi de SQLsnake
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 per dia (21-05-02): Un nou cuc, SQLsnake, que ataca als servidors SQL Server
http://www.quands.cat/unaperdia/arxiu/20020521.html
Avís: SQLsnake, un cuc que ataca a SQL Server
http://www.quands.cat/alertes/html/sqlsnake.html
SQLSecurity
http://www.sqlsecurity.com/
Xavier Caballé
xcaballe@quands.com
|