Clase de padre: VirWare
Los virus y gusanos son programas maliciosos que se auto replican en computadoras o redes de computadoras sin que el usuario lo sepa; cada copia subsiguiente de dichos programas maliciosos también puede auto-replicarse. Los programas maliciosos que se propagan a través de redes o infectan máquinas remotas cuando el "propietario" les ordena hacerlo (p. Ej., Puertas traseras) o programas que crean copias múltiples que no pueden autorreplicarse no forman parte de la subclase Virus y gusanos. La principal característica utilizada para determinar si un programa está clasificado como un comportamiento separado dentro de la subclase Viruses and Worms es cómo se propaga el programa (es decir, cómo el programa malicioso distribuye copias de sí mismo a través de recursos locales o de red). como archivos enviados como archivos adjuntos de correo electrónico, a través de un enlace a un recurso web o FTP, a través de un enlace enviado en un mensaje ICQ o IRC, a través de redes de intercambio de archivos P2P, etc. Algunos gusanos se propagan como paquetes de red; estos penetran directamente en la memoria de la computadora y el código del gusano se activa. Los gusanos usan las siguientes técnicas para penetrar computadoras remotas y lanzar copias de sí mismos: ingeniería social (por ejemplo, un mensaje de correo electrónico que sugiere que el usuario abre un archivo adjunto), explotando errores de configuración de red (como copiar a un disco totalmente accesible) y explotando lagunas en el sistema operativo y la seguridad de las aplicaciones. Los virus se pueden dividir de acuerdo con el método utilizado para infectar una computadora: virus de archivos virus de sector de arranque virus de macros virus de script Cualquier programa dentro de esta subclase puede tener funciones de troyano adicionales. También se debe tener en cuenta que muchos gusanos usan más de un método para distribuir copias a través de redes. Las reglas para clasificar objetos detectados con funciones múltiples se deben usar para clasificar estos tipos de gusanos.Clase: Virus
Los virus se replican en los recursos de la máquina local. A diferencia de los gusanos, los virus no usan los servicios de red para propagarse o penetrar en otras computadoras. Una copia de un virus llegará a las computadoras remotas solo si el objeto infectado, por alguna razón no relacionada con la función del virus, está activado en otra computadora. Por ejemplo: al infectar discos accesibles, un virus penetra en un archivo ubicado en un recurso de red, un virus se copia en un dispositivo de almacenamiento extraíble o infecta un archivo en un dispositivo extraíble, un usuario envía un correo electrónico con un archivo adjunto infectado.Más información
Plataforma: DOS
No platform descriptionDescripción
Detalles técnicos
Esta es una familia de virus parásitos muy peligrosos, polimórficos y furtivos. Estos virus tienen más de 7K de longitud, son muy complejos y quizás los virus DOS más complejos. Estos virus infectan archivos EXE, OBJ y LIB, y añaden COM-droppers a los archivos ZIP, ARJ y RAR. Los virus contienen las cadenas de texto internas:
Terminación anormal del programaThe Virus / DOS 0.54 Copyright (c) 1995 Zhengxi Ltd¡Advertencia! ¡Este programa solo para uso interno!
Instalación
El código del virus recibe el control desde diferentes puntos dependiendo de la forma de infección, pero en todos los casos el destino es la rutina de desencriptado polimórfico. En los archivos EXE (anexos) la rutina de descifrado recibe el control inmediatamente cuando se carga un archivo EXE en la memoria para su ejecución, en archivos EXE (inserción) - desde el código de cargador (ver infección EXE), en los archivos vinculados con OBJ / Archivos LIB: a partir de la instrucción CALL (ver infección OBJ / LIB), los cuentagotas COM tienen instrucciones JMP en sus comienzos, que JMP lleva el control a la rutina de descifrado.Al ser descifrado, la rutina de instalación del virus recibe el control. El virus engancha INT 1 (seguimiento en un paso) y rastrea INT 21h. Mientras rastrea, el virus busca algún código específico dentro del controlador INT 21h (ese código está presente en DOS 5.x y DOS 6.x). Si se encuentra dicho código, el virus verifica varias condiciones y termina la instalación en algunos casos.
El virus finaliza la instalación si:
- MS Windows está instalado
- la unidad de arranque es A: o B:
- INT 8, 13h, 28h apunta al mismo segmento (para salir de la instalación si el monitor antivirus está instalado?)
- el día del archivo de host (sello de fecha y hora) es el mismo o cerca del día actual (dos bits más altos del número de día actual XORed con día de archivo es igual a cero)
INT 21h controlador:... ...+ ------- 2E FF 1F ???? CALL FAR CS: Int25 � C7 06 ???? ; ¿Palabra mágica? � Int25: ???? ???? ???? ???? ; ahora addr de INT 25h � ... ... ... � +> INT 25h controlador:+ -------- EA ???? ???? JMP FAR VirusHandler � ... ... ... � +> Controlador de virus:2E 8F 06 ... POP CS: Caller_IP... ...Como resultado, el virus tiene el mismo controlador para interceptar llamadas INT 21 hy INT 25 h. Para separar estas llamadas, el virus comprueba la dirección de la persona que llama (Caller_IP). Si la llamada va desde el controlador INT 21h, el virus pasa el control a la rutina del controlador Virus INT 21h, en otro caso, el controlador Virus INT 25h recibe el control.
La rutina de instalación está completa, pero el virus puede mover su código a otros bloques de memoria (ver el análisis del controlador INT 21h). Por lo tanto, la copia TSR del virus no ocupa los mismos bloques de la memoria del sistema, sino que puede moverse a otras direcciones, incluidas las UMB.
Luego, el virus devuelve el control al programa host. Hay tres variantes diferentes de dicho retorno, dependen del método de infección. En el caso del cuentagotas COM, el virus solo muestra el mensaje:
Terminación anormal del programay regresa a DOS con la función Terminate (INT 21h, AH = 4Ch). En caso de que el método de infección se anexe al EXE, el virus restaura el encabezado del archivo original mediante el uso de un motor polimórfico (genera una rutina de desencriptado polimórfico y lo ejecuta para restaurar el encabezado original, vea la infección EXE a continuación). En el caso de la inserción de EXE, el virus simplemente regresa al programa host porque el cargador de virus insertado en el archivo restaura el código original por sí mismo. En el caso del archivo OBJ / LIB, el virus también regresa al programa host (vea la infección OBJ / LIB a continuación).
INT 21h Handler
El virus intercepta 18 de las funciones INT 21h:3Dh, 6Ch - Abrir / Crear archivo3Eh - Cerrar archivo3Fh - Leer archivo42h - Lseek4Bh - Ejecutar archivo41h - Eliminar archivo11h, 12h - FindFist / Siguiente FCB4Eh, 4Fh - FindFist / Siguiente ASCII00h, 4Ch - Terminar31h - Stay TSR67h - Establecer la cuenta de la manija48h, 49h, 4Ah - funciones de administración de memoria (Asignar, liberar, cambiar el tamaño)El virus utiliza las funciones Establecer cuenta de manejo, Ejecutar archivo y administración de memoria para ocultar su código en la memoria del sistema: el virus manipula con bloques MCB para que no sean visibles en el mapa de memoria mientras usa utilidades de exploración de memoria.
Al interceptar las funciones Terminate, Stay TSR y FreeMemory, el virus mueve su código a una nueva dirección en la memoria del sistema. El virus asigna un nuevo bloque de la memoria (que puede ser convencional o bloque de memoria UMB) y se copia allí mismo. Entonces, al instalar el virus no afecta los bloques UMB para colocar su copia TSR, pero luego puede moverse a UMB y ocultarse allí.
Mientras se abre el archivo, el virus realiza varias llamadas diferentes. Primero, el virus comprueba el modo de apertura, y si el archivo se abre para la escritura, el virus desinfecta el archivo.
Antes de la desinfección, el virus comprueba que se accede al archivo y el programa que accede a ese archivo (llamante). El virus compara el nombre de acceso al programa (llamante) con la lista de nombres (ver a continuación), y no desinfecta el archivo al que se accede si el nombre del programa que accede es de esa lista. Los nombres de archivo son:
UUENCODE.EXE, PKLITE.EXE, LZEXE.EXE, NDD.EXE, DIET.EXE, AFD.EXE, SD.EXE,SPEEDDSK.EXE, DEFRAG.EXE, TLINK.EXE, LINK.EXEEn el caso de la función AH = 3D00h (Open Readly), el virus realiza algunas acciones extrañas. Escanea el código de la persona que llama y lo revisa. Parece que el parche de algunos antivirus escáner. Afortunadamente, el virus tiene el error y esa rama nunca se ejecuta.
Al abrir el archivo, el virus también lleva el control a la rutina invisible: el virus sustituye la longitud del archivo por la original.
Mientras lee el archivo, el virus llama a la rutina de sigilo. En caso de leer desde el encabezado del archivo infectado, el virus lee, descifra y copia el encabezado original en el buffer de lectura.
En el caso de la función de Lseek, el virus lleva el control a otra rutina de sigilo del virus: el virus no permite buscar la longitud original del archivo.
Al eliminar el archivo infectado, el virus lo desinfecta.
Mientras busca los archivos con FindFirst / Next Calls, el virus sustituye la longitud del archivo con la original si el archivo está infectado.
FindFist / Next Las llamadas ASCII también son utilizadas por el virus para detectar los archivos en busca de infección. El virus guarda el nombre de cualquier archivo al que se acceda con la función FindFirst, y aproximadamente cada 5to archivo (con probabilidad 3/16) accedido con la función FindNext. El virus tiene solo un buffer para el nombre del archivo, por lo tanto, cada nombre siguiente sobrescribe el anterior.
Al cerrar cualquier archivo, el virus comprueba e infecta el archivo con el nombre que está almacenado en el búfer. El virus también infecta el archivo que está cerrado, pero lo hace con una probabilidad de 1/4 (por el resultado del generador aleatorio del virus)
Infección
Antes de infectar el archivo, el virus comprueba varias condiciones:- el archivo no es "solo crea" al comparar el número del día actual con la fecha del archivo y la marca de tiempo del archivo (lo mismo que durante la instalación)
- el archivo es local, y no en A: o B: unidad
- el nombre del archivo no es *.? V? (* .OVL?)
- hay suficiente espacio libre en el disco (verificaciones con INT 21h, AH = 36h)
Infección de archivos EXE
El virus infecta EXE mediante tres métodos diferentes: adjuntar, insertar e infectar archivos en archivos autoextraíbles.Primero, el virus comprueba la estructura del archivo, y si es un archivo EXE autoextraíble (creado por ZIP2EXE, por ejemplo), el virus infecta el archivo adjunto (ZIP, ARJ, RAR) por el método que se describe a continuación: crea el cuentagotas COM y lo agrega a los contenidos del archivo.
Luego, el virus verifica la longitud del archivo y no infecta los archivos con una longitud inferior a 400 h (1024) bytes. Si la longitud del módulo cargable (nota: no la longitud del archivo) es mayor que 32K, el virus inserta su cargador en el medio del archivo. En otro caso, el virus infecta el archivo añadiendo un método.
Al infectar los archivos al agregar el método, el virus lee el encabezado del archivo, lo cifra y lo guarda al final del archivo. Luego, el virus ejecuta su generador polimórfico y guarda el cuerpo del virus cifrado y los bucles polimórficos en el extremo del archivo. Para finalizar la infección, el virus aumenta la longitud del archivo al valor que se divide por 9Dh da el resto 25h (para detectar archivos ya infectados, es un virus "ID") y modifica los campos de encabezado EXE (registros y longitud del módulo).
Nota: el virus cifra el encabezado original del archivo host con el bucle de cifrado polimórfico, y ese bucle es diferente con la rutina que se utiliza al cifrar el cuerpo del virus. Es decir, el virus llama al motor polimórfico dos veces, al tiempo que cifra el encabezado EXE original y al encriptar el cuerpo principal.
Al ejecutar el archivo EXE infectado, los bucles de descifrado restauran el cuerpo del virus principal pero no el encabezado del archivo original. Para volver al programa host, el virus debe descifrar los datos del host, pero el motor genera bucles aleatorios con funciones de cifrado seleccionadas al azar. Para resolver ese problema, el virus almacena los valores iniciales del generador aleatorio al encriptar los datos del host, y ejecuta el generador polimórfico con los mismos valores mientras descifra esos datos. Como resultado, el generador trae el mismo código que se usó para encriptar los datos del host, y al ser ejecutado, esa rutina lo descifra.
Infección de archivos EXE (inserción)
Si la longitud del archivo es superior a 32K, el virus busca al principio del módulo principal EXE (justo después del encabezado EXE), lee 6K del código y busca las rutinas C / Pascal allí. Por lo general, las rutinas C / Pascal comienzan desde el mismo "encabezado" que guarda el registro BP, y mueve el puntero SP a BP.El virus escanea el código para esos "encabezados" y si se encuentra dicho código, el virus escanea los siguientes 54h bytes de código para la instrucción RET o CALL FAR para evitar la superposición de la siguiente subrutina o la dirección reubicada. Si se encuentra dicho código (RET o CALL FAR), el virus sale de la rutina de infección.
Luego, el virus lee 54h bytes de esa rutina, la sobrescribe con el código del cargador de virus, luego encripta el cuerpo del virus principal con el motor polimórfico y lo guarda en el archivo final. Luego, el virus cifra con la función SUB simple el código original de la subrutina y la segunda parte del cargador, y lo guarda al final del archivo. Luego, el virus escribe al final del archivo los datos aleatorios de la misma forma que el método de infección "anexo".
No infectado Infectado------------ --------+ -------------- + + -------------- + �Exe Encabezado � eExe Encabezado � + -------------- � + -------------- � �Código EXE principal � �Código EXE principal � � -------------- � � -------------- � �C / Pascal subr � - + � Cargador de virus � Parte 1, 52h bytes, no encriptado � -------------- � � � -------------- � � � � in Código EXE principal � � � � � (continuación) � + -------------- + � + -------------- � � irusVirus � Encriptado con bucles polimórficos � � -------------- � � lo Cargador de virus � Parte 2, encriptado con comando SUB � � -------------- � 70h bytes+ -> � Código guardado � Código original de la subrutina parcheada, � -------------- � 52h bytes, encriptados con SUB � Datos aleatorios � longitud del archivo / 9Dh, el resto es 25h+ -------------- +Al ejecutarse, el cargador busca el nombre del archivo de host mediante el uso de campos de PSP, abre los archivos, busca el extremo del archivo, luego lee, descifra y ejecuta la segunda parte del cuentagotas. Esa parte restaura la subrutina parcheada, asigna la memoria del sistema (convencional o UMB), lee el cuerpo principal del virus y pasa el control al ciclo polimórfico de desencriptación. Ese bucle descifra el cuerpo del virus y pasa el control a la rutina de instalación.
Esa es una forma de infección muy insidiosa. El código del virus está oculto en el archivo y no hay una entrada directa al código del virus desde el encabezado del archivo. La subrutina reemplazada por el cargador de virus puede ser "rara vez ejecutada". Por ejemplo, la subrutina que muestra el mensaje de error. Entonces, el virus puede "dormir" en dichos archivos durante mucho tiempo, y luego saltar e infectar el sistema bajo algunas condiciones limitadas.
Infecting Archives
En caso de archivo, el virus crea en memoria la imagen del gotero COM infectado y lo agrega al archivo. Los droppers COM siempre comienzan con la instrucción JMP seguida de datos aleatorios, código de virus cifrado y bucle polimórfico de desencriptación. La instrucción JMP lleva el control al ciclo de descifrado.El nombre del cuentagotas se selecciona al azar y finaliza con la extensión .COM, por ejemplo:
HAIF.COM, UCM.COM, DOO.COM, VLG.COM, y así sucesivamente.Al procesar los campos de archivo, el virus no usa ninguna utilidad externa, sino que llena por sí solo todos los campos necesarios. El virus no empaqueta el gotero, pero usa el método "almacenado": el virus se almacena en el archivo "tal cual". Al infectar el virus, verifica el contenido de los archivos y no los infecta dos veces.
Infección de archivos OBJ y LIB
Al infectar los módulos OBJ / LIB, el virus comprueba los campos del archivo, crea e inserta allí nuevos registros de objetos que contienen el código de virus cifrado con bucles polimórficos.Al escanear el archivo de objeto, el virus comprueba el código de ese archivo para C / Pascal subrutina "encabezado", así como al insertarlo en archivos EXE, e infecta los archivos solo si se encuentra ese código. Pero en el caso del módulo OBJ o LIB, el virus no suelta el código de cargador allí, sino que sobrescribe el encabezado C / Pascal con la instrucción CALL (E8xxxx).
Al estar vinculado en un archivo ejecutable, CALL lleva el control al ciclo de descifrado polimórfico del virus. Ese bucle descifra el código del virus y pasa el control a la rutina de instalación del virus.
Al igual que en los archivos EXE (inserción), es posible que CALL nunca reciba el control y que el virus duerma durante mucho tiempo. Pero bajo ciertas condiciones, el virus puede saltar e infectar el sistema.
INT 25h Handler
Este manejador realiza la rutina de sigilo en el nivel INT 25h. Al acceder a las entradas del directorio, el virus sustituye la longitud del archivo por las originales, mientras lee el encabezado del archivo infectado, el virus lo restaura y le muestra la forma original.El virus no se da cuenta del 100% de sigilo en el nivel INT 25h, por supuesto. Hay formas de eludir la rutina de sigilo. Pero si algún programa antivirus lee el contenido del archivo mediante las funciones de INT 21h DOS, luego lee la estructura del directorio y luego el contenido del archivo mediante llamadas INT 25h absolutas, el virus permanece oculto.
Trigger Routine
SI al procesar archivos ZIP el virus encuentra algún registro que está empaquetado con el método "almacenado", comprueba la fecha y hora del archivo ZIP. Si el año de la última modificación de ese archivo es 1996 o más, el virus buscará todos los archivos de todos los directorios de todos los discos desde C: hasta Z :, y luego eliminará los archivos y el árbol completo de subdirectorios.Leer más
Conozca las estadísticas de las vulnerabilidades que se propagan en su región statistics.securelist.com