{U-Boot ou U-Boot pas ?}

Un introduction à U-Boot

Drahoxx

1

U-Boot c'est quoi ?

2

U-Boot ou U-Boot pas WU du challenge de l'interIUT

3

Sous-Marin WU du challenge du FCSC

Drahoxx

U-Boot qu'est-ce que c'est ?

# U-Boot ou U-Boot pas ~ HitchHack2023

Unterseeboot

Drahoxx

U-Boot qu'est-ce que c'est ?

# U-Boot ou U-Boot pas ~ HitchHack2023

Universal Boot(loader)

Embarqué dans les fusées Falcon

- ARM, RISC-V, PowerPC, MIPS, etc.

- Open-Source

- Initialise le matériel et lance l'OS

Drahoxx

U-Boot qu'est-ce que c'est ?

# U-Boot ou U-Boot pas ~ HitchHack2023

Power-On

BIOS/UEFI

Grub

Linux

Windows Boot Manager

Windows

Power-On

U-Boot

Linux

# Chaine de boot classique
# Chaine de boot embarquée

Drahoxx

U-Boot qu'est-ce que c'est ?

# U-Boot ou U-Boot pas ~ HitchHack2023

U-Boot

Stage 1

U-Boot

Stage 2

Initialisation du hardware
Configuration de la mémoire
Lancement de la phase 2
Démarrage de la console
Démarrage de l'OS
Capacités réseau

Drahoxx

U-Boot ou U-Boot pas -- CTF interIUT

# U-Boot ou U-Boot pas ~ HitchHack2023

- CTF InterIUT 2023

Docker

Drahoxx

Par défaut démarre sur /init qui shutdown la machine

U-Boot ou U-Boot pas -- CTF interIUT

# U-Boot ou U-Boot pas ~ HitchHack2023
1) Accéder au shell U-Boot
2) Les variables d'environnement

$ printenv

Drahoxx

U-Boot ou U-Boot pas -- CTF interIUT

# U-Boot ou U-Boot pas ~ HitchHack2023
$ ./toto "Hello world!" Arg2
        init=           [KNL]
                        Format: <full_path>
                        Run specified binary instead of /sbin/init as init
                        process.

What about the Kernel ?

Drahoxx

U-Boot ou U-Boot pas -- CTF interIUT

# U-Boot ou U-Boot pas ~ HitchHack2023
3) Modifier les paramètres de boot
4) Démarrer Linux
$ setenv bootargs rootwait root=/dev/vda console=ttyAMA0 init=/bin/sh
$ boot
5) Flag 🤑
$ cat flag.txt

Drahoxx

Sous-Marin -- FCSC

# U-Boot ou U-Boot pas ~ HitchHack2023
Docker

Drahoxx

Sous-Marin -- FCSC

# U-Boot ou U-Boot pas ~ HitchHack2023
1) Accéder au shell U-Boot
2) Les variables d'environnement

$ ksd\x01\x39M|"

=> Erreur d'implémentation

1) On inverse les 0 en 1
2) Rotate à gauche

Drahoxx

Sous-Marin -- FCSC

# U-Boot ou U-Boot pas ~ HitchHack2023
3) Essayer de modifier les arguments Kernel ?
4) Download le firmware
Honteusement volé à CypElf
$ sf probe; sf read $kernel_addr_r 0 9bc8b;

$ md.b $kernel_addr_r 0x9bc8b;

Drahoxx

Sous-Marin -- FCSC

# U-Boot ou U-Boot pas ~ HitchHack2023
$ sf probe; sf read $kernel_addr_r 0 9bc8b;

$ md.b $kernel_addr_r 0x9bc8b;
$ mmc write addr blk# cnt

Drahoxx

-> Décompression du Kernel -> Analyse du FS
Who am I ?
# U-Boot ou U-Boot pas ~ HitchHack2023
4A Cyberdéfense ~ ENSIBS
# Quelques ressources

U-BootOuU-BootPas

By Léo Chaigneau (Drahoxx)