• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

  • Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Эскалация привилегий в linux

ss0xffff

One Level
27.01.2024
7
4
BIT
155
Относительно недавно нашел сайт gtfobins, где приведены последовательности команд в терминале, делающие текущего пользователя root-ом. Вот к примеру для zip:
--------------------------------------------------------
TF=$(mktemp -u)
sudo zip $TF /etc/hosts -T -TT 'sh #'
sudo rm $TF
--------------------------------------------------------
В отдельности я в целом понимаю что делает каждая команда, но неясно как именно это дает пользователю root права. Также непонятно зачем архивировать /etc/hosts - это ведь файл для сетевой настройки (что-то вроде локальной dns таблицы, если я верно понимаю), как он связан с эскалацией привилегий. А также не понимаю что значит 'sh #' - в конце второй строки?
 

Богда

Green Team
09.12.2023
35
2
BIT
305
Кстати да , буквально вчера смотрел видео на HackTheBox , где чувак искал флаг , но для этого ему нужно было рутануть систему. Долго он мучился)) Смотрел без звука , ржал долго , как он 20 раз пытался гидру запустить , все подставлялись лишние строки у него , думал сейчас видео вырубит с психу) В итоге в конце он тоже на gtfobins зашел и ввел эти строки , получил рута по текущим пользователем и смог прочитать файл суперадмина , где был флаг. Как команда дает рута , не совсем понял..
 

M0r7iF3r

Green Team
01.09.2020
112
2
BIT
392
Если по порядку, то
- присваивается TF временное имя файла
- выполняется создание архива с временным именем, засовывая туда /etc/hosts и тестируется архив (-T), выполняя код системы (-TT == --unzip-command)
- удаляется созданный архив с временным именем
В общем вся соль в -TT, который должен быть с -T, а вместо /etc/hosts может быть любой доступный на чтение файл.

Полезно иногда читать по командам когда есть подобные вопросы или man 1 zip
 

Remir

Grey Team
05.11.2017
282
354
BIT
373
В отдельности я в целом понимаю что делает каждая команда, но неясно как именно это дает пользователю root права. Также непонятно зачем архивировать /etc/hosts - это ведь файл для сетевой настройки (что-то вроде локальной dns таблицы, если я верно понимаю), как он связан с эскалацией привилегий. А также не понимаю что значит 'sh #' - в конце второй строки?
Правильно, файл host выступает в "роли" DNS-сервера и сопоставления IP-адресов доменным именам. Отсюда следует, что доступ к нему д.б. строго ограничен, ведь это дает возможность перенаправлять на фишинг. Копирование host - это один из этапов подготовки к транспортировке. Я полагаю, что для редактирования. Тактика мне понятна, а вот реализация - не совсем. Давай порассуждаем, но с точки зрения защиты:
Код:
sudo zip $TF /etc/hosts -T -TT
это команда, архивирующая файл host с использованием архиватора zip. Код mktemp -u создает временный файл, который в конце удаляется с помощью sudo rm. Использование sudo с переменными (как в данном случае) представляет риск безопасности, чем и пользуются.
sh # применено, возможно, для создания комментария к файлу внутри архива и именно это, сугубо для zip-архивации, применяется обычно для создания угрозы атакуемому. Вернемся к первой строчке.
  • -T указывает, что список файлов для упаковки должен быть прочитан из файла, а не задан в комстроке напрямую.
  • -TT задает имя файла, из которого нужно прочитать список файлов для архивирования. Замечу, что эта опция позволяет выполнять команды пользовательского ввода. И, если файл /etc/hosts сжимается с исполнением команды sh, то разрешается исполнение кода.
Код можно внедрять.
Если целью автора был фишинг, то на видео показано не все. (я его не смотрел). И, если ориентировка была на перехват ROOT, возможно, пропущен способ первичного внедрения.
 

M0r7iF3r

Green Team
01.09.2020
112
2
BIT
392
Правильно, файл host выступает в "роли" DNS-сервера и сопоставления IP-адресов доменным именам. Отсюда следует, что доступ к нему д.б. строго ограничен, ведь это дает возможность перенаправлять на фишинг. Копирование host - это один из этапов подготовки к транспортировке. Я полагаю, что для редактирования. Тактика мне понятна, а вот реализация - не совсем. Давай порассуждаем, но с точки зрения защиты:
Код:
sudo zip $TF /etc/hosts -T -TT
это команда, архивирующая файл host с использованием архиватора zip. Код mktemp -u создает временный файл, который в конце удаляется с помощью sudo rm. Использование sudo с переменными (как в данном случае) представляет риск безопасности, чем и пользуются.
sh # применено, возможно, для создания комментария к файлу внутри архива и именно это, сугубо для zip-архивации, применяется обычно для создания угрозы атакуемому. Вернемся к первой строчке.
  • -T указывает, что список файлов для упаковки должен быть прочитан из файла, а не задан в комстроке напрямую.
  • -TT задает имя файла, из которого нужно прочитать список файлов для архивирования. Замечу, что эта опция позволяет выполнять команды пользовательского ввода. И, если файл /etc/hosts сжимается с исполнением команды sh, то разрешается исполнение кода.
Код можно внедрять.
Если целью автора был фишинг, то на видео показано не все. (я его не смотрел). И, если ориентировка была на перехват ROOT, возможно, пропущен способ первичного внедрения.
Не пойму, это троллинг или что. Есть команда man zip, в которой все написано
Bash:
       -T
       --test
              Test the integrity of the new zip file. If the check fails, the old zip file is unchanged and (with the -m option) no input files are removed.

       -TT cmd
       --unzip-command cmd
              Use command cmd instead of 'unzip -tqq' to test an archive when the -T option is used.

Ну и из man mktemp до кучи. Она ничего не создает, а просто придумывает случайное имя, которое в дальнейшем использует zip
Bash:
       -u, --dry-run
              do not create anything; merely print a name (unsafe)

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

Exited3n

Red Team
10.05.2022
687
244
BIT
523
Относительно недавно нашел сайт gtfobins, где приведены последовательности команд в терминале, делающие текущего пользователя root-ом. Вот к примеру для zip:
--------------------------------------------------------
TF=$(mktemp -u)
sudo zip $TF /etc/hosts -T -TT 'sh #'
sudo rm $TF
--------------------------------------------------------
В отдельности я в целом понимаю что делает каждая команда, но неясно как именно это дает пользователю root права. Также непонятно зачем архивировать /etc/hosts - это ведь файл для сетевой настройки (что-то вроде локальной dns таблицы, если я верно понимаю), как он связан с эскалацией привилегий. А также не понимаю что значит 'sh #' - в конце второй строки?
-TT 'sh #' в этом все дело, что тут устроили :)
 

Remir

Grey Team
05.11.2017
282
354
BIT
373
Не пойму, это троллинг или что. Есть команда man zip, в которой все написано
Троллинг, как известно, - это провокационные действия для разжигания конфликта. В чем здесь разжигается конфликт? Тут лишь рассуждения. А разве man zip не те же яйца, только вид сбоку?
Ну и из man mktemp до кучи. Она ничего не создает, а просто придумывает случайное имя, которое в дальнейшем использует zip
Bash:
       -u, --dry-run
              do not create anything; merely print a name (unsafe)
пропустил словосочетание "и последующий sudo" . Полагал, что и так понятно.
Какой фишинг, о чем речь, это команда для повышения привилегий, когда у пользователя есть права без пароля с помощью sudo запустить zip
Можно сделать и фишинг, прописав в hosts заранее подготовленное расположение и экспорт его на место. Разве нет? Я рассуждал, исходя из указанных данных, потому упомянул и фишинг.
 
Последнее редактирование:
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!