Un troyano consta de dos partes fundamentales. Un cliente y un servidor.
Cliente, es aquel que usaremos nosotros para conectarnos con nuestro remoto
Servidor, es el que debemos enviar para infectar a nuestro remoto.
A continuación les mostrare como se ve cada uno.

En este caso es el Bifrost versión 1.2d, el cliente de este troyano edita al servidor que viene afuera.
Existen troyanos que son server builder, esto quiere decir que el stub del servidor está adentro del cliente. Como por ejemplo el troyano Spy-Net.

Como vemos en la imagen, solo está el cliente, ya que el mismo cliente se encarga de configurar y crear el servidor. En otras palabras podemos decir que el servidor está adentro del cliente.
Muy rara vez, algunos troyanos suelen venir con un Edit Server que es el que edita los datos de conexión del servidor.
Troyanos públicos y privados
Podemos clasificar los troyanos en dos grandes grupos, en los cuales tenemos los públicos y los privados.
Cuando decimos troyanos públicos, hacemos referencia a troyanos liberados por los programadores, para que cualquier usuario pueda tener acceso a él y lo pueda utilizar libremente.
Los troyanos privados son troyanos que están en venta y deberá pagarse una suma de dinero al programador para poder tener acceso a él. Estos troyanos suelen venir con algún tipo de protección como por ejemplo Hardware ID, acceso con usuario y contraseña entre otro tipo de protecciones para que no puedan ser liberados. También suelen tener opciones adicionales hechas a medida. A demás de esto suelen ser indetectables y vienen con garantía.
A la larga siempre hay alguien que libera los troyanos privados, esto suele ocurrir por que sale una nueva versión y el programador decide liberarlo y vender la nueva versión o también puede ser que algún usuario disconforme con el programador decide crackearlo y liberarlo para que todos tengan acceso a él.
Formas de infección
Existen muchas formas de infecciones que a lo largo de estas entregas iremos desarrollando con mayor claridad. Por ahora solo las nombraremos y detallaremos brevemente.
Infección por P2P: Se les dice P2P a los programas que utilizamos para descargar música, videos, programas, etc. Como lo son el Ares, Emule, Lime Wire, entre otros. La infección por P2P consiste en colocar un servidor de un troyano en la carpeta compartida para que otras personas lo descarguen y se infecten.
Infección por URL: Consiste en subir un server a un host, y por medio de un script hacer que se ejecute solo en el ordenador remoto cuando se visite ese link.
Infección por MSN: La infección por MSN o también conocida como propagación por MSN, consiste en una infección en cadena, ya que se infecta a un contacto, este infecta a los suyos, a su vez esos a los suyos formando una cadena de infección.
Infección por IRC: La infección por IRC suele ser igual a la de MSN ya que infecta a la gente de diferentes canales.
Infección a través de Exploit: Esta otra infección aprovecha fallas de los navegadores para infectar, es algo similar a la infección por URL.
Infección por Cadenas de Mail: son los que suelen venir adjuntos junto con cadenas que recibimos por mail.
Infección por Warez: Esto suele verse en foros en donde usuarios postean programas, y estos suelen venir unidos con algún troyano.
Infección por Autorun: Cada vez que conectamos o insertamos un medio extraíble, ya sea USB, CD-ROM, Etc. Sale una reproducción automática, esta reproducción automática es debido a un Autorun que ejecuta un programa y muestra un icono, lo que se hace es editar ese Autorun para que cuando se conecte un medio extraíble se ejecute automáticamente el server.
Probablemente todos los que usan MSN, mas de una vez habrán visto algún contacto que envía “fotos” o direcciones web un poco inusuales… siempre que encontremos esto, es porque estamos frente a una propagación por MSN.
También es probable que hayamos entrado a una web y el antivirus nos haya dado una alerta, en este caso es porque estamos frente a una infección por URL… Y así encontraremos miles de ejemplos de formas de infección.
Camuflaje
En la actualidad la mayoría de los troyanos traen opciones para ocultar los servidores en ordenadores remotos.
Tenemos por ejemplo los rootkits que suelen venir con el troyano, cuya función es ocultar el servidor en algún proceso, o hacer este proceso invisible para que nuestro remoto se dé cuenta. También tenemos la opción muy usada de cambiar el icono y reemplazarlo por alguno de una imagen, programa, documento, etc. con el fin de que nuestro objetivo piense que es un archivo inofensivo. Otros también suelen unirlo con algún joiner entonces al abrir una imagen, archivo, documento o con lo que haya sido unido, este ejecute a su vez el servidor que viene adentro.
Cuando hablábamos de métodos de infección, es obvio que en todos los casos el servidor va con un camuflaje, ya que de lo contrario nadie lo abriría.
Indetectabilidad
Por ahora lo que nos interesa sabes son las formas de Indetectabilidad que existen.
El Stub es el corazón de nuestro ejecutable. Es el que contiene toda la información que necesitamos que posea nuestro servidor, para que conecte con nosotros.
En todos los métodos de Indetectabilidad, se aplican a ese Stub…
No nombrare todos los métodos, pero si los más importantes:
Por Código Fuente: Consiste en editar el código fuente de algún malware para dejarlo indetectable
Edición Hexadecimal: Se edita el Stub modificando offsets detectados por los antivirus para que estos lo dejen de detectar.
Utilizando un Crypter: Al pasarle un crypter al servidor, este encripta la información del Stub del servidor y lo deja indetectable siempre y cuando el crypter sea FUD.
Ediciones de saltos: Usualmente se utiliza un debugger como por ejemplo el Olly, editando saltos, PUSH, etc.
Existen otros, pero no quiero complicarlos tanto con esto, es por eso que pararemos aquí, y más adelante iremos desarrollando y explicando con tranquilidad los métodos que hay.
¿Cómo selecciono un Troyano?
La mejor forma de seleccionar un troyano, es sabiendo que es lo que se desea hacer, ya que hay troyanos simples, y otros más completos que esta sobre entendido que contienen más opciones, pero tienen la desventajas de no ser muy estables.
Para saber si los troyanos son estables o no, es necesario saber en qué lenguaje fue programado.
Como ya sabrán los lenguajes más potentes son los de más bajo nivel (Binario, ASM), luego siguen los de medio nivel (C/C++), y finalmente los de alto nivel que son el resto (VB, Java, Delphi que son los más usados, entre otros).
Les enseñare rápidamente como identificar en que lenguaje están programados los troyanos.
Con un editor hexadecimal, abrimos el ejecutable y buscamos alguna línea del código que nos diga algo referido al lenguaje con el cual fue programado.
Por ejemplo el Spy-Net

Delphi
Otro ejemplo con el IndSocket RAT

Visual Basic
De esta manera podremos ir viendo con que lenguaje fue hecho y que estabilidad posee.
Estabilidad quiere decir que la conexión no se caiga, o sea que no se nos desconecte cuando la PC remota se reinicie, que no se bloquee el proceso, etc.
Los troyanos más establesa mi parecer esta el xtreme rat y el jrat.
Sigamos con más características…
Necesitamos saber qué Sistema Operativo es el que tiene nuestro objetivo.
En caso de que sea Windows XP, se puede usar el Bifrost, o Poison Ivy que son los más estables. Pero en caso de que sea Windows 7 o Vista, deberemos optar por otro que si sea compatible como lo es el Spy-Net, IndSocket RAT, SS-RAT, Entre otros que a demás tienen muchas más opciones que no trae ni el Bifrost y Poison Ivy, pero con menos estabilidad.
También podemos elegir el Troyano dependiendo de lo que queramos hacer, y dependiendo de las opciones que traiga.
EOF Data
Troyanos como el Bifrost, Turkojan, Biohazard, entre otros poseen algo llamado EOF Data (End Of File Data).
Para saber que es, lo mostrare en una imagen:


Como podemos ver, es el final del código mostrado con un editor hexadecimal, y claramente podemos ver la NO-IP: w300.no-ip.org que es a la DNS que conecta este servidor.
Quiere decir que en el final del código posee información de la conexión.
A la hora de utilizar este tipo de troyanos deberemos usar Crypters con soporte EOF para dejarlos indetectables. Esto se debe a que el crypter copia esa información del final, y la vuelve a dejar igual en el servidor final de forma intacta y sin romperlo para que vuelva a conectar.
muy interesante gracias
ResponderEliminarexcelente explicacion gracias
ResponderEliminarsabes soy novato y me interesa el tema y de antemano te agradezco que te tomes la molestia por compartir con usuarios como yo deseosos de conocimiento e informacion sobre analisis de malware sin obtener ningun beneficio, si no es mucho pedir habria manera que dieras una platica por hangout de google sobre como elegir, configurar, construir e infectar a una persona de manera controlada paa conocer paso a paso el proceso de la incorporacion de malware o algun tutorial o manual en pdf que me compartas, ya que conozco sobre hacking, ingenieria inversa, pero estoy introduciendome en el mundo del analisis de malware pero tengo que empezar como funciona, saludos te felicito sigue adelante
ResponderEliminar