mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-26 14:40:37 +00:00
5.4 KiB
5.4 KiB
Huis van Einherjar
{% hint style="success" %}
Leer & oefen AWS-hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP-hacking: HackTricks Training GCP Red Team Expert (GRTE)
Ondersteun HackTricks
- Controleer de abonnementsplannen!
- Sluit aan by die 💬 Discord-groep of die telegram-groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking-truuks deur PR's in te dien by die HackTricks en HackTricks Cloud github-opslag.
Basiese Inligting
Kode
- Kontroleer die voorbeeld van https://github.com/shellphish/how2heap/blob/master/glibc_2.35/house_of_einherjar.c
- Of dié van https://guyinatuxedo.github.io/42-house_of_einherjar/house_einherjar_exp/index.html#house-of-einherjar-explanation (jy mag die tcache moet vul)
Doel
- Die doel is om geheue by amper enige spesifieke adres toe te ken.
Vereistes
- Skep 'n vals stuk wanneer ons 'n stuk wil toeken:
- Stel aanwysers in om na homself te wys om sinnigheidskontroles te omseil
- Een-byte oorvloei met 'n nulbyte van een stuk na die volgende om die
PREV_INUSE
-vlag te wysig. - Dui in die
prev_size
van die off-by-null misbruikte stuk die verskil tussen homself en die vals stuk aan - Die grootte van die vals stuk moet ook dieselfde grootte wees om sinnigheidskontroles te omseil
- Vir die konstruksie van hierdie stukke, sal jy 'n hoop lek nodig hê.
Aanval
n Vals stuk word binne 'n stuk wat deur die aanvaller beheer word, geskep wat met
fden
bk` na die oorspronklike stuk wys om beskerming te omseil- 2 ander stukke (
B
enC
) word toegewys - Deur die off by one in die
B
een te misbruik, word dieprev in use
-bit skoongemaak en dieprev_size
-data word oorskryf met die verskil tussen die plek waar dieC
-stuk toegewys is, na die valsA
-stuk wat voorheen gegenereer is - Hierdie
prev_size
en die grootte in die vals stukA
moet dieselfde wees om kontroles te omseil. - Dan word die tcache gevul
- Dan word
C
vrygestel sodat dit konsolideer met die vals stukA
- Dan word 'n nuwe stuk
D
geskep wat in die valsA
-stuk begin en dieB
-stuk dek - Die huis van Einherjar eindig hier
- Dit kan voortgesit word met 'n vinnige bin-aanval of Tcache-vergiftiging:
- Stel
B
vry om dit by die vinnige bin / Tcache te voeg B
sefd
word oorskryf sodat dit na die teikenadres wys deur dieD
-stuk te misbruik (omdat ditB
binne bevat)- Dan word 2 mallocs gedoen en die tweede een gaan die teikenadres toeken
Verwysings en ander voorbeelde
- https://github.com/shellphish/how2heap/blob/master/glibc_2.35/house_of_einherjar.c
- CTF https://ctf-wiki.mahaloz.re/pwn/linux/glibc-heap/house_of_einherjar/#2016-seccon-tinypad
- Nadat aanwysers vrygestel word, word hulle nie genullifiseer nie, dus is dit steeds moontlik om by hulle data te kom. Daarom word 'n stuk in die ongesorteerde bin geplaas en die aanwysers wat dit bevat, gelek (libc-lek) en dan word 'n nuwe hoop op die ongesorteerde bin geplaas en word 'n hoopadres gelek van die aanwyser wat dit kry.
- baby-talk. DiceCTF 2024
- Nul-byte oorvloei-fout in
strtok
. - Gebruik Huis van Einherjar om 'n situasie van oorvleuelende stukke te kry en eindig met Tcache-vergiftiging om 'n arbitrêre skryfprimitief te kry.
{% hint style="success" %}
Leer & oefen AWS-hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP-hacking: HackTricks Training GCP Red Team Expert (GRTE)
Ondersteun HackTricks
- Kontroleer die abonnementsplannen!
- Sluit aan by die 💬 Discord-groep of die telegram-groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking-truuks deur PR's in te dien by die HackTricks en HackTricks Cloud github-opslag.