Journal Encore un trou de sécurité, encore Brad qui s'amuse...

Posté par  (site web personnel) .
24
14
août
2009
Après la dernière vulnérabilité du noyau Linux ( voir la news de Victor ici ) on aurait pu espérer un peu de répit...mais c'est raté !
Deux membres du Google Security Team (Tavis Ormandy et Julien Tinnes) ont découvert une faille dans le noyau qui permet un exploit local (un simple utilisateur peut passer root).
Leur annonce avec les explications se trouve sur cette page et la correction du bug, par Linus en personne, a été postée ici.

Comme la dernière fois, Brad Spengler a repéré cette annonce de vulnérabilité sur la mailing-list Full disclosure et il a écrit un exploit qui l'utilise afin de prendre le contrôle de tous les anciens noyaux contenant la faille.
Son exploit est disponible à cette adresse : http://grsecurity.net/~spender/wunderbar_emporium.tgz

On peut y voir une petite vidéo (des gens qui jouent à la roulette russe...très symbolique ;-) et le code de l'exploit qui contient des commentaires sarcastiques du genre : "nice work Linus on trying to silently fix an 8 year old vulnerability, leaving vendors without patched kernels for their users".

Comme la dernière fois il semble que cet exploit nécessite une faille de Pulseaudio et il s'appuie sur le bug dans la fonction personality() qui permet de passer à travers de la protection "mmap_min_addr" (donc les systèmes utilisant SELinux sont vulnérables).
Selon Brad l'exploit "works on any vulnerable kernel (I've tested extensively here on at least 15 VMs, x86, x64, 2.4, 2.6, with creds, without creds, 4k stacks, 8k stacks)".

