Maison de Lore | Petite attaque de bin
Reading time: 3 minutes
tip
Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)
Soutenir HackTricks
- Vérifiez les plans d'abonnement !
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez nous sur Twitter 🐦 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PRs au HackTricks et HackTricks Cloud dépôts github.
Informations de base
Code
- Vérifiez celui de https://ctf-wiki.mahaloz.re/pwn/linux/glibc-heap/house_of_lore/
- Cela ne fonctionne pas
- Ou : https://github.com/shellphish/how2heap/blob/master/glibc_2.39/house_of_lore.c
- Cela ne fonctionne pas même s'il essaie de contourner certaines vérifications en obtenant l'erreur :
malloc(): unaligned tcache chunk detected
- Cet exemple fonctionne encore : https://guyinatuxedo.github.io/40-house_of_lore/house_lore_exp/index.html
Objectif
- Insérer un faux petit morceau dans le petit bin afin qu'il soit possible de l'allouer.
Notez que le petit morceau ajouté est le faux que l'attaquant crée et non un faux à une position arbitraire.
Exigences
- Créer 2 faux morceaux et les lier ensemble et avec le morceau légitime dans le petit bin :
fake0.bk
->fake1
fake1.fd
->fake0
fake0.fd
->legit
(vous devez modifier un pointeur dans le morceau de petit bin libéré via une autre vulnérabilité)legit.bk
->fake0
Vous pourrez alors allouer fake0
.
Attaque
- Un petit morceau (
legit
) est alloué, puis un autre est alloué pour éviter la consolidation avec le morceau supérieur. Ensuite,legit
est libéré (le déplaçant vers la liste des bins non triés) et un morceau plus grand est alloué, déplaçantlegit
vers le petit bin. - Un attaquant génère quelques faux petits morceaux et effectue les liaisons nécessaires pour contourner les vérifications de validité :
fake0.bk
->fake1
fake1.fd
->fake0
fake0.fd
->legit
(vous devez modifier un pointeur dans le morceau de petit bin libéré via une autre vulnérabilité)legit.bk
->fake0
- Un petit morceau est alloué pour obtenir legit, rendant
fake0
le premier de la liste des petits bins - Un autre petit morceau est alloué, obtenant
fake0
comme morceau, permettant potentiellement de lire/écrire des pointeurs à l'intérieur.
Références
- 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
Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)
Soutenir HackTricks
- Vérifiez les plans d'abonnement !
- Rejoignez le 💬 groupe Discord ou le groupe telegram ou suivez nous sur Twitter 🐦 @hacktricks_live.
- Partagez des astuces de hacking en soumettant des PRs au HackTricks et HackTricks Cloud dépôts github.