Red de conocimiento informático - Problemas con los teléfonos móviles - ¿Qué tipo de virus es un virus caballo de Troya?

¿Qué tipo de virus es un virus caballo de Troya?

¿Qué es un caballo de Troya?

Caballo de Troya (en adelante, caballo de Troya), el nombre en inglés es "Trojan house", su nombre proviene del caballo de Troya en la mitología griega.

Es una herramienta de piratería basada en control remoto y tiene las características de ocultación y no autorización.

El llamado ocultamiento significa que para evitar que el troyano sea descubierto, los diseñadores del troyano utilizarán varios medios para ocultarlo, incluso si se descubre que el servidor está infectado con el troyano. El troyano, dado que no se puede determinar su ubicación específica, a menudo sólo puede mirar el "caballo" "Sigh.

La llamada no autorización significa que una vez que el terminal de control está conectado al servidor, el terminal de control disfrutará de la mayoría de los derechos operativos del servidor, incluida la modificación de archivos, la modificación del registro, el control del mouse, teclado, etc., y estos derechos no los otorga el servidor, sino que los roba el programa troyano.

Desde la perspectiva del desarrollo de un troyano, básicamente se puede dividir en dos etapas.

Inicialmente, los troyanos de red todavía estaban en la plataforma UNIX. Las funciones de los programas troyanos en ese momento eran relativamente simples. A menudo incrustaban el programa en archivos del sistema y usaban instrucciones de salto para realizar algunas funciones troyanos. En este período, la mayoría de los diseñadores y usuarios son personal técnico y deben tener un conocimiento considerable de redes y programación.

Con la creciente popularidad de la plataforma WINDOWS, han seguido surgiendo algunos programas troyanos basados ​​en operaciones gráficas. La mejora de la interfaz de usuario ha permitido a los usuarios operar troyanos de manera competente sin tener que tener demasiados conocimientos profesionales. En comparación con los troyanos, las intrusiones también ocurrían con frecuencia y, debido a que las funciones de los troyanos se volvieron cada vez más perfectas durante este período, también causaron mayores daños en el lado del servidor.

Entonces, el caballo de Troya se ha desarrollado hasta el día de hoy y no tiene nada que ver con nosotros. Una vez controlado por el caballo de Troya, su computadora no tendrá ningún secreto. Wanyan Kangkang - Tanhua 11.º nivel 9-18 12:40

------------------------------- ------------------------------------------------- -

Troyano DLL revelado

Creo que los amigos que juegan troyanos con frecuencia conocerán algunas de las características de los troyanos y también tendrán sus propios troyanos favoritos. Sin embargo, muchos amigos aún no lo saben. de las "DLL" que han surgido en los últimos años ¿Qué es el "caballo de Troya"? ¿Qué es un "troyano DLL"? ¿Cuál es la diferencia entre este y los troyanos comunes?

1. Empezando por la tecnología DLL

Para entender los troyanos DLL, debemos saber qué significa esta "DLL" Retrocedamos a la época en la que prevalecían los sistemas DOS hace unos años. atrás. En ese momento, escribir programas era algo muy engorroso, porque cada código de programa era independiente. A veces, para implementar una función, teníamos que escribir muchos códigos para ella. Más tarde, con el desarrollo de la tecnología de programación, muchos programadores comúnmente. Los códigos usados ​​(códigos de uso común) se recopilan en un solo archivo, que se denomina "Biblioteca". "(Biblioteca), al escribir un programa, coloque el archivo de la biblioteca en el compilador, puede usar todas las funciones contenidas en esta biblioteca sin tener que escribir mucho código. Esta tecnología se llama "Enlace estático"). Esta técnica es Se llama "enlace estático". El enlace estático brinda alivio a los programadores cansados, y todo parece ir bien, pero resulta que el enlace estático es como un vendedor grosero, lo quiera o no, se le enviará un folleto. tu mano. Escribe un programa que solo quiera usar un determinado efecto gráfico contenido en un archivo de biblioteca. Debido a esto, debes agregar todos los efectos gráficos que contiene el archivo de biblioteca al programa, dejar que se conviertan en jarrones decorativos. No es importante, lo importante es que estos jarrones bloquean el camino: la tecnología de enlace estático hace que el programa final se vuelva grande, porque el compilador también incluirá el archivo completo de la biblioteca

