FTP 下载方法

另一种传输文件的方法是使用 FTP(文件传输协议),它使用端口 TCP/21 和 TCP/20。我们可以使用FTP客户端或PowerShell Net.WebClient从FTP服务器下载文件。

我们可以使用 Python3 模块在攻击主机中配置 FTP 服务器pyftpdlib。可以使用以下命令安装它:

安装 FTP 服务器 Python3 模块 - pyftpdlib

Windows 文件传输方法

AcesMin@htb[/htb]$ sudo pip3 install pyftpdlib

然后我们可以指定端口号 21,因为默认情况下pyftpdlib使用端口 2121。如果我们不设置用户和密码,则默认启用匿名身份验证。

设置 Python3 FTP 服务器

Windows 文件传输方法

AcesMin@htb[/htb]$ sudo python3 -m pyftpdlib --port 21

[I 2022-05-17 10:09:19] concurrency model: async
[I 2022-05-17 10:09:19] masquerade (NAT) address: None
[I 2022-05-17 10:09:19] passive ports: None
[I 2022-05-17 10:09:19] >>> starting FTP server on 0.0.0.0:21, pid=3210 <<<

FTP服务器设置完成后,我们可以使用Windows或PowerShell中预装的FTP客户端进行文件传输Net.WebClient

使用 PowerShell 从 FTP 服务器传输文件

当我们在远程机器上获得 shell 时,我们可能没有交互式 shell。如果是这样,我们可以创建一个 FTP 命令文件来下载文件。首先,我们需要创建一个包含我们要执行的命令的文件,然后使用 FTP 客户端使用该文件下载该文件。

创建FTP客户端命令文件并下载目标文件


上传操作

还有一些情况,比如密码破解、分析、渗透等,我们必须将文件从目标机器上传到我们的攻击主机中。我们可以使用与下载操作相同的方法,但现在用于上传。让我们看看如何通过各种方式完成文件上传。


PowerShell Base64 编码和解码

我们了解了如何使用 Powershell 解码 Base64 字符串。现在,让我们执行相反的操作并对文件进行编码,以便我们可以在攻击主机上对其进行解码。

使用 PowerShell 对文件进行编码

我们复制此内容并将其粘贴到我们的攻击主机中,使用base64命令对其进行解码,然后使用md5sum应用程序确认传输正确发生。

在 Linux 中解码 Base64 字符串

最后更新于

这有帮助吗?