2010-05-30 8 views
2

Мне нужно написать программу на C, которая позволит мне читать/записывать файлы, принадлежащие root. Тем не менее, я могу запускать код только под другим пользователем. У меня есть пароль root, но в системе нет команд «sudo» или «su», поэтому у меня нет доступа к корневой учетной записи (на самом деле практически нет команд оболочки). Я не очень много знаю о разрешениях UNIX, поэтому я не знаю, действительно ли это возможно сделать, не используя каким-либо образом использование системы или запуск программы, принадлежащей самому корню (с + s или что-то еще) , Любой совет?C Privilege Escalation (с паролем)

Спасибо!

P.S. Нет, это не зло, это на iPhone.

+0

Был ли iPhone взломан? – SLaks

+2

Только взломанный iPhone - это удобный iPhone - если вообще. – LukeN

+0

Нет, и, к сожалению, это не вариант в этом случае. (И LukeN, я полностью согласен с этим настроем) – AriX

ответ

2

В системе разрешений UNIX вам необходимо запустить файл, принадлежащий самому корню, который отмечен как setuid-root (+ s, как вы сказали), или обмениваться данными с каким-либо процессом, который уже выполняется с правами root.

Если такого файла нет, вам не повезло.

+0

ОК. Это то, о чем я думал. Я думаю, что нет способа войти в систему как root, за исключением того, что уже имеет привилегии root, чтобы предоставить их мне. – AriX

+0

@AriX: Да, боюсь. С точки зрения безопасности это особенность. ;-) –

1

Вы можете сделать это, установив suid bit в приложение, но если вы хотите от этого c application запустите некоторую оболочку, это было запущено на локальном пользователе, если вы это обычно делаете, это система безопасности.

Однако вы можете read/write/execute файлы принадлежат корень, но если ваш пользователь не в группе подаете целевой файл должен быть выставиться read/write/execute на последние 3 бита или когда пользователь находится в владельцем файла группы вы должны проверить/применить это 3 бит в среднем положении. (3 первых бита устанавливают разрешение владельцу, но это не может быть полезной для вас информацией).

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

Более подробная информация о SUID bits вы можете найти по адресу:

http://www.codecoffee.com/tipsforlinux/articles/028.html

http://www.everyjoe.com/newlinuxuser/explain-what-is-setuid-and-setgid/

+0

Спасибо, но поскольку у меня нет прав root, я не могу установить владельца как root и установить бит SUID. – AriX

+0

Затем, если групповые и другие разрешения пользователя не имеют доступа к функциям, как вы должны иметь, вы не можете сделать ничего, кроме попыток получить доступ к этому файлу некоторому прилепленному пользователю. В других случаях вы можете сделать некоторые исправления в разрешениях доступа к файлу, но не из этой системы, вы должны получить жесткий диск с этого устройства и подключиться к другому, чтобы изменить его или загрузить на устройство какую-то живую систему, чтобы изменить это. Однако вы можете сделать это на непривычной системе, а не на этом. – Svisstack

0

iPhone SDK не позволяет этого. Ваше приложение изолировано песочницей, и не разрешается выходить за пределы этой песочницы, за исключением особых способов, предоставляемых Apple. Единственный способ сделать это на iPhone - это побег из тюрьмы.

 Смежные вопросы

  • Нет связанных вопросов^_^