Предположим у нас нет программы super_mega_ls, а на компьютере нет доступа на установку ПО и запись файлов, но программой воспользоваться нужно. Wget не работает, curl огорожен, Flash-накопители монтировать прав нет.Допустим, у нас есть неформатированная флешка. На своём компьютере запишем нужную программу в "raw-режиме", не создавая файловую систему и разделы:
dd if=/bin/ls of=/dev/sdb
Приходим на целевую машину, на которой нужно запустить программу. Помним про версию ведра/ядра/libc/статическую сборку.
Вставляем флешку. И далее в зависимости от версии системы творим зло. В Debian Jessie это будет выглядеть так:/lib64/ld-2.13.so /dev/sdb
Далее происходит магия (см. исходники exec). Много думаем...
URL:
Обсуждается: http://www.opennet.me/tips/info/2934.shtml
Про raw не знал, - жуть ... Когда линукс займёт доминирующее место, данная фича загрузчика либ может неплохо помочь злодеям.
Вопрос к читателям.
А всякими там аппарморами и прочими селинуксами как огородиться?
активируешь модуль ведра строкой в грубе (https://wiki.debian.org/AppArmor/HowToUse).
натравливаешь на скайпы. смотришь лог。 много думаешь。
а если тот же скайп огородить - то он (skype) прекратит работать。Но мы сверхчеловеки конечно пользуемся xmpp агентом。наподобии psi
tox говорят годный клиент. только ключи по-еврейски генерит。
Про скайп я ни слова не говорил :)А про тох, это да. Надо прикручивать к доменам, осваивать весь его вдоль и поперек.
DNS управляется централизовано, там всегда могут разделегировать твой домен без спроса. Tox хорош тем что в нем так не получится, у кого ключ - того и аккаунт.
но запуститься то должно с правами васи пупкина, а не рута
И такая инициирует tcp сессию с злодейским сервером(или в резолвном dns ответе от злодейского днса получает через полезную нагрузку пакета), берёт список жертв и как начинает фигачить спамом/ддосить жертв с жуткой скоростью ...
> dd if=/bin/ls of=/dev/sdbи линукс нам такой пишет:
dd: failed to open /dev/sdb: Operation not permitted
А теперь внимательно читаем, что написано НА СВОЁМ компьютере , потом собираем портфель и идём в школу.
> на компьютере нет доступа на установку ПО и запись файловэто там тоже написано.
зыж
фактически сделать cat исполняемый_file > другой_file, запись и запуск которого вдруг(!) разрешён.
непонятно только нафига при этом нужно флэшку портить.ззыж
ну и чему вас там в школе учили на сей раз?
>непонятно только нафига при этом нужно флэшку портить.Флешка от этого становится только крепче и возможно получает силу земли.
Если есть доступ хотя бы к /tmp (без noexec) и возможность запустить tar|cpio|pax, проблем притащить что нужно с любого читаемого блочного устройства нет в принципе.Метода выше — скорее для обхода noexec? ** Но: если вгрузит, это сразу CVE-*. Так что максимум, это отсутствие бита "x" и невозможность его выставить.
Вот так примерно должно быть в случае noexec:
/lib64/ld-2.18.so /mnt/ls
/mnt/ls: error while loading shared libraries: /mnt/ls: failed to map segment from shared object: Operation not permitted
noexecDo not allow direct execution of any binaries on the mounted filesystem. (Until recently it was possible to run binaries anyway using a command like /lib/ld*.so /mnt/binary. This trick fails since Linux 2.4.25 / 2.6.0.)
как говорит нам ман
Но тема в том что монтировать то ничего и не нужно... и так запустится.
Совушки негодуют уффуффф.
http://vignette1.wikia.nocookie.net/uncyclopedia/images/6/64...
> /lib64/ld-2.13.so /dev/sdb
> Далее происходит магия (см. исходники exec). Много думаем..."Грешно издеваться над больными людьми" (С)
funky@funky:/tmp$ /lib/x86_64-linux-gnu/ld-2.19.so /dev/sdb
/dev/sdb: error while loading shared libraries: /dev/sdb: cannot open shared object file: Permission deniedfunky@funky:/tmp$ sudo /lib/x86_64-linux-gnu/ld-2.19.so /dev/sdb
config-err-gvTJhW unity_support_test.0
там же написано: собрать статически
Прикалываетесь что ли? Несмешно (funky@funky:~$ cat /dev/sdb > /dev/null
cat: /dev/sdb: Отказано в доступе
Еще один чукча-писатель открыл для себя ld.so
Скоро узнает, что есть sh, perl и python
Это случилось: http://www.opennet.me/tips/2935_database_field_obfuscator_ha...
Ага, рядовой пользователь имеет право чтения файла /dev/sdb. На огороженном компьютере рядовой пользователь, конечно же, входит в группу disk, ога.
cat /dev/sdb > /dev/null
cat: /dev/sdb: Отказано в доступе
Вы на "целевом компьютере" забыли на обычного пользователя переключиться
и сделали "/lib64/ld-2.13.so /dev/sdb" под рутом.
test@nnn-book:~$ id
uid=1000(test) gid=100(users) группы=100(users)
> /lib64/ld-2.13.so /dev/sdbДа ты хакер! А почему у админа с такими закрутами гаек устройство подключается и к тому же доступно этому юзеру на чтение?
потому что gnome/kde что там еще хочет монтировать вставленную флэшку ?
мы же не обсуждаем специально накрученные гайки, а берем то как поставлено у рядового юзера..
> мы же не обсуждаем специально накрученные гайки, а берем то как поставлено у рядового юзера..У рядового юзера программы в системе запускаются и без креатива с ld.so. А еще программу можно скачать. Можно конечно пользователю readonly устроить, только тогда и работать в системе станет сложно.
>[оверквотинг удален]
> работает, curl огорожен, Flash-накопители монтировать прав нет.
> Допустим, у нас есть неформатированная флешка. На своём компьютере запишем нужную программу
> в "raw-режиме", не создавая файловую систему и разделы:
> dd if=/bin/ls of=/dev/sdb
> Приходим на целевую машину, на которой нужно запустить программу. Помним про версию
> ведра/ядра/libc/статическую сборку.
> Вставляем флешку. И далее в зависимости от версии системы творим зло. В
> Debian Jessie это будет выглядеть так:
> /lib64/ld-2.13.so /dev/sdb
> Далее происходит магия (см. исходники exec). Много думаем...Нм, вобщем то /dev это tmpfs. Попробуйте тоже самое, предварительно выполнив mount /dev -o remount,noexec.
> URL:
> Обсуждается: http://www.opennet.me/tips/info/2934.shtml
> Нм, вобщем то /dev это tmpfs.Совершенно не обязательно. Хотя и возможно.
Придётся корзину флешек держать, с подписанными маркером названиями команд, по одной на флешку.
Да не, положите busybox
Мне очень интересно, ничего ли автора не смущает вот в этом:% ll /dev/sd{a,b}
brw-rw---- 1 root disk 8, 0 май 24 15:51 /dev/sda
brw-rw---- 1 root disk 8, 16 май 24 15:51 /dev/sdb
% groups
sudo users wireshark lpadmin scanner docker hashmanНу запущу я ld.so с этими правами. Но чтобы выполнить программу на /dev/sdb, я должен открыть это блочное устройство на чтение. А у юзера в 99.9% случаев таких прав нету.