Análisis de malware
Mecanismos comunes de persistencia del malware
junio 13, por Ninja de seguridad
Como sabemos, el malware se vuelve más sigiloso al lograr de alguna manera persistencia en la máquina explotada. Esto ayuda a los autores de malware a inyectar/explotar una vez, y el malware continuará actuando incluso después de reiniciar/reiniciar/cerrar sesión, etc. En este artículo, nos centraremos solo en Windows, ya que tiene muchas áreas como puntos de extensión de inicio automático. (ASEP) a través del cual se puede lograr la persistencia. Este artículo contendrá las formas comunes de lograrlo y de ninguna manera es una lista exhaustiva para lograr persistencia en una máquina con Windows.
¡Conviértete en un ingeniero inverso certificado!
Obtenga capacitación práctica en vivo sobre análisis de malware desde cualquier lugar y conviértase en un analista certificado de ingeniería inversa. Comienza a aprender
Formas comunes de lograr la persistencia utilizadas por el malware
Modificar claves de registro
El malware suele utilizar la modificación de las claves de registro para lograr persistencia en un sistema. A continuación se muestran algunos de los valores/ubicaciones de registro más comunes explotados por malware.
Teclas Ejecutar/Ejecutar una vez
Como dije anteriormente, Windows tiene muchos puntos de extensión de inicio automático (ASEP). Cuando se trata de malware, a la mayoría de ellos les gustaría lograr persistencia editando las siguientes claves de registro:
- HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRun
- HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRunOnce
Las claves enumeradas anteriormente están a nivel de usuario y, a menudo, el análisis de malware las utiliza para lograr persistencia si no se pueden aprovechar los privilegios de nivel de administrador/sistema.
De lo contrario, el malware infecta estas claves a nivel del sistema.
- HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun
- HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRunOnce
- HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionPoliciesExplorerRun
Tecla BootExecute
Dado que smss.exe se inicia antes de que se cargue el subsistema de Windows, llama al subsistema de configuración para cargar la colmena presente en HKLMSYSTEMCurrentControlSetControlhivelist. Además, smss.exe iniciará cualquier cosa presente en la clave BootExecute en HKEY_LOCAL_MACHINESYSTEMControlSet002ControlSession Manager. Siempre debe tener el valor de autocheck autochk*. Si contiene más valores, es probable que el malware se inicie durante el arranque.
Claves utilizadas por el proceso WinLogon
- Clave de inicio de usuario
El proceso Winlogon utiliza el valor especificado en la clave Userinit para iniciar scripts de inicio de sesión, etc. Esta clave se encuentra en HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWinlogon. Por lo general, la clave userinit apunta a userinit.exe, pero si esta clave se puede modificar, Winlogon también iniciará ese exe.
- Notificar
Dado que Winlogon maneja la secuencia de atención segura (SAS) (Ctrl+Alt+Supr), las subclaves de notificación que se encuentran en HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWinlogonNotify se utilizan para notificar los controladores de eventos cuando ocurre SAS y carga una DLL. Esta DLL se puede editar para que se inicie cada vez que se produzca dicho evento SAS.
- explorador.exe
Señalada por la clave ubicada en HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWinlogonShell, esta clave apunta a explorer.exe (interfaz de Windows) y solo debe ser la cadena explorer.exe en lugar de la ruta completa, ya que se supone que se inicia desde Windows. La clave de inicio en HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionIniFileMappingsystem.iniboot apunta a la ubicación en Winlogon únicamente.
Teclas de inicio
Los autores de malware suelen utilizar la colocación de un archivo malicioso en el directorio de inicio. Cualquier acceso directo creado a la ubicación señalada por la subclave Inicio iniciará el servicio durante el inicio de sesión/reinicio. La ubicación de inicio se especifica tanto en la máquina local como en el usuario actual.
- HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerCarpetas de Shell de usuario
- HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerShell Carpetas
- HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionExplorerShell Carpetas
- HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionExplorerCarpetas de Shell de usuario
Servicios
- Se requiere que muchos servicios de Windows se ejecuten en el arranque, como los servicios de estación de trabajo/servidor, el registro de eventos de Windows y otros controladores de Win. Estos se encuentran en HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservices.
- Además de colocar un archivo malicioso en la clave de registro mencionada anteriormente, existe otra forma de cargar archivos maliciosos. Se pueden cargar archivos maliciosos si un servicio no se inicia. Por ejemplo, la siguiente captura de pantalla muestra cómo se puede utilizar la falla de RDP para ejecutar un programa.
- Hay algunas otras claves que se utilizan para iniciar servicios en segundo plano, como el servicio de registro remoto. Estos se encuentran ubicados en:
- HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRunServicesOnce
- HKEY_LOCAL_MACHINESoftwareMicrosoftWindowsCurrentVersionRunServices
Objetos auxiliares del navegador (BHO)
- Es esencialmente un módulo DLL que se carga cuando se inicia Internet Explorer. Varios tipos de malware de robo de datos afectan a BHO. Están ubicados en HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionExplorerBrowser Helper Objects. Hay varias subclaves en BHO que le indican al navegador que cargue qué DLL.
AppInit_DLL
- La clave ubicada en HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWindowsAppInit_DLLs mostrará las DLL cargadas por User32.dll. Como la mayoría de los ejecutables cargan User32.dll, este es un buen lugar para que residan las DLL maliciosas.
Claves de asociación de archivos
- Ubicado en HKEY_LOCAL_MACHINESoftwareClasses y HKEY_CLASSES_ROOT; Hay varias claves que se utilizan para especificar la acción cuando se abre un determinado tipo de archivos. Por ejemplo, a continuación se muestra el valor del comando cuando se abre un archivo txt en mi sistema HKEY_CLASSES_ROOTtextfileshellopencommand
Secuestro de orden de búsqueda de DLL
Otro método común utilizado por el malware es secuestrar un concepto sobre cómo el sistema operativo carga archivos DLL. Cada vez que se carga un exe (incluso explorer.exe), sigue una búsqueda de ruta determinada para cargar las DLL necesarias. Debido a que las DLL se cargan en el orden en que se analizan los directorios, es posible agregar una DLL maliciosa con el mismo nombre en un directorio anterior al directorio donde reside la DLL legítima. Si el modo de búsqueda segura de DLL está habilitado (que es el predeterminado en la mayoría de las versiones), el sistema operativo verificará si la DLL ya está cargada en la memoria o si es parte de la clave de registro de DLL conocidas ubicada en HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerKnownDLLs. Si el sistema operativo no puede encontrar la DLL en ninguno de estos, entonces la búsqueda de DLL comienza en el siguiente orden
- El directorio desde donde se lanzó la aplicación.
- Directorio del sistema (C:WindowsSystem32)
- Directorio de Windows
- Directorio de trabajo actual
- Los directorios se definen en la variable PATH.
Por lo tanto, el malware puede colocar fácilmente una DLL maliciosa en el orden de búsqueda. Se pueden encontrar más detalles sobre esto aquí.
Secuestro de atajos
Otra técnica simple pero muy efectiva es secuestrar el atributo Target de los íconos de acceso directo. Junto con el inicio de una aplicación normal, se puede forzar el ícono de acceso directo a descargar contenido de un sitio maligno.
Tenga en cuenta que existen varios otros métodos, como infectar MBR, secuestrar objetos COM, etc., que también son realizados por malware, pero a continuación se detallan algunos de los métodos comunes utilizados por el malware para lograr persistencia.