Constellation Knowledge Network - Una lista completa de nombres - ¿Qué significa caballo de Troya?

¿Qué significa caballo de Troya?

Categoría: Computadora/Red> & gt Anti-Virus

Análisis:

¿Qué es un caballo de Troya?

El caballo de Troya (en adelante, caballo de Troya) se llama "Trojan House" en inglés y su nombre proviene del caballo de Troya de 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, el diseñador del troyano utilizará varios medios para ocultarlo, incluso si el servidor descubre que está infectado. el troyano, sólo puede esperarlo porque no está seguro de su ubicación.

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

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

Al principio, la red todavía estaba en la era de la plataforma UNIX y surgieron los caballos de Troya. En ese momento, las funciones de los programas troyanos eran relativamente simples. A menudo incrustaban un programa en archivos del sistema y utilizaban instrucciones de salto para realizar algunas funciones del troyano. Durante este período, la mayoría de los diseñadores y usuarios de troyanos eran personal técnico, que debía tener conocimientos considerables de redes y programación.

Luego, con la creciente popularidad de la plataforma WINDOWS, han aparecido algunos programas de caballos de Troya basados ​​en operaciones gráficas. La mejora de la interfaz de usuario permite a los usuarios operar caballos de Troya de manera competente sin tener demasiados conocimientos profesionales. Las intrusiones de caballos de Troya relativamente frecuentes también aparecen con frecuencia y, debido a que las funciones de los caballos de Troya se vuelven cada vez más perfectas durante este período, causan un daño mayor al servidor.

Así que, a medida que el caballo de Troya se ha desarrollado hasta el día de hoy, ha hecho todo lo que ha podido. Una vez que un caballo de Troya se apodere de ella, su computadora ya no tendrá secretos.

Referencia:

BBS .51ww/365000/ShowPostx

-

El secreto del caballo de Troya DLL

Creo que los amigos que juegan troyanos con frecuencia conocerán algunas de las características de los troyanos y tendrán sus propios troyanos favoritos. Sin embargo, muchos amigos aún no saben qué es el “troyano DLL” que ha surgido en los últimos años. ¿Qué es un "troyano DLL"? ¿En qué se diferencia de un caballo de Troya común y corriente?

En primer lugar, desde la tecnología DLL

Para entender el troyano DLL debemos saber qué significa esta “DLL”, así que volvamos a cuando los sistemas DOS eran populares hace unos años. . Escribir programas en aquella época era una tarea tediosa porque el código de cada programa era independiente. A veces, para implementar una función, es necesario escribir mucho código para ella. Más tarde, con el desarrollo de la tecnología de programación, los programadores colocaron una gran cantidad de códigos de uso común * * * (código general) en un archivo separado y llamaron a este archivo "biblioteca". Al escribir programas, pueden utilizar esta biblioteca agregándola al compilador. La tecnología de enlace estático brinda alivio a los programadores cansados ​​y todo se ve genial. Pero resulta que las cosas buenas no duran mucho, porque un enlace estático es como un vendedor grosero. Tanto si quieres un folleto como si no, él te lo dará todo. Escriba un programa que solo quiera utilizar los efectos gráficos contenidos en el archivo de la biblioteca. Debido a esto, debes agregar todos los efectos gráficos que contiene este archivo de biblioteca al programa y guardarlo como un jarrón. No es importante, pero estos jarrones estorban: la técnica de enlace estático hace que el programa final sea muy grande porque el compilador también cuenta toda la biblioteca.

Con el desarrollo de los tiempos, la tecnología de enlace estático ya no puede satisfacer los deseos de los programadores debido a sus deficiencias inherentes, y la gente ha comenzado a buscar mejores formas de resolver el problema de la duplicación de código. Más tarde apareció el sistema Windows y finalmente apareció el hito de los tiempos. Los sistemas Windows utilizan una nueva tecnología de enlace. Esta nueva tecnología, llamada "enlace dinámico", también utiliza archivos de biblioteca. Microsoft las llama "Bibliotecas de enlaces dinámicos" y así es como las DLL obtuvieron su nombre. Los enlaces dinámicos en sí no son diferentes de los enlaces estáticos. Los códigos comunes también se escriben en algunos archivos independientes. Pero durante la compilación, Microsoft tomó un desvío y no agregó archivos de biblioteca al programa. En cambio, convierte archivos de biblioteca en archivos de programa compilados y abre una interfaz para que intercambien datos. Cuando un programador escribe un programa, una vez que se utiliza una función de un determinado archivo de biblioteca, el sistema cargará el archivo de biblioteca en la memoria. Conecte el proceso de tarea ocupado por este programa, luego ejecute la función que utilizará el programa y devuelva 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 las funciones requeridas, la DLL deja de ejecutarse y finaliza todo el proceso de llamada. Microsoft permite que varios programas llamen a estos archivos de biblioteca para lograr un intercambio perfecto. No importa qué programa quiera escribir el programador, siempre que se agregue una declaración de llamada a la DLL relevante en el código, se pueden usar todas sus funciones. Lo más importante es que la DLL nunca te permitirá conseguir un jarrón extra. Te dará todo lo que quieres y todo lo que no quieres. El programa está escrito de tal manera que ya no puede transportar grandes cantidades de basura; nunca te permitirá llevarte las sobras a casa, de lo contrario te multarán. Esto es un bufé.

El nacimiento de la tecnología DLL facilita la programación.

Windows nos proporciona miles de interfaces de funciones, suficientes para satisfacer las necesidades de la mayoría de los programadores. Además, el propio sistema Windows está compuesto por miles de archivos DLL, que se apoyan entre sí y forman un potente sistema Windows. ¿Qué tamaño tendría Windows si se utilizara tecnología de enlace estático? No me atrevo a pensar en eso.

2. API de interfaz de programación de aplicaciones

Arriba hicimos un análisis general de la tecnología DLL, en el que mencioné "interfaz". ¿Qué es esto? Dado que la DLL no se puede incluir en un programa como un archivo de biblioteca estática, cómo informarle al programa el código y los archivos que implementan la función se convierte en un problema. Microsoft ha creado una especificación estándar para la tecnología DLL, creando un archivo DLL como un queso con muchos agujeros, y cada agujero está marcado con el nombre de la función almacenada en su interior. Siempre que el programa encuentre los agujeros relevantes de acuerdo con las especificaciones estándar, podrá obtener la deliciosa comida que desea. Este agujero es la "interfaz de programación de aplicaciones". La interfaz de cada DLL es diferente para minimizar la duplicación de código. En palabras de Steven: API es una caja de herramientas. Sacas el destornillador y la llave según sea necesario y los vuelves a colocar después de usarlos. En Windows, los tres archivos DLL básicos son kernel32.dll, user32.dll y gdi32.dll. Juntos forman el marco básico del sistema.

En tercer lugar, DLL y caballo de Troya

DLL es código compilado. Excepto que no se puede ejecutar de forma independiente y requiere llamadas de programa, no es muy diferente de los programas normales. Entonces, ¿cuál es la relación entre DLL y el caballo de Troya? Si ha aprendido a programar y escrito DLL, encontrará que el código de DLL es casi el mismo que el de otros programas, pero la interfaz y el método de inicio son diferentes. Siempre que se cambie la entrada del código, la DLL se convertirá en un programa independiente. Por supuesto, no existe ninguna lógica de programa en los archivos DLL. Esto no significa DLL=EXE. Sin embargo, una DLL todavía puede considerarse como un EXE sin una entrada principal, y cada función funcional con una DLL puede considerarse como varios módulos funcionales de un programa. DLL Trojan consiste en escribir el código que implementa la función del caballo de Troya y algunos códigos especiales en un archivo DLL para exportar API relacionadas. A los ojos de otros, esto es solo una DLL ordinaria, pero esta DLL tiene una función completa de caballo de Troya. Este es el concepto de caballo de Troya DLL. Algunas personas pueden preguntar, dado que el mismo código puede implementar la función del caballo de Troya, entonces puede escribir el programa directamente. ¿Por qué escribirlo como una DLL? Esto es para ocultarlo, porque cuando se ejecuta la DLL, se bloquea directamente en el proceso del programa que la llama y no se generan otros procesos, por lo que es difícil de detectar en comparación con los troyanos EXE tradicionales.

