Pull to refresh

Comments 104

Я думаю, что астро/космонавтам нет необходимости повышать себе привилегии :)
А как же злобные системы искусственного интеллекта и не менее злобные пришельцы?
Хорошо тем, кто до сих пор на Squeeze.
О, поздно что-то :)
(я ничего не знаю)
Не везде оно работает.

user@localhost ~ $ whoami
user
user@localhost ~ $ uname -a
Linux MagOS 3.7.10-nrj-desktop-pae-1rosa.lts #1 SMP PREEMPT Sat Mar 23 20:20:04 MSK 2013 i686 i686 i386 GNU/Linux
user@localhost ~ $ zgrep -i PERF_EVENTS /proc/config.gz
CONFIG_HAVE_PERF_EVENTS=y
CONFIG_PERF_EVENTS=y
CONFIG_HAVE_PERF_EVENTS_NMI=y
user@localhost ~ $ gcc -w test.c -o exploit
user@localhost~ $ ./exploit
exploit: test.c:50: sheep: Assertion `!close(fd)' failed.
Аварийный останов (слепок снят)
user@localhost ~ $ whoami
user
user@localhost ~ $
Аналогично не работает с оригинальным ядром в Ubuntu 12.04 (тут непонятно, вроде все условия соблюдены), а вот в CentOS 6.4 отработало как положено :).
Так с -O2 надо ж компилить. Без О2 и у меня не работает.
Тролинг дня «а как собрать ядро, что бы запускался експлойт?» © aztec

Думается читать тред надо на первоисточнике…
www.opennet.ru/opennews/art.shtml?num=36933

Ибо работает не всегда и не везде…
image

PS. [root@shurshun ~]# uname -a
Linux shurshun 2.6.32-358.6.1.el6.i686 #1 SMP Tue Apr 23 18:13:20 UTC 2013 i686 i686 i386 GNU/Linux
UFO just landed and posted this here
Это kitty на 8-ке. Обводка стала под цвет фоновой картинки…
Обводка на 8-ке не прозрачная.
Обводка на 8-ке по дефолту выбирается цвета обоев.
После установки выбрал фиксированный цвет и не менял.
Спасибо, раньше не замечал что это есть, включил.
В новости же написано, что начиная с версии 2.6.37, или вы не читали, а сразу иронизировать?
> Проблема осложняется тем, что в случае с RHEL/CentOS 6 уязвимость была бэкпортирована в ядро 2.6.32
Согласен, о том что у меня на скриншете CentOS общественность могла только догадываться…
Пардон, это всё же я невнимательно прочёл.
UFO just landed and posted this here
Откуда такое? Уже несколько дней как 3.9 :)
Чего-то оно не работает. На арче 3.8.11 (ну понятно, что уже пофикшено, но всё же) Assertion `!close(fd)' failed, на арче 3.8.7 zsh: killed ./semtex.
arch 3.2.2-1 x86, тоже Assertion `!close(fd)' failed
Про то, что оно работает только на x86_64 конечно ни слова.
Archlinux с ядром 3.8.8-2 x86_64, не работает
Ещё, судя по всему, эксплоит должен работать только на x86_64
Арчик, ядро 3.6-pf. Не работает ☹

Просто пишет: «Убито».
Debian 7. Обманули, не работает эксплоит.
3.2.0-4-686-pae #1 SMP Debian 3.2.41-2 i686 GNU/Linux
Работает. В security рассылкe народ подтвердил уже (правда не на pae, а на обычном amd64 и на rt).
ez@NCA-Test:~/sploit$ gcc -O2 semtex.c
ez@NCA-Test:~/sploit$ ./a.out
2.6.37-3.x x86_64
sd@fucksheep.org 2010
root@NCA-Test:~/sploit#
root@NCA-Test:~/sploit# uname -rm
3.2.0-4-amd64 x86_64
Ubuntu 12.04 x86_64 не работает, и что странно при запуске пишет по русски «Убито», права не повышаются.

w@mithra:~/Загрузки/Exploit$ gcc ./semtex.c
w@mithra:~/Загрузки/Exploit$ ls
a.out semtex.c
w@mithra:~/Загрузки/Exploit$ ./a.out
Убито
w@mithra:~/Загрузки/Exploit$ uname -a
Linux mithra 3.2.0-32-generic #51-Ubuntu SMP Wed Sep 26 21:33:09 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
w@mithra:~/Загрузки/Exploit$ id
uid=1000() gid=1000(w) группы=1000(w),4(adm),20(dialout),24(cdrom),27(sudo),30(dip),40(src),46(plugdev),105(fuse),108(lpadmin),109(sambashare),110(bluetooth),114(netdev),119(pulse-access),123(vboxusers)
UFO just landed and posted this here
Попробуйте собрать с -O2.
Да тоже самое:

w@mithra:~/Загрузки/Exploit$ uname -a
Linux mithra 3.2.0-32-generic #51-Ubuntu SMP Wed Sep 26 21:33:09 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux
w@mithra:~/Загрузки/Exploit$ ls
semtex.c
w@mithra:~/Загрузки/Exploit$ gcc -O2 ./semtex.c
w@mithra:~/Загрузки/Exploit$ ls
a.out semtex.c
w@mithra:~/Загрузки/Exploit$ ./a.out
Убито
w@mithra:~/Загрузки/Exploit$ id
uid=1000(w) gid=1000(w) группы=1000(w),4(adm),20(dialout),24(cdrom),27(sudo),30(dip),40(src),46(plugdev),105(fuse),108(lpadmin),109(sambashare),110(bluetooth),114(netdev),119(pulse-access),123(vboxusers)
w@mithra:~/Загрузки/Exploit$
при запуске пишет по русски «Убито»

Потрачено
Здравствуйте. Я сомалийский вирус. К сожалению, в силу невысокого уровня развития информациооных тенологий в моей стране, я не могу самостоятельно причинить ущерб вашему компьютеру. Пожалуйста удалите самостоятельно несколько важных файлов и пошлите меня своим друзьям.

Вот только когда-нибудь эта потеха кончится.
Черт, даже моя устаревшая шапка 6.2 не спасла своим доисторическим ядром…
Админ говорит работает
3.4.33 openSUSE 12.2 виснет намертво
3.7.10 openSUSE 12.3 не работает
Система виснет или TTY?
устаревшая шапка 6.2 (Zoot) выпущена 3 апреля 2000 года и имеет в самом деле доисторическое ядро 2.2.14-5.0 :)
Не, ну не настолько устаревшая… 6.2 я помню ставил дома первый раз в жизни линукс, форматнул случайно папин винт с экселевскеми табличками…
Debian 7 Kernel 3.2.04 (все из коробки) — никак. Все перепробовал. Ошибки в коде и все тут.
Дайте шелл, я проверю ;)
На x84_64 с оптимизацией -O2 прекрасно работает на Debian 7 Wheezy с ядром «из коробки»
На exploit-db зафейлили офсеки сплойт. У меня, кстати, не завелся (2.6.32 debian)
Не работает… =(
viking@CrazyAcerViking:~$ ./a.out
a.out: test_0day.c:50: sheep: Assertion `!close(fd)' failed.