Comme l'exploit ressemble beaucoup au précédent et nécessite la présence des mêmes bugs (Pulseaudio et personality) on peut espérer que l'impact sera moindre puisque les distributions auront patché leurs anciens noyaux pour fermer ces trous de sécurité.
Pour une distributions sérieuse se faire avoir par le premier exploit était excusable du fait de sa nouveauté, se faire avoir par le second serait tout bonnement impardonnable !
  • # (donc les systèmes utilisant SELinux sont vulnérables).

    Posté par  . Évalué à 3.

    Non, Non et Non!
    En tout cas en ce qui concerne la première failles.
    Les systèmes utilisant selinux et ... MAL CONFIGURE!
    la première faille disait "ouais si je tourne en unconfined, alors woot je peux bypasser selinux" ... si ton service est en unconfined, selinux ne le contrôle pas, donc ...
    • [^] # Re: (donc les systèmes utilisant SELinux sont vulnérables).

      Posté par  (site web personnel) . Évalué à 8.

      >>> Les systèmes utilisant selinux et ... MAL CONFIGURE!

      Je ne crois pas. Va lire les explications du premier exploit ici http://blog.cr0.org/2009/06/bypassing-linux-null-pointer.htm(...)
      Julien Tinnes explique bien que ce problème est présent parce que, par défaut, SELinux contient une mauvaise configuration.

      Sinon Linus vient d'annoncer la RC-6 du futur noyau 2.6.31 et il parle de la faille : "There's the NULL pointer fix that was already talked up on Slashdot, but quite frankly, assuming we got all the "you can't map things at zero" issues fixed from the last scare, that one hopefully wasn't quite as bad as it could have been.".

      Donc Linus pense que la précédente faille a permis aux gens de corriger leurs noyaux et que l'impact de la nouvelle faille sera donc limitée. On ne s'étonnera pas de constater que Brad n'est pas d'accord. Il souligne que les noyaux RedHat sont toujours vulnérables : "Red Hat still hasn't adequately addressed the SELinux vulnerability that allows any logged in user by default to mmap at NULL. Red Hat (...) have no plans to actually fix the problem (for "compatibility reasons"). So it's RHEL/CentOS boxes in particular that are going to take the biggest hit from this exploit purely because of their poor handling of the previous issue".
      • [^] # Re: (donc les systèmes utilisant SELinux sont vulnérables).

        Posté par  . Évalué à 3.

        Julien Tinnes explique bien que ce problème est présent parce que, par défaut, SELinux contient une mauvaise configuration.
        la "best practice" c'est plutôt de mettre tous les services que l'on connais pas en user_t (si selinux enabled), et ensuite, avec setroubleshoot ou des trucs comme ça d'essayer de faire la politique selinux.

        De plus y'a pas vraiment de conf "par défaut" au niveau de selinux. C'est au choix de la distrib (entre targeted, strict, mls, ...).
        Enfin, supposons que tu prenne targeted, qui effectivement de base fait tourner les daemons qu'il connais pas en unconfined, ca veut pas dire qu'il est bien configuré.

        De base certains serveurs ftp sont configurées en anonymous. C'est une bonne conf ?
        • [^] # Re: (donc les systèmes utilisant SELinux sont vulnérables).

          Posté par  (site web personnel) . Évalué à 6.

          Un bon système de sécurité doit avoir un paramètre par défault safe, surtout pour un truc destiné aux end-user. SeLinux c'est installé sur toutes les distribs modernes, et si tu crois vraiment que tout le monde configure au petit oignon SeLinux, hum bah, ouvre les yeux :D SeLinux pas grand monde y touche, même les admins. On peut ensuite reporter la faute sur les distributions si ça te fait plaisir, mais le fait reste : la configuration par "défault sur la majorité des distro" n'est pas bonne (genre carrément insafe) et ça semble trop compliqué pour le commun des mortels à configurer => deux mauvaises choses pour un sous-système de sécurité.
          • [^] # Re: (donc les systèmes utilisant SELinux sont vulnérables).

            Posté par  . Évalué à 2.

            Un bon système de sécurité doit avoir un paramètre par défault safe,
            Faux.
            Un bon système de sécurité doit trouver le bon compromis entre apporter un plus de sécurité, et pas trop emmerder les utilisateurs pour qu'ils le désactive.

            SeLinux c'est installé sur toutes les distribs modernes
            Absolument pas. En tout cas pas activé sur toutes les distribs moderne. Ca serait même plutôt l'inverse.
            debian le fait pas. gentoo non plus. mandriva il me semble pas. archlinux non plus. Y'a que fedora/red hat qui le fait de base il me semble.

            et si tu crois vraiment que tout le monde configure au petit oignon SeLinux, hum bah, ouvre les yeux :D
            Même chose pour le ftp. Et vient se plaindre parce que "oh un compte anonyme a pu se connecter" ben c'est ton problème. Tu as pas voulu voir ce que ca faisait, tu assumes.

            la configuration par "défault sur la majorité des distro" n'est pas bonne (genre carrément insafe) et ça semble trop compliqué pour le commun des mortels à configurer => deux mauvaises choses pour un sous-système de sécurité.
            Pas parce que tu n'aimes pas selinux qu'il te faut raconter des grosses conneries :
            1°) la conf par défaut RAJOUTE de la sécu, ca n'en enlève jamais. Simplement, les services qu'ils connait pas, ils les fait tourner comme si selinux n'existait pas, pour éviter de les bloquer.
            Ca leur donne pas plus de droit ni rien.
            2°) ca semble trop compliqué pour ceux qui veulent pas si mettre. Tout comme la conf d'un ldap semble trop compliqué pour le commun des mortels, ou la conf d'iptables.
            3°) un moment il faut aussi arrêter de vouloir une jolie interface avec juste deux bouton pour commencer à bosser réellement. Ca te plait pas, soit, ca veut pas dire que c'est mauvais.
            • [^] # Re: (donc les systèmes utilisant SELinux sont vulnérables).

              Posté par  . Évalué à 1.

              la conf par défaut RAJOUTE de la sécu, ca n'en enlève jamais. Simplement, les services qu'ils connait pas, ils les fait tourner comme si selinux n'existait pas, pour éviter de les bloquer.
              Ca leur donne pas plus de droit ni rien.


              Alors pourquoi mmap_min_address marchait pas sur les fedora avec SELinux ?
              • [^] # Re: (donc les systèmes utilisant SELinux sont vulnérables).

                Posté par  . Évalué à 3.

                Alors pourquoi mmap_min_address marchait pas sur les fedora avec SELinux ?

                A number of people have claimed the SELinux made the system weaker. It did, but in other ways it was still stronger. I'm working to get the best of both worlds, but it isn't fair to claim a universal across the board weakening.

                We, the SELinux team, made a decision to not require CAP_SYS_RAWIO (non techies can think of this as root, or uid=0) for mapping the 0 page. Instead we have an SELinux policy specific permission for this operation, mmap_zero. We made the choice to not require one to be root because WINE needs to do this operation and (sadly) there are a number of users out there who run windows applications inside WINE.
                • [^] # Re: (donc les systèmes utilisant SELinux sont vulnérables).

                  Posté par  . Évalué à 2.

                  et ...

                  On a non-SELinux system if the attacker was able to subvert any network facing daemon they won. They just tickled do the same thing. Take over daemon remotely, use pulseaudio to map the page, tickle the kernel bug, win. But what happens on an SELinux system? It doesn't work! Take over the network facing daemon, try the pulseaudio trick, crap, didn't get the page. Try to map the zero page directly. Crap it didn't work. Now what? You win, they lose. SELinux is stronger than non-SELinux.

                  This is because SELinux confines network facing daemons and doesn't give them permissions to map the 0 page. It's not about root or non-root. It's not about suid or non-suid. It's about the SELinux domain not allowing the daemon to map the 0 page. Yes, as an unconfined user you can map the page (and I'm looking at ways to fix that) but if your system is subverted remotely, you are likely much better protected with SELinux than without.


                  http://eparis.livejournal.com/606.html
                  • [^] # Re: (donc les systèmes utilisant SELinux sont vulnérables).

                    Posté par  . Évalué à 3.

                    Heureusement que un système avec SELinux est pas strictement moins sécurisé qu'un système sans...

                    Mais ça change rien au fait que sous fedora on peut mapper NULL, sans passer par des tricks de personnalité, malgré la configuration de mmap_min_addr:
                    http://lwn.net/Articles/342330/
                    [...] the mmap() code in the 2.6.30 kernel explicitly declines to enforce mmap_min_addr if the security module mechanism has been configured into the kernel. Security module checks are supposed to be additive to the checks which are already made by the kernel, but it didn't work that way this time; with regard to page zero, security modules can grant access which would otherwise be denied. To complete the failure, Red Hat's default SELinux policy allows mapping the zero page. So, in this case, running SELinux actually decreased the security of the system.
                  • [^] # Re: (donc les systèmes utilisant SELinux sont vulnérables).

                    Posté par  (site web personnel) . Évalué à 2.

                    J'aurai pas dit que Debian, gentoo, et archlinux sont des distros end-user. En l'occurence, ubuntu, fedora, et probablement suse utilise SeLinux de base. Ce sont elles les distribs end-user, "modernes" celles qui se propagent.

                    Concernant ftp, aucune de ces distributions ne lance un serveur ftp par défaut, donc je ne vois pas où tu veux en venir. De plus, je considère aussi comme une mauvaise implémentation une implémentation qui laisse l'accès anonymous par défaut cad sans explicitement l'indiquer)

                    Après bien sûr, je ("personnellent") serait probablement capable de configurer SeLinux, mais bon, on parle du "end-user", de l'admin à la windows. On peut ensuite demander aux distros end-user de faire une bonne configuration (ce qui n'a pas l'air le cas) (pulseaudio c'est intégré par ces distros, alors même que bon ça reste un choix technique discutable, donc ils devraient assuré la conf SeLinux qui va avec).
                    • [^] # Re: (donc les systèmes utilisant SELinux sont vulnérables).

                      Posté par  . Évalué à 2.

                      iEn l'occurence, ubuntu, fedora, et probablement suse utilise SeLinux
                      Suse non
                      il n'y a même pas les outils d'installé.
                      Et suse est largement moins utilisé en "end user" que gentoo et debian (enfin de mon experience).

                      Quant à ubuntu, je serais fort étonné que selinux fonctionne par défaut.
                      et quand je regarde google, ca tend à me conforter dans mon hyptohèse.

                      Concernant ftp, aucune de ces distributions ne lance un serveur ftp par défaut,
                      Euh... ca dépend ce que tu coche lors de l'install. Si tu met "serveur de fichier" ou une connerie comme ça ...

                      pulseaudio c'est intégré par ces distros, alors même que bon ça reste un choix technique discutable, donc ils devraient assuré la conf SeLinux qui va avec
                      Tout a fait d'accord, mais ils ne le font pas /o\.
  • # Pulse Audio

    Posté par  (site web personnel) . Évalué à 9.

    En fait, Brad n'aime pas pulseaudio, et c'est une façon détournée pour lui (mettre la kernel en faute) de le dire !

    Plus sérieusement, cette faille nécessite apparemment pulseaudio, donc sur des serveurs 'standards', ce n'est pas forcement critique., non ?
    J'adore le patch de Linus, une ligne ! :-)
    • [^] # Re: Pulse Audio

      Posté par  (site web personnel) . Évalué à 10.

      Avec le nombre de mec qui foute des ubuntu avec du gnome sur leur serveur aujourd'hui, je crois que la faille peut être critique bénéfique finalement ...

      Bon on est vendredi et j'ai le droit de dire que j'en ai marre de voir des Kevin qui n'ont jamais utiliser autre chose qu'un windows pour jouer a counter strike se payer un kimsufi et crier qu'ils sont des guru. Ca fini par nous faire des relais a spam ou des machines zombi sur le net ces histoires.
      • [^] # Re: Pulse Audio

        Posté par  . Évalué à 5.

        j'aurais pas dit mieux

        un serveur avec pulseaudio ?
        sur un serveur on fait tourner le minimum et on evite en general le superflu (donc l'interface graphique)
        et l'audio sur un serveur qui se trouve au datacenter, c'est peut-etre pas utile
        • [^] # Re: Pulse Audio

          Posté par  (site web personnel) . Évalué à 8.

          Sauf quand t'as des admins habitués à windows qui n'envisagent pas d'administrer une machine sans interface graphique...
        • [^] # Re: Pulse Audio

          Posté par  (site web personnel) . Évalué à 4.

          Si,
          Si le micro est chez toi, tu peux peux envoyer des petits mots doux aux personnes du data center.
          • [^] # Re: Pulse Audio

            Posté par  . Évalué à 2.

            le kvm est pas branché sur un retroprojecteur a mon boulot...
        • [^] # Re: Pulse Audio

          Posté par  (site web personnel) . Évalué à 10.

          Moi je passes de la musique classique aux serveurs afin qu'ils poussent bien, j'ai lu ça dans "botanique et informatique mag". Donc PulseAudio est super important sur les serveurs.

          "It was a bright cold day in April, and the clocks were striking thirteen" - Georges Orwell

          • [^] # Re: Pulse Audio

            Posté par  . Évalué à 3.

            Faudrait faire de la musique avec les ventilos dans une salle serveur.
            • [^] # Re: Pulse Audio

              Posté par  (site web personnel) . Évalué à 2.

              Tu peux avec le beeper en fait : d'ailleurs ne laisse jamais une machine avec un beeper fonctionnel tourner dans la pièce où tu dors si tu as un ami sadique qui y a accès : j'ai jouer du mozard a 3h du mat pour un pote via une tache cron !
              • [^] # Commentaire supprimé

                Posté par  . Évalué à 2.

                Ce commentaire a été supprimé par l’équipe de modération.

                • [^] # Re: Pulse Audio

                  Posté par  (site web personnel) . Évalué à 3.

                  Je dis peut être une connerie mais il me semble que at est livré avec le cron et que les deux sont intimement lier. Mais sinon le coup du mozard je l'ai bien fait qu'une seul fois et pas tout les jours sinon je crois que je l'aurai vu débarquer chez moi avec un fusils à pompe et de la bave sur le coin de la bouche.
                  • [^] # Commentaire supprimé

                    Posté par  . Évalué à 2.

                    Ce commentaire a été supprimé par l’équipe de modération.

                  • [^] # Re: Pulse Audio

                    Posté par  . Évalué à 6.

                    En tous cas toi t'as pas été livré avec un bouquin de grammaire ...
        • [^] # Re: Pulse Audio

          Posté par  (site web personnel) . Évalué à 1.

          Je suis assez d'accord avec toi (j'utilise Ubuntu Server donc sans Xorg).

          Par contre, je me pose une question : sur un serveur perso, on met généralement d'autres services que les sites qu'on héberge, par exemple on pourrait imaginer brancher le serveur à un ampli et y mettre mpd pour la contrôler à partir de tous les autres pc. Dans ce cas, pulse audio doit être installé?

          blog.rom1v.com

          • [^] # Re: Pulse Audio

            Posté par  . Évalué à 4.

            on pourrait imaginer brancher le serveur à un ampli et y mettre mpd pour la contrôler à partir de tous les autres pc. Dans ce cas, pulse audio doit être installé?

            tu connais beaucoup d'utilisateurs chez toi qui vont vouloir passer root
            sur le serveur de la maison ?

            il ne faut pas oublier non plus que c'est une faille locale
            il faut un acces à la machine
            • [^] # Re: Pulse Audio

              Posté par  (site web personnel) . Évalué à 1.

              Non mais ce serveur peut également faire serveur HTTP vers l'extérieur. Une simple prise de contrôle du compte utilisateur ou www-data et il est possible de passer root…

              blog.rom1v.com

              • [^] # Re: Pulse Audio

                Posté par  . Évalué à 3.

                il faut donc realiser 2 exploits
                - le premier prendre le controle sous www-data
                - mettre en application l'exploit ici designé
                • [^] # Re: Pulse Audio

                  Posté par  . Évalué à 2.

                  Le premier, c'est souvent pas trop compliqué. Une faille dans un site php, un petit exec, et op…

                  Envoyé depuis mon lapin.

                  • [^] # Re: Pulse Audio

                    Posté par  . Évalué à 2.

                    Le premier, c'est souvent pas trop compliqué. Une faille dans un site php, un petit exec, et op…
                    Tu me trouves ça sur un amazon ou autre, si c'est "pas compliqué" ?
    • [^] # Re: Pulse Audio

      Posté par  (site web personnel) . Évalué à 1.

      Sans avoir décortiquer l'exploit, je pense que comme dans l'exploit précédent, pulseaudio n'est pas un pré-requis absolu, mais qu'il a utilisé plus ou moins le même vecteur d'attaque que précédement.

      Sinon le patch de Linus, hum, une ligne, mais qui ne résoult pas le problème intrinséque (le problème c'est que sock->ops->sendpage pointe sur rien à priori). En faisant ça, on élimine le bug dans ce cas, mais on peut très bien le réintroduire plus tard (vu qu'on a toujours pas fixé le vrai bug (et qu'un mec dans 2 ans, il aura probablement oublié que dans certains cas, l'opération sendpage est non valide).
      • [^] # Re: Pulse Audio

        Posté par  (site web personnel) . Évalué à 5.

        J'ai regardé en vitesse l'exploit et j'ai l'impression qu'il y a en fait deux exploits différents (lancés par le script shell suivant la machine).
        Apparement il faut pulseaudio si SELinux est installé, mais sinon pas besoin.

        Sur une ubuntu 9.04, sans pulseaudio, l'exploit fonctionne quand même :

        ~/tmp/wunderbar_emporium$ ./wunderbar_emporium.sh
        [+] MAPPED ZERO PAGE!
        [+] Resolved selinux_enforcing to 0xc08653bc
        [+] Resolved selinux_enabled to 0xc08653b8
        [+] Resolved apparmor_enabled to 0xc06a0d84
        [+] Resolved apparmor_complain to 0xc0866fb8
        [+] Resolved apparmor_audit to 0xc0866fc0
        [+] Resolved apparmor_logsyscall to 0xc0866fc4
        [+] Resolved security_ops to 0xc0863b60
        [+] Resolved default_security_ops to 0xc069fb40
        [+] Resolved sel_read_enforce to 0xc0293a70
        [+] Resolved audit_enabled to 0xc0822564
        [+] got ring0!
        [+] detected 2.6 style 8k stacks
        (.... mplayer ...)
        [+] Disabled security of : nothing, what an insecure machine!
        [+] Got root!
        • [^] # Re: Pulse Audio

          Posté par  . Évalué à 1.

          Pas sur la mieme. T'es a jour au niveau des updates ?
          • [^] # Re: Pulse Audio

            Posté par  . Évalué à 1.

            Ben bizarrement oui. Mais bon : c'est la machine du taff (et tant que c'est pas autre chose que local ça va) ...
  • # Coté positif

    Posté par  (site web personnel) . Évalué à 9.

    L'exploit lance CACA_DRIVER=ncurses mplayer -ao oss -vo caca %s et on peut voir dans la vidéo ( http://www.youtube.com/watch?v=arAfIp7YzZ4 ) que avec libcaca le dither d'une image en niveaux de gris peut avoir des couleurs, ce qui ne fait pas joli.

    Du coup sam a codé hier un petit patch ( http://caca.zoy.org/changeset/3640/libcaca/trunk/caca/dither(...) ) et ça doit être beaucoup plus joli avec la version svn de libcaca :)
  • # ..

    Posté par  . Évalué à 3.

    On dirait qu'il y en a qui veulent faire payer leur refus d'inclusion dans la branche kernel...
  • # Sacré Brad

    Posté par  (site web personnel) . Évalué à 3.

    L'exploit marche très bien sur une ubuntu 8.10 out-of-the-box. De quoi amuser les script kiddies de long mois.
    • [^] # Re: Sacré Brad

      Posté par  . Évalué à 1.

      Il semble que l'exploit soit un exploit local. Ma question est donc : Laisses tu n'importe qui approcher des machines dont tu as la charge (ou boulot) ou que tu possèdes ?
    • [^] # Re: Sacré Brad

      Posté par  . Évalué à 1.

      Sur une 9.10:

      % ./wunderbar_emporium.sh
      [+] Personality set to: PER_SVR4
      Pulseaudio is not suid root!

      Ce qui me semble plutôt normal, pourquoi est-ce que pulseaudio devrait être suid?
      Pour testé, j'ai réessayé après un chmod +s /usr/bin/pulseaudio:

      ./wunderbar_emporium.sh
      [+] Personality set to: PER_SVR4
      UNABLE TO MAP ZERO PAGE!

      Donc à priori le mmap_min_address fait bien son boulot sur les kernels récents.
      • [^] # Re: Sacré Brad

        Posté par  . Évalué à 3.

        Donc à priori le mmap_min_address fait bien son boulot sur les kernels récents.

        Le problème c'était que sur la config fedora, SELinux désactivait mmap_min_address, rendant le système moins sécurisé.
      • [^] # 9.10 ?

        Posté par  (site web personnel) . Évalué à 3.

        Tu l'as téléchargé où ta 9.10 ? :D
      • [^] # Re: Sacré Brad

        Posté par  . Évalué à 1.

        C'est bizarre j'ai une ubuntu toute fraiche au boulot et moi mon résultat est inquiétant :

        [+] MAPPED ZERO PAGE!
        [+] Resolved selinux_enforcing to 0xc08653bc
        [+] Resolved selinux_enabled to 0xc08653b8
        [+] Resolved apparmor_enabled to 0xc06a0d84
        [+] Resolved apparmor_complain to 0xc0866fb8
        [+] Resolved apparmor_audit to 0xc0866fc0
        [+] Resolved apparmor_logsyscall to 0xc0866fc4
        [+] Resolved security_ops to 0xc0863b60
        [+] Resolved default_security_ops to 0xc069fb40
        [+] Resolved sel_read_enforce to 0xc0293a70
        [+] Resolved audit_enabled to 0xc0822564
        [+] got ring0!
        [+] detected 2.6 style 8k stacks
        [+] Disabled security of : nothing, what an insecure machine!
        [+] Got root!
        # whoami
        root


        Ce qui est plutôt inquiétant ...
      • [^] # Commentaire supprimé

        Posté par  . Évalué à 1.

        Ce commentaire a été supprimé par l’équipe de modération.

        • [^] # Re: Sacré Brad

          Posté par  . Évalué à 5.

          Tu as du installé Wine alors:

          % cat /etc/sysctl.d/30-wine.conf
          # Wine needs to access the bottom 64k of memory in order to launch
          # 16 bit programs.
          vm.mmap_min_addr = 0

          C'est génial wine, il permet même d'émuler le niveau de sécurité de Windows /o\
  • # Marche pô

    Posté par  (site web personnel, Mastodon) . Évalué à 1.

    Je suis content, mais je ne comprends pas trop pourquoi : l'exploit ne fonctionne pas sur mon serveur debian testing de chez OVH.
    Le noyau est :
    2.6.24.5-grsec-xxxx-grs-ipv4-64

    c'est grsec qui change tout ?
    • [^] # Re: Marche pô

      Posté par  . Évalué à 2.

      non, c'est le fait que pulsaudio n'est pas installé tout simplement.
      • [^] # Re: Marche pô

        Posté par  (site web personnel) . Évalué à 2.

        pulsaudio n'est pas présent sur mon serveur Debian 5.0.1 et l'exploit fonctionne...

        david@azur:~/wunderbar_emporium$ ./wunderbar_emporium.sh
        [+] MAPPED ZERO PAGE!
        [+] Resolved audit_enabled to 0xffffffff80771444
        [+] got ring0!
        [+] detected 2.6 style 4k stacks
        sh: mplayer: command not found
        [+] Disabled security of : nothing, what an insecure machine!
        [+] Got root!
        sh-3.2# id
        uid=0(root) gid=0(root) groupes=1000(david)
        • [^] # Re: Marche pô

          Posté par  . Évalué à 3.

          y'a une couille dans le potage alors.
          Comment une faille de pulseaudio peut etre exploité si ... il n'y a pas pulseaudio (et donc pas la faille) ?
          • [^] # Re: Marche pô

            Posté par  . Évalué à 5.

            Apparement, pulse audio sert à passer outre les systèmes de sécurité.

            Envoyé depuis mon lapin.

            • [^] # Re: Marche pô

              Posté par  . Évalué à 6.

              Ah? Moi qui pensais que c'était un mixeur audio qui marchait mal. J'avais tout faux ;)
        • [^] # Re: Marche pô

          Posté par  . Évalué à 2.

          Et /proc/sys/vm/mmap_min_addr ça donne quoi ?
    • [^] # Re: Marche pô

      Posté par  . Évalué à 4.

      Sachant que le mec qui a publié l'exploit est un dev de grsec, y'a des chances.
      • [^] # Re: Marche pô

        Posté par  (site web personnel, Mastodon) . Évalué à 1.

        Ah ok merci pour l'info. Et en effet j'ai pas pulseaudio (qu'est-ce que je ferais d'un truc pareil sur un serveur ???).
        Ben c'est la première fois que je trouve donc un intérêt au patch grsec dans ce noyau. Tant mieux ça m'évite un upgrade + reboot.

        Au fait, y'a un système pour faire fonctionner un noyau Linux et pouvoir le recharger à chaud ? Avec un noyau hybride ptre, type mklinux ? C'est dispo ça sous debian ? (Oui c'est un peu HS).
  • # question con

    Posté par  (site web personnel) . Évalué à -4.

    une question con mais en quoi c'est une faille de lancer mplayer ? ou d'utiliser pulseaudio ?
    avoir un shell root je comprends, mais là non ...

    après avoir installer pulseaudio, j'ai eu droit à
    E: bluetooth-util.c: Error from ListAdapters reply: org.freedesktop.DBus.Error.ServiceUnknown
    UNABLE TO MAP ZERO PAGE!

    en plus faut du bluetooth ?
  • # Brad n'es pas seul.

    Posté par  (site web personnel) . Évalué à 1.

    A l'instant un nouveau Poc vient de faire son apparition:
    http://www.frasunek.com/proto_ops.tgz

    Attention, ça vient de FD, les précautions d'usage s'imposent...
  • # sur ma vielle débian

    Posté par  . Évalué à 3.

    herve@debian:~/wunderbar_emporium$ ./wunderbar_emporium.sh
    [+] MAPPED ZERO PAGE!
    [+] Resolved security_ops to 0xc03796a0
    [+] Resolved sel_read_enforce to 0xc01a0b6b
    ./wunderbar_emporium.sh: line 39: 4822 Erreur de segmentation ./exploit
    • [^] # Re: sur ma vielle débian

      Posté par  (Mastodon) . Évalué à 1.

      Sur ma Slack récente (current) ça explose aussi, mais différemment :
      $ ./wunderbar_emporium.sh
      [+] Personality set to: PER_SVR4
      I: caps.c: Limited capabilities successfully to CAP_SYS_NICE.
      I: caps.c: Dropping root privileges.
      I: caps.c: Limited capabilities successfully to CAP_SYS_NICE.
      [WARN 17469] polkit-session.c:144:polkit_session_set_uid(): session != NULL
      Not built with -rdynamic so unable to print a backtrace
      E: polkit.c: Impossible de définir l'UID sur l'objet de session.
      E: module-console-kit.c: GetSessionsForUnixUser() call failed: org.freedesktop.DBus.Error.ServiceUnknown: The name org.freedesktop.ConsoleKit was not provided by any .service files
      E: module.c: Failed to load module "module-console-kit" (argument: ""): initialization failed.
      E: main.c: Module load failed.
      E: main.c: Échec lors de l'initialisation du démon

      J'avoue, je ne vais pas m'amuser à débugger son exploit.
      Mais je n'ai pas pulseaudio, et j'ai compilé mon kernel 2.6.30 moi-même.

      Yth.
  • # Ubuntu

    Posté par  . Évalué à 1.

    Je viens de tester sur Ubuntu 9.04 et LTS 8.04, ca marche...
    Naturellement, en mettant à 1 la valeur de /proc/sys/vm/mmap_min_addr, ca ne passe plus...
    • [^] # Re: Ubuntu

      Posté par  . Évalué à 2.

      Chez moi le mmap_min_addr est a 65536 par default sur une 9.04
      J'ai bien pulseaudio, mais l'exploit n'a pas l'air de marcher non plus :

      ./pwnkernel [+] Personality set to: PER_SVR4
      I: caps.c: Limited capabilities successfully to CAP_SYS_NICE.
      I: caps.c: Dropping root privileges.
      I: caps.c: Limited capabilities successfully to CAP_SYS_NICE.
      UNABLE TO MAP ZERO PAGE!
      [l'exploit se bloque ici]
      • [^] # Re: Ubuntu

        Posté par  . Évalué à 1.

        Bizarre, sur les deux ubuntu que j'ai testé, il était à 0....Après, c'est pas forcément le truc par défaut.
  • # Fedora 11 x86_64

    Posté par  (site web personnel) . Évalué à 2.

    [sufflope@Weltall wunderbar_emporium]$ ./wunderbar_emporium.sh
    runcon: contexte invalide : unconfined_u:unconfined_r:initrc_t:s0-s0:c0.c1023: Argument invalide
    UNABLE TO MAP ZERO PAGE!

    J'ai rien modifié comme config SELinux/noyau/machin.
    • [^] # Re: Fedora 11 x86_64

      Posté par  . Évalué à 1.

      Je confirme la config par défaut de SELinux empêche l'exploit de fonctionner.

      Résumé
      SELinux is preventing exploit (unconfined_t) "mmap_zero" to (unconfined_t).

      Description détaillée
      SELinux denied access requested by exploit. The current boolean settings do not allow this access. If you have not setup exploit to require this access this may signal an intrusion attempt. If you do intend this access you need to change the booleans on this system to allow the access.

      Autoriser l'accès
      Confined processes can be configured to to run requiring different access, SELinux provides booleans to allow you to turn on/off access as needed. The boolean allow_unconfined_mmap_low is set incorrectly.
      Boolean Description:
      Allow unconfined domain to map low memory in the kernel
  • # Pardus 2009

    Posté par  . Évalué à 2.

    sh ./wunderbar_emporium.sh
    ./wunderbar_emporium.sh: line 22: cc: command not found
    ./wunderbar_emporium.sh: line 23: cc: command not found
    ./wunderbar_emporium.sh: line 24: ./pwnkernel: Aucun fichier ou dossier de ce type

    Tout va bien.
    • [^] # Re: Pardus 2009

      Posté par  (site web personnel) . Évalué à -2.

      Si c'est de l'humour, oubli ce qui suit.

      Pour que tu comprennes pourquoi des gens trouve "inutile" ton commentaire, juste une petite explication.
      Les 2 premières lignes indiquent que tu n'as pas de compilateur installé. La dernière indique l'exécutable qui est créer pendant une des 2 premières étapes n'existe pas vu que ça raté.

      (cf wikipedia/google/www pour les mots compilateurs, exécutable, etc...)

      Donc cela ne prouve rien, il suffit de compiler le binaire sur une autre machine et le lancer sur la tienne pour que ça marche peut-être.
      • [^] # arg l'orthographe :)

        Posté par  (site web personnel) . Évalué à 0.

        s/\(est cré\)er/\1é/;s/\(ça\) \(raté\)/\1 a \2/

        ouais... c'est nazeeee, c'est juste pour changer un peu des commentaires type "sed" typique linuxfr...

        d'ailleurs on le dit jamais assez :

        SED C'EST BIEN !
  • # Workarround ?

    Posté par  (site web personnel) . Évalué à 1.

    Plus sérieusement: ya t-il moyen de protéger un serveur contre cette faille, sans mise à jour du kernel ? (sur un serveur qui n'a pas pulseaudio).
    • [^] # Re: Workarround ?

      Posté par  (site web personnel) . Évalué à 3.

      Mettre /proc/sys/vm/mmap_min_addr à 1 ?
      • [^] # Re: Workarround ?

        Posté par  (site web personnel) . Évalué à 2.

        et quels sont les conséquences ?
        • [^] # Re: Workarround ?

          Posté par  (site web personnel) . Évalué à 3.

          Les programmes windows 16 bits ne fonctionneront plus avec wine... à part ça, je sais pas trop, mais ça protège de la faille.
          • [^] # Re: Workarround ?

            Posté par  (site web personnel) . Évalué à 1.

            Ca me gène un peu de modifier un paramètre kernel sans réellement savoir ce qu'il fait, surtout si, d'après le peu d'infos que j'ai trouvé et compris, ce paramètre peut jouer sur la stabilité des programmes/services... :-/
            • [^] # Re: Workarround ?

              Posté par  (site web personnel) . Évalué à 2.

              Sachant que par défaut maintenant c'est > 0 sauf si tu installes wine... je pense que pour tout ce qui est non wine c'est safe, maintenant j'ai pas fait plus de recherche que ça.
              • [^] # Re: Workarround ?

                Posté par  (site web personnel) . Évalué à 1.

                sur un poste de travail je ne me poserais pas tant de questions, mais sur des serveurs fortement chargés ?
                • [^] # Re: Workarround ?

                  Posté par  (site web personnel) . Évalué à 2.

                  Comme je l'ai dit plus haut... par defaut c'est > 0, y a que si tu as installé wine que ça vaut '0'.

                  Donc si t'utilises pas wine (je vois pas ce que ça peut foutre sur un serveur), tu es safe... sinon google<
    • [^] # Re: Workarround ?

      Posté par  (site web personnel) . Évalué à 1.

      pour info le kernel Debian 2.6.26-17lenny2 pour lenny, a le patch de Linus.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.