Cuarto, operación de DLL

Aunque la DLL no se puede ejecutar por sí sola, Windows necesita una función de entrada al cargar la DLL, al igual que el archivo principal del EXE; de lo contrario, el sistema no puede hacer referencia a la DLL. Por lo tanto, de acuerdo con la especificación escrita, Windows debe encontrar y ejecutar una función DllMain en la DLL como base para cargar la DLL. Esta función no se exporta como API, sino que es una función interna. La función DllMain permite mantener la DLL en la memoria. Algunos archivos DLL no tienen una función DllMain pero aún se pueden usar. Esto se debe a que cuando Windows no puede encontrar DllMain, busca una función DllMain predeterminada de otra biblioteca de tiempo de ejecución para iniciar la DLL y poder cargarla. Esto no significa que la DLL pueda abandonar la función DllMain.

5. Análisis técnico del troyano DLL

En este punto usted puede estar pensando, dado que los troyanos DLL tienen tantos beneficios, ¿no sería bueno usar DLL para escribir troyanos en el ¿futuro? Esto es cierto, pero los troyanos DLL no son tan fáciles de escribir como algunas personas piensan. Para escribir una DLL troyana utilizable, necesita saber más.

1. El cuerpo principal del caballo de Troya

No escriba el módulo del caballo de Troya como una biblioteca API. Esto no es desarrollo de WINAPI. El troyano DLL puede exportar varias funciones auxiliares, pero debe haber un proceso responsable de la ejecución del código principal; de lo contrario, el DLL solo puede ser un conjunto de funciones API fragmentadas, y mucho menos funcionar.

Si se trata de algún código de uso común, puede escribir algunas funciones internas para su propio código en la DLL, en lugar de abrir todo el código como una interfaz, lo que será difícil de llamar, y mucho menos reproducir un role. .

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

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

En Windows, cada proceso tiene su propio espacio de memoria privado y otros procesos no pueden operar este dominio privado. Pero, de hecho, todavía podemos usar varios métodos para acceder y operar la memoria privada del proceso. Este método se llama incrustación dinámica, que es una tecnología que incrusta su propio código en el proceso en ejecución. Hay muchos tipos de incrustación dinámica, los más comunes son la tecnología de gancho, API y subproceso remoto. La mayoría de los troyanos DLL ahora utilizan tecnología de subprocesos remotos para suprimirse en un proceso normal del sistema. De hecho, la incrustación dinámica no es infrecuente.

El controlador MouseWare de Logitech suspende todos los procesos del sistema. -_-

La tecnología RemoteThread funciona creando un hilo remoto en otro proceso para ingresar al espacio de direcciones de memoria de ese proceso. En el contexto de los troyanos DLL, esta técnica también se conoce como "inyección". Cuando el vector crea un subproceso remoto en el proceso inyectado y le ordena que cargue la DLL, el troyano se bloquea y se ejecuta y no genera un nuevo proceso. Si desea detener el troyano, debe detener el proceso que bloquea la DLL del troyano. Sin embargo, muchas veces estamos indefensos: tiene algo que ver con Explorer.exe. ¿Está seguro de que desea cerrar Windows?

3. Trojan Startup Company

Algunas personas pueden estar impacientes por decir que simplemente agregue esta DLL al proyecto de inicio del sistema. La respuesta es no. Como se mencionó anteriormente, 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 caballo de Troya se ejecute, necesita un EXE para utilizar tecnología de incrustación dinámica para permitir que la DLL se ponga al día con otros procesos normales. Deje que el proceso integrado llame a la función DllMain de esta DLL para simular la ejecución del caballo de Troya. EXE que inició el caballo de Troya deja de ejecutarse y el caballo de Troya se inició.

El EXE que inicia el troyano DLL juega un papel importante. Se llama cargador. Sin un cargador, un troyano DLL es sólo un montón de basura. Por lo tanto, un troyano DLL maduro intentará proteger su cargador para que no se corrompa fácilmente. ¿Recuerdas la historia de la colusión? Los troyanos DLL son la vergüenza de subirse al cargador de lobos.

Los cargadores pueden ser diversos y algunos troyanos DLL también utilizan Windows rundll32.exe como cargador. Generalmente, este troyano no tiene tecnología de incrustación dinámica y se ejecuta directamente con el proceso rundll32. Utilice el método rundll32 (rundll32.exe [nombre dll], [función] [parámetro]) para hacer referencia a la función de inicio de esta DLL, como llamar a una API. y simular el módulo troyano para iniciar la ejecución. Incluso si mata rundll32, el troyano todavía existe. Uno de los ejemplos más comunes es el verdadero nombre chino 3721, aunque no es Troya.

Algunos troyanos también utilizan la clave AppInit_DLLs del registro para ejecutarse, como el virus de la carta de presentación. El uso del registro para iniciar permite que el sistema ejecute DllMain para lograr el propósito de iniciar el caballo de Troya. Debido a que es transferido por el kernel, la estabilidad de esta DLL es muy alta. Un pequeño error provocará que el sistema falle, por lo que este tipo de caballo de Troya rara vez se ve.

Svchost.exe inicia algunos troyanos DLL más sofisticados. Este troyano DLL debe escribirse como NT-Service. Su función de entrada es ServiceMain, que generalmente es muy pequeña. Sin embargo, el ocultamiento de este troyano es bueno y el cargador lo garantiza.

4. Otros

Todos aquí deberían saber algo sobre los troyanos DLL. ¿De verdad quieres escribir uno? No te preocupes, no sé si lo has pensado. Dado que los troyanos DLL son tan buenos, ¿por qué se pueden encontrar tan pocos troyanos DLL hasta ahora? Ahora déjame echarle agua fría. Sólo hay una razón importante: debido a que el troyano DLL se ejecuta con el proceso del sistema, si no está bien escrito, por ejemplo, no hay código para evitar que se ejecute incorrectamente o no hay una especificación estricta de la entrada del usuario, el DLL error y bloqueo. No se ponga nervioso, el EXE general morirá así, pero la falla de la DLL hará que el programa que se cuelga sufra. No olvides que se cuelga del proceso del sistema, el final es... terrible. Por lo tanto, escribir un troyano DLL público requerirá más esfuerzo de depuración que un troyano EXE normal, y me molestará si escribo demasiado...

6. Descubrimiento y eliminación de troyanos DLL

Revise los elementos de inicio con frecuencia para detectar elementos más inexplicables. Aquí es donde está el cargador. Mientras mates al lobo, ya no podrás volverte loco. La ontología del troyano DLL es difícil de encontrar, por lo que es necesario tener ciertos conocimientos de programación y capacidades de análisis. Puede verificar el nombre del DLL en el cargador o ver si se engancha algún DLL extraño en el proceso, pero así es. difícil para principiantes... En resumen, es difícil, por lo que el método más sencillo es: software antivirus y firewall (no es una panacea, no lo uses durante mucho tiempo).

上篇: Perfil del autor de Michelle 下篇: ¿Cuáles son las cuatro constelaciones listas para funcionar el próximo mes?
Artículos populares