Измените разрешения файла с помощью моей кошки

find / directory -type f -newermt "2014-10-08 10:17:00"! -newermt "08.10.2014 10:53:00"

54
15.12.2018, 19:08
1 ответ

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

  • Вы можете заставить динамический загрузчик запустить исполняемый файл для вас. Предполагая, что catдинамически -связан, эквивалент вашей платформы /lib/ld-linux.so.2, вероятно, также будет находиться в памяти и, таким образом, может использоваться для запуска двоичного файла :

    .
    $ /lib64/ld-linux-x86-64.so.2./chmod
    chmod: missing operand
    

    У вас может быть несколько из этих (32 -и 64 -бит, вероятно ), и может быть несколько доступных копий или символических ссылок, которые необходимо разрешить. Один из них может сработать.

  • Если у вас смонтирована файловая система vfat или NTFS,или другой, который обрабатывает все файлы как 777, вы можете создать там свой исполняемый файл.

    $ cat > /mnt/windows/chmod < /dev/tcp/localhost/9999
    
  • Если у вас есть смонтированная сетевая файловая система, даже если она недоступна для локальной записи, вы можете создавать файлы в удаленной системе и использовать их в обычном режиме.
  • Если есть смонтированный раздел, содержимое которого вам не нужно, на диске, который все еще в основном работает, вы можете заменить его содержимое новым образом того же типа файловой системы, содержащим исполняемые файлы, которые вы хотите -cat. отлично подходит для этой роли, для которой люди обычно используют dd, и вы можете предоставить изображение по сети.

    $ cat > /dev/sdb1 <...
    

    Это правдоподобно, но есть много мест, которые не работают, в зависимости от того, что именно все еще находится в памяти из этого раздела.

  • Если есть какой-либо доступный файл, который имеет разрешение на выполнение в любой доступной для записи файловой системе, вы можете cat >в него заменить содержимое двоичным файлом по вашему выбору.

    $ cat > ~/test.py <...
    
  • Поскольку Bash все еще работает, вы можете динамически загрузить подключаемый модуль Bash в процесс, предоставляющий доступ к chmod. В частности, вы можете установить и загрузить ctypes.sh, который предоставляет внешний функциональный интерфейс для Bash, а затем dlcall chmod./netcat 511.
  • Вы можете принести файл динамической библиотеки foo.soвашей конструкции, а затем catзагрузить его от вашего имени посредством LD_PRELOAD, что позволит вам выполнять произвольный код.

    $ LD_PRELOAD=./hack.so cat /dev/null
    

    Если перехватить, например,open:

    int open(const char *path, int flags,...) {
        chmod(path, 0755);
        return -1;
    }
    

    тогда вы можете делать там все, что вам нужно.

Я бы предложил добавить статически -связанный busyboxисполняемый файл в качестве первого элемента (или, на самом деле, единственного элемента ), чтобы у вас был полный набор доступных команд без повторного использования чего-либо. взлом довел вас до истощения.

36
27.01.2020, 19:33

Теги

Похожие вопросы