Сегодня в этой статье мы вернулись с еще одной наиболее выгодной командой из серии Linux для пентеста, а именно «Find».
Команда Find используется для поиска из списка файлов и каталогов, поэтому, зная этот факт, мы теперь проиллюстрируем, как мы можем использовать ее в Повышении привилегий.
- Содержание
- Введение в find
- Эксплуатация find
- Введение в find
- Основная операция с использованием Find
- Поиск файлов с полными правами.
- Чтобы найти все скрытые файлы
- Чтобы найти все читаемые файлы в каталоге
- Поиск файлов SUID
- Найти файлы SGID
- Чтобы найти все доступные для записи файл
- Эксплуатация Find
- Использование прав sudo
- Настройки SUID для повышения привилегий
- Использование SUID
Содержание
Введение в find
- Основная операция выполнена с использованием Find
Эксплуатация find
- Настройка прав sudo для повышения привилегий
- Использование прав sudo
- Настройки SUID для повышения привилегий
- Использование SUID
Введение в find
Команда «find» – это средство командной строки, позволяющее обойти структуру файловой пирамиды и найти точное местоположение файла и каталога в соответствии с желанием пользователя.
Эта команда может использоваться различными службами, такими как поиск любого файла по «размеру, разрешениям, дате изменения / доступа, пользователям, группам» и многим другим в соответствии с пользовательскими реквизитами.
Подобно каждой команде Find также можно кратко понять используя help / man, как показано на рисунке ниже. find –help
find –help |
Основная операция с использованием Find
Поиск любого файла по определенному имени в текущем каталоге: эта команда поддерживает поиск любого файла по определенному имени.
Предположим, мы хотим найти в текущем каталоге текстовый файл по имени «raj», а затем просто составим команду, как показано ниже:
find . -name raj.txt |
Поиск любого файла по определенному имени в домашнем каталоге: если мы хотим найти все файлы в домашнем каталоге по нужному имени файла, в нашем случае это «raj.txt»:
find /home -name raj.txt |
(Это позволит пользователю найти все файлы «raj.txt» в домашнем каталоге)
Найти файлы по их расширению:
это можно сделать, указав конкретное расширение файла.
Если какой-либо пользователь хочет получить какой-либо файл по его расширению, то это можно сделать с помощью опции «-type f».
В нашем сценарии мы выбираем поиск файлов с расширением .txt
Можно также использовать опцию «-type d» вместо «-type f» для получения каталога.
find / -type f -name “*.txt”
Эта команда будет выводить все файлы .txt в качестве желаемого вывода.
Поиск файлов с полными правами.
Когда кто-либо захочет исследовать файлы с полными правами, например, «777», это можно сделать с помощью «-perm 0777», а затем команда find с опцией «-type f», которая выведет вывод для всех файлов, которые имеют «777»
1
|
find . –type f –perm 0777 –print
|
Чтобы найти все файлы из определенного пользователя каталога: если нам нужно найти все файлы, которые принадлежат определенному пользователю, в любом выборочном каталоге, то мы можем выполнить это командой:
find /tmp –user raj
|
В нашем случае мы находим все те файлы, которые принадлежат пользователю «raj» в «каталоге tmp».
Чтобы найти все скрытые файлы
Если мы хотим найти все скрытые файлы в любом каталоге, мы наберем команду, как показано ниже:
find /tmp -type f -name “.*”
Чтобы найти все читаемые файлы в каталоге
Найти все читаемые файлы из определенного каталога.
На примере ниже мы обнаруживаем все те файлы, которые находятся в читаемой форме в каталоге /etc
find /etc/ -readable -type f 2>/dev/null
Введя команду выше, мы получим все читаемые файлы, которые находятся в /etc в качестве вывода.
Поиск файлов SUID
при выполнении любой команды, для которой установлен бит SUID, ее действующий UID становится владельцем этого файла.
Уязвимости Linux в файлах SUID SUGID
Итак, если мы хотим найти все эти файлы, которые содержат бит SUID, его можно получить, введя команду:
find / –perm –u=s –type f 2>/dev/null
Найти файлы SGID
Разрешение SGID аналогично SUID, но единственное отличие состоит в том, что всякий раз, когда выполняется какая-либо команда, для которой установлено разрешение SGID, процесс будет иметь ту же группу владения, что и владелец файла.
Итак, чтобы запустить все те файлы, которые имеют бит SGID, введите команду:
find / -perm -g=s -type f 2>/dev/null
Чтобы найти файлы SUID и SGID одновременно: Если мы хотим извлечь все эти файлы одновременно, для которых установлены оба бита, то есть «SUID и SGID», то команда find выглядит так:
find / –perm –g=s –o –perm –u=s –type f 2>/dev/null
|
Чтобы найти все доступные для записи файл
Чтобы найти любые доступные для записи каталоги в любом нужном каталоге, например: /home, /tmp, /root, мы запустим команду:
find /home -writable -type d 2>/dev/null
Мы нашли все доступные для записи каталоги из /home.
Эксплуатация Find
Права sudo настроены для повышения привилегий
Теперь мы создадим нашу настройку команды Find, предоставив ей более высокие привилегии, то есть с правами администратора.
Как мы знаем, производительность каждой команды изменяется после влияния более высоких привилегий.
Точно так же мы проверим нашу команду Find и поймем, какой эффект это окажет после выполнения прав sudo и как мы можем настроить ее еще больше при повышении привилегий.
Мы создадим локального пользователя (test), который получит права sudo в качестве пользователя root.
Чтобы добавить права sudo, откройте файл /etc/sudoers и вставьте нижеприведенную команду в качестве спецификации привилегий пользователя.
test ALL=(root) NOPASSWD: /usr/bin/find
Использование прав sudo
Теперь мы начнем использовать сервис Find, используя привилегию sudo.
Для этого у нас должен быть сеанс на компьютере жертвы, который позволит нам разработать локальный пользовательский доступ к целевой системе, что будет способствовать дальнейшему расширению прав пользователя root.
Для этого нам нужно соединиться с целевой машиной с помощью ssh, поэтому введите команду, как показано ниже, чтобы выполнить то же самое.
ssh test@192.168.1.108
|
Затем мы проверили право sudo пользователя «test» (если он указан) и обнаружили, что пользователь «test» может выполнить команду «find» как «root» без пароля.
sudo –l
|
Команда Find позволяет вам выполнять некоторые конкретные действия, такие как «print, delete и exec».
Поэтому здесь мы используем привилегию «exec» для выполнения команды доступа к корневой оболочке, запустив /bin/bash с помощью команды find, как показано ниже:
sudo find /home -exec /bin/bash \;
Выполнив команду выше, мы успешно расширили оболочку рута как показано на рисунке ниже.
Настройки SUID для повышения привилегий
Как известно, битовое разрешение SUID позволяет пользователю выполнять любые файлы в качестве владельца существующего элемента файла.
Теперь мы включаем разрешение SUID для Find, чтобы локальный пользователь мог использовать функцию Find в качестве пользователя root.
Следовательно, введите следующий для включения бита SUID:
which find chmod u+s /usr/bin/find ls -la /usr/bin/find
Использование SUID
find / –perm –u=s –type f 2>/dev/null
|
Итак, здесь мы пришли к выводу, что бит SUID имеет полномочия для очень многих двоичных файлов, но нас беспокоит: /usr/bin/find.
Как мы знаем, команда Find поддерживает выполнение определенных действий, таких как print, delete и exec.
Итак, здесь мы снова пользуемся привилегией «exec» для выполнения другой команды, то есть «whoami»
find raj –exec “whoami” \;
|
Точно так же вы можете воспользоваться командой Find для повышения привилегий root.