ESTE SERVICIO PUEDE CONTENER TRADUCCIONES DE GOOGLE. GOOGLE NIEGA CUALQUIER RESPONSABILIDAD RELACIONADA CON LAS TRADUCCIONES, EXPRESA O IMPLÍCITA, INCLUYENDO CUALQUIER RESPONSABILIDAD ACERCA DE LA PRECISIÓN, LA CONFIABILIDAD Y CUALQUIER RESPONSABILIDAD IMPLÍCITA DE COMERCIABILIDAD, IDONEIDAD PARA UN PROPÓSITO EN PARTICULAR Y DE NO INFRACCIÓN.

Por su comodidad, se ha traducido el sitio web de Kaspersky Lab utilizando un software de traducción de Google Translate. Se hicieron unos esfuerzos razonables para proporcionar una traducción precisa; no obstante, las traducciones automáticas no son perfectas y no hay ninguna intención de sustituir el trabajo de los traductores. Se proporcionan estas traducciones como un servicio para los usuarios del sitio web de Kaspersky Lab y se han publicado tal "como es". No hay ninguna garantía, expresa o implícita, acerca de la precisión, la confiabilidad o exactitud de cualquier traducción desde el inglés a cualquier otro idioma. La traducción de algunos contenidos (imágenes, videos, Flash, etc) podrían no ser totalmente fiel debido a las limitaciones del software de traducción.

Trojan-Banker.Win9x.Libertine

Clase Trojan-Banker
Plataforma Win9x
Descripción

Detalles técnicos

Este virus es un infector polimórfico y multiplataforma que afecta a los archivos DOS y Win32. Fue nombrado después de las cadenas de texto en su código:


[Win32.Libertine v1.07b]
Copyright 1998-xxxx por
El virus se puede encontrar en tres formas diferentes:
  • archivos Win32 PE infectados
  • archivos COM de DOS infectados
  • Cuentagotas Win32 PE (código de virus puro 31672 bytes)
Debido a errores, los archivos infectados COM y EXE no pueden ejecutarse en Windows NT, se terminan con el mensaje de error NT o DrWatson estándar. A pesar de esto, le doy el nombre de Win32 al virus, no Win95 porque el cuentagotas del virus puede propagar el virus en las computadoras NT sin problemas.

Al infectar los archivos Win32 y DOS, el virus escribe su código completo de 32 Kb al final de los archivos y modifica los encabezados de los archivos para pasar el control a la rutina del virus. Las direcciones de las rutinas de entrada son diferentes en los tres casos de infección. El virus en los programas Win32 y DOS infectados toma las búsquedas de control para el cuentagotas Win32 (el archivo C: MYLENE.EXE), lo ejecuta y devuelve el control al programa host. Si no hay cuentagotas en el directorio raíz en la unidad C :, el virus primero lo crea y luego lo ejecuta.

Estas rutinas de activación del dropper son bastante cortas en los archivos infectados. En el caso de los archivos COM de DOS, solo se trata de 200 bytes, simplemente crea una rutina de escritura, cierre y ejecución. En el caso de los archivos Win32 es más sofisticado, pero también bastante tonto y corto.

Por lo tanto, el virus en los archivos infectados solo crea y ejecuta el cuentagotas, no más, y todas las funciones de virus de infección y carga útil recaen en el cuentagotas del virus Win32.

Ejecutando el cuentagotas

Cuando se ejecuta el cuentagotas, el virus primero realiza algunos trucos para ocultar su presencia en el sistema. Para evitar mensajes de sistema de infracción de acceso, el virus utilizando la función SetErrorMode KERNEL32 deshabilita el mensaje de error Error de protección general. Windows luego continuará ejecutando la aplicación sin ningún informe sobre la violación de la protección.

El virus luego verifica el sistema donde se ejecuta (Windows95 / 98 o Windows NT), y en el caso de Windows9x remueve la base de datos del proceso no documentado del sistema y establece dos indicadores: NukeProcess y ServiceProcess. Estos indicadores se establecen para al menos dos propósitos: a) el proceso no es visible en la lista de tareas Ctrl-Alt-Del; b) el proceso no finaliza cuando el usuario cierra la sesión. Para habilitar estos indicadores, el virus vuelve a ejecutar su cuentagotas con un argumento ID "sexy".

Al ejecutarse en un entorno de sistema parcheado, el virus salta a sus otras rutinas: rutina anti-virus, carga útil e infección.

Anti-antivirus

Para desactivar la protección antivirus, el virus tiene como único objetivo un antivirus, que es APVI, el inspector de integridad de AVP Inspector (escáner CRC). El virus busca el archivo AVPI, lo abre y escanea en busca de un código específico. Si se encuentra dicho código, el virus lo reemplaza con instrucciones NOP. Dependiendo de las diferentes versiones de AVPI que causaron diferentes efectos: o bien AVPI no detecta cambios en el sistema, o detiene el escaneo inmediatamente y muestra el cuadro de diálogo de estadísticas.

