Małe zadanie #6

Materiały dodatkowe

Pliki z których będziemy korzystać

  • server.c - przykładowy serwer którego lukę w bezpieczeństwie wykorzystamy
  • exploit.py - gotowy program wykorzystujący lukę serwera
  • payload.s - kod który zostanie wykonany na komputerze ofiary
  • demo.c - pośredni etap tworzenia exploit.c
  • dump_vdso.c - pomocniczy program służący do obejrzenia VDSO
  • exec.c - program wykonujący execve

Makefile

  • make skompiluje server payload i demo.
  • make show-payload pokaże gotowy do wklejenia kod maszynowy payload’a
  • make show-vdso na Linuksie pokaże deasemblację vdso

Cel

Dostosować prezentowany na zajęciach exploit do działania na systemie w dostarczonej maszynie wirtualnej. Rozwiązanie powinno zakładać włączoną randomizację przestrzeni adresowej i niewykonywalny stos.

Pominięcie warstwy sieciowej i postawienie takiego problemu też nie jest nieżyciowe bo jest przecież cała masa programów, do których każdy ma dostęp, natomiast są one własnością użytkownika root i mają ustawiony bit SUID, który powoduje, że zawsze są wykonywane na prawach właściciela. Przykładami mogą być su albo cron.