Aller au contenu principal
own2pwn

Linux

Articles sur linux.

Le pwn, c'est quoi exactement ?
FEATURED
pwn
PWN
+2

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.

4 min
C'est quoi un OS, vraiment ?
os
OS internals
+1

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.

5 min
tcache : pourquoi free() est devenu si rapide
heap
Heap exploitation
+2

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.

4 min
Les 4 bins de ptmalloc2, à quoi ils servent vraiment
heap
Heap exploitation
+2

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.

5 min
Où vit ton heap : arenas et malloc_state
heap
Heap exploitation
+2

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.

5 min
Anatomie d'un chunk ptmalloc2
heap
Heap exploitation
+2

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.

5 min
Comprendre le heap avant de l'attaquer
FEATURED
heap
Heap exploitation
+2

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.

5 min
Le dynamic linker : ce qui tourne avant ton main
elf
ELF
+2

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.

7 min
.text, .data, .got, .plt : la carto d'un ELF
FEATURED
elf
ELF
+2

.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).

6 min
C'est quoi un ELF, et pourquoi t'en croises partout
FEATURED
elf
ELF
+2

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.

4 min