The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Обходной способ запуска программ, скрытых в блочном устройстве
Предположим у нас нет программы 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). Много думаем...
 
15.01.2016 , Автор: 赤熊
Ключи: linux, exec, flash, loader / Лицензия: CC-BY
Раздел:    Корень / Пользователю / Файлы, копирование, архивация

Обсуждение [ Линейный режим | Показать все | RSS ]
  • 1.1, _KUL (ok), 07:03, 18/01/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Про raw не знал, - жуть ... Когда линукс займёт доминирующее место, данная фича загрузчика либ может неплохо помочь злодеям.
     
     
  • 2.5, Аноним (-), 10:20, 18/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Вопрос к читателям.
    А всякими там аппарморами и прочими селинуксами как огородиться?
     
     
  • 3.12, 3619629066 (?), 18:35, 18/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    активируешь модуль ведра строкой в грубе (https://wiki.debian.org/AppArmor/HowToUse).
    натравливаешь на скайпы. смотришь лог。 много думаешь。
    а если тот же скайп огородить - то он (skype) прекратит работать。

    Но мы сверхчеловеки конечно пользуемся xmpp агентом。наподобии psi
    tox говорят годный клиент. только ключи по-еврейски генерит。

     
     
  • 4.18, анонимус (??), 23:15, 20/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Про скайп я ни слова не говорил :)

    А про тох, это да. Надо прикручивать к доменам, осваивать весь его вдоль и поперек.

     
     
  • 5.24, Аноним (-), 22:46, 24/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    DNS управляется централизовано, там всегда могут разделегировать твой домен без спроса. Tox хорош тем что в нем так не получится, у кого ключ - того и аккаунт.
     

  • 1.2, Аноним (-), 08:02, 18/01/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    но запуститься то должно с правами васи пупкина, а не рута
     
     
  • 2.6, _KUL (ok), 10:37, 18/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    И такая инициирует tcp сессию с злодейским сервером(или в резолвном dns ответе от злодейского днса получает через полезную нагрузку пакета), берёт список жертв и как начинает фигачить спамом/ддосить жертв с жуткой скоростью ...
     

  • 1.3, 11 (?), 08:06, 18/01/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > dd if=/bin/ls of=/dev/sdb

    и линукс нам такой пишет:
    dd: failed to open /dev/sdb: Operation not permitted

     
     
  • 2.4, JohnL3mon (?), 08:22, 18/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    А теперь внимательно читаем, что написано НА СВОЁМ компьютере , потом собираем портфель и идём в школу.
     
     
  • 3.13, ананим.orig (?), 19:00, 18/01/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > на компьютере нет доступа на установку ПО и запись файлов

    это там тоже написано.

    зыж
    фактически сделать cat исполняемый_file > другой_file, запись и запуск которого вдруг(!) разрешён.
    непонятно только нафига при этом нужно флэшку портить.

    ззыж
    ну и чему вас там в школе учили на сей раз?

     
     
  • 4.15, 3619629066 (?), 19:10, 18/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    >непонятно только нафига при этом нужно флэшку портить.

    Флешка от этого становится только крепче и возможно получает силу земли.

     

  • 1.7, PnDx (ok), 11:50, 18/01/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Если есть доступ хотя бы к /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

     
     
  • 2.14, 3619629066 (?), 19:03, 18/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    noexec

       Do 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/Owl_yarly.png/re

     

  • 1.8, Онаним (?), 11:53, 18/01/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >    /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 denied

    funky@funky:/tmp$ sudo /lib/x86_64-linux-gnu/ld-2.19.so /dev/sdb
    config-err-gvTJhW  unity_support_test.0

     
     
  • 2.10, x0r (??), 16:49, 18/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    там же написано: собрать статически
     
     
  • 3.19, Онаним (?), 17:27, 21/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Прикалываетесь что ли? Несмешно (

    funky@funky:~$ cat /dev/sdb > /dev/null
    cat: /dev/sdb: Отказано в доступе

     

  • 1.9, Аноним (-), 16:01, 18/01/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Еще один чукча-писатель открыл для себя ld.so
     
     
  • 2.11, Crazy Alex (ok), 17:46, 18/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Скоро узнает, что есть sh, perl и python
     
     
  • 3.17, Пользователь Debian (?), 20:10, 18/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Это случилось: http://www.opennet.dev/tips/2935_database_field_obfuscator_hash_perl.shtml
     

  • 1.16, Аноним (-), 20:10, 18/01/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Ага, рядовой пользователь имеет право чтения файла /dev/sdb. На огороженном компьютере рядовой пользователь, конечно же, входит в группу disk, ога.
     
  • 1.20, kirill (??), 00:37, 24/01/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    cat /dev/sdb > /dev/null
    cat: /dev/sdb: Отказано в доступе
     
  • 1.21, anonymous (??), 13:40, 24/01/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Вы на "целевом компьютере" забыли на обычного пользователя переключиться
    и сделали "/lib64/ld-2.13.so /dev/sdb" под рутом.
     
  • 1.22, 3619629066 (?), 21:30, 24/01/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    test@nnn-book:~$ id
    uid=1000(test) gid=100(users) группы=100(users)
     
  • 1.23, Аноним (-), 22:40, 24/01/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > /lib64/ld-2.13.so /dev/sdb

    Да ты хакер! А почему у админа с такими закрутами гаек устройство подключается и к тому же доступно этому юзеру на чтение?

     
     
  • 2.25, Аноним (-), 07:08, 28/01/2016 [^] [^^] [^^^] [ответить]  
  • +/
    потому что gnome/kde что там еще хочет монтировать вставленную флэшку ?
    мы же не обсуждаем специально накрученные гайки, а берем то как поставлено у рядового юзера..
     
     
  • 3.27, Аноним (-), 08:26, 05/02/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > мы же не обсуждаем специально накрученные гайки, а берем то как поставлено у рядового юзера..

    У рядового юзера программы в системе запускаются и без креатива с ld.so. А еще программу можно скачать. Можно конечно пользователю readonly устроить, только тогда и работать в системе станет сложно.

     

  • 1.26, Павел Самсонов (?), 21:54, 30/01/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    >[оверквотинг удален]
    > работает, 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.dev/tips/info/2934.shtml

     
     
  • 2.28, Аноним (-), 08:28, 05/02/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Нм, вобщем то /dev это tmpfs.

    Совершенно не обязательно. Хотя и возможно.

     

  • 1.29, narical (?), 20:03, 12/02/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Придётся корзину флешек держать, с подписанными маркером названиями команд, по одной на флешку.
     
     
  • 2.30, vodz (ok), 12:00, 15/02/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Да не, положите busybox
     

  • 1.31, freehck (ok), 15:26, 03/11/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Мне очень интересно, ничего ли автора не смущает вот в этом:

    % 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% случаев таких прав нету.

     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру