Local Root Exploit

Das Gute vorweg – mein Web-Server hat einen Kernel kleiner 2.6.17 und scheint nicht angreifbar:
user@host:~/projekte/kernel$ ./vmsplice
-----------------------------------
Linux vmsplice Local Root Exploit
By qaaz
-----------------------------------
[+] mmap: 0x0 .. 0x1000
[+] page: 0x0
[+] page: 0x20
[+] mmap: 0x4000 .. 0x5000
[+] page: 0x4000
[+] page: 0x4020
[+] mmap: 0x1000 .. 0x2000
[+] page: 0x1000
[+] mmap: 0xb7e5f000 .. 0xb7e91000
[-] vmsplice: Function not implemented
user@host:~/projekte/kernel$ uname -r
2.6.9-xxx
user@host:~/projekte/kernel$

HeidelbergAuf den anderen Hosts sah es aber leider nicht so gut aus. Dankjywielkjywkjyw Drake und Tokjywbikjywkjyw hatten es (die Lücke) ja schon ganz gut beschrieben.
Der Exploit ist, wenn man einen lokalen Login auf einen Linux-Server bekommt, tatsächlich derart leicht zu nutzten, dass man (als Admin) auf jeden Fall reagieren sollte. Ich habe mir für meine (debian-) Server einen kleinen Script gebastelt (der auch erkennt, was schon geklappt hat):

#!/bin/bash
projektdir="~/projekte/kernel/novmsplice"
Kernel=`uname -r`
cd ${projektdir}/
if [ ! -f ${projektdir}/${Kernel}/novmsplice.ko ] then
if [ ! -f ${projektdir}/novmsplice.c ] then
wget -N http://www.linux.it/~md/software/novmsplice.tgz
cd ..
tar xzf ${projektdir}/novmsplice.tgz
cd ${projektdir}
fi
if [ ! -d ${projektdir}/${Kernel} ] then
mkdir -p ${projektdir}/${Kernel}
fi
for f in novmsplice.c Makefile
do
cp -p $f ${projektdir}/${Kernel}
done
if [ `dpkg --list 2>/dev/null | grep linux-headers-${Kernel} | wc -l` -eq 0 ] then
if [ "$UID" -eq 0 ] then
apt-get install linux-headers-${Kernel}
fi
if [ `dpkg --list 2>/dev/null | grep linux-headers-${Kernel} | wc -l` -eq 0 ] then
echo "Kann Paket linux-headers-${Kernel} nicht installieren!"
exit
fi
fi
cd ${projektdir}/${Kernel}
make
echo "Module ${Kernel}/novmsplice.ko erzeugt!"
else
echo "Module ${Kernel}/novmsplice.ko schon vorhanden!"
fi
if [ "$UID" -eq 0 ] then
cd ${projektdir}/${Kernel}
if [ -f ${projektdir}/${Kernel}/novmsplice.ko ] then
if [ ! -f /lib/modules/${Kernel}/kernel/lib/novmsplice.ko ] then
cp -p novmsplice.ko /lib/modules/${Kernel}/kernel/lib
chown 0.0 /lib/modules/${Kernel}/kernel/lib/novmsplice.ko
fi
cd /lib/modules/${Kernel}/kernel/lib
depmod novmsplice.ko
modprobe novmsplice
fi
fi
if [ `lsmod | grep novmsplice | wc -l` -eq 0 ] then
echo "Modul novmsplice nicht geladen!"
else
echo "Module /lib/modules/${Kernel}/kernel/lib/novmsplice.ko eingebunden?!"
lsmod | grep novmsplice
fi

Nun muss ich mich nur noch auf alle Rechner verbinden und den Script absetzten. :-(

noch ein paar Links als Nachtrag:

About the Author

Uwe

Uwe beschäftigt sich seit vielen Jahren mit Linux und Webdesign, seit 2006 benutzt er WordPress zum schreiben eines 'Tagebuchs'. Tätig ist Uwe als Webmaster und Netzwerkadministrator, er arbeitet und lebt seit 2001 in Oberhausen. In seiner Freizeit ist er viel mit dem Mountainbike und dem Fotoapparat unterwegs.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.