web-dev-qa-db-fra.com

Passer d'Apache Shell à root

J'ai une question noob.J'ai essayé d'exploiter Shellshock sur mon serveur Linux Slackware, mais après avoir connecté avec Shell inverse et l'agent utilisateur, je reçois que je suis un utilisateur Apache et que l'utilisateur Apache n'a pas trop de privilèges, donc je pense qu'il y a aucun moyen pour quiconque peut avoir accès au compte root ou faire quelque chose de mal sur le système. Ai-je raison?

some tries

7
Vladimir

Vous avez raison d'avoir accès à l'UID du processus/script que vous avez exploité. Dans le cas de l'identité Apache sans contrôle d'accès obligatoire et sans séparation appropriée des rôles développeur et Apache, vous pouvez:

  • détruire ou endommager les sites Web gérés par votre Apache
  • changer le code des sites Web pour divulguer toute la base de données d'utilisateurs à une URL fixe que vous pouvez ensuite consulter
  • ajouter des scripts malveillants aux pages pour servir des logiciels malveillants aux visiteurs du site
  • Hébergez vos propres sites Web (par exemple, pour développer l'infrastructure de commande et de contrôle de votre botnet existant)

Avec une stratégie de contrôle d'accès obligatoire de base (par exemple, SELinux/AppArmor) qui ne sépare pas le rôle d'administrateur Apache du processus réel (généralement, qui permet au domaine qui exécute le binaire Apache réel d'écrire dans des fichiers Apache _ * _ t) et avec un accès en lecture seule au code Web, vous pouvez probablement:

Et probablement deux ou trois autres choses ... Ici, vous ne vous souciez pas du tout du système d'exploitation en lui-même, vous vous souciez de la capacité d'héberger du contenu, de voler des données et de modifier des sites Web existants et visités. La sécurité que vous conservez après l'exploitation dépend vraiment de la façon dont vous avez compartimenté votre système d'exploitation en premier lieu.

10
Steve Dodier-Lazaro

Ils peuvent seulement avoir accès au compte utilisateur Apache, mais il peut y avoir un autre exploit ou mauvaise configuration sur votre système particulier qui permettrait à un attaquant de élève leurs privilèges à ceux de root.

Une élévation de privilèges locale se produit lorsqu'un utilisateur acquiert les droits système d'un autre utilisateur. Les intrus du réseau ont de nombreuses techniques pour augmenter les privilèges une fois qu'ils ont pris pied sur un système. L'intrusion initiale pourrait commencer de n'importe où. Un compte invité? Un utilisateur local qui a imprudemment écrit un nom d'utilisateur et un mot de passe sur une note Post It? Les utilisateurs de tous les jours fonctionnent généralement à un niveau de privilège relativement bas - en particulier pour empêcher une personne qui obtient leurs informations d'identification de prendre le contrôle du système. Une fois à l'intérieur, l'intrus utilise des techniques d'escalade de privilèges pour augmenter le niveau de contrôle du système.

Par exemple, le simple fait d'exécuter l'exploit Linux Kernel <= 2.6.36-rc8 - RDS Protocol Local Privilege Escalation élèvera le shell actuel pour rooter sur un noyau vulnérable:

[limited@Fedora ~]$ whoami
limited
[limited@Fedora ~]$ id
uid=500(limited) gid=500(limited) groups=500(limited)

[limited@Fedora ~]$ ./linux-rds-exploit 
[*] Linux kernel >= 2.6.30 RDS socket exploit
[*] by Dan Rosenberg
[*] Resolving kernel addresses...
 [+] Resolved rds_proto_ops to 0xe125ca1c
 [+] Resolved rds_ioctl to 0xe124706a
 [+] Resolved commit_creds to 0xc0444f65
 [+] Resolved prepare_kernel_cred to 0xc0444dc6
[*] Overwriting function pointer...
[*] Triggering payload...
[*] Restoring function pointer...
[*] Got root!
sh-4.0# whoami
root
4
SilverlightFox