Повышение привилегий linux через path

Linux Privilege Escalation Using PATH Variable

After solving several OSCP Challenges we decided to write the article on the various method used for Linux privilege escalation, that could be helpful for our readers in their penetration testing project. In this article, we will learn “various method to manipulate $PATH variable” to gain root access of a remote host machine and the techniques used by CTF challenges to generate $PATH vulnerability that lead to Privilege escalation. If you have solved CTF challenges for Post exploit then by reading this article you will realize the several loopholes that lead to privileges escalation.

Introduction

PATH is an environmental variable in Linux and Unix-like operating systems which specifies all bin and sbin directories where executable programs are stored. When the user run any command on the terminal, its request to the shell to search for executable files with help of PATH Variable in response to commands executed by a user. The superuser also usually has /sbin and /usr/sbin entries for easily executing system administration commands.

It is very simple to view Path of revelent user with help of echo command.

If you notice ‘.’ in environment PATH variable it means that the logged user can execute binaries/scripts from the current directory and it can be an excellent technique for an attacker to escalate root privilege. This is due to lack of attention while writing program thus admin do not specify the full path to the program.

Method 1

Ubuntu LAB SET_UP

Currently, we are in /home/raj directory where we will create a new directory with the name as /script. Now inside script directory, we will write a small c program to call a function of system binaries.

As you can observe in our demo.c file we are calling ps command which is system binaries.

After then compile the demo.c file using gcc and promote SUID permission to the compiled file.

Penetrating victim’s VM Machine

First, you need to compromise the target system and then move to privilege escalation phase. Suppose you successfully login into victim’s machine through ssh. Then without wasting your time search for the file having SUID or 4000 permission with help of Find command.

Hence with help of above command, an attacker can enumerate any executable file, here we can also observe /home/raj/script/shell having suid permissions.

Читайте также:  Macs fan control linux

Then we move into /home/raj/script and saw an executable file “shell”. So we run this file, and here it looks like the file shell is trying to run ps and this is a genuine file inside /bin for Process status.

Источник

Русские Блоги

Повышение привилегий с помощью переменных среды в Linux

Введение

PATH — это переменная окружения в Linux и Unix-подобных операционных системах, которая определяет все каталоги bin и sbin, в которых хранятся исполняемые программы. Когда пользователь выполняет любую команду на терминале, он отвечает на команду, выполненную пользователем через переменную PATH, и отправляет запрос в оболочку для поиска исполняемого файла. Суперпользователи обычно также имеют записи / sbin и / usr / sbin для облегчения выполнения команд управления системой.

Используйте команду echo для отображения текущей переменной среды PATH:

Если вы видите в переменной PATH ‘.’ , Это означает, что вошедший в систему пользователь может выполнить двоичный файл / скрипт из текущего каталога, что также дает злоумышленнику отличную возможность повысить привилегии. Причина, по которой полный путь к программе здесь не указан, часто вызвана небрежностью при написании программы.

способ 1

В настоящее время мы находимся в каталоге / home / raj, где мы создадим новый каталог с именем / script. В каталоге скриптов мы напишем небольшую программу на c для вызова функции системного двоичного файла.

640?wx_fmt=png

640?wx_fmt=jpeg

Как видно из файла demo.c, мы вызываем команду ps.

640?wx_fmt=jpeg

Затем используйте gcc для компиляции файла demo.c и увеличьте разрешение SUID скомпилированного файла.

640?wx_fmt=png

640?wx_fmt=jpeg

Предположим, мы успешно проникли в цель и вступили в стадию эскалации власти. Мы успешно вошли в систему жертвы через ssh. Затем используйте команду «Найти» для поиска файлов с разрешениями SUID или 4000.

find / -perm -u=s -type f 2>/dev/null

С помощью приведенной выше команды злоумышленник может перечислить все исполняемые файлы в целевой системе. Здесь вы можете видеть, что / home / raj / script / shell имеет разрешения SUID.

640?wx_fmt=jpeg

Перейдите в каталог / home / raj / script, вы увидите, что в этом каталоге есть исполняемый файл «shell», мы запускаем этот файл.

Источник

Русские Блоги

Используйте переменные среды для повышения привилегий в Linux

В этой статье я расскажу о некоторых методах повышения привилегий в Linux с использованием переменных среды, включая некоторые методы, используемые в задачах CTF. Не много, чтобы сказать, давайте перейдем к теме!

Введение

PATH — это переменная среды в Linux и Unix-подобных операционных системах, которая указывает все каталоги bin и sbin, в которых хранятся исполняемые программы. Когда пользователь выполняет какую-либо команду на терминале, он отвечает на команду, выполненную пользователем через переменную PATH, и отправляет запрос в оболочку для поиска исполняемых файлов. Суперпользователи обычно также имеют записи / sbin и / usr / sbin для облегчения выполнения команд управления системой.

Читайте также:  Терминал линукс копировать вставить

Используйте команду echo для отображения текущей переменной среды PATH:

Если вы видите в переменной PATH‘.’, Это означает, что вошедший в систему пользователь может выполнять двоичные файлы / сценарии из текущего каталога, что также является отличной возможностью для злоумышленников повысить свои права. Причина, по которой полный путь к программе здесь не указан, часто вызвана небрежностью при написании программы.

способ 1

Ubuntu LAB SET_UP

В настоящее время мы находимся в каталоге / home / raj, где мы создадим новый каталог с именем / script. В каталоге скриптов мы напишем небольшую программу на c для вызова функций системного двоичного файла.

pwd mkdir script cd /script nano demo.c

 Linux

Как видно из файла demo.c, мы вызываем команду ps.

2.png Linux

Затем используйте gcc для компиляции файла demo.c и увеличьте разрешение SUID для скомпилированного файла.

ls gcc demo.c -o shell chmod u+s shell ls -la shell

3.png Linux

Victim VM machine

Предположим, мы успешно проникли в цель и вступили в стадию эскалации. Мы успешно вошли на компьютер жертвы через ssh. Затем используйте команду «Найти» для поиска файлов с разрешениями SUID или 4000.

find / -perm -u=s -type f 2>/dev/null

С помощью приведенной выше команды злоумышленник может перечислить все исполняемые файлы в целевой системе. Здесь вы можете видеть, что / home / raj / script / shell имеет разрешения SUID.

 Linux

Войдите в каталог / home / raj / script, вы увидите, что в каталоге есть исполняемый файл «shell», мы запускаем этот файл

 Linux

Эхо-команда

cd /tmp echo “/bin/sh” > ps chmod 777 ps echo $PATH export PATH=/tmp:$PATH cd /home/raj/script ./shell whoami

 Linux

Копировать команду

cd /home/raj/script/ cp /bin/sh /tmp/ps echo $PATH export PATH=/tmp:$PATH ./shell whoami

 Linux

ln -s /bin/sh ps export PATH=.:$PATH ./shell id whoami

Примечание. Символьная ссылка также называется программной ссылкой. Если каталог имеет полные права доступа, он будет работать успешно. В случае символической ссылки в Ubuntu мы дали 777 разрешений для каталога / script.

Поэтому злоумышленник может манипулировать переменной окружения PATH, чтобы увеличить привилегии и получить root-доступ.

 Linux

Способ 2

Ubuntu LAB SET_UP

Повторите описанные выше шаги для настройки вашей экспериментальной среды. Теперь в каталоге сценариев мы напишем небольшую программу на c для вызова функций системного двоичного файла.

pwd mkdir script cd /script nano demo.c

Как вы можете видеть в файле demo.c, мы вызываем команду id.

 Linux

Затем используйте gcc для компиляции файла demo.c и увеличьте разрешение SUID для скомпилированного файла.

ls gcc demo.c -o shell2 chmod u+s shell2 ls -la shell2

 Linux

Victim VM machine

Аналогично, предположим, что мы успешно проникли в цель и вступили в стадию эскалации. Мы успешно вошли на компьютер жертвы через ssh. Затем используйте команду «Найти» для поиска файлов с разрешениями SUID или 4000. Здесь мы видим, что / home / raj / script / shell2 имеет разрешения SUID.

find / -perm -u=s -type f 2>/dev/null

Войдите в каталог / home / raj / script, вы увидите, что в каталоге есть исполняемый файл «shell2», мы запускаем этот файл.

cd /home/raj/script ls ./shell2

 Linux

Эхо-команда

cd /tmp echo “/bin/sh” > id chmod 777 id echo $PATH export PATH=/tmp:$PATH cd /home/raj/script ./shell2 whoami

 Linux

Способ 3

Ubuntu LAB SET_UP

Читайте также:  Base directory in linux

Повторите вышеуказанные шаги для настройки вашей экспериментальной среды. Как видно из файла demo.c, мы вызываем команду cat для чтения содержимого из файла etc / passwd.

 Linux

Затем используйте gcc для компиляции файла demo.c и увеличьте разрешение SUID для скомпилированного файла.

ls gcc demo.c -o raj chmod u+s raj ls -la raj

 Linux

Victim VM machine

Точно так же, предполагая, что мы успешно проникли в цель и вступили в фазу повышения привилегий, мы можем просмотреть список пользователей sudo, выполнив следующую команду.

find / -perm -u=s -type f 2>/dev/null

Здесь мы видим, что / home / raj / script / raj имеет права SUID, введите каталог home / raj / script /, вы можете видеть, что в этом каталоге есть исполняемый файл «raj». Поэтому, когда мы запустим этот файл, он выведет файл etc / passwd.

 Linux

Нано редактор

Теперь, когда откроется терминал, введите / bin / bash и сохраните.

 Linux

chmod 777 cat ls -al cat echo $PATH export PATH=/tmp:$PATH cd /home/raj/script ./raj whoami

 Linux

Способ 4

Ubuntu LAB SET_UP

Повторите вышеуказанные шаги для настройки вашей экспериментальной среды. Как вы можете видеть в файле demo.c, мы вызываем команду cat для чтения содержимого msg.txt в / home / raj, но в / home / raj такого файла нет.

 Linux

Затем используйте gcc для компиляции файла demo.c и увеличьте разрешение SUID для скомпилированного файла.

ls gcc demo.c -o ignite chmod u+s ignite ls -la ignite

 Linux

Victim VM machine

Точно так же, предполагая, что мы успешно проникли в цель и вступили в фазу повышения привилегий, мы можем просмотреть список пользователей sudo, выполнив следующую команду

find / -perm -u=s -type f 2>/dev/null

Здесь мы видим, что / home / raj / script / ignite имеет разрешения SUID, введите каталог / home / raj / script, вы можете видеть, что в этом каталоге есть исполняемый файл «ignite». Поэтому, когда мы запустим этот файл, он сообщит об ошибке «cat: /home/raj/msg.txt» или файл не существует.

cd /home/raj/script ls ./ignite

 Linux

Редактор Vi

Теперь, когда откроется терминал, введите / bin / bash и сохраните.

 Linux

chmod 777 cat ls -al cat echo $PATH export PATH=/tmp:$PATH cd /home/raj/script ./ignite whoami

 Linux

* Справочный источник:hackingarticles, Редактор FB secist скомпилирован, перепечатку просьба указывать с FreeBuf.COM

Источник

Оцените статью
Adblock
detector