Otra revisión hacia el mundo del malware. Ampliando la
información.
¿Qué es un joiner?
Es un programa encargado de albergar uno o varios ficheros en su interior. Es decir, tenemos por ejemplo 3 ficheros. Un joiner, se encargaría de juntarlos en 1 solo fichero.
¿Qué es un joiner?
Es un programa encargado de albergar uno o varios ficheros en su interior. Es decir, tenemos por ejemplo 3 ficheros. Un joiner, se encargaría de juntarlos en 1 solo fichero.
Lo más habitual es que no efectúe modificación sobre el
fichero final. Si adjuntamos una foto y un bichito (virus). Cuando termine de
trabajar el joiner, prácticamente siempre el antivirus detectará el fichero que
se ha copiado.
Suele utilizar sistemas de cifrado, ya sea algo complejo o
simple, para ocultar la información que le hemos añadido. Como siempre esto
depende de quien lo este programando.
Imagen de un joiner subido a indetectables.net |
Inclusive es bueno recordar, que no tiene por que tener un fin maligno, como muestra el propio Windows, de serie, trae su propio joiner. Link
¿Para que nos sirve?
Suele ser muy utilizado en el mundo del malware. De forma que podríamos juntar una imagen, un archivo de sonido,y un ejecutable. Irremediablemente el archivo final, tendrá que ser un ejecutable*, pero aparentemente estará limpio.
No obstante, no siempre se utiliza para el mal. Otro ejemplo
rápido, sería un instalador de aplicaciones, contiene todas las carpetas, y librerías
que utilizará el programa final. Y el resultado es sólo un fichero.
¿Hay tipos?
-Un instalador de software.
-Un ocultador de malware.
-Una juntador de peliculas o videos.
-Winrar tambien es un joiner. Convierte varios ficheros en 1.
-Una aplicación que permite juntar trozos de canciones y hacerla 1 solo fichero mp3.
-En resumen. Cualquier aplicación capaz de convertir varios ficheros en 1.
¿Como funciona?
Existen varias formas de hacerlo funcionar pondré 2 a modo ejemplo, si bien
pueden ser muchas más, ya dependerá del programador en cuestión:
-Guardando todos los ficheros en un recurso del programa,
los almacena ahí y luego una secuencia designa en que lugar copiarlos/ejecutarlos/etc.
-Guardando los datos en el EOF (Zona que se encuentra al
final de un ejecutable, y que no afecta al funcionamiento del mismo). Posteriormente
una función se encargaría de detectar la cantidad de ficheros adjuntados,
prepararlos y copiarlos.
¿Puedes ser más técnico?
Sí. Puedo. ¿Siguiente pregunta?
Sí. Puedo. ¿Siguiente pregunta?
Una imagen vale más que 1000 palabras. Explicaré el segundo método,
debido a que es más simple de dibujar.
El final de un fichero, se puede modificar y almacenar, o
esconder ahí información. Es el sistema que se suele utilizar, y el programa
iniciar o joiner no se verá afectado.
Al igual que vimos en un crypter, un joiner tambien suele
disponer de un stub. Este es el que se encarga de detectar la información
adicional. No explicaré como realizarlo debido a que hay mucha información.
El joiner pregunta que ficheros debe adjuntar, el orden en
que se copiaran / ejecutaran, etc. Una vez determinado. Edita el stub, y le
añade al final todos y cada uno de los ficheros. Con una marca para separarlos
ej: *FiN*. O sin marca, todo dependerá del programador. La marca se podría
aprovechar para indicar que tiene que hacer el joiner. *Ejecutar*copiar*borrar*etc
Podría ser una marca perfectamente, que también daría información sobre que
acción realizará el joiner.
El stub... Un poco más a fondo.
Un joiner no destinado a aplicaciones |
Revisará que información se le ha añadido. Y que debe
realizar con esos ficheros. Realmente aquí, el fin lo pone la imaginación. Ya
que es a gusto del consumidor las acciones que podrá realizar. Por poner
algunos ejemplos:
-Ejecutar alguno de los ficheros anexos (ejecución estándar,
no sobre memoria).
-Copiar los ficheros. Para sobrescribir algún fichero de
sistema por ej.
-Podría detectar el sistema operativo, el antivirus, y en
función de eso, ejecutar un fichero u otro.
-Se le podría añadir una función de descifrar, para poderle
adjuntar los ficheros cifrados, y complicar un poquito el análisis.
*También podría ser un zip, rar,mp3,avi, etc, pero no quería
extenderme demasiado. Y me enfoco a joiners del tipo software.
NOTA IMPORTANTE: Toda esta información es para aquellos que os dedicáis al análisis, detección, programación, por hobby o por trabajo. Nunca deberá ser utilizada para cometer maldades... Sobra recordar que ir infectando máquinas por ahí es un delito y tiene penas de prisión.