C Privilège Escalation (avec mot de passe)
-
05-10-2019 - |
Question
Je dois écrire un programme C qui me permettra de lire des fichiers / d'écriture qui appartiennent à la racine. Cependant, je ne peux exécuter le code sous un autre utilisateur. J'ai le mot de passe root, mais il n'y a pas « sudo » ou commandes « su » sur le système, donc je n'ai aucun moyen d'accéder au compte root (il y a des commandes pratiquement shell pas que ce soit, en fait). Je ne sais beaucoup sur les autorisations UNIX, donc je ne sais pas pas si oui ou non il est en fait possible de le faire sans exploiter le système d'une manière ou d'exécuter un programme appartenant à lui-même racine (avec + s ou autre) . Un conseil?
Merci!
P.S. Non, ce n'est pas quoi que ce soit malveillant, c'est sur un iPhone.
La solution
Dans le système d'autorisations UNIX, vous devez exécuter un fichier appartenant à root lui-même qui est marqué setuidroot (+ s, comme vous le dites) ou communiquer avec un processus qui est déjà en cours d'exécution en tant que root.
S'il n'y a pas un tel fichier, vous êtes hors de la chance.
Autres conseils
Vous pouvez le faire avec le bit suid à l'application, mais si vous voulez de cette c application
exécuter une certaine coquille c'est être lancée sur l'utilisateur local si vous le faites normalement c'est le système de sécurité.
Cependant, vous pouvez read/write/execute
les fichiers appartenant à root, mais si l'utilisateur n'est pas dans le groupe de fichier de votre fichier cible doit avoir setted read/write/execute
sur le dernier 3 bits ou lorsque votre utilisateur est dans le groupe propriétaire du fichier, vous devez vérifier / appliquer à 3 bits en position médiane. (3 premiers bits paramètres soient propriétaire mais cela ne peut pas par une information utile pour vous).
Si vous n'avez pas accès au compte root
. Ensuite, si le groupe et d'autres autorisations utilisateur DonT fonctions d'accès que vous devez avoir, vous ne pouvez pas faire avec ce tout, sauf essayer obtenir certains utilisateurs prilveaged pour accéder à ce fichier. Dans d'autres cas, vous pouvez faire des corrections dans les autorisations d'accès aux fichiers, mais pas de ce système, vous devez obtenir le disque dur de cet appareil et attacher à d'autres pour le changer ou charge sur cet appareil un peu en direct système pour changer cette situation. vous pouvez toutefois le faire sur le système privleaged pas sur ce point.
Plus d'informations sur SUID bits
vous pouvez trouver à:
http://www.codecoffee.com/tipsforlinux/articles/028.html
http://www.everyjoe.com/ newlinuxuser / expliquer-what-is-setuid-et-GID /
L'iPhone SDK ne permet pas. Votre application est sandbox et il ne peut pas aller à l'extérieur de ce bac à sable, sauf de façon très spécifique fournis par Apple. La seule façon de le faire sur un iPhone est de jailbreak.