P.S.
viking@CrazyAcerViking:~$ uname -a
Linux CrazyAcerViking 3.8.5-vikkivikki #1 SMP Tue Apr 2 15:45:08 FET 2013 i686 GNU/Linux
В этом ядре эксплоит гарантированно работает?
Интересно как это сработает на андроиде.
Кто может портировать строки на асме на арм?
Android же 32х битный. Можно попробовать сделать cross-compile для Android этого исходника, но что-то мне подсказывает, что этот способ не пройдет. Надо читать описание, адаптировать для Android и писать специальный эксплоит, если это вообще возможно.
А я только недавно обновился до 3.9 в арче. Эх опять не смогу уязвимости под линуксом погонять…
Судя по комментариям, работает это в очень редких случаях.
Судя по комментарием, комментируют в основном те, у кого не работает. Остальные молча патчат ядро.
Fedora 17 — не запускается.

[denis@home exploits]$ uname -a 
Linux home 3.8.4-102.fc17.x86_64 #1 SMP Sun Mar 24 13:09:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
[denis@home exploits]$ gcc -O2 ./linux_2.6.37-3.x.x_x86_64.c 
[denis@home exploits]$ ./a.out 
Killed
 [denis@home exploits]$ ls -Z
-rwxrwxr-x. denis denis unconfined_u:object_r:user_home_t:s0 a.out
-rw-rw-r--. denis denis unconfined_u:object_r:user_home_t:s0 linux_2.6.37-3.x.x_x86_64.c

