Abuse Elevation Control Mechanism: Elevated Execution with Prompt

Adversaries may leverage the AuthorizationExecuteWithPrivileges API to escalate privileges by prompting the user for credentials.[1] The purpose of this API is to give application developers an easy way to perform operations with root privileges, such as for application installation or updating. This API does not validate that the program requesting root privileges comes from a reputable source or has been maliciously modified.

Although this API is deprecated, it still fully functions in the latest releases of macOS. When calling this API, the user will be prompted to enter their credentials but no checks on the origin or integrity of the program are made. The program calling the API may also load world writable files which can be modified to perform malicious behavior with elevated privileges.

Adversaries may abuse AuthorizationExecuteWithPrivileges to obtain root privileges in order to install malicious software on victims and install persistence mechanisms.[2][3][4] This technique may be combined with Masquerading to trick the user into granting escalated privileges to malicious code.[2][3] This technique has also been shown to work by modifying legitimate programs present on the machine that make use of this API.[2]

Angreifer können die AuthorizationExecuteWithPrivileges API ausnutzen, um Privilegien zu erweitern, indem sie den Benutzer zur Eingabe von Anmeldeinformationen auffordern.(Zitat: AppleDocs AuthorizationExecuteWithPrivileges) Der Zweck dieser API ist es, Anwendungsentwicklern eine einfache Möglichkeit zu geben, Operationen mit Root-Rechten durchzuführen, wie z.B. die Installation oder Aktualisierung von Anwendungen. Diese API überprüft nicht, ob das Programm, das Root-Rechte anfordert, aus einer seriösen Quelle stammt oder ob es böswillig verändert wurde.

Obwohl diese API veraltet ist, funktioniert sie in den neuesten Versionen von macOS noch vollständig. Beim Aufruf dieser API wird der Benutzer aufgefordert, seine Anmeldedaten einzugeben, aber es werden keine Überprüfungen der Herkunft oder Integrität des Programms vorgenommen. Das Programm, das die API aufruft, kann auch weltweit beschreibbare Dateien laden, die modifiziert werden können, um bösartiges Verhalten mit erhöhten Rechten auszuführen.

Angreifer können AuthorizationExecuteWithPrivileges missbrauchen, um Root-Rechte zu erlangen, um bösartige Software auf Opfern zu installieren und Persistenzmechanismen zu installieren.(Zitat: Death by 1000 installers; it's all broken!)(Zitat: Carbon Black Shlayer Feb 2019)(Zitat: OSX Coldroot RAT) Diese Technik kann mit [Masquerading] kombiniert werden (/techniques/T1036) kombiniert werden, um den Benutzer dazu zu bringen, bösartigem Code erweiterte Rechte einzuräumen.(Zitat: Death by 1000 installers; it's all broken!)(Zitat: Carbon Black Shlayer Feb 2019) Es hat sich gezeigt, dass diese Technik auch funktioniert, indem legitime Programme auf dem Rechner verändert werden, die diese API nutzen.(Zitat: Death by 1000 installers; it's all broken!)

Les adversaires peuvent tirer parti de l'API AuthorizationExecuteWithPrivileges pour escalader les privilèges en demandant à l'utilisateur des informations d'identification.(Citation : AppleDocs AuthorizationExecuteWithPrivileges) L'objectif de cette API est de donner aux développeurs d'applications un moyen facile d'effectuer des opérations avec des privilèges root, comme pour l'installation ou la mise à jour d'applications. Cette API ne permet pas de valider que le programme demandant des privilèges root provient d'une source fiable ou a été modifié de manière malveillante.

Bien que cette API soit dépréciée, elle fonctionne toujours pleinement dans les dernières versions de macOS. Lors de l'appel de cette API, l'utilisateur sera invité à saisir ses informations d'identification, mais aucune vérification de l'origine ou de l'intégrité du programme n'est effectuée. Le programme appelant l'API peut également charger des fichiers inscriptibles dans le monde entier qui peuvent être modifiés pour exécuter un comportement malveillant avec des privilèges élevés.

Les adversaires peuvent abuser du AuthorizationExecuteWithPrivileges pour obtenir les privilèges root afin d'installer des logiciels malveillants sur les victimes et d'installer des mécanismes de persistance.(Citation : Death by 1000 installers ; it's all broken !)(Citation : Carbon Black Shlayer Feb 2019)(Citation : OSX Coldroot RAT) Cette technique peut être combinée avec Masquerading pour inciter l'utilisateur à accorder des privilèges élevés au code malveillant.(Citation : Death by 1000 installers ; it's all broken !)(Citation : Carbon Black Shlayer Feb 2019) Il a également été démontré que cette technique fonctionne en modifiant les programmes légitimes présents sur la machine qui utilisent cette API.(Citation : Death by 1000 installers ; it's all broken !)(Citation : Carbon Black Shlayer Feb 2019)

Gli avversari possono sfruttare l'API AuthorizationExecuteWithPrivileges per aumentare i privilegi chiedendo all'utente le credenziali.(Citazione: AppleDocs AuthorizationExecuteWithPrivileges) Lo scopo di questa API è dare agli sviluppatori di applicazioni un modo semplice per eseguire operazioni con privilegi di root, come per l'installazione o l'aggiornamento di applicazioni. Questa API non convalida che il programma che richiede i privilegi di root provenga da una fonte rispettabile o sia stato modificato maliziosamente.

Sebbene questa API sia deprecata, funziona ancora pienamente nelle ultime versioni di macOS. Quando si chiama questa API, all'utente viene richiesto di inserire le proprie credenziali ma non viene effettuato alcun controllo sull'origine o sull'integrità del programma. Il programma che chiama l'API può anche caricare file scrivibili a livello mondiale che possono essere modificati per eseguire comportamenti malevoli con privilegi elevati.

Gli avversari possono abusare di AuthorizationExecuteWithPrivileges per ottenere privilegi di root al fine di installare software maligno sulle vittime e installare meccanismi di persistenza.(Citazione: Death by 1000 installers; it's all broken!)(Citazione: Carbon Black Shlayer Feb 2019)(Citazione: OSX Coldroot RAT) Questa tecnica può essere combinata con Masquerading per ingannare l'utente a concedere privilegi escalati a codice maligno.(Citazione: Morte da 1000 installatori; è tutto rotto!)(Citazione: Carbon Black Shlayer Feb 2019) È stato dimostrato che questa tecnica funziona anche modificando programmi legittimi presenti sulla macchina che fanno uso di questa API.(Citazione: Morte da 1000 installatori; è tutto rotto!)

Login
ID: T1548.004
Sub-technique of:  T1548
Platforms: macOS
Permissions Required: Administrator, User
Effective Permissions: root
Contributors: Erika Noerenberg, @gutterchurl, Carbon Black; Jimmy Astle, @AstleJimmy, Carbon Black
Version: 1.0
Created: 30 January 2020
Last Modified: 27 March 2020
Translations:  DE FR IT EN
Provided by LAYER 8

Procedure Examples

ID Name Description
S0402 OSX/Shlayer

OSX/Shlayer can escalate privileges to root by asking the user for credentials.[3]

Mitigations

ID Mitigation Description
M1038 Execution Prevention

System settings can prevent applications from running that haven't been downloaded through the Apple Store which may help mitigate some of these issues. Not allowing unsigned applications from being run may also mitigate some risk.

Detection

ID Data Source Data Component
DS0009 Process OS API Execution
Process Creation

Consider monitoring for /usr/libexec/security_authtrampoline executions which may indicate that AuthorizationExecuteWithPrivileges is being executed. MacOS system logs may also indicate when AuthorizationExecuteWithPrivileges is being called. Monitoring OS API callbacks for the execution can also be a way to detect this behavior but requires specialized security tooling.

Überwachen Sie die Ausführung von /usr/libexec/security_authtrampoline, die darauf hinweisen kann, dass AuthorizationExecuteWithPrivileges ausgeführt wird. MacOS-Systemprotokolle können auch anzeigen, wann AuthorizationExecuteWithPrivileges aufgerufen wird. Die Überwachung von OS-API-Callbacks für die Ausführung kann ebenfalls eine Möglichkeit sein, dieses Verhalten zu erkennen, erfordert aber spezielle Sicherheitstools.

Pensez à surveiller les exécutions de /usr/libexec/security_authtrampoline qui peuvent indiquer que AuthorizationExecuteWithPrivileges est en cours d'exécution. Les journaux système de MacOS peuvent également indiquer quand AuthorizationExecuteWithPrivileges est appelé. La surveillance des callbacks de l'API du système d'exploitation pour l'exécution peut également être un moyen de détecter ce comportement mais nécessite un outillage de sécurité spécialisé.

Consideri il monitoraggio delle esecuzioni di /usr/libexec/security_authtrampoline che possono indicare che AuthorizationExecuteWithPrivileges viene eseguito. Anche i log di sistema di MacOS possono indicare quando AuthorizationExecuteWithPrivileges viene chiamato. Anche il monitoraggio dei callback API del sistema operativo per l'esecuzione può essere un modo per rilevare questo comportamento ma richiede strumenti di sicurezza specializzati.

References