El virus obtiene el nombre del archivo AVPI utilizando el registro del sistema. Abre la clave HKEY_USERSDefaultSoftwareKasperskyLabAVPI, obtiene la ruta al directorio AVPI, abre el AVPICHCK.DLL, lo escanea y lo revisa. Para evitar el parche duplicado, el virus almacena el ID "kcah" ("pirateo" escrito hacia atrás) en el encabezado del archivo en el desplazamiento 0030h.

El virus también termina AVPI, si está activo. Para hacer eso, el virus encuentra la ventana AVPI32, obtiene su ID de hilo, abre y finaliza el proceso.

Infección

Cuando la rutina de infección obtiene el control, el virus escanea todos los archivos de todos los árboles subdirectorios en todos los discos duros instalados empezando por C :, si hay un disco no fijo en la secuencia (CD-ROM, remoto u otro) el virus termina por sí mismo.

Cuando se encuentra un archivo, el virus lo busca para la extensión de nombre de archivo COM o EXE. El virus infecta solo dichos archivos y busca el siguiente archivo o subdirectorio de otra manera. Si el archivo tiene una extensión ejecutable, el virus con una probabilidad de 7/8 según el temporizador del sistema salta a la rutina de infección, de lo contrario continúa la búsqueda, así como en el caso de una extensión de nombre no ejecutable.

En primer lugar, el virus separa los archivos COM y EXE al comparar sus primeros dos bytes con el sello mágico MZ. En el caso del archivo EXE, el virus comprueba los sellos de Ejecutable portátil y Identificación de virus: palabras dobles "PE" en la parte superior del encabezado e "IM". en el campo PE CheckSum. Al agregar su código al final de los archivos Portable Executable, el virus crea una nueva sección llamada _Mylene_, modifica la dirección del punto de entrada y algunos otros campos necesarios. A continuación, ejecuta el motor polimórfico, cifra su copia y la escribe al final del archivo PE en la sección recién creada.

En el caso del archivo COM, el virus también se escribe al final del archivo, pero también convierte el formato de archivo a EXE agregando el encabezado EXE al principio del archivo. El virus no infecta los archivos de DOS dos veces: verifica el formato de archivo interno y solo afecta a los archivos COM. Al estar infectados, tienen formato EXE y la rutina de infección de virus los pasa por alto. El virus no infecta los archivos que tienen el texto "ENUN" al final de los archivos. Esta identificación significa que estos archivos COM están protegidos por CRC, por lo que el virus evita infectarlos. El virus tampoco infecta archivos COM pequeños y grandes con una longitud inferior a 2K o superior a 60K.

Ejecución del archivo COM infectado

Al infectar archivos COM de DOS, el virus los convierte a formato EXE, es decir, los archivos COM infectados tienen el encabezado EXE: sello mágico MZ en la parte superior y todos los campos necesarios del encabezado EXE. La investigación cuidadosa del encabezado del archivo infectado muestra inmediatamente el origen del programa del pirata informático: varios campos tienen valores que no se pueden encontrar en los programas normales. En primer lugar, los campos HeaderSize (Párrafos en el encabezado) mantienen cero, es decir, eso significa que no hay bytes en el encabezado EXE (pero hay al menos dos, 'M' y 'Z'). El segundo campo sospechoso es "CS at entry" con valor almacenado de -100h (FFF0h). Usar ambos campos en el mismo encabezado EXE obliga a DOS a cargar dicho archivo EXE como un archivo COM estándar de DOS: los bytes desde 0000 hasta 00FFh son ocupados por el Prefijo de segmento del programa, los bytes de 0100h hasta el final de la memoria asignada son para la imagen del archivo, y el primer byte del primer archivo se coloca en el desplazamiento 0100h. En el caso de los archivos COM de DOS, la imagen del archivo no puede superponerse a un segmento (64K), en el caso de los archivos DOS EXE, la imagen cargable puede ser de cualquier tamaño que rellene un bloque de memoria libre.

Al utilizar el truco COM-> EXE, el virus puede infectar archivos COM de cualquier tamaño, después de convertirlos no pierden su funcionalidad si el tamaño del archivo supera la limitación de 64 KB al infectar. Recuerde el tamaño del virus: sin convertir al formato EXE, el virus no podría infectar archivos COM de tamaño superior a 32 Kb. Otro efecto importante del truco es la forma fácil de devolver el control al programa host: el virus no hace más que restaurar los primeros 4Fh bytes del encabezado del archivo y salta hasta allí.

Entonces, el código del virus se carga en la memoria comenzando desde los primeros bytes (sello "MZ") hasta el último, y el control pasa a la dirección señalada por el encabezado EXE. En el caso de este virus, el código de entrada se coloca muy cerca de la parte superior del archivo, en la dirección 0020h. Esta rutina usando instrucciones i386 de 32 bits obtiene el desplazamiento del código del virus principal (este desplazamiento se almacena en la dirección 001Ch en el encabezado), lo convierte en un segmento de 16 bits: formato de desplazamiento y salta hasta allí. La rutina de entrada también engancha INT 24h para evitar el mensaje de error estándar de DOS al escribir en volúmenes protegidos contra escritura, no tengo idea de por qué el virus lo colocó aquí pero no en el código principal del virus.