На 12 убунту не сработало, на 10 еще как!
Как почти любой exploit на linux надо ещё постараться собрать и запустить ,)

P. S. Linux unterwelt 3.9.2-1-ARCH #1 SMP PREEMPT Sat May 11 20:31:08 CEST 2013 x86_64 GNU/Linux — не работает.
Такое ощущение, что все очень рассчитывали, что сработает везде, что глядишь скоро и до вирусов дорастем не требующих gcc, а тут даже с ним :(
Debian 7.0 Wheezy работает гарантированно :(

arcady@asus-k43s:~/Temp$ uname -a
Linux asus-k43s 3.2.0-4-amd64 #1 SMP Debian 3.2.41-2 x86_64 GNU/Linux
arcady@asus-k43s:~/Temp$ gcc -O2 ./semtex.c
arcady@asus-k43s:~/Temp$ ./a.out

root@asus-k43s:~/Temp# id -un
root
root@asus-k43s:~/Temp#
Calculate — работает
ivan@nobody ~ $ whoami 
ivan
ivan@nobody ~ $ uname -a
Linux nobody 3.8.4-calculate #1 SMP PREEMPT Fri Mar 29 12:07:54 VLAT 2013 x86_64 AMD Phenom(tm) II X4 965 Processor AuthenticAMD GNU/Linux
ivan@nobody ~ $ gcc -w explo.c -o explloit -O2
ivan@nobody ~ $ ./explloit 
2.6.37-3.x x86_64
sd@fucksheep.org 2010
nobody ~ # whoami 
root

Что характерно ядро 3.4.5-hardened выполнится эксплойту не дает. убивает его.
Хм… в ubuntu 13.04 странно себя повел, просто намертво повесил систему. Ядро 3.8.0-19-generic.

PS: Правда собирал gcc-4.7 а не 4.6 может версия компилятора не та…
uname -a
Linux noname 3.8.4-calculate #1 SMP PREEMPT Thu Mar 21 02:29:50 UTC 2013 x86_64 Intel(R) Core(TM) i3-2100 CPU @ 3.10GHz GenuineIntel GNU/Linux


Родное бинарное ядро калькулятора

~ $ ./a.out 
2.6.37-3.x x86_64
sd@fucksheep.org 2010
~ # id
uid=0(root) gid=0(root) группы=0(root),...


Версия gcc:

gcc -v
Используются внутренние спецификации.
COLLECT_GCC=/usr/x86_64-pc-linux-gnu/gcc-bin/4.6.3/gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-pc-linux-gnu/4.6.3/lto-wrapper
Целевая архитектура: x86_64-pc-linux-gnu...


Вердикт — хорошо работает.
Работает
./a.out
2.6.37-3.x x86_64
sd@fucksheep.org 2010
~ # whoami 
root
Debian testing, сработало. Решето!
$ uname -a
Linux laptop 3.2.0-4-amd64 #1 SMP Debian 3.2.41-2 x86_64 GNU/Linux
[user@host ~]$ gcc exp.c -o givemeroot -O2
[user@host ~]$ ls
givemeroot  exp.c
[user@host ~]$ ./givemeroot
2.6.37-3.x x86_64
sd@fucksheep.org 2010
-sh-4.1#

Печаль… CentOS 6.4 x86
x86_64 конечно же, не успел поправить
А кто может расписать почему этот эксплоит срабатывает и что неучли в ядре? А то в исходном коде мне пока ничего не понятно(
И почему срабатывает не на всех дистрибутивах.
Лечится каким-то отключением профилирования. Вероятно, в некоторых дистрибутивах оно по умолчанию выключено.
Эх, как хорошо в таких топиках читать комменты без холиваров…
Забавный тренд: все скопом пытаются взломать свои же машины. Представляю аналогию под винду: все пользователи массово пытаются установить вирус на свою локалхост.
Так интересно же, дорос ли Linux до виндовых высот, когда эксплоит нужно просто запустить, а не патчить ядро предварительно :)
Я пытался сломать свою песочницу, чтобы убедиться, что продакшен в сохранности. Кто-то делал это для других целей?
Добавьте в пост. Можно защитить себя, чтобы не попасть под огонь, в ожидании патча.
sysctl -w kernel.perf_event_paranoid = 2
sysctl -w kernel.perf_event_max_sample_rate= -1

// источник тред с опеннета и рассылка ред хат.
Спасибо, с этими параметрами бинарник киляется.
В багзилле редхата говорят, что это поможет только от доступного в данный момент эксплоита.
Our testing shows that this is not sufficient to avoid the issue in general, but it is currently sufficient mitigation against the publicly available (unmodified) exploits.
3.7.10-gentoo-r1 — работает

vmlinuz@wd-kv-24549 ~ $ id
uid=1000(vmlinuz) gid=1000(vmlinuz) группы=1000(vmlinuz),0(root),3(sys),4(adm),6(disk),10(wheel),16(cron),18(audio),19(cdrom),27(video),35(games),80(cdrw),85(usb),100(users),105(stb-admin),123(ntp),236(sabayon-admin),237(gdm),238(pulse),239(pulse-access),240(plugdev),241(avahi),244(polkitd),245(messagebus),246(locate),247(crontab)
vmlinuz@wd-kv-24549 ~ $ uname -a
Linux wd-kv-24549 3.7.10-gentoo-r1 #1 SMP Mon Apr 29 10:36:54 EEST 2013 x86_64 Intel(R) Core(TM) i3 CPU M 380 @ 2.53GHz GenuineIntel GNU/Linux
vmlinuz@wd-kv-24549 ~ $ ./a.out 
2.6.37-3.x x86_64
sd@fucksheep.org 2010
wd-kv-24549 ~ # id
uid=0(root) gid=0(root) группы=0(root),3(sys),4(adm),6(disk),10(wheel),16(cron),18(audio),19(cdrom),27(video),35(games),80(cdrw),85(usb),100(users),105(stb-admin),123(ntp),236(sabayon-admin),237(gdm),238(pulse),239(pulse-access),240(plugdev),241(avahi),244(polkitd),245(messagebus),246(locate),247(crontab),1000(vmlinuz)
wd-kv-24549 ~ # 

Интересно. А у меня нет. То же ядро, amd64, SMP.

~ $ uname -a
Linux ___ 3.7.10-gentoo-r1 #3 SMP Mon Apr 22 14:41:09 MSK 2013 x86_64 Intel® Core(TM) i7-3930K CPU @ 3.20GHz GenuineIntel GNU/Linux
~ $ rm a.out
~ $ gcc -O2 semtex.c
~ $ ./a.out
Убито

Вывод лога ядра
May 15 15:00:06 ___ kernel: [ 3388.456881] BUG: unable to handle kernel paging request at 000000178155a9b8
May 15 15:00:06 ___ kernel: [ 3388.456886] IP: [] atomic_dec_and_mutex_lock+0xa/0x47
May 15 15:00:06 ___ kernel: [ 3388.456891] PGD 81a7b4067 PUD 0
May 15 15:00:06 ___ kernel: [ 3388.456894] Oops: 0000 [#4] SMP
May 15 15:00:06 ___ kernel: [ 3388.456895] Modules linked in: w83627ehf hwmon_vid tun nf_conntrack_ipv4 nf_defrag_ipv4 xt_conntrack iptable_filter iptable_mangle ip_tables af_packet dm_crypt nf_conntrack_ftp nf_conntrack hid_logitech_dj hid_a4tech hid_generic btusb bluetooth snd_hda_codec_hdmi snd_hda_codec_realtek raid1 raid0 md_mod usbhid hid arc4 coretemp kvm_intel kvm crc32c_intel ghash_clmulni_intel aesni_intel fglrx(PO) aes_x86_64 ablk_helper cryptd xts lrw ath9k gf128mul ath9k_common ath9k_hw ath evdev mac80211 led_class snd_hda_intel cfg80211 snd_hda_codec rfkill microcode snd_hwdep snd_pcm r8169 i2c_i801 mii snd_page_alloc acpi_cpufreq mperf freq_table snd_timer e1000e snd soundcore processor button usb_storage sr_mod cdrom xhci_hcd dm_mirror dm_region_hash dm_log dm_mod
May 15 15:00:06 ___ kernel: [ 3388.456926] CPU 11
May 15 15:00:06 ___ kernel: [ 3388.456928] Pid: 10115, comm: a.out Tainted: P D O 3.7.10-gentoo-r1 #3 System manufacturer System Product Name/P9X79 DELUXE
May 15 15:00:06 ___ kernel: [ 3388.456930] RIP: 0010:[] [] atomic_dec_and_mutex_lock+0xa/0x47
May 15 15:00:06 ___ kernel: [ 3388.456933] RSP: 0018:ffff88081b2efe28 EFLAGS: 00010246
May 15 15:00:06 ___ kernel: [ 3388.456934] RAX: ffffffff8108ab73 RBX: 000000178155a9b8 RCX: 00000001002f2049
May 15 15:00:06 ___ kernel: [ 3388.456935] RDX: 0000000000000000 RSI: ffffffff814282d0 RDI: 000000178155a9b8
May 15 15:00:06 ___ kernel: [ 3388.456936] RBP: ffffffff814282d0 R08: 0000000000000001 R09: ffff88081a002020
May 15 15:00:06 ___ kernel: [ 3388.456937] R10: 00007fff6afa7750 R11: dead000000200200 R12: 0000000000000000
May 15 15:00:06 ___ kernel: [ 3388.456938] R13: ffff88081bc04840 R14: ffff880812df1180 R15: ffff880819ebde10
May 15 15:00:06 ___ kernel: [ 3388.456940] FS: 00007fb183d0c700(0000) GS:ffff88083fd60000(0000) knlGS:0000000000000000
May 15 15:00:06 ___ kernel: [ 3388.456941] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
May 15 15:00:06 ___ kernel: [ 3388.456942] CR2: 000000178155a9b8 CR3: 00000007bf113000 CR4: 00000000000407e0
May 15 15:00:06 ___ kernel: [ 3388.456943] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
May 15 15:00:06 ___ kernel: [ 3388.456944] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
May 15 15:00:06 ___ kernel: [ 3388.456945] Process a.out (pid: 10115, threadinfo ffff88081b2ee000, task ffff8807c3800d00)
May 15 15:00:06 ___ kernel: [ 3388.456946] Stack:
May 15 15:00:06 ___ kernel: [ 3388.456947] 0000000000000001 000000178155a9b8 0000000000000000 ffffffff81091e9d
May 15 15:00:06 ___ kernel: [ 3388.456949] ffff88081a002000 00000017ffffffe8 ffff880819ebdc10 ffffffff8108abab
May 15 15:00:06 ___ kernel: [ 3388.456950] ffffffff8108ab73 ffff88081a002000 ffff880819ebdc00 ffffffff8108b020
May 15 15:00:06 ___ kernel: [ 3388.456952] Call Trace:
May 15 15:00:06 ___ kernel: [ 3388.456956] []? __static_key_slow_dec+0x19/0x79
May 15 15:00:06 ___ kernel: [ 3388.456958] []? sw_perf_event_destroy+0x38/0x7f
May 15 15:00:06 ___ kernel: [ 3388.456960] []? perf_swevent_init+0x120/0x120
May 15 15:00:06 ___ kernel: [ 3388.456961] []? free_event+0xd2/0xf7
May 15 15:00:06 ___ kernel: [ 3388.456963] []? perf_event_release_kernel+0x7f/0x86
May 15 15:00:06 ___ kernel: [ 3388.456964] []? perf_release+0xd/0x11
May 15 15:00:06 ___ kernel: [ 3388.456967] []? __fput+0xe9/0x1c3
May 15 15:00:06 ___ kernel: [ 3388.456970] []? task_work_run+0x78/0x8c
May 15 15:00:06 ___ kernel: [ 3388.456973] []? do_notify_resume+0x53/0x68
May 15 15:00:06 ___ kernel: [ 3388.456975] []? task_work_add+0x40/0x4b
May 15 15:00:06 ___ kernel: [ 3388.456977] []? int_signal+0x12/0x17
May 15 15:00:06 ___ kernel: [ 3388.456978] Code: 48 8d 47 08 c7 07 01 00 00 00 66 c7 47 04 00 00 48 89 47 08 48 89 47 10 48 c7 47 18 00 00 00 00 c3 55 48 89 f5 53 48 89 fb 41 50 <8b> 17 83 fa 01 74 11 8d 4a ff 89 d0 f0 0f b1 0b 39 d0 74 23 89
May 15 15:00:06 ___ kernel: [ 3388.456994] RIP [] atomic_dec_and_mutex_lock+0xa/0x47
May 15 15:00:06 ___ kernel: [ 3388.456996] RSP May 15 15:00:06 ___ kernel: [ 3388.456997] CR2: 000000178155a9b8
May 15 15:00:06 ___ kernel: [ 3388.457010] ---[ end trace d32d7c69e2044884 ]---

На другом десктопе с

uname -a
Linux unknown-pc 3.7.10-gentoo #1 SMP Mon Mar 4 16:52:27 MSK 2013 x86_64 Intel® Core(TM)2 Quad CPU Q9505 @ 2.83GHz GenuineIntel GNU/Linux

Так же килляется.
Так небось у вас ядро без perf events собрано
# zcat /proc/config.gz | grep PERF
# CONFIG_CGROUP_PERF is not set
CONFIG_HAVE_PERF_EVENTS=y
CONFIG_PERF_EVENTS=y
CONFIG_HAVE_PERF_EVENTS_NMI=y
CONFIG_HAVE_PERF_REGS=y
CONFIG_HAVE_PERF_USER_STACK_DUMP=y
CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
# CONFIG_PCIEASPM_PERFORMANCE is not set
В RHEL/Centos6 x86_64 будет работать только в ядрах, в которых произошел бекпорт. То есть, если Вы поставили Centos 6.0, в котором ядро 2.6.32-71 и не обновлялись, то эксплойт не заработает.
UFO just landed and posted this here
В Ubuntu 12.04 интересный эффект. Одного
sheep(-49066); //лично у меня так. По oops messages подобрал чтобы адрес записи был близок к idt
хватает чтобы повесить всю систему.
В OpenVZ-ядре для debian-а не воспроизводится:

# uname -a
Linux host-b-01 2.6.32-042stab059.7 #1 SMP Tue Jul 24 19:12:01 MSK 2012 x86_64 x86_64 x86_64 GNU/Linux

zabbix@host-b-01:~$ /tmp/a.out
2.6.37-3.x x86_64
sd@fucksheep.org 2010
a.out: e.c:106: main: Assertion `p = memmem(code, 1024, &needle, 8)' failed.
Aborted
А потому что «уязвимость в Linux от 2.6.37 до 3.8.10»
Проблема осложняется тем, что в случае с RHEL/CentOS 6 уязвимость была бэкпортирована в ядро 2.6.32
UFO just landed and posted this here
Да, действительно, с -O2 на 2.6.32-042stab065.3 убивает машину. Беда-беда.
Gentoo hardened-sources-3.8.7 — эксплоит намертво вешает систему, даже SysRQ не работает.
UFO just landed and posted this here
В Debian уже прилетело обновление, причем для squeeze в том числе.
Debian 6.0.6 Squeeze и Ubuntu Server 12.10 — не работает.
Кто-нибудь в курсе — на centos обновление вышло?
Да, версия ядра — 2.6.32-358.6.2.el6
Sign up to leave a comment.

Articles