Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: all en 12 Febrero 2017, 20:27 pm



Título: Script para ejecutar oculto un bat
Publicado por: all en 12 Febrero 2017, 20:27 pm
 Hola amigos y gracias de antemano. De mas esta decirles que no soy muy bueno en esto de la programacion de script, pero la verdad me viene una duda y aunque lo he googleado no me ha aparecido nada.
 Sabemos que para ejecutar un bat oculto con un script seria:

Código
  1. set objshell = createobject("wscript.shell")
  2. objshell.run "Payload.bat",vbhide

 Bien pero para eso tiene que estar el bat en el mismo lugar del script. La pregunta seria como hago para que el script este en otra carpeta, el bat en una usb x y que cuando ponga la usb el script me encuentre la usb y el bat y lo ejecute. No se si me hago explicar

Lo que quiero hacer es ejecuta un bat que este en la usb en la raiz y poner el script en una carpeta, que cuando lo ejecute, me localize la usb y el bat y lo ejecute de modo oculto. Como les digo gracias de antemanos


Título: Re: Script para ejecutar oculto un bat
Publicado por: Eleкtro en 12 Febrero 2017, 21:45 pm
Hola.

Con el intrumental de administración de windows (a.k.a WMI) puedes hacer todo lo que necesitas. Puedes suscribirte a eventos del sistema, como al evento de inserción o la extracción de dispositivos extraibles, y obtener la información deseada del dispositivo. Lee sobre las classes de WMI en la MSDN: https://msdn.microsoft.com/en-us/library/aa394084%28v=vs.85%29.aspx

Aquí abajo te dejo este código que hice, completamente funcional. Adáptalo a tus necesidades si es necesario.

Código
  1. Option Explicit
  2.  
  3. Dim dirPath, filename, driveLetter, fullFilePath, _
  4.    fso, shell, wmi, wmiQuery, wmiEvent
  5.  
  6. dirPath  = ""
  7. filename = "Payload.bat"
  8.  
  9. Set fso      = CreateObject("Scripting.FileSystemObject")
  10. set shell    = createobject("wscript.shell")
  11. Set wmi      = GetObject("winmgmts:\\.\root\cimv2")
  12. Set wmiQuery = wmi.ExecNotificationQuery( _
  13.               "Select * From __InstanceCreationEvent Within 2" & _
  14.                           " Where TargetInstance ISA 'Win32_LogicalDisk'")
  15.  
  16. Do While True
  17.    Set wmiEvent = wmiQuery.NextEvent()
  18.  
  19.    If (wmiEvent.TargetInstance.DriveType = 2) And _
  20.       (wmiEvent.Path_.Class = "__InstanceCreationEvent") Then
  21.  
  22.        driveLetter  = wmiEvent.TargetInstance.DeviceId
  23.        fullFilePath = driveLetter & "\" & dirPath & filename
  24.  
  25.        Wscript.Echo "Drive " & driveLetter & " has been connected."
  26.  
  27.        If ( fso.FileExists(fullFilePath) ) Then
  28.            Wscript.Echo "Running " & """" & fullFilePath & """" & "..."
  29.            Call shell.run(fullFilePath, 0)
  30.            ' Exit Do
  31.        Else
  32.            Wscript.Echo """" & fullFilePath & """" & " not found."
  33.  
  34.        End If
  35.  
  36.    End If
  37.  
  38.    Set wmiEvent = Nothing
  39. Loop

¡Saludos!


Título: Re: Script para ejecutar oculto un bat
Publicado por: all en 12 Febrero 2017, 23:09 pm
 Genial, pero la verdad, no sale oculto, me pone carteles que me haria falta no salieran. Te pregunto y si quisiera que no me lo agregara a un evento sino, que pusiera el bat en la raiz del usb X, y que teniendo el script en una carpeta de ese mismo usb, se me ejecutara oculto el bat, como lo puedo hacer


Título: Re: Script para ejecutar oculto un bat
Publicado por: Eleкtro en 13 Febrero 2017, 04:43 am
no sale oculto, me pone carteles que me haria falta no salieran.

No se a que te refieres por "carteles". El código de arriba llama a la función wscript.shell.run() pasándole la constante vbHide (0), es decir, oculto.

En un foro de programación la información detallada es esencial para poder entender sin malinterpretaciones y ayudar a resolver un problema. Intenta ser más específico.



Te pregunto y si quisiera que no me lo agregara a un evento sino

Se te ha entregado practicamente todo el trabajo regalado con el script de arriba. Como ya dije en su momento, puedes adaptarlo a tus necesidades. No voy a modificar el script que compartí, pero si puedo guiarte en como puedes implementar por ti mismo las modificaciones que necesites llevar a cabo...

que pusiera el bat en la raiz del usb X, y que teniendo el script en una carpeta de ese mismo usb, se me ejecutara oculto el bat, como lo puedo hacer

Puedes copiar un archivo llamando al método FileSystemObject.Copy(). Aquí tienes la documentación y ejemplos de uso:
  • FileSystemObject.Copy() Method | MSDN (https://msdn.microsoft.com/en-us/library/6973t06a%28v=vs.84%29.aspx)

Lo de ejecutar un archivo en modo oculto ya sabes hacerlo, pero aun así te dejo por aquí la documentación oficial de MSDN también:
  • WScript.Shell.Run() Method | MSDN (https://msdn.microsoft.com/en-us/library/d5fk67ky%28v=vs.84%29.aspx)

¡Saludos!


Título: Re: Script para ejecutar oculto un bat
Publicado por: all en 13 Febrero 2017, 06:11 am
 Disculpe hermano, si lo he ofendido, no era mi intencion, lo que el que no sabe es como el que no ve y solo necesito que e orientes, el codigo genial, incluso me super sirve, y no, no hace falta que lo modifique, disculpe nuevamente. Aquile pongo las foto de los carteles que me salen:

http://subefotos.com/ver/?5e7abfdc69ad806e16251b1cf0bca347o.jpg

http://subefotos.com/ver/?b55352fca778f63200a01c38c0b50b81o.jpg

 Como le dije antes, muchas gracias y disculpe si lo he molestado


Título: Re: Script para ejecutar oculto un bat
Publicado por: Eleкtro en 13 Febrero 2017, 12:15 pm
Aquile pongo las foto de los carteles que me salen:

http://subefotos.com/ver/?5e7abfdc69ad806e16251b1cf0bca347o.jpg

http://subefotos.com/ver/?b55352fca778f63200a01c38c0b50b81o.jpg

Hola.

Por lo que mencionas, es obvio que estás teniendo alguna dificultad para comprender lo que ocurre y como solucionarlo. Entonces deberías tratar de leer algún tutorial para aprender el uso básico del lenguaje que estás manipulando antes de intentar ponerte a trabajar con códigos que te resulten difíciles. Solo es un consejo personal.

En el código que te mostré arriba, para que no se te muestren las cajas de mensaje simplemente debes comentar (o borrar) las lineas nº 28 y nº 32... donde dice Wscript.Echo .... O también puedes solucionarlo utilizando CScript.exe en lugar de WScript.exe/doble-click para ejecutar el script.

Lee esto (la documentación es para el lenguaje VB.NET, pero se aplica a VBS también):
  • Comments in Code (Visual Basic) | MSDN (https://msdn.microsoft.com/en-us/library/bx185bk6.aspx)

¡Saludos!


Título: Re: Script para ejecutar oculto un bat
Publicado por: all en 17 Febrero 2017, 01:17 am
 Todo ok, gracias, supero mis espectativas. Agradecido