Тема : Локальный r00t в FreeBSD 7.1, 7.2, 8.0, 9.0 & later


s1lv3r  01-12-2009 19:42
Ну вот и дожили... ;)
Предварительная адвизори http://permalink.gmane.org/gmane.os.freebsd.announce/478
Сообщение об уязвимости http://www.securityfocus.com/bid/37154
Сплойт http://seclists.org/fulldisclosure/2009/Nov/371
Предварительный патч http://people.freebsd.org/~cperciva/rtld.patch

PS Завтра ожидается официальная адвизори + окончательная реализация патча.

PPS ;)

(18:35:58 </usr/home/silver>) 0 $ id
uid=1001(silver) gid=0(wheel) groups=0(wheel),5(operator),920(vboxusers)
(18:38:15 </tmp>) 0 # sh 1.sh
# id
uid=0(root) gid=0(wheel) groups=0(wheel),5(operator)
# uname -a
FreeBSD FreeBSD.xxx.local 8.0-RELEASE FreeBSD 8.0-RELEASE #4: Mon Nov 23 11:48:14 EET 2009 root@FreeBSD.xxx.local:/usr/obj/usr/src/sys/SILVER i386


Источник http://www.opennet.ru/opennews/art.shtml?num=24466

Dud  01-12-2009 23:08
Моя протяжно выдыхает -- на всех подотчётных никсах только один человекоюзер.

Smithson  02-12-2009 09:57
s1lv3r пишет:
Ну вот и дожили...
Ты сам это пробовал? У меня оно как-то не сработало :( Пробовал на 7.0 и 7.1

Dud пишет:
один человекоюзер.
Ты сам? ;) У меня почти так же.

s1lv3r  02-12-2009 10:51
Ты сам это пробовал? У меня оно как-то не сработало :( Пробовал на 7.0 и 7.1

ты глянь повнимательнее мое сообщение, конечно пробовал на 8.0 и даже показал результат. ;)
PS модераторы, подредактируйте плиз топик!
Как выяснилось, ошибка не в rtld, а в lib/libc/stdlib/getenv.c.
После вызова unsetenv("LD_PRELOAD") вызов getenv("LD_PRELOAD") все равно может вернуть true, если среда процесса правильным образом испорчена. Таким образом FreeBSD 6.x не уязвима так как использует еще старую Berkeley реализация getenv.

Smithson  02-12-2009 10:56
s1lv3r пишет:
конечно пробовал на 8.0 и даже показал результат.
А, это твой результат. Я думал, это тоже перепечатка ;)
Ok, поставлю 8.0, буду смотреть.

_Igor_  02-12-2009 16:18
Пробовал на
FreeBSD ххххх 8.0-BETA2 FreeBSD 8.0-BETA2 #0 r196161: Thu Aug 13 13:16:11 MSD 2009 ххххх:/usr/obj/usr/src/sys/21h amd64

компилится, выдает следующее:
FreeBSD local r00t zeroday
by Kingcope
November 2009
env.c: In function 'main':
env.c:5: warning: incompatible implicit declaration of built-in
function 'malloc'
env.c:9: warning: incompatible implicit declaration of built-in
function 'strcpy'
env.c:11: warning: incompatible implicit declaration of built-in
function 'execl'

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

s1lv3r  02-12-2009 17:56
_Igor_: а если глянуть в адвизори на секуритифокус? ;)

FreeBSD FreeBSD 8.0-STABLE
FreeBSD FreeBSD 8.0-RELEASE
FreeBSD FreeBSD 7.2-STABLE
FreeBSD FreeBSD 7.2-RELEASE-p4
FreeBSD FreeBSD 7.2-RELEASE-p1
FreeBSD FreeBSD 7.2-RC2
FreeBSD FreeBSD 7.2-PRERELEASE
FreeBSD FreeBSD 7.1-STABLE
FreeBSD FreeBSD 7.1-RELEASE-p6
FreeBSD FreeBSD 7.1-RELEASE-p5
FreeBSD FreeBSD 7.1-RELEASE-p4
FreeBSD FreeBSD 7.1 -RELEASE-p2
FreeBSD FreeBSD 7.1 -RELEASE-p1
FreeBSD FreeBSD 7.1 -PRE-RELEASE
FreeBSD FreeBSD 7.0-RELEASE-p3
FreeBSD FreeBSD 7.0-RELEASE

morava  02-12-2009 20:02
ИМХО самый актуальный ресурс в этом направлении

_http://xorl.wordpress.com/2009/12/01/freebsd-ld_preload-security-bypass/

Довольно полная адвизори, так что если не получается следует ознакомиться.

Да и ещё тут недавно конференция прошла _http://www.frasunek.com/CONFidence-2009.pdf

s1lv3r  03-12-2009 20:38
Теперь официально патчим системы и выдыхаем. ;)
http://security.freebsd.org/advisories/FreeBSD-SA-09:16.rtld.asc
(19:59:32 </usr/home/silver>) 0 $ uname -a
FreeBSD FreeBSD.xxx.local 8.0-RELEASE-p1 FreeBSD 8.0-RELEASE-p1 #5: Thu Dec 3 17:51:07 EET 2009 root@FreeBSD.xxx.local:/usr/obj/usr/src/sys/SILVER i386

PS заодно уж и остальное подлечить не мешает...
http://security.freebsd.org/advisories/FreeBSD-SA-09:15.ssl.asc
http://security.freebsd.org/advisories/FreeBSD-SA-09:17.freebsd-update.asc

s1lv3r  24-06-2013 17:52
Всем привет, а чего это тут так тихо? ;)
Security Advisory http://www.freebsd.org/security/advisories/FreeBSD-SA-13:06.mmap.asc
Exploit http://1337day.com/exploit/20911

tested and working on freebsd 9.1

(fame@shell)
(~) id
uid=1001(fame) gid=1001(fame) groups=1001(fame)
(fame@shell)
(~) gcc -Wall ./test.c && ./a.out
[+] Saved old '/sbin/ping'
[+] Using mmap-ed area at 0x4b75000
[+] Attached to 18553
[+] Copied 6755 bytes of payload to '/sbin/ping'
[+] Triggering payload
# id
uid=0(root) gid=0(wheel) egid=1001(fame) groups=1001(fame)
# exit
[+] Restoring '/sbin/ping'
[+]

PS отредактируйте топик на предмет добавить в наименование FreeBSD 9.0 and later... ;)

nimda  24-06-2013 18:24
s1lv3r: Так ты лазишь непонятно где, вот и тихо... ;)