2
0
Fork 0
mirror of https://github.com/carlospolop/hacktricks synced 2024-12-22 02:53:28 +00:00
hacktricks/binary-exploitation/libc-heap/house-of-lore.md
2024-12-12 13:56:11 +01:00

4.8 KiB

House of Lore | Ataque Small bin

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

Apoie o HackTricks
{% endhint %}

Informações Básicas

Código

Objetivo

  • Inserir um fake small chunk no small bin para que seja possível alocá-lo.
    Observe que o small chunk adicionado é o falso criado pelo atacante e não um falso em uma posição arbitrária.

Requisitos

  • Criar 2 chunks falsos e vinculá-los juntos e com o chunk legítimo no small bin:
  • fake0.bk -> fake1
  • fake1.fd -> fake0
  • fake0.fd -> legit (você precisa modificar um ponteiro no chunk do small bin liberado por meio de alguma outra vulnerabilidade)
  • legit.bk -> fake0

Então você poderá alocar fake0.

Ataque

  • Um pequeno chunk (legit) é alocado, em seguida, outro é alocado para evitar a consolidação com o top chunk. Em seguida, legit é liberado (movendo-o para a lista de bins não ordenados) e um chunk maior é alocado, movendo legit para o small bin.
  • Um atacante gera alguns chunks pequenos falsos e faz as ligações necessárias para contornar as verificações de integridade:
  • fake0.bk -> fake1
  • fake1.fd -> fake0
  • fake0.fd -> legit (você precisa modificar um ponteiro no chunk do small bin liberado por meio de alguma outra vulnerabilidade)
  • legit.bk -> fake0
  • Um pequeno chunk é alocado para obter legit, fazendo com que fake0 entre na lista superior dos small bins
  • Outro pequeno chunk é alocado, obtendo fake0 como um chunk, permitindo potencialmente ler/escrever ponteiros dentro dele.

Referências

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

Apoie o HackTricks
{% endhint %}