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.

Virus.Win9x.Sk

Fecha de detección 01/11/2002
Clase Virus
Plataforma Win9x
Descripción

Detalles técnicos

Este es un virus parásito de Windows. Se propaga en Windows95 / 98, instala su copia en la memoria de Windows, engancha las funciones de acceso a archivos e infecta archivos PE (Windows Portable Executable). El virus también afecta a los archivos de ayuda de Windows (.HLP), los modifica para que cuando se activen, el código del virus se suelte en el disco y se ejecute. El virus también agrega sus cuentagotas a cuatro tipos de archivos: RAR, ZIP, ARJ y HA. Los cuentagotas de virus en archivos y archivos HLP tienen formato de archivo DOS COM y se ejecutan en el cuadro de DOS, pero pueden instalar código de virus en la memoria de Windows, así como archivos ejecutables infectados de Windows (consulte a continuación).

El código del virus está encriptado con rutinas polimórficas tanto en los cuentagotas de DOS como en los archivos de Windows PE. En el caso de los archivos de Windows, el virus también utiliza la tecnología "Entry Entry Obscuring": el código de virus no obtiene control inmediatamente cuando se ejecuta un archivo infectado. La instrucción JMP_Virus en la mayoría de los casos se ubica en algún lugar del cuerpo del archivo infectado, no en el encabezado del archivo y no en la dirección de inicio del archivo, y se ejecuta solo cuando la rama correspondiente del programa toma el control.

El virus es un "virus infeccioso lento": antes de infectarlo, comprueba muchas condiciones y, como resultado, afecta a muy pocos archivos en la computadora: solo unos diez archivos EXE en la instalación estándar de Windows95 / 98. Lo mismo para los archivos y archivos HLP: muy pocos de ellos pueden estar infectados. El virus también retrasa su rutina de infección durante un minuto antes de la primera infección e infecta los archivos y archivos HLP solo en caso de que no haya acceso a estos archivos durante dos minutos.

El virus es muy peligroso. Cuando se accede a los archivos del disco, se comprueban sus nombres y, en el caso de varios programas antivirus (ADINF, AVPI, AVP, VBA, DRWEB), el virus elimina todos los archivos en todos los directorios desde C: hasta Z: que el virus es capaz de eliminar, y luego detiene el sistema mediante la llamada Fatal_Error_Handler VMM.

Hay otro archivo de víctima que el virus elimina cada vez que se instala en el sistema. Es el archivo COMMAND.PIF en el directorio de Windows.

El virus tiene errores que son letales en algunas configuraciones de Windows95 / 98: al infectar el virus, provoca una "pantalla azul" con el mensaje estándar "Error de protección general".

Al instalar en el sistema el virus según su contador aleatorio (en un caso desde 48) muestra el mensaje:


1997 VBA Ltd. Correo electrónico: support@vba.minsk.by

Instalación de memoria residente

La copia "residente" del virus funciona en el nivel VxD (Ring0 – kernel de Windows). Los programas de DOS y las aplicaciones de Windows no pueden acceder a esta área por métodos estándar, por lo que el virus usa varios trucos para instalar su código allí.

Cuando se ejecuta el dropper de DOS, el virus comprueba que Windows está instalado y vuelve a DOS, si no es así. De lo contrario, el virus mediante llamadas DMPI obtiene acceso a Tablas de descripción local (tablas de asignación de memoria de modo de protección del procesador), las parchea y cambia su código DOS de 16 bits para proteger el modo de 32 bits. El código del virus funciona como parte del kernel de Windows y puede acceder a todas las funciones necesarias de Windows.

Cuando se ejecuta el archivo PE infectado, el virus también aplica parches a las tablas de asignación de memoria del sistema y cambia su código del nivel de aplicación (Ring3) al nivel kernel (Ring0). El virus pasa el control a la misma rutina de instalación que los droppers infectados de DOS.

La rutina de instalación, cuando toma el control, asigna un bloque de memoria del sistema, copia el virus allí, engancha las funciones de Windows y libera el control. La copia original del virus retorna a DOS (en el caso del cuentagotas de DOS) o restaura los datos y el código del archivo PE del servidor y los devuelve.

Hookers de virus

El virus engancha tres funciones de Windows. El primero es el procedimiento de devolución de llamada para la captura de puertos de E / S. El virus engancha el puerto 534Bh y lo usa en su "¿Estás aquí?" llamadas. La lectura desde este puerto en condiciones de sistema infectado devuelve 21 h (carácter "!") En el registro AL. Ambas rutinas de instalación de virus DOS y Windows lo prueban antes de instalar la memoria residente. El número de este puerto se usó para nombrar el virus: 534Bh es "SK" en ASCII.

El segundo gancho es "estándar" para los infectados de Windows residentes: es el gancho API del sistema de archivos. Se intercepta la apertura de archivos, el cambio de nombre y las funciones de obtención / ajuste de atributos de archivo. En estas llamadas, el virus ejecuta sus rutinas de infección.

El tercer enlace intercepta la función "Instalar FileSystemApiHook" (la que se usa para instalar el enlace anterior). Esta llamada es utilizada por el virus para ocultar su hooker: cuando se instala un nuevo enganche, Windows llama a esta función. En este momento, el virus intercepta eso, elimina su propio enlace IFS API, instala uno nuevo (se solicita) y luego vuelve a instalar el enlace del virus. Como resultado, el virus Hooker está siempre en la parte superior de la lista de ganchos, y es el primero en recibir control cuando se accede a los archivos del disco.

Hay otro truco en el virus IFS API hooker: para acceder a los controladores del sistema de archivos (el destino de las llamadas a FileSystem), el virus usa la dirección del controlador del sistema "nativo". El virus obtiene esta dirección del campo puramente documentado en la pila de la persona que llama, y ​​al usar esta dirección realiza llamadas directas a las funciones de archivo necesarias.

Infectar archivos

Cuando el hooker API de IFS obtiene el control y la rutina de infección se activa por primera vez, infecta la aplicación de shell de Windows (por lo general, EXPLORER.EXE). Para localizarlo, el virus abre el archivo SYSTEM.INI en el directorio de Windows, lo escanea para la instrucción "shell =" y lo infecta.

Este archivo siempre se ejecuta, por lo que el virus no puede modificarlo. Para solucionar este problema, el virus usa el truco de la "actualización". El virus copia este archivo con otro nombre (agrega uno a la última letra del nombre de archivo: EXPLORER.EXE -> EXPLORER.EXF, por ejemplo), infecta un archivo nuevo y obliga a Windows a "actualizar" el archivo original con el infectado. Para hacer eso, el virus usa una forma estándar: crea el archivo WININIT.INI en el directorio de Windows y escribe las instrucciones necesarias para "Renombrar" allí.

Si el shell de Windows ya está infectado, el virus infecta el archivo al que se accede. En primer lugar, comprueba la extensión del nombre de archivo. En el caso de los archivos .EXE, .SCR y .DLL, el virus salta a la rutina de infección de archivos PE; en el caso del archivo .HLP, el virus lo parchea con su código de descarte; en el caso de .RAR, .ZIP, .ARJ y .HA archiva las inserciones de virus en sus contenidos, su propio cuentagotas ejecutable.

Infectar Windows PE

Al infectar archivos PE, el virus cifra y escribe su código en la sección Reubicación (reparación) y, como resultado, sobrescribe estos datos. Debido a la forma en que Windows usa cargar aplicaciones en la memoria, en la mayoría de los casos no presta atención a las reubicaciones: todas las aplicaciones se cargan en las mismas direcciones y no se utilizan reubicaciones. En algunos casos, cuando otra aplicación host carga la aplicación en la memoria del host, el cargador de Windows procesa la tabla de reubicación y realiza los cambios necesarios en el código de la aplicación. Para solucionarlo, el virus modifica los campos de encabezado PE: borra los indicadores de Reubicación en el campo Característica (eso significa que no hay reubicaciones en el archivo) y establece en cero la dirección de la sección Reubicación. Como resultado, la aplicación afectada simplemente no se puede cargar en otra dirección (para el espacio de direcciones de otra aplicación), pero funciona perfectamente como unidades independientes.

Luego, el virus realiza los cambios necesarios en el encabezado de la sección Reubicación: establece sus características como Legible e Inicializado, dependiendo de su contador aleatorio (en 1 caso de 8) cambia el nombre de la sección a uno aleatorio, encripta su cuerpo y escribe allí. El virus también comprueba el tamaño de la sección Reubicación: si es lo suficientemente grande como para el código del virus e infecta los archivos solo en caso de que el código del virus rellene el cuerpo de la sección. Como resultado, el virus no aumenta el tamaño de los archivos PE al infectarlos.

Para obtener el control cuando se ejecutan programas infectados, el virus no modifica la dirección de entrada en el encabezado PE. Utiliza otra forma más compleja: parche el código seleccionado al azar en el cuerpo del programa de la víctima y escribe allí la rutina del virus JMP. Como resultado, el código del virus no se ejecuta inmediatamente cuando se activa el programa infectado. Se ejecuta solo en caso de que la rama parche tenga control. En algunos casos, cuando esta rama se ejecuta muy raramente (si es la rutina de manejo de errores, por ejemplo) el virus puede "dormir" en el programa durante mucho tiempo y luego salta en alguna situación extra.

Para ubicar la posición en el programa para parchar, el virus lee los bloques del archivo de la víctima y lo escanea para las subrutinas C / Pascal. Estas rutinas tienen encabezados y pie de página estándar, y el virus solo necesita encontrarlos y ver que hay espacio suficiente para su código JMP_Virus entre las instrucciones de entrada y salida de la subrutina.

La rutina JMP_Virus que transfiere el control de la subrutina de parches al código del virus principal no es solo una sola instrucción JMP. Es más sofisticado: es un bucle polimórfico que descifra el código del virus principal antes de pasarle control: tiene hasta 168 bytes de código.

Resumen, los programas infectados se ejecutan de la siguiente manera: Windows carga y ejecuta el programa, y ​​sus rutinas comienzan a funcionar. El virus "duerme" en este momento porque la subrutina parcheada no se ha ejecutado aún. Cuando este código obtiene el control, se activa la rutina del virus JMP_Virus. Descifra el código del virus principal (que se coloca en la sección Reubicación) y salta al código descifrado. La rutina de instalación del virus obtiene el control, copia el virus en la memoria de Windows, instala ganchos de virus, restaura la subrutina del host parcheado y le devuelve el control.

Es necesario tener en cuenta que en algunos casos (cuando se está infectando el shell de Windows, o no se encontró ninguna rutina C / Pascal), el virus escribe su parche JMP_Virus directamente en la dirección de entrada del programa. En este caso, el código del virus obtiene control inmediatamente cuando se ejecuta el archivo infectado.

Infecting Archives

El virus afecta a cuatro tipos de archivos: RAR, ZIP, ARJ y HA. Al infectarlos, el virus analiza los formatos internos de los archivos, agrega el cuentagotas DOS al final del archivo como último elemento y modifica cuidadosamente la estructura del archivo, incluidos los campos CRC. Los únicos archivos están infectados: que tienen al menos diez archivos y tienen al menos un archivo COM o EXE. La adición de virus a los archivos es un archivo COM de DOS que tiene un nombre generado aleatoriamente y una extensión COM o EXE.

En el caso de los archivos RAR, el virus tiene una rama más en comparación con otras rutinas de infección de archivos. Esta rama busca archivos "almacenados" en los archivos RAR, y si un archivo tiene un sello de fecha y hora específico, el virus lee los datos almacenados ejecutados al final. Este truco permite que el virus ejecute otros programas sin ninguna acción del usuario: se puede usar para "actualizar" el virus, ejecutar un espía o cualquier otro tipo de programa. Esta característica del virus parece una "puerta trasera" que puede ser utilizada por el autor del virus para tener el control en otras PC.

Ayuda infectada

La posibilidad de infectar archivos de ayuda de Windows se basa en el hecho de que estos archivos tienen sus propios subprogramas de scripts (macros). Estos scripts se ejecutan automáticamente cuando WinHelp activa los archivos de ayuda, y el lenguaje de script es lo suficientemente potente como para acceder a los archivos del disco, crearlos y ejecutarlos.

El virus usa esta característica para infectar los archivos de ayuda de Windows. Escribe su cuentagotas DOS al final del archivo HLP como una "superposición" (el encabezado del archivo HLP tiene el campo "longitud del archivo" en su encabezado, y el cuentagotas del virus está fuera de estos datos), modifica la estructura interna del HLP y agrega su propia secuencia de comandos ahi. Este script tiene diez instrucciones que se escriben en la sección [CONFIG] ("| SISTEMA" en términos de internos HLP) que se procesa automáticamente cuando se activa el archivo de ayuda infectada. Estas diez instrucciones de virus extraen y ejecutan un pequeño (aproximadamente 380 bytes) cargador de virus. El script de virus crea este cargador como un archivo DOS (con nombre aleatorio) en la unidad C: escribe un código allí y lo ejecuta, y el cargador de virus toma el control.

El código del cargador de virus en la secuencia de comandos HLP se convierte a formato ASCII de 7 bits; cada byte se convierte en dos letras alfabéticas. Cuando este código toma el control, se convierte de nuevo a código binario, luego obtiene el nombre del archivo HLP del host (que los scripts de virus pasan como argumento), lee el encabezado del archivo HLP, obtiene el código de "superposición" de virus, lo lee, sobrescribe su propio archivo COM y lo vuelve a ejecutar. El dropper DOS de virus obtiene el control y el virus se instala en la memoria, etc.

Hay una excepción en esta rutina que causa problemas. El código del cargador de virus se convierte a 7 bits ASCII, pero el bucle que restaura este código tiene códigos de operación que están fuera del límite de 80 h. Cuando estas cadenas se guardan del archivo HLP de Windows al archivo DOS, Windows las procesa como cadenas de texto y convierte caracteres ASCII altos de acuerdo con la página de códigos instalada. No hace falta decir que bajo diferentes páginas de códigos el resultado de la convertación es diferente. La única página de códigos trae el código correcto: esta es la página de códigos rusa (eso significa que el autor del virus tenía instalado el soporte en ruso en su computadora). Si no se instala soporte ruso en el sistema, el código del cargador de virus está dañado, no puede funcionar y se detiene cuando se ejecuta.

Además, es necesario tener en cuenta que, al soltar su archivo COM, el script de virus comprueba la presencia del archivo C: NTLDR específico de NT y lo devuelve si se encuentra este archivo.

Win95.SK.8699

Esta es la versión de virus mejorada. Está muy cerrado al original, pero usa más métodos en su encriptación y un motor polimórfico más fuerte. También utiliza un truco para desactivar los monitores antivirus: localiza el componente antivirus GK95.VXD (AVP y F-SECURE) cargado en la memoria de Windows y los desactiva mediante un parche. La rutina de infección de archivos HLP está arreglada en esta versión de virus; funciona con cualquier página de códigos, no solo en la de ruso.


Enlace al original