exploit-db-mirror/exploits/macos/local/43247.md
Offensive Security c35d9b35f7 DB: 2017-12-09
14 changes to exploits/shellcodes

macOS < 10.12.2 / iOS < 10.2 Kernel - ipc_port_t Reference Count Leak Due to Incorrect externalMethod Overrides Use-After-Free
macOS 10.12.1 / iOS < 10.2 - powerd Arbitrary Port Replacement
macOS 10.12.1 / iOS < 10.2 - syslogd Arbitrary Port Replacement
Apple macOS < 10.12.2 / iOS < 10.2 Kernel - ipc_port_t Reference Count Leak Due to Incorrect externalMethod Overrides Use-After-Free
Apple macOS 10.12.1 / iOS < 10.2 - powerd Arbitrary Port Replacement
Apple macOS 10.12.1 / iOS < 10.2 - syslogd Arbitrary Port Replacement
macOS 10.12.1 / iOS 10.2 - Kernel Userspace Pointer Memory Corruption
macOS 10.12.1 / iOS Kernel - 'IOService::matchPassive' Use-After-Free
macOS 10.12.1 / iOS Kernel - 'host_self_trap' Use-After-Free
Apple macOS 10.12.1 / iOS 10.2 - Kernel Userspace Pointer Memory Corruption
Apple macOS 10.12.1 / iOS Kernel - 'IOService::matchPassive' Use-After-Free
Apple macOS 10.12.1 / iOS Kernel - 'host_self_trap' Use-After-Free
Wireshark 2.4.0 - 2.4.2 / 2.2.0 - 2.2.10 - CIP Safety Dissector Crash
Linux Kernel - DCCP Socket Use-After-Free
Wireshark 2.4.0 < 2.4.2 / 2.2.0 < 2.2.10 - CIP Safety Dissector Crash
Linux Kernel 4.10.5 / < 4.14.3 (Ubuntu) - DCCP Socket Use-After-Free

iOS 10.1.1 / macOS 10.12 16A323 XNU Kernel - set_dp_control_port Lack of Locking Use-After-Free
Apple iOS 10.1.1 / macOS 10.12 16A323 XNU Kernel - set_dp_control_port Lack of Locking Use-After-Free

macOS < 10.12.2 / iOS < 10.2 - Broken Kernel Mach Port Name uref Handling Privileged Port Name Replacement Privilege Escalation
Apple macOS < 10.12.2 / iOS < 10.2 - Broken Kernel Mach Port Name uref Handling Privileged Port Name Replacement Privilege Escalation

iOS/macOS - xpc_data Objects Sandbox Escape Privelege Escalation
Apple iOS/macOS - 'xpc_data' Objects Sandbox Escape Privilege Escalation

macOS High Sierra - Local Privilege Escalation (Metasploit)
Apple macOS 10.13.1 (High Sierra) - 'Blank Root' Local Privilege Escalation (Metasploit)
Apple macOS 10.13.1 (High Sierra) - Insecure Cron System Local Privilege Escalation
Apple macOS 10.13.1 (High Sierra) - 'Blank Root' Local Privilege Escalation

LabF nfsAxe FTP Client 3.7 - Buffer Overflow (DEP Bypass)
DomainSale PHP Script 1.0 - 'id' SQL Injection
Simple Chatting System 1.0.0 - Arbitrary File Upload
Website Auction Marketplace 2.0.5 - 'cat_id' SQL Injection
Realestate Crowdfunding Script 2.7.2 - 'pid' SQL Injection
FS Thumbtack Clone 1.0 - 'cat' / 'sc' SQL Injection
FS Stackoverflow Clone 1.0 - 'keywords' SQL Injection
FS Shutterstock Clone 1.0 - 'keywords' SQL Injection
FS Quibids Clone 1.0 - SQL Injection
FS Olx Clone 1.0 - 'scat' / 'pid' SQL Injection
FS Monster Clone 1.0 - 'Employer_Details.php?id' SQL Injection
2017-12-09 05:02:21 +00:00

1.1 KiB

Recently I was working on an security issue in some other software that has yet to be disclosed which created a rather interesting condition. As a non-root user I was able to write to any file on the system that was not SIP-protected but the resulting file would not be root-owned, even if it previously was.

This presented an interesting challenge for privilege escalation - how would you exploit this to obtain root access? The obvious first attempt was the sudoers file but sudo is smart enough not to process it if the file isn't root-owned so that didn't work.

I then discovered (after a tip from a friend - thanks pndc!) that the cron system in macOS does not care who the crontab files are owned by. Getting root was a simple case of creating a crontab file at:

/var/at/tabs/root

with a 60-second cron line, eg:

* * * * * chown root:wheel /tmp/payload && chmod 4755 /tmp/payload

and then waiting for it to execute. It's not clear if this is a macOS-specific issue or a hangover from the BSD-inherited cron system, I suspect the latter.

The issue has been reported to Apple so hopefully they will fix it.