HackCert
Advanced 11 min read May 25, 2026

macOS PrivEsc: ম্যাক অপারেটিং সিস্টেমে লোকাল প্রিভিলেজ এস্কেলেশন এবং নিরাপত্তা!

macOS-এ Privilege Escalation কৌশল, TCC Bypass, SUID Abuse এবং বিখ্যাত CVE বিশ্লেষণ।

Ahmed Rafiq Khan
Offensive Security Researcher
share
macOS PrivEsc: ম্যাক অপারেটিং সিস্টেমে লোকাল প্রিভিলেজ এস্কেলেশন এবং নিরাপত্তা!
Overview

macOS দীর্ঘদিন একটি "নিরাপদ" অপারেটিং সিস্টেম হিসেবে পরিচিত ছিল, কিন্তু গত দশকে এর Security Architecture-এ অসংখ্য Vulnerability আবিষ্কৃত হয়েছে। Privilege Escalation বা PrivEsc - যেখানে একজন Standard User Root বা System-Level Access অর্জন করে - macOS-এ একটি সক্রিয় গবেষণা ক্ষেত্র। Csaba Fitzl, Patrick Wardle, এবং Cedric Owens-এর মতো গবেষকরা নিয়মিত নতুন CVE প্রকাশ করছেন। শুধু 2023 সালেই macOS-এ 100-এর বেশি Local Privilege Escalation CVE Patch হয়েছে।

এই Advanced প্রবন্ধে আমরা macOS-এর Security Boundary, বিখ্যাত PrivEsc কৌশল, TCC এবং SIP Bypass পদ্ধতি, এবং বাস্তব CVE বিশ্লেষণ করব। Red Teamer এবং Bug Bounty Hunter-এর জন্য এই জ্ঞান অপরিহার্য, এবং নীল দলের সদস্যদের জন্য Detection Strategy তৈরিতে সহায়ক।

macOS-এর Security Boundary

macOS-এ Privilege Escalation বুঝতে আগে এর Security Boundary বোঝা প্রয়োজন। Traditional Unix Permission (User/Group/Other, SUID, SGID) ছাড়াও macOS-এ একাধিক অতিরিক্ত Layer রয়েছে। প্রথমত, Sandbox - প্রতিটি Modern Application একটি Sandbox-এ চলে যা Filesystem এবং System Resource Access সীমিত করে। Mac App Store-এর সব Application Sandboxed।

দ্বিতীয়ত, Transparency, Consent and Control বা TCC - এটি Application-এর Sensitive Resource (Camera, Microphone, Photos, Documents, Full Disk Access) Access নিয়ন্ত্রণ করে। তৃতীয়ত, System Integrity Protection বা SIP - যা Root User-কেও System File Modify করতে বাধা দেয়। চতুর্থত, Mandatory Access Control Framework বা MACF, যা XNU Kernel-এর একটি অংশ।

এই Boundary-গুলো একে অপরের সাথে Interact করে। একজন Attacker Standard User হতে পারে এবং Root চায়; অথবা Root হতে পারে কিন্তু Specific TCC Permission চায়; অথবা Root হলেও SIP Bypass করতে চায়। প্রতিটি Transition-কে আলাদাভাবে অর্জন করতে হয়।

SUID Binary এবং Misconfiguration

Classic Unix-Style Privilege Escalation এখনও macOS-এ কার্যকর। SUID Binary - যা Owner-এর Privilege-এ চলে - একটি প্রধান Vector। macOS-এ ডিফল্টে কম SUID Binary আছে Linux-এর তুলনায়, কিন্তু Third-Party Application প্রায়ই Vulnerable SUID Binary স্থাপন করে।

find / -perm -4000 -type f 2>/dev/null কমান্ড সব SUID Binary তালিকা করে। sudo এর Configuration (/etc/sudoers এবং /etc/sudoers.d/) পরীক্ষা করা উচিত। NOPASSWD Entry, Wildcard Use, এবং Command Injection Path প্রায়ই Privilege Escalation-এর সুযোগ দেয়।

Pkexec-এর equivalent macOS-এ Authorization Services Framework, যা AuthorizationExecuteWithPrivileges Function-এর মাধ্যমে কাজ করে। অনেক Third-Party Installer এটি ব্যবহার করে এবং দুর্বল Implementation-এর কারণে PrivEsc-এর সুযোগ তৈরি করে।

Cron Job, LaunchAgent, এবং LaunchDaemon-এর Misconfiguration একটি বড় Privilege Escalation Vector। যদি কোনো LaunchDaemon-এর Plist File বা Target Binary Standard User-এর Writable হয়, তাহলে সেই User Root হিসেবে যেকোনো Code চালাতে পারে। ls -la /Library/LaunchDaemons/ এবং প্রতিটি Plist-এ উল্লিখিত Binary-এর Permission পরীক্ষা করা উচিত।

TCC এবং তার Bypass কৌশল

Transparency, Consent and Control বা TCC macOS-এর সবচেয়ে গুরুত্বপূর্ণ Privacy Layer। এটি একটি Centralized Database (~/Library/Application Support/com.apple.TCC/TCC.db ব্যবহারকারীর জন্য, /Library/Application Support/com.apple.TCC/TCC.db System-Wide) ব্যবহার করে Application-এর Sensitive Resource Access ট্র্যাক করে।

TCC Bypass গবেষণা গত কয়েক বছরে অত্যন্ত সক্রিয়। CVE-2020-9934 (Jeff Johnson)-এ Attacker Crafted Bundle ব্যবহার করে TCC Prompt এড়াতে পেরেছিল। CVE-2022-26726 (Wojciech Reguła) Xcode-এর একটি Bug ব্যবহার করে Full Disk Access অর্জন করেছিল। CVE-2023-32369 (powerofcommunity) তে tccd-এর সাথে Race Condition Exploit করা হয়েছিল।

TCC Bypass-এর সাধারণ পদ্ধতিগুলোর মধ্যে রয়েছে Dylib Injection, যেখানে একটি Trusted Application-এ Malicious Dylib লোড করে তার TCC Permission Inherit করা; AppleEvents Abuse, যেখানে Automation Permission ব্যবহার করে অন্য Application-এর কাছ থেকে Sensitive Data অনুরোধ করা; এবং Symlink Attack, যেখানে TCC-Protected Directory-তে Symlink তৈরি করে Bypass করা।

Hardened Runtime এবং Library Validation এই Attack-এর বিরুদ্ধে কিছুটা সুরক্ষা দেয়, কিন্তু সম্পূর্ণ নয়। Notarization এবং Stapled Ticket আরও Defense Layer যোগ করেছে। তবুও Old Application-গুলোতে Library Validation Disabled থাকতে পারে, যা Injection Attack সম্ভব করে।

SIP Bypass এবং Kernel-Level Issue

System Integrity Protection বা SIP macOS El Capitan থেকে যুক্ত হয়েছে এবং Root User-কেও Protected File Modify করতে বাধা দেয়। SIP-এর Configuration nvram-এ csr-active-config Variable-এ সংরক্ষিত। Recovery Mode-এ Boot করে csrutil disable কমান্ডে এটি বন্ধ করা যায়, কিন্তু এটি Physical Access প্রয়োজন।

Remote SIP Bypass অর্জন একটি অত্যন্ত মূল্যবান Capability। Apple SIP Bypass-এর জন্য বিশেষ Bug Bounty পুরস্কার প্রদান করে - Maximum 500,000 USD। CVE-2021-30892 (Microsoft Threat Intelligence) Shrootless নামে পরিচিত, যেখানে Package Installation Script-এর মাধ্যমে SIP Bypass সম্ভব ছিল।

CVE-2022-26701 (Csaba Fitzl) এবং অন্যান্য বহু CVE-তে macOS-এর Installer.app, system_installd, এবং অন্যান্য Privileged Component-এর Logic Flaw ব্যবহার করা হয়েছে। প্রায়শই Bypass-এর ধরন হলো একটি Trusted Privileged Process-কে Convince করা যে এটি একটি Operation Legitimate, যখন আসলে Attacker সেই Operation-এর মাধ্যমে SIP-Protected Location-এ লেখার সুযোগ পায়।

Kernel-Level Vulnerability সবচেয়ে শক্তিশালী, কিন্তু সবচেয়ে দুর্লভ। macOS Kernel-এর Source Code XNU হিসেবে Public, যা গবেষণা সহজ করে। তবে Pointer Authentication Codes বা PAC, KTRR, এবং SPTM-এর মতো M-Series-এর Hardware Mitigation আধুনিক Kernel Exploitation অত্যন্ত কঠিন করেছে।

XPC এবং Mach IPC-এর Attack Surface

XPC এবং Mach IPC macOS-এ Inter-Process Communication-এর প্রধান পদ্ধতি। বহু Privileged Service XPC-এর মাধ্যমে অনুরোধ গ্রহণ করে। যদি একটি XPC Service ক্লায়েন্ট Validation সঠিকভাবে না করে, তাহলে যেকোনো User-Level Process সেটিকে Privileged Operation করতে বাধ্য করতে পারে।

XPC Connection-এ Client Validation-এর সঠিক পদ্ধতি হলো Code Signing Identity, Hardened Runtime, Bundle ID, এবং Entitlement যাচাই করা। বহু Third-Party Application এই Validation দুর্বলভাবে করে, যা PrivEsc-এর সুযোগ তৈরি করে। উদাহরণস্বরূপ, শুধু PID-Based Validation Race Condition-এর জন্য Vulnerable, কারণ PID Reuse হতে পারে।

CVE-2019-13013 (Adobe Acrobat Reader), CVE-2022-22587 (Microsoft Office), এবং বহু Third-Party Application-এ XPC Vulnerability-এর মাধ্যমে Local PrivEsc অর্জন করা গেছে। Patrick Wardle-এর "The Mac Hacker's Handbook" এবং Csaba Fitzl-এর Conference Talks এই বিষয়ে গভীর তথ্য সরবরাহ করে।

Mach IPC আরও নিচু Level-এ কাজ করে। Mach Port Name Space প্রতিটি Process-এর জন্য আলাদা, কিন্তু Bootstrap Server (launchd)-এর মাধ্যমে Cross-Process Communication সম্ভব। Mach Port-এর Send Right কোনো Attacker-এর হাতে গেলে সে সেই Port-এর সাথে যুক্ত Service-কে Manipulate করতে পারে।

Race Condition এবং TOCTOU Attack

Time-of-Check to Time-of-Use বা TOCTOU Vulnerability macOS PrivEsc-এ একটি সাধারণ Pattern। একটি Privileged Process একটি File Check করে এবং পরে সেটি Open বা Modify করে। এই Check এবং Use-এর মধ্যবর্তী সময়ে Attacker File Replace করে দিতে পারে।

বিখ্যাত উদাহরণ হলো CVE-2022-22617 (Brandon Azad), যেখানে Installer.app-এর একটি Race Condition ছিল। Attacker একটি Symlink ব্যবহার করে Installer-কে Protected Location-এ লিখতে বাধ্য করেছিল। CVE-2021-30853 আরেকটি উদাহরণ যেখানে BlessHelper-এ Race Condition ছিল।

Race Condition Exploit-এর জন্য Precision Timing প্রয়োজন। Spinning Loop, Renameat2 System Call, এবং File Descriptor Manipulation-এর মতো কৌশল ব্যবহার করা হয়। কখনও কখনও Attacker File System-এর নির্দিষ্ট ব্যবহার (যেমন Slow Disk বা Network File System) Manipulate করে Window বাড়ায়।

বিখ্যাত PrivEsc CVE-এর বিশ্লেষণ

CVE-2021-30724 (CVMServer Vulnerability) সিম্পল কিন্তু শক্তিশালী একটি উদাহরণ। CVMServer একটি LaunchDaemon যা Root হিসেবে চলত এবং Mach IPC-এর মাধ্যমে অনুরোধ গ্রহণ করত। Client Validation Logic-এ একটি Bug ছিল যা যেকোনো Local Process-কে Privileged Operation Trigger করতে দিত।

CVE-2023-23493 (Csaba Fitzl) Time Machine-এর একটি Vulnerability ছিল। tmutil Command-এর একটি Specific Argument পার্সিং বাগ ব্যবহার করে Arbitrary File Write অর্জন করা সম্ভব ছিল, যা Privileged Context-এ চলত। এটি LaunchDaemon Plist Overwrite করে Persistence এবং Root অর্জনে পরিণত হত।

CVE-2024-23227 (Mickey Jin) Notes Application-এর XPC Service-এ একটি Vulnerability। NotesAccess.xpc-এর Improper Client Validation একটি Sandboxed Process-কে Full Disk Access থাকা Notes Process-এর Resource Access-এর সুযোগ দিত।

CVE-2024-44243 (Microsoft) সাম্প্রতিক একটি SIP Bypass। StorageKit Framework-এর একটি বাগ Attacker-কে Custom File System Bundle Install করতে দিত, যা Kernel Extension-এর মতো কাজ করে এবং SIP Protection Bypass করে।

Living off the Land - বৈধ Binary-এর অপব্যবহার

macOS-এ অনেক বৈধ Built-in Binary রয়েছে যা PrivEsc-এ সহায়ক হতে পারে। GTFOBins-এর সমকক্ষ macOS-এর জন্য LOOBins (Living Off the Orchard) Project তৈরি হয়েছে। এতে osascript, sqlite3, mdfind, defaults, এবং বহু Native Tool-এর অপব্যবহার নথিভুক্ত।

osascript ব্যবহার করে AppleScript বা JavaScript for Automation (JXA) চালানো যায়। JXA বিশেষভাবে শক্তিশালী কারণ এটি Objective-C API-এর সম্পূর্ণ Access দেয়। Attacker JXA Script ব্যবহার করে In-Memory Code Execution, Process Injection, এবং AppleEvents-এর মাধ্যমে অন্য Application Manipulation করতে পারে।

sqlite3 Binary TCC.db বা অন্যান্য সংবেদনশীল SQLite Database Modify করার জন্য ব্যবহৃত হতে পারে, যদি Permission অনুমতি দেয়। defaults Command ব্যবহার করে .plist File Read/Write করা যায়। mdfind Spotlight Index Query করে সংবেদনশীল File খুঁজে বের করতে পারে।

dscl Directory Services Command-Line Utility, যা User এবং Group Management-এ ব্যবহৃত হয়। যদি কোনো Misconfiguration থাকে, এটি দিয়ে নতুন Admin User তৈরি করা সম্ভব। sudo dscl . -append /Groups/admin GroupMembership newuser কমান্ড একটি User-কে Admin Group-এ যোগ করে।

Detection এবং Defense

macOS PrivEsc Detect করা চ্যালেঞ্জিং কিন্তু সম্ভব। Endpoint Security Framework বা ESF macOS-এর আধুনিক Telemetry API। CrowdStrike, SentinelOne, Microsoft Defender, এবং Jamf Protect এই Framework ব্যবহার করে Real-Time Detection সরবরাহ করে।

Unified Logging System-কে SIEM-এ Forward করা গুরুত্বপূর্ণ। log stream কমান্ড দিয়ে Live Log Watch করা যায়। Sudo Use, Authorization Services Use, LaunchDaemon Load, এবং XPC Connection Establishment - এই সব Event পর্যবেক্ষণযোগ্য।

OpenBSM Audit Framework macOS-এ Available এবং Detailed System Call Logging সরবরাহ করে। যদিও Apple এটি Deprecate করার ইঙ্গিত দিয়েছে, এটি এখনও কার্যকর। audit -s কমান্ড দিয়ে Audit চালু করা যায় এবং /etc/security/audit_control-এ Configuration থাকে।

Configuration Profile এবং MDM Policy ব্যবহার করে কঠোর Configuration Enforce করা। Sandboxed Application Prefer করা। Third-Party Software-এর কম ব্যবহার এবং Notarization Required করা। নিয়মিত macOS Update apply করা - Apple মাসিক Security Update প্রকাশ করে যা PrivEsc CVE Fix করে।

Key Takeaways

macOS Privilege Escalation একটি জটিল এবং গভীর গবেষণা ক্ষেত্র যা Apple-এর ক্রমবর্ধমান Security Layer-এর সাথে তাল মিলিয়ে এগিয়ে চলেছে। TCC, SIP, Sandbox, Hardened Runtime, এবং Notarization-এর প্রতিটি Boundary Bypass করা একটি স্বতন্ত্র চ্যালেঞ্জ। SUID Misconfiguration থেকে শুরু করে Complex XPC Race Condition এবং Kernel Vulnerability পর্যন্ত - Attack Surface বিশাল। প্রতিরক্ষাকারী হিসেবে আমাদের কাজ হলো Patch Promptly Apply করা, EDR Telemetry মনিটর করা, এবং Sandboxing-এর সর্বোচ্চ ব্যবহার নিশ্চিত করা। Csaba Fitzl-এর Course "macOS Control Bypass" এবং Patrick Wardle-এর বই "The Art of Mac Malware" এই বিষয়ে গভীর অধ্যয়নের জন্য চমৎকার সংস্থান।

আপনার জ্ঞান যাচাই করতে প্রস্তুত? আজই HackCert-এ macOS Privilege Escalation MCQ Quiz-টি দিন!

Related articles

back to all articles