mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-22 20:53:37 +00:00
Translated ['network-services-pentesting/pentesting-ftp/README.md'] to c
This commit is contained in:
parent
81572a4d9e
commit
8af2c08ced
1 changed files with 19 additions and 15 deletions
|
@ -4,11 +4,11 @@
|
|||
|
||||
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks云 ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 推特 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 YouTube 🎥</strong></a></summary>
|
||||
|
||||
* 你在一家**网络安全公司**工作吗?想要在HackTricks中**宣传你的公司**吗?或者你想要**获取PEASS的最新版本或下载HackTricks的PDF**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 你在一家**网络安全公司**工作吗?想要在HackTricks中看到你的**公司广告**吗?或者你想要**获取PEASS的最新版本或下载HackTricks的PDF**吗?请查看[**订阅计划**](https://github.com/sponsors/carlospolop)!
|
||||
* 发现我们的独家[**NFTs**](https://opensea.io/collection/the-peass-family)收藏品——[**The PEASS Family**](https://opensea.io/collection/the-peass-family)
|
||||
* 获取[**官方PEASS和HackTricks周边产品**](https://peass.creator-spring.com)
|
||||
* **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](https://t.me/peass),或者**关注**我在**推特**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* **通过向[hacktricks仓库](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud仓库](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧**。
|
||||
* **加入**[**💬**](https://emojipedia.org/speech-balloon/) [**Discord群组**](https://discord.gg/hRep4RUj7f)或[**电报群组**](https://t.me/peass),或者**关注**我在**Twitter**上的[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
|
||||
* **通过向[hacktricks repo](https://github.com/carlospolop/hacktricks)和[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)提交PR来分享你的黑客技巧**。
|
||||
|
||||
</details>
|
||||
|
||||
|
@ -32,11 +32,11 @@ PORT STATE SERVICE
|
|||
```
|
||||
### 主动连接和被动连接
|
||||
|
||||
在**主动FTP**中,FTP **客户端**首先从其端口N向FTP服务器的命令端口(端口21)**发起**控制**连接**。然后,**客户端****监听**端口**N+1**并将端口N+1发送给FTP服务器。FTP **服务器**然后从其端口M**向FTP客户端的端口N+1**发起数据**连接**。
|
||||
在**主动FTP**中,FTP **客户端**首先从其端口N向FTP服务器的命令端口(端口21)**发起**控制**连接**。然后,**客户端****监听**端口**N+1**并将端口N+1发送给FTP服务器。FTP **服务器**然后从其端口M向FTP客户端的端口N+1**发起**数据**连接**。
|
||||
|
||||
但是,如果FTP客户端设置了控制来自外部的传入数据连接的防火墙,则主动FTP可能会有问题。因此,被动FTP是一个可行的解决方案。
|
||||
|
||||
在**被动FTP**中,客户端从其端口N向FTP服务器的端口21**发起**控制**连接**。之后,客户端发出**passv命令**。服务器然后向客户端发送其一个端口号M。然后,**客户端**从其端口P**向FTP服务器的端口M**发起数据**连接**。
|
||||
在**被动FTP**中,客户端从其端口N向FTP服务器的端口21**发起**控制**连接**。之后,客户端发出**passv命令**。服务器然后向客户端发送其一个端口号M。然后,**客户端**从其端口P向FTP服务器的端口M**发起**数据**连接**。
|
||||
|
||||
来源:[https://www.thesecuritybuddy.com/vulnerabilities/what-is-ftp-bounce-attack/](https://www.thesecuritybuddy.com/vulnerabilities/what-is-ftp-bounce-attack/)
|
||||
|
||||
|
@ -162,6 +162,10 @@ ftp://anonymous:anonymous@10.10.10.98
|
|||
wget -m ftp://anonymous:anonymous@10.10.10.98 #Donwload all
|
||||
wget -m --no-passive ftp://anonymous:anonymous@10.10.10.98 #Download all
|
||||
```
|
||||
如果您的用户名/密码包含特殊字符,可以使用[以下命令](https://stackoverflow.com/a/113900/13647948):
|
||||
```bash
|
||||
wget -r --user="USERNAME" --password="PASSWORD" ftp://server.com/
|
||||
```
|
||||
## 一些FTP命令
|
||||
|
||||
* **`USER username`**
|
||||
|
@ -171,41 +175,41 @@ wget -m --no-passive ftp://anonymous:anonymous@10.10.10.98 #Download all
|
|||
* **`EPRT |2|127.0.0.1|80|`** 这将指示FTP服务器在IP 127.0.0.1的80端口建立TCP连接(_由"2"表示_)。此命令**支持IPv6**。
|
||||
* **`LIST`** 这将发送当前文件夹中的文件列表
|
||||
* **`LIST -R`** 递归列出(如果服务器允许)
|
||||
* **`APPE /path/something.txt`** 这将指示FTP将从**被动**连接或**PORT/EPRT**连接接收到的数据存储到文件中。如果文件名存在,它将追加数据。
|
||||
* **`STOR /path/something.txt`** 类似于`APPE`,但它将覆盖文件
|
||||
* **`APPE /path/something.txt`** 这将指示FTP将从**被动**连接或**PORT/EPRT**连接接收的数据存储到文件中。如果文件名存在,它将追加数据。
|
||||
* **`STOR /path/something.txt`** 类似于`APPE`,但它会覆盖文件
|
||||
* **`STOU /path/something.txt`** 类似于`APPE`,但如果文件存在,则不执行任何操作。
|
||||
* **`RETR /path/to/file`** 必须建立被动或端口连接。然后,FTP服务器将通过该连接发送指定的文件
|
||||
* **`RETR /path/to/file`** 必须建立被动或端口连接。然后,FTP服务器将通过该连接发送指定的文件。
|
||||
* **`REST 6`** 这将指示服务器在使用`RETR`发送数据时从第6个字节开始。
|
||||
* **`TYPE i`** 设置传输为二进制
|
||||
* **`PASV`** 这将打开一个被动连接,并指示用户可以连接到哪里
|
||||
* **`PASV`** 这将打开一个被动连接,并告知用户可以连接的位置
|
||||
* **`PUT /tmp/file.txt`** 将指定的文件上传到FTP
|
||||
|
||||
![](<../../.gitbook/assets/image (227).png>)
|
||||
|
||||
## FTP反弹攻击
|
||||
|
||||
一些FTP服务器允许使用PORT命令。该命令可用于指示服务器您希望连接到其他FTP服务器的某个端口。然后,您可以使用此功能通过FTP服务器扫描主机的哪些端口是开放的。
|
||||
一些FTP服务器允许使用PORT命令。该命令可用于指示服务器您希望连接到其他FTP服务器的某个端口。然后,您可以使用此功能通过FTP服务器扫描主机的开放端口。
|
||||
|
||||
[**在此了解如何滥用FTP服务器以扫描端口。**](ftp-bounce-attack.md)
|
||||
|
||||
您还可以滥用此行为使FTP服务器与其他协议交互。您可以**上传包含HTTP请求的文件**,并使易受攻击的FTP服务器**将其发送到任意HTTP服务器**(_也许是为了添加新的管理员用户?_),甚至上传FTP请求并使易受攻击的FTP服务器从不同的FTP服务器下载文件。\
|
||||
理论很简单:
|
||||
|
||||
1. **将请求(在文本文件中)上传到易受攻击的服务器。**请记住,如果您想与其他HTTP或FTP服务器通信,您需要更改带有`0x0d 0x0a`的行
|
||||
2. **使用`REST X`避免发送您不想发送的字符**(也许要上传请求到文件中,您需要在开头放置一些图像头)
|
||||
1. **将请求(在文本文件中)上传到易受攻击的服务器。**请记住,如果您想与其他HTTP或FTP服务器通信,您需要更改带有`0x0d 0x0a`的行。
|
||||
2. **使用`REST X`避免发送不想发送的字符**(也许要上传请求到文件中,您需要在开头放置一些图像头部)
|
||||
3. **使用`PORT`连接到任意服务器和服务**
|
||||
4. **使用`RETR`将保存的请求发送到服务器。**
|
||||
|
||||
由于连接不足以使用`RETR`发送数据,这很可能会引发类似**Socket not writable**的错误。尝试避免此错误的建议是:
|
||||
|
||||
* 如果要发送HTTP请求,请**将相同的请求连续发送一次**,直到至少达到**\~0.5MB**。像这样:
|
||||
* 如果要发送HTTP请求,请**重复相同的请求**,直到至少达到**\~0.5MB**。像这样:
|
||||
|
||||
{% file src="../../.gitbook/assets/posts (1).txt" %}
|
||||
posts.txt
|
||||
{% endfile %}
|
||||
|
||||
* 尝试**使用与协议相关的“垃圾”数据填充请求**(与FTP通信时,可能只是垃圾命令或重复`RETR`指令以获取文件)
|
||||
* 只是**使用大量空字符或其他字符填充请求**(分行或不分行)
|
||||
* 尝试使用与协议相关的**"垃圾"数据填充请求**(与FTP通信时,可能只是垃圾命令或重复`RETR`指令以获取文件)
|
||||
* 只需使用大量的空字符或其他字符填充请求(分行或不分行)
|
||||
|
||||
无论如何,这里有一个[关于如何滥用此功能使FTP服务器从不同的FTP服务器下载文件的旧示例。](ftp-bounce-download-2oftp-file.md)
|
||||
|
||||
|
|
Loading…
Reference in a new issue