mirror of
https://github.com/carlospolop/hacktricks
synced 2024-12-18 17:16:10 +00:00
4.8 KiB
4.8 KiB
House of Lore | Small bin Attack
{% 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)
Support HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.
Informações Básicas
Código
- Confira o de https://ctf-wiki.mahaloz.re/pwn/linux/glibc-heap/house_of_lore/
- Isso não está funcionando
- Ou: https://github.com/shellphish/how2heap/blob/master/glibc_2.39/house_of_lore.c
- Isso não está funcionando mesmo que tente contornar algumas verificações, gerando o erro:
malloc(): unaligned tcache chunk detected
- Este exemplo ainda está funcionando: https://guyinatuxedo.github.io/40-house_of_lore/house_lore_exp/index.html
Objetivo
- Inserir um chunk pequeno falso no pequeno bin para que seja possível alocá-lo.
Note que o chunk pequeno adicionado é o falso que o atacante cria 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 pequeno bin:
fake0.bk
->fake1
fake1.fd
->fake0
fake0.fd
->legit
(você precisa modificar um ponteiro no chunk do pequeno bin liberado via alguma outra vulnerabilidade)legit.bk
->fake0
Então você poderá alocar fake0
.
Ataque
- Um chunk pequeno (
legit
) é alocado, então outro é alocado para evitar a consolidação com o chunk superior. Em seguida,legit
é liberado (movendo-o para a lista de bin não ordenados) e um chunk maior é alocado, movendolegit
para o pequeno bin. - Um atacante gera alguns chunks pequenos falsos e faz a vinculação necessária para contornar as verificações de sanidade:
fake0.bk
->fake1
fake1.fd
->fake0
fake0.fd
->legit
(você precisa modificar um ponteiro no chunk do pequeno bin liberado via alguma outra vulnerabilidade)legit.bk
->fake0
- Um chunk pequeno é alocado para obter legit, tornando
fake0
a lista superior de pequenos bins - Outro chunk pequeno é alocado, obtendo
fake0
como um chunk, permitindo potencialmente ler/escrever ponteiros dentro dele.
Referências
- https://ctf-wiki.mahaloz.re/pwn/linux/glibc-heap/house_of_lore/
- https://heap-exploitation.dhavalkapil.com/attacks/house_of_lore
- https://guyinatuxedo.github.io/40-house_of_lore/house_lore_exp/index.html
{% 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)
Support HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.