House of Lore | Small bin Attack
Reading time: 3 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)
Aprenda e pratique Hacking Azure: 
HackTricks Training Azure Red Team Expert (AzRTE)
Supporte o 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
- Verifique 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->fake1fake1.fd->fake0fake0.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, movendolegitpara 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->fake1fake1.fd->fake0fake0.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 
fake0a lista superior de pequenos bins - Outro chunk pequeno é alocado, obtendo 
fake0como 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
 
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)
Aprenda e pratique Hacking Azure: 
HackTricks Training Azure Red Team Expert (AzRTE)
Supporte o 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.
 
HackTricks