A medida que avanzan los tiempos. , la tecnología de enlace estático no puede satisfacer los deseos de los programadores debido a sus fallas inherentes, y la gente comienza a buscar mejores formas de resolver el problema de la duplicación de código. Posteriormente, la aparición de Windows se convirtió en un hito. Windows utilizó una nueva tecnología de enlace llamada "dinámica". linking", que también utilizaba archivos de biblioteca, que Microsoft llamó "bibliotecas de enlaces dinámicos".

"Biblioteca de enlaces dinámicos": la biblioteca de enlaces dinámicos (DLL) se llama así. El enlace dinámico en sí no es diferente del enlace estático. Generalmente, el código se escribe en algunos archivos independientes, pero en términos de compilación, Microsoft ha adoptado un enfoque diferente. enfoque En lugar de incorporar los archivos de la biblioteca al programa, incorporamos los archivos de la biblioteca en un archivo de programa compilado y abrimos una interfaz para que intercambien datos para que los programadores escriban programas. Cuando se ejecuta una función en el archivo de la biblioteca, el sistema coloca el archivo. archivo de biblioteca en la memoria, lo conecta al proceso de tarea ocupado por el programa, luego ejecuta la función que utilizará el programa y devuelve el resultado al programa para su visualización. En nuestra opinión, es como la función del. programa en sí después de completar la función requerida, la DLL deja de ejecutarse y finaliza todo el proceso de llamada. Microsoft permite que estos archivos de biblioteca sean llamados por múltiples programas, logrando un *** Disfrute más perfecto, sin importar qué programa escriba. puedes usar todas sus funciones agregando una declaración de llamada a la DLL correspondiente en el código. Lo más importante es que la DLL nunca te permitirá obtener otro jarrón, que es lo que quieres. , y no te da lo que no quieres. De esta manera, el programa no se puede escribir con un montón de basura; nunca te permitirá llevarte las sobras a casa; de lo contrario, está bien, es un buffet. >

El nacimiento de la tecnología DLL facilita la escritura de programas. Windows nos proporciona miles de interfaces de funciones, que son suficientes para satisfacer las necesidades de la mayoría de los programadores. Además, el sistema Windows en sí se compone de miles. de miles de archivos DLL, se apoyan entre sí y forman un potente sistema Windows. ¿Qué tamaño tendría si Windows utilizara tecnología de enlace estático?

En segundo lugar, la interfaz del programa de aplicación.

Hemos realizado un análisis aproximado de la tecnología DLL anteriormente y mencioné "interfaz". ¿Qué es esto? Debido a que la DLL no se puede insertar en un programa como un archivo de biblioteca estática, conociendo el código y los archivos para implementarlo. La función se convierte en un problema. Microsoft ha formulado una especificación estándar para la tecnología DLL, creando un archivo DLL como un queso con muchos agujeros pequeños, y el nombre de la función de almacenamiento está marcado dentro de cada pequeño agujero. El programa solo necesita Puede obtener comida deliciosa. encontrando el agujero relevante de acuerdo con la especificación estándar. Este agujero es la "Interfaz de programación de aplicaciones" (API). Cada DLL tiene una interfaz diferente. En palabras de Steven, la API es como una caja de herramientas. Saque el destornillador y la llave según sea necesario y vuelva a colocarlos después de usarlos. En Windows, los tres archivos DLL más básicos son kernel32.dll, user32.dll y gdi32.dll. Juntos forman el marco básico del sistema.

3. DLL y troyanos

DLL es un código compilado, que no es muy diferente de los programas normales, pero no puede ejecutarse de forma independiente y debe ser llamado por el programa. Entonces, ¿cuál es la relación entre DLL y el caballo de Troya? Si ha estudiado programación y escrito DLL, encontrará que, de hecho, el código de DLL es casi el mismo que el de otros programas, excepto que la interfaz y el método de inicio son diferentes. Siempre que se cambie la entrada del código, el DLL lo hará. convertirse en un programa independiente. Por supuesto, los archivos DLL no tienen lógica de programa. Esto no significa que DLL = EXE. Sin embargo, DLL aún puede considerarse EXE sin la entrada principal. Cada función de DLL puede considerarse como varias partes del programa. Un troyano DLL es el código que implementa la función troyana. Con algún código especial, se escribe como un archivo DLL y exporta las API relacionadas. DLL Trojan consiste en escribir el código que implementa la función troyana, más algunos códigos especiales en un archivo DLL y exportar la API correspondiente.

