hacktricks/binary-exploitation/libc-heap/overwriting-a-freed-chunk.md
2024-12-12 13:56:11 +01:00

3.8 KiB

Sobrescrevendo um pedaço liberado

{% hint style="success" %} Aprenda e pratique Hacking AWS: HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)

Apoie o HackTricks
{% endhint %}

Várias das técnicas propostas de exploração de heap precisam ser capazes de sobrescrever ponteiros dentro de pedaços liberados. O objetivo desta página é resumir as vulnerabilidades potenciais que poderiam conceder esse acesso:

Simples Uso Após Liberação

Se for possível para o atacante escrever informações em um pedaço liberado, ele poderia abusar disso para sobrescrever os ponteiros necessários.

Dupla Liberação

Se o atacante puder liberar duas vezes o mesmo pedaço (liberar outros pedaços entre eles potencialmente) e fazer com que ele seja 2 vezes no mesmo bin, seria possível para o usuário alocar o pedaço posteriormente, escrever os ponteiros necessários e então alocá-lo novamente acionando as ações do pedaço sendo alocado (por exemplo, ataque de fast bin, ataque de tcache...)

Estouro de Heap

Pode ser possível estourar um pedaço alocado tendo em seguida um pedaço liberado e modificar alguns cabeçalhos/ponteiros dele.

Estouro por um

Neste caso, seria possível modificar o tamanho do pedaço seguinte na memória. Um atacante poderia abusar disso para fazer com que um pedaço alocado tenha um tamanho maior, então liberá-lo, fazendo com que o pedaço seja adicionado a um bin de um tamanho diferente (maior), então alocar o tamanho falso, e o ataque terá acesso a um pedaço com um tamanho maior do que realmente é, concedendo assim uma situação de sobreposição de pedaços, que é explorável da mesma forma que um estouro de heap (verifique a seção anterior).

{% hint style="success" %} Aprenda e pratique Hacking AWS: HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)

Apoie o HackTricks
{% endhint %}