Cuando el código de virus principal recibe el control, verifica la presencia de Windows. Si no se ejecuta Windows, o la versión de Windows es inferior a 4.0 (Windows95), el virus restaura los bytes originales del programa host en su parte superior y devuelve el control allí. Si se ejecuta Windows, el virus crea el archivo C: MYLENE.EXE, escribe el cuentagotas Win32 allí, cierra el archivo y lo ejecuta. El gotero toma el control y el virus vuelve a su nivel de infección.

Ejecución de archivo PE infectado

Cuando se ejecuta un archivo PE infectado, la rutina polimórfica del virus toma el control, descifra el código del virus y salta a la rutina principal. Esta rutina no es la misma que en el caso del archivo COM. Es un programa de 32 bits que opera con la memoria y los recursos de Windows, pero el objetivo de esta rutina es el mismo que en el caso del archivo COM: crea y ejecuta el cuentagotas del virus.

Para acceder a la función de Windows, el virus debe importarlos utilizando PE Import Table u obtener sus direcciones escaneando el kernel de Windows. El virus selecciona la segunda vía: presta atención al entorno (Windows95 / 98 o Windows NT – el virus usa compensaciones correctas en ambos casos), analiza las importaciones de KERNEL32 y busca las funciones CreateFileA, WriteFile, CloseHandle y WinExec. El procedimiento de virus en archivos PE infectados es bastante simple y no necesita más sino solo estas cuatro entradas. // Aquí hay un error en el código del virus que detiene su propagación en WindowsNT.

Luego, el virus de la misma manera que en el caso del archivo COM de DOS infectado crea el archivo C: MYLENE.EXE, escribe el código del dropper allí, cierra y ejecuta este archivo. El cuentagotas toma el control, y esta rama PE del algoritmo de virus regresa a la raíz.

Carga útil

Antes de llamar rutinas anti-antivirus y de infección, el virus llama a la rutina desencadenante. Esta rutina se ejecuta con una probabilidad 1/8 dependiendo del contador de tiempo del sistema y cambia la imagen de fondo de Windows (WallPaper). El virus simple crea el archivo C: MYLENE.BMP, escribe una imagen de Mylene Farmer (?) Allí, lo convierte a formato BMP y lo declara como una imagen de Windows WallPaper:

Mientras lo hace, el virus accede al visor JPEG instalado desde el registro del sistema:


HKEY_LOCAL_MACHINESOFTWAREMicrosoftShared ToolsGraphics FiltersImportJPEG
El virus carga la biblioteca correspondiente en la memoria, obtiene la dirección y llama a la rutina ImportGr. El virus realiza esta conversión solo para disminuir su tamaño: el resultado de la imagen BMP es un archivo de 160 KB, por lo que el virus conserva en su código la variante JPEG de 16 KB de la misma imagen. Como una imagen de WallPaper, Windows95 solo acepta el formato BMP, por lo que el virus debe convertir la fuente JPEG a BMP.

La imagen resultante se guarda luego en el mismo archivo C: MYLENE.BMP que luego se registra como imagen de fondo de pantalla para el escritorio de Windows:


HKEY_CURRENT_USERControl Paneldesktop
El único punto menor en esta conversión es que tengo todo lo necesario en mi computadora de prueba, pero el virus no pudo actualizar mi fondo de pantalla.

¿Acción directa pero residente de memoria?

Antes de infectar cada archivo, el virus llama a la función API estándar de Windows. Duerme y retrasa su actividad durante 3 segundos. Este es el bloque de código de virus muy (quizás el más importante). Solo una de estas llamadas hace que el virus se etiquete como "residente en memoria".

El resultado de esta instrucción adormecida es que el código del virus puede permanecer en la memoria del sistema por mucho tiempo. Deje que haya 1000 archivos COM y EXE en la computadora. El virus se queda dormido durante 3 segundos antes de infectar a cada uno de ellos, por lo que permanecerá en la memoria durante 50 minutos (3000 segundos).

El virus reside en la memoria: permanece en la memoria del sistema durante mucho tiempo y se puede ejecutar otra aplicación mientras está activa la rutina de infección de virus. A pesar de esto, se trata de virus de acción directa (como los virus residentes que no son de memoria): busca archivos en el árbol de subdirectorios y los infecta, y no hay eventos enganchados.

Aún los escritores de virus intentan seguir el mismo camino conservador de DOS: crean Windows VxD enganchando IFS API similar a DOS TSR enganchando INT 21h. Esta es la decisión más popular para crear virus de Windows residentes en la memoria hoy en día. Quizás el virus Libertine sea el primer virus con características de semi residente, y en el futuro veremos más virus de ese tipo, es mucho más fácil depurar la aplicación de Windows que Windows VxD o el controlador NT.


Enlace al original