viernes, 26 de agosto de 2016

Quiero que mi malware viva en entornos Windows para siempre

Como se sabe, el malware casi siempre intenta hacerse persistente en el sistema infectado para continuar actuando aunque dicho sistema sea reiniciado.

NOTA: Dentro del proceso de arranque de un sistema Windows, existen diversas fases, cada una de las cuales utilizan distintas claves del registro de Windows para su funcionamiento.

Algunas de las claves del registro de Windows que suelen ser usadas por el malware para realizar lo anteriormente comentado, son:

1.- Claves de registro Run/RunOnce.

A nivel de usuario, tenemos:

HKCU \Software\Microsoft\Windows\CurrentVersion\Run
HKCU \Software\Microsoft\Windows\CurrentVersion\RunOnce


A nivel de sistema, tenemos:

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
HKLM \SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce
HKLM \ SOFTWARE \Microsoft\Windows\CurrentVersion\Policies\Explorer\Run




2.- Claves de registro utilizadas por el proceso: Smss

Antes de que el proceso “smss.exe” lance el subsistema de Windows, llamara al subsistema de configuración que cargará el contenido presente en las claves:

HKLM\SYSTEM\CurrentControlSet\Control\hivelist
HKLM \SYSTEM\ControlSet002\Control\Session Manager\BootExecute















NOTA: Esta última clave de registros debería de contener el valor: “autocheck autochk*”. Si tuviera cualquier otro valor, hay una alta probabilidad de que nos encontremos ante la ejecución de un malware.

3.- Claves de registro utilizadas por el proceso: WinLogon

Clave de registro: Userinit

El proceso “Winlogon.exe” usa un valor especifico en la clave: "Userinit", para lanzar los scripts utilizados en el proceso de login del sistema.

Esta clave está localizada en:

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon













NOTA: Normalmente, la clave “Userinit” contiene el valor: “userinit.exe”. Cualquier otro valor será ejecutado por el proceso: "Winlogon.exe"

Notify

Desde que el proceso "Winlogon.exe" gestiona las SAS (Secure Attention Sequence), las subclaves de registro que se almacenan en la clave de registro:

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Notify

,se utilizan para notificar a los controladores de eventos las notificaciones que gestiona SAS. Para lo cual se utilizan las DLLs.

Estas DLL se ponen en marcha cada vez que se produce un evento SAS .















Explorer.exe

La Shell que utiliza nuestro sistema Windows, y que debe apuntar a: "explorer.exe" (Interface de Windows), se encuentra localizada en la clave:

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell














La clave de registro que almacena la ubicación donde se encuentra la clave de registro que indicará la Shell de Windows se ubica en:

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\IniFileMapping\system.ini\boot












Startup Keys

Un lugar habitual que se utiliza para ganar persistencia es la carpeta: “Inicio” de cada usuario.

El proceso de arranque del sistema revisará las siguientes claves del registro para saber la ubicación de dicha carpeta dentro del sistema.

Las sub-claves se almacenan en:

HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders












Services

Cuando un servicio de Windows falla, este puede realizar diversas acciones, todo depende de la como se haya configurado el servicio.

Entre las acciones a configurar se encuentra una muy interesante, la de ejecutar un programa.


La clave de registro:

HKLM\SYSTEM\CurrentControlSet\services.

















Algunas otras claves que son utilizadas para ejecutar servicios en background son:

HKLM\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
HKLM\Software\Microsoft\Windows\CurrentVersion\RunServices

Browser Helper Objects(BHO)

Basicamente hablamos de las librerías que se cargan cuando Internet Explorer se empieza a ejecutar.

NOTA: Varios tipos de malware afectan al BHO

La clave del registro afectada es:

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects

, esta clave contiene varias subclaves que son las que indicarán que librerías debe ejecutar Internet Explorer.

















AppInit_DLLs

La clave del registro:

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\AppInit_DLLs

Mostrará las librerías que son cargadas por la librería: “User32.dll”, por lo que es un buen lugar para insertar ;-).


















File Association keys

Las claves del registro:

HKLM\Software\Classes\
HKEY_CLASSES_ROOT\

Contienen varias claves que son usadas para especificar una acción cuando un determinado tipo de fichero se abre, es decir, se definen los programas que se utilizarán para abrir determinados tipos de archivos por defecto.

Un ejemplo: la apertura por defecto de un archivo con extension: “txt”.

 HKEY_CLASSES_ROOT\textfile\shell\open\command












Conclusiones

¿Qué se puede hacer con estás claves del registro de Windows?

Desde mi punto de vista, se pueden configurar al sistema de seguridad, vease un HIDS, que nos permita bloquear y/o informar de los procesos que quieran modificar/crear/eliminar cualquiera de las claves comentadas, ya que ello puede significar que podemos estar ante un proceso de infección del cuál no somos conscientes.

NOTA IMPORTANTE: Estas no son las únicas claves de registro que pueden ser utilizas, ni son los únicos medios de conseguir la ansiada persistencia.