|
2.4, Аноним (-), 11:34, 14/03/2013 [^] [^^] [^^^] [ответить]
| +6 +/– |
Она не может быть массовой. Так как 3.8 в продакшене на серверах используют только самые упоротые.
| |
|
3.5, NickFaces (ok), 11:43, 14/03/2013 [^] [^^] [^^^] [ответить]
| –1 +/– |
Да и даже в арчике то все еще 3.7 ядрышко. Так что как обычно, пока на него перейдет народ уже более менее все залатают.
| |
|
|
1.20, nrndda (?), 15:02, 14/03/2013 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
14:55|nrndda@nrndda-core ~ $ grep -i namespace /usr/src/linux/.config
CONFIG_NAMESPACES=y
14:55|nrndda@nrndda-core ~ $ cc -Wall clown-newuser.c -static
14:55|nrndda@nrndda-core ~ $ ./a.out
[**] clown-newuser -- CLONE_NEWUSER local root (C) 2013 Sebastian Krahmer
[+] Found myself: '/home/nrndda/a.out'
[*] Parent waiting for boomsh to appear ...
[*] Setting up chroot ...
[+] Done.
[*] Cloning evil child ...
[-] clone: Invalid argument
^C
14:56|nrndda@nrndda-core ~ $ uname -a
Linux nrndda-core 3.8.2-gentoo #3 SMP PREEMPT Tue Mar 5 19:25:13 MSK 2013 x86_64 Intel(R) Core(TM)2 Duo CPU E4700 @ 2.60GHz GenuineIntel GNU/Linux
14:59|nrndda@nrndda-core ~ $ sudo sysctl -a | grep protected_hardlinks
fs.protected_hardlinks = 0
Второй запуск приводит к:
15:00|nrndda@nrndda-core ~ $ ./a.out
[**] clown-newuser -- CLONE_NEWUSER local root (C) 2013 Sebastian Krahmer
[+] Found myself: '/home/nrndda/a.out'
[*] Parent waiting for boomsh to appear ...
[*] Setting up chroot ...
[-] link: File exists
В чём дело? Почему не работает...
| |
|
2.21, nrndda (ok), 15:12, 14/03/2013 [^] [^^] [^^^] [ответить]
| –1 +/– |
Кстати, домашняя папка расположена не на отдельном разделе.
15:09|nrndda@nrndda-core ~ $ mount | grep -iE "home"
/dev/sdb3 on /home/nrndda/temp type ext4 (rw,relatime,commit=60,data=ordered)
/dev/sdb3 on /home/nrndda/git type ext4 (rw,relatime,commit=60,data=ordered)
/dev/sdb3 on /home/nrndda/Progs type ext4 (rw,relatime,commit=60,data=ordered)
/dev/sdb3 on /home/nrndda/Games type ext4 (rw,relatime,commit=60,data=ordered)
/dev/sdb3 on /home/ni4ei type ext4 (rw,relatime,commit=60,data=ordered)
/dev/sdb3 on /home/portage type ext4 (rw,relatime,commit=60,data=ordered)
10.0.0.2:/ on /home/FTP type nfs4 (rw,nosuid,nodev,relatime,vers=4.0,rsize=524288,wsize=524288,namlen=255,hard,proto=tcp,timeo=30,retrans=2,sec=sys,clientaddr=10.0.0.3,local_lock=none,addr=10.0.0.2)
P.S. Такие странные mount из-за ssd. На hdd сбрасываются срезы(rsync) с ssd каждый час и некоторые папки находятся только на нём.
| |
|
3.22, nrndda (ok), 15:18, 14/03/2013 [^] [^^] [^^^] [ответить]
| –1 +/– |
Останавливается тут:
pid = clone(child, child_stack + sizeof(child_stack),
CLONE_NEWUSER|CLONE_FS|SIGCHLD, NULL);
if (pid == -1)
die("[-] clone");
| |
|
|
5.25, nrndda (ok), 15:51, 14/03/2013 [^] [^^] [^^^] [ответить]
| –1 +/– |
> $ cat /usr/src/linux/.config | grep CONFIG_USER_NS ?
Нету его в .config. Тем более:
Depends on: NAMESPACES [=y] && EXPERIMENTAL [=y] && UIDGID_CONVERTED [=n]
Последнее так же непонятно где включается...
В init/Kconfig стоит вот что:
config UIDGID_CONVERTED
# True if all of the selected software conmponents are known
# to have uid_t and gid_t converted to kuid_t and kgid_t
# where appropriate and are otherwise safe to use with
# the user namespace.
bool
default y
# Networking
depends on NET_9P = n
# Filesystems
depends on 9P_FS = n
depends on AFS_FS = n
depends on CEPH_FS = n
depends on CIFS = n
depends on CODA_FS = n
depends on GFS2_FS = n
depends on NCP_FS = n
depends on NFSD = n
depends on NFS_FS = n
depends on OCFS2_FS = n
depends on XFS_FS = n
| |
|
6.26, pavlinux (ok), 16:10, 14/03/2013 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Последнее так же непонятно где включается...
"В Linux даже под эксплойты надо ядро перекомпилировать" (с) :)
Вот эти все выключи:
# Networking
depends on NET_9P = n
# Filesystems
depends on 9P_FS = n
depends on AFS_FS = n
depends on CEPH_FS = n
depends on CIFS = n
depends on CODA_FS = n
depends on GFS2_FS = n
depends on NCP_FS = n
depends on NFSD = n
depends on NFS_FS = n
depends on OCFS2_FS = n
depends on XFS_FS = n # я не могу, у меня XFS везде, пичалька :(
---
Собственно из этого мини-анализа можно сделать вывод:
Пользователям файловых систем: Plan9, AFS, CEPH, CIFS, CODA, GFS2, NCP, NFS, OCFS2 и XFS
этот эксплойт и дыра НЕ ОПАСНЫ и бесполезны.
| |
|
7.29, nrndda (ok), 16:29, 14/03/2013 [^] [^^] [^^^] [ответить]
| +/– |
Да, без NFS и CIFS можно включить CONFIG_USER_NS.
Но без первого я уже не могу обойтись. Сервак с файлохранилищем там у меня..
Паника отменяется:)
| |
|
|
|
|
3.28, Michael Shigorin (ok), 16:28, 14/03/2013 [^] [^^] [^^^] [ответить]
| +/– |
> P.S. Такие странные mount из-за ssd.
Гм, а не лучше ли тогда min_batch_time в несколько тысяч выставить?
| |
|
|
5.32, Michael Shigorin (ok), 17:36, 14/03/2013 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Для ssd стоит.
В #21 только commit просто был.
> Для hdd поставил, гляну на результат.
Там-то зачем...
| |
|
6.33, nrndda (ok), 20:13, 14/03/2013 [^] [^^] [^^^] [ответить]
| +/– |
ssd у меня - /dev/sda. Там стоит в опциях следующее: noatime, nodiratime, min_batch_time=20000, max_batch_time=40000,commit=60,discard,errors=remount-ro
hdd монтируется в /mnt/hdd1 (root) и /mnt/hdd2 (home), а потом с помощью bind монтируются некоторые каталоги поверх корня под ssd.
В кроне стоят правила синхронизации sdd и hdd.
0 */2 * * * ${RSYNC} --delete -a --exclude={/dev/*,/home/*,/media/*,/mnt/*,/proc/*,/run/*,/sys/*,/tmp/*,/var/log/*,/usr/portage/distfiles/*,/lost+found/*} / /mnt/hdd1/
5 */2 * * * ${RSYNC} --delete -a --exclude={/FTP/*,/portage/*,/ni4ei/*,/nrndda/Music/*,/nrndda/Games/*,/nrndda/Progs/*,/nrndda/git*,/nrndda/temp/*,/lost+found/*} /home/ /mnt/hdd2/
В результате получаем надёжную систему вне зависимости от выхода из строя ssd. Так как это был мой первый опыт с ssd, то я посчитал достаточным такой подход.
За 4-е месяца:
9 Power_On_Hours_and_Msec 0x0032 099 099 000 Old_age Always - 1682h+47m+22.820s
12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 162
230 Life_Curve_Status 0x0013 100 100 000 Pre-fail Always - 100
231 SSD_Life_Left 0x0013 100 100 010 Pre-fail Always - 0
241 Lifetime_Writes_GiB 0x0032 000 000 000 Old_age Always - 636
242 Lifetime_Reads_GiB 0x0032 000 000 000 Old_age Always - 1386
P.S. Выставление min_batch_time и max_batch_time для hdd снизило подтормаживания при синхронизации каталогов rsync'ом. Теперь полностью доволен;)
| |
|
7.35, Michael Shigorin (ok), 23:04, 14/03/2013 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Так как это был мой первый опыт с ssd, то я посчитал достаточным такой подход.
Один работает уже три года без trim (старое ядро), второй такой же -- два+ года с trim и довольно активно, третий -- два+ месяца тоже с trim. Живы пока все три.
| |
|
|
|
|
|
|
1.24, pavlinux (ok), 15:41, 14/03/2013 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
У меня ваще жопа!
$ gcc -Wall clown-newuser.c -static
/usr/lib64/gcc/x86_64-suse-linux/4.7/../../../../x86_64-suse-linux/bin/ld: cannot find -lc
collect2: error: ld returned 1 exit status
| |
1.34, linux must _RIP_ (?), 21:08, 14/03/2013 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
> Проблема проявляется только в ядре 3.8,
проблема есть в SLES10, потом не подвержены, потом начиная с ~3.6.
commit 5eaf563e53294d6696e651466697eb9d491f3946
Author: Eric W. Biederman <ebiederm@xmission.com>
Date: Mon Nov 21 17:22:31 2011 -0800
userns: Allow unprivileged users to create user namespaces.
...
Acked-by: Serge Hallyn <serge.hallyn@canonical.com>
| |
1.39, Ващенаглухо (ok), 09:01, 18/03/2013 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
$ ./clown-newuser
[**] clown-newuser -- CLONE_NEWUSER local root (C) 2013 Sebastian Krahmer
[+] Found myself: '/home/exploit/clown-newuser'
[*] Parent waiting for boomsh to appear ...
[*] Setting up chroot ...
[+] Done.
[*] Cloning evil child ...
[-] clone: Operation not permitted
И так висит...
^C
| |
|
2.40, pavlinux (ok), 16:17, 18/03/2013 [^] [^^] [^^^] [ответить]
| +/– |
> $ ./clown-newuser
> [**] clown-newuser -- CLONE_NEWUSER local root (C) 2013 Sebastian Krahmer
> [+] Found myself: '/home/exploit/clown-newuser'
> [*] Parent waiting for boomsh to appear ...
> [*] Setting up chroot ...
> [+] Done.
> [*] Cloning evil child ...
> [-] clone: Operation not permitted
> И так висит...
> ^C
$ strace -p 'pidof clown-newuser';
| |
|
|