Solution de voydstack pour Pépin

pwn kernel x86/x64

6 novembre 2023

Pépin - PWN - 50

Vous avez accès à une machine qui semble avoir un noyau Linux possédant un appel système #333 particulier.

Un petit chall kernel pour entamer les challenges pwn, quel plaisir!

On a donc affaire à un appel syscall custom ayant l’id 333.

Éxecution de l’appel système

Ni une ni deux, on code un petit programme en assembleur pour tenter de percer les mystères de ce mystérieux syscall.

bits 64
global _start

_start:
	mov rax, 333
	syscall

	xchg rax, rdi
	mov rax, 60
	syscall

On exit également avec le code de retour du syscall pour voir ce qu’il nous renvoie.

On l’assemble puis on l’envoie directement sur la machine distante:

nasm -f elf64 pepin.asm -o pepin.o
ld pepin.o -o pepin

Et là, en l’exécutant… bah rien. Le code de retour est 0, pas grand chose d’intéressant à en tirer.

Peut être que le flag est caché ailleurs…

Récupération du flag

On tente d’afficher la mémoire tampon du noyau avec dmesg Et là surprise, ce bon vieux flag était planqué là dedans !

FLAG: FCSC{b820fd6ce2365286396c923b899477577b0b97036a37ace0e93fd6b628d833ad}