Aller au contenu principal
Toutes les catégories

Linux

10 articles
Le pwn, c'est quoi exactement ?
Featured
Pwn·4 min

Le pwn, c'est quoi exactement ?

PWN, ou Perfectly Owned : l'art de prendre le contrôle d'un programme exécutable. On pose la définition à notre sauce et on présente les deux grandes familles d'attaques que la série va décortiquer : Control Flow Attacks et Code Reuse Attacks.

Oown2pwn
C'est quoi un OS, vraiment ?
Os·5 min

C'est quoi un OS, vraiment ?

Architecture generale d'un OS : role du kernel, espaces utilisateur et noyau, types de kernels (monolithique, micro, hybride) et notion de modules systemes charges a chaud.

Oown2pwn
tcache : pourquoi free() est devenu si rapide
Heap·4 min

tcache : pourquoi free() est devenu si rapide

Le tcache (thread local cache) est arrivé avec glibc 2.26 : structures tcache_entry et tcache_perthread_struct, indexation par taille, et pourquoi free l'atteint avant les fastbins.

Oown2pwn
Les 4 bins de ptmalloc2, à quoi ils servent vraiment
Heap·5 min

Les 4 bins de ptmalloc2, à quoi ils servent vraiment

Les quatre familles de bins ptmalloc2 : fast bins (sans fusion), unsorted bin (DCLL pour la seconde chance), small bins (moins de 512 octets) et large bins triees par classes de taille.

Oown2pwn
Où vit ton heap : arenas et malloc_state
Heap·5 min

Où vit ton heap : arenas et malloc_state

Structure malloc_state au coeur des arenas ptmalloc2 : mutex, fastbinsY, top chunk, last_remainder, bins et binmap. Cas particulier de la main_arena et schéma multi-threadé via heap_info.

Oown2pwn
Anatomie d'un chunk ptmalloc2
Heap·5 min

Anatomie d'un chunk ptmalloc2

Anatomie d'un chunk ptmalloc2 : champs mchunk_prev_size et mchunk_size, bits NON_MAIN_ARENA / IS_MMAPPED / PREV_INUSE et chainage FD/BK pour les chunks liberes.

Oown2pwn
Comprendre le heap avant de l'attaquer
Featured
Heap·5 min

Comprendre le heap avant de l'attaquer

Presentation de ptmalloc2 (pthread malloc v2), l'allocateur de heap utilise par la glibc : raison d'etre de la heap face a la stack, et plan d'attaque pour comprendre chunks, arenas, bins et tcache.

Oown2pwn
Le dynamic linker : ce qui tourne avant ton main
Elf·7 min

Le dynamic linker : ce qui tourne avant ton main

Static vs dynamic linking sous ELF : structures Elf32_Rel et Elf64_Sym, sections dynamiques (DT_STRTAB, DT_SYMTAB, DT_JMPREL), entrées PLT/GOT.PLT et resolution paresseuse via _dl_runtime_resolve.

Oown2pwn
.text, .data, .got, .plt : la carto d'un ELF
Featured
Elf·6 min

.text, .data, .got, .plt : la carto d'un ELF

Lecture des segments et sections d'un ELF (Executable and Linkable Format) chargé en mémoire : PT_LOAD, .text, .plt, .got, .data, stack, heap, et résolution dynamique d'un appel via la PLT (Procedure Linkage Table) et la GOT (Global Offset Table).

Oown2pwn
C'est quoi un ELF, et pourquoi t'en croises partout
Featured
Elf·4 min

C'est quoi un ELF, et pourquoi t'en croises partout

Tour d'horizon du format ELF (Executable and Linkable Format) sous Linux x86_64 : compilation, identification d'un binaire avec file et strings, et premier apercu de la segmentation memoire.

Oown2pwn