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

5.1 KiB

Manejadores de aplicaciones de extensiones de archivos y esquemas de URL de macOS

Aprende hacking en AWS desde cero hasta experto con htARTE (Experto en Red Team de AWS de HackTricks)!

Otras formas de apoyar a HackTricks:

Base de datos de LaunchServices

Esta es una base de datos de todas las aplicaciones instaladas en macOS que se pueden consultar para obtener información sobre cada aplicación instalada, como los esquemas de URL que admite y los tipos MIME.

Es posible volcar esta base de datos con:

{% code overflow="wrap" %}

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

{% endcode %}

O utilizando la herramienta lsdtrip.

/usr/libexec/lsd es el cerebro de la base de datos. Proporciona varios servicios XPC como .lsd.installation, .lsd.open, .lsd.openurl, y más. Pero también requiere algunos permisos para que las aplicaciones puedan utilizar las funcionalidades XPC expuestas, como .launchservices.changedefaulthandler o .launchservices.changeurlschemehandler para cambiar las aplicaciones predeterminadas para tipos de archivos MIME o esquemas de URL, entre otros.

/System/Library/CoreServices/launchservicesd reclama el servicio com.apple.coreservices.launchservicesd y se puede consultar para obtener información sobre las aplicaciones en ejecución. Se puede consultar con la herramienta del sistema /usr/bin/lsappinfo o con lsdtrip.

Manejadores de aplicaciones de extensiones de archivo y esquemas de URL

La siguiente línea puede ser útil para encontrar las aplicaciones que pueden abrir archivos dependiendo de la extensión:

{% code overflow="wrap" %}

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

{% endcode %}

O utiliza algo como 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

También puedes verificar las extensiones admitidas por una aplicación haciendo:

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>
Aprende hacking en AWS desde cero hasta experto con htARTE (HackTricks AWS Red Team Expert)!

Otras formas de apoyar a HackTricks: