Задания 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 — локальная установка не требуется.
Все уроки этого курса
- Перечисление
- Злоупотребление SUID и Sudo
- Задания Cron и PATH
- Эксплойты ядра