Sobrescrevendo um chunk liberado

Reading time: 2 minutes

tip

Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks

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

Uso Simples Após Liberação

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

Liberação Dupla

Se o atacante puder free duas vezes o mesmo chunk (liberando outros chunks entre potencialmente) e fazê-lo estar 2 vezes no mesmo bin, seria possível para o usuário alocar o chunk mais tarde, escrever os ponteiros necessários e então alocá-lo novamente, acionando as ações do chunk sendo alocado (por exemplo, ataque de fast bin, ataque de tcache...)

Overflow de Heap

Pode ser possível transbordar um chunk alocado tendo ao lado um chunk liberado e modificar alguns cabeçalhos/ponteiros dele.

Overflow de Um a Menos

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

tip

Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks