hacktricks/macos-hardening/macos-security-and-privilege-escalation/macos-file-extension-apps.md

5.2 KiB

Gestionnaires d'applications de fichiers macOS et de schémas d'URL

{% hint style="success" %} Apprenez et pratiquez le piratage AWS :Formation HackTricks AWS Red Team Expert (ARTE)
Apprenez et pratiquez le piratage GCP : Formation HackTricks GCP Red Team Expert (GRTE)

Soutenez HackTricks
{% endhint %}

Base de données LaunchServices

Il s'agit d'une base de données de toutes les applications installées dans macOS qui peuvent être interrogées pour obtenir des informations sur chaque application installée telles que les schémas d'URL qu'elle prend en charge et les types MIME.

Il est possible de vider cette base de données avec :

{% code overflow="wrap" %}

/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -dump

{% endcode %}

Ou en utilisant l'outil lsdtrip.

/usr/libexec/lsd est le cerveau de la base de données. Il fournit plusieurs services XPC tels que .lsd.installation, .lsd.open, .lsd.openurl, et d'autres. Mais il nécessite également certaines autorisations pour que les applications puissent utiliser les fonctionnalités XPC exposées, comme .launchservices.changedefaulthandler ou .launchservices.changeurlschemehandler pour changer les applications par défaut pour les types MIME ou les schémas d'URL et d'autres.

/System/Library/CoreServices/launchservicesd revendique le service com.apple.coreservices.launchservicesd et peut être interrogé pour obtenir des informations sur les applications en cours d'exécution. Il peut être interrogé avec l'outil système /usr/bin/lsappinfo ou avec lsdtrip.

Gestionnaires d'applications pour les extensions de fichiers et les schémas d'URL

La ligne suivante peut être utile pour trouver les applications qui peuvent ouvrir des fichiers en fonction de l'extension :

/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -dump | grep -E "path:|bindings:|name:"

{% endcode %}

Ou utilisez quelque chose comme SwiftDefaultApps :

./swda getSchemes #Get all the available schemes
./swda getApps #Get all the apps declared
./swda getUTIs #Get all the UTIs
./swda getHandler --URL ftp #Get ftp handler

Vous pouvez également vérifier les extensions prises en charge par une application en effectuant :

cd /Applications/Safari.app/Contents
grep -A3 CFBundleTypeExtensions Info.plist  | grep string
<string>css</string>
<string>pdf</string>
<string>webarchive</string>
<string>webbookmark</string>
<string>webhistory</string>
<string>webloc</string>
<string>download</string>
<string>safariextz</string>
<string>gif</string>
<string>html</string>
<string>htm</string>
<string>js</string>
<string>jpg</string>
<string>jpeg</string>
<string>jp2</string>
<string>txt</string>
<string>text</string>
<string>png</string>
<string>tiff</string>
<string>tif</string>
<string>url</string>
<string>ico</string>
<string>xhtml</string>
<string>xht</string>
<string>xml</string>
<string>xbl</string>
<string>svg</string>

{% hint style="success" %} Apprenez et pratiquez le piratage AWS :Formation HackTricks AWS Red Team Expert (ARTE)
Apprenez et pratiquez le piratage GCP : Formation HackTricks GCP Red Team Expert (GRTE)

Soutenez HackTricks
{% endhint %}