Algunas personas pueden preguntar, dado que el mismo código puede realizar la función del caballo de Troya, entonces es suficiente programarlo directamente. ¿Por qué es necesario escribirlo como una DLL? Esto es para engañar a otros, porque la DLL se cuelga directamente en el proceso del programa que la llama cuando se ejecuta y no se generará ningún otro proceso, por lo que es difícil de descubrir en comparación con los troyanos EXE tradicionales.

4. Operación de DLL

Aunque la DLL no se puede ejecutar de forma independiente, cuando Windows carga la DLL, necesita una función de entrada como principal del EXE; de lo contrario, el sistema no puede hacer referencia a la DLL. Por lo tanto, de acuerdo con el método de escritura estándar, Windows debe encontrar y ejecutar una función DllMain en la DLL como base para cargar la DLL. Esta es una función de la DLL. Carga una DLL basada en esta función, que no se exporta como API sino que es una función interna. La función DllMain mantiene la DLL en la memoria. Algunas DLL no tienen una función DllMain, pero aún se pueden usar porque Windows encontrará una función DllMain predeterminada de otra biblioteca, que no hace nada si no puede encontrar DllMain, iniciando así la DLL para que pueda cargarse. significa que la DLL puede abandonar la función DllMain.

5. Análisis técnico de los troyanos DLL

Dicho esto, puedes pensar que, dado que los troyanos DLL tienen tantos beneficios, ¿no sería bueno usar DLL para escribir troyanos? el futuro? Aunque esto es cierto, los troyanos DLL no son tan fáciles de escribir como algunas personas piensan. Para escribir un troyano DLL eficaz, necesita saber más.

1. El cuerpo principal del caballo de Troya

Nunca escriba el módulo del caballo de Troya para que parezca una biblioteca API. Esto no está desarrollado por WINAPI. Los troyanos DLL pueden exportar algunas funciones auxiliares, pero debe haber un proceso responsable de la ejecución del código principal; de lo contrario, la DLL solo puede ser un conjunto de funciones API fragmentadas, y mucho menos funcionar.

Si se trata de algún código común, puede escribir algunas funciones internas en la DLL para que las use su propio código, en lugar de abrir todo el código en una interfaz, que será difícil de llamar usted mismo, y Es incluso menos probable que lo utilice.

El punto de entrada de ejecución estándar del troyano DLL es DllMain, por lo que debe escribir el código de ejecución del troyano DLL en DllMain o apuntar al módulo de ejecución del troyano DLL.

2. Tecnología de incrustación dinámica

En Windows, cada proceso tiene su propio espacio de memoria privado. Otros procesos no pueden operar en este territorio privado, pero de hecho, aún podemos hacerlo. Utilice varios métodos para ingresar y operar la memoria privada del proceso. Esta es la incrustación dinámica, que es la tecnología de incrustar su propio código en el proceso en ejecución. Hay muchos tipos de incrustaciones dinámicas, los más comunes son los ganchos, las API y la tecnología de subprocesos remotos. La mayoría de los troyanos DLL actuales utilizan tecnología de subprocesos remotos para bloquearse en el proceso normal del sistema. De hecho, la incrustación dinámica no es infrecuente: el controlador MouseWare de Logitech se bloqueará en cada proceso del sistema. Los subprocesos remotos acceden al proceso creando un subproceso remoto en otro proceso con tecnología de espacio de direcciones de memoria. En la clase de troyano DLL, esta técnica también se denomina "inyección". Cuando el operador crea un subproceso remoto en el proceso inyectado y le ordena que cargue el DLL, el troyano se suspenderá y no se generará ningún proceso nuevo. detener la ejecución del troyano, solo puede permitir que la DLL que el troyano cuelga salga del proceso. Sin embargo, muchas veces estamos indefensos: se bloquea con Explorer.exe, ¿está seguro de que desea cerrar Windows?

3. Inicio del troyano

Algunas personas pueden estar impacientes por decir que agregar directamente esta DLL al proyecto de inicio del sistema no es suficiente. La respuesta es no, como dije antes, la DLL no se puede ejecutar de forma independiente, por lo que no se puede iniciar directamente en el proyecto de inicio.

Si desea que el troyano se ejecute, debe utilizar tecnología de incrustación dinámica en un EXE, dejar que la DLL se ponga al día con otros procesos normales, dejar que el proceso incrustado llame a la función DllMain de la DLL, inspirar al troyano para que se ejecute y finalmente iniciar. el EXE después de que el troyano haya terminado de ejecutarse.

El EXE que inicia el troyano DLL juega un papel importante. Se llama cargador. Sin el cargador, el troyano DLL es solo un montón de trapos, por lo que el troyano DLL que se considera maduro encontrará la manera. para proteger su cargador que no se destruye tan fácilmente. ¿Recuerdas la historia del niño que gritó lobo? El troyano DLL es el lobo que se arrastra en el cargador del lobo.

Existen muchos tipos de cargadores. El rundll32.exe en Windows también lo utilizan algunos troyanos DLL como cargador. Este tipo de troyano generalmente no utiliza tecnología de incrustación dinámica. Monta directamente el proceso rundll32. la forma de rundll32 Ejecutar (rundll32.exe [nombre de DLL], [nombre de DLL], [nombre de DLL], [nombre de DLL], [nombre de DLL], [nombre de DLL], [nombre de DLL], [nombre de DLL], [nombre de DLL] exe [nombre de DLL], [función] [parámetro]), llame a la API para hacer referencia a la función de inicio de esta DLL para estimular el módulo troyano para que comience a ejecutarse. Incluso si se elimina rundll32, el cuerpo del troyano todavía está. Allí el ejemplo más común es el nombre real chino 3721, aunque no es un caballo de Troya.

Algunos troyanos también pueden utilizar la clave AppInit_DLLs del registro para iniciarse, como el virus Cover Letter. Usar el registro para iniciar es permitir que el sistema ejecute DllMain para lograr el propósito de iniciar el troyano. Debido a que es transferido por el kernel, tiene grandes requisitos en cuanto a la estabilidad de esta DLL. Un ligero descuido provocará que el sistema falle, por lo que este tipo de troyano rara vez se ve.

También hay algunos troyanos DLL más complejos que se inician a través de svchost.exe. Este tipo de troyano DLL debe escribirse como NT-Service y la función de entrada es ServiceMain. Generalmente es raro, pero esto. Este tipo de troyano también está bien oculto y Loader está garantizado.

4. Otros

Hablando de esto, también deberías saber algo sobre los troyanos DLL. ¿Realmente quieres escribir uno? No se preocupe, no sé si alguna vez lo ha pensado. Dado que los troyanos DLL son tan poderosos, ¿por qué es tan raro encontrar troyanos DLL ahora? Ahora permítanme echarle agua fría. Sólo hay una razón más importante: porque el troyano DLL se ejecuta en el proceso del sistema si no está bien escrito, por ejemplo, no hay un código para evitar errores de ejecución o no hay un código estricto. especificación de la entrada del usuario, la DLL se bloqueará con un error. No se ponga nervioso, este es el final del EXE ordinario, pero el bloqueo de la DLL hará que los programas que cuelga sufran juntos. No olvide que el proceso del sistema se bloquea. El resultado final es... catastrófico. . Por lo tanto, escribir un troyano DLL puede realizar más tareas de resolución de problemas y liberación que los troyanos EXE comunes. Puede escribir algunos más molestos usted mismo...

6. /p>

Muchas veces, si miras los elementos de inicio para ver si hay elementos inexplicables, ¡es el Cargador! Aquí, mientras mates a este "lobo", la muerte nunca volverá a enloquecer. El cuerpo del troyano DLL es más difícil de encontrar. Debe tener ciertos conocimientos de programación y habilidades de análisis para encontrar el nombre de la DLL en el cargador o verificar cuántas DLL desconocidas se cuelgan en el proceso, pero para principiantes... .... En definitiva, es sumamente difícil, por lo que la solución más sencilla es: software antivirus y firewall (no es una panacea, no lo uses durante mucho tiempo).