hacktricks/macos-hardening/macos-security-and-privilege-escalation/macos-file-extension-apps.md
2024-12-12 13:56:11 +01:00

5 KiB

Manipuladores de aplicativos de extensão de arquivo e esquema de URL do macOS

{% hint style="success" %} Aprenda e pratique Hacking AWS: Treinamento HackTricks AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: Treinamento HackTricks GCP Red Team Expert (GRTE)

Apoie o HackTricks
{% endhint %}

Banco de Dados do LaunchServices

Este é um banco de dados de todos os aplicativos instalados no macOS que podem ser consultados para obter informações sobre cada aplicativo instalado, como os esquemas de URL que ele suporta e os tipos MIME.

É possível despejar esse banco de dados com:

{% code overflow="wrap" %}

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

{% endcode %}

Ou usando a ferramenta lsdtrip.

/usr/libexec/lsd é o cérebro do banco de dados. Ele fornece vários serviços XPC como .lsd.installation, .lsd.open, .lsd.openurl, e mais. Mas também requer algumas permissões para que os aplicativos possam usar as funcionalidades XPC expostas, como .launchservices.changedefaulthandler ou .launchservices.changeurlschemehandler para alterar aplicativos padrão para tipos de mime ou esquemas de URL e outros.

/System/Library/CoreServices/launchservicesd reivindica o serviço com.apple.coreservices.launchservicesd e pode ser consultado para obter informações sobre aplicativos em execução. Pode ser consultado com a ferramenta do sistema /usr/bin/lsappinfo ou com lsdtrip.

Manipuladores de aplicativos de esquema de extensão de arquivo e URL

A linha a seguir pode ser útil para encontrar os aplicativos que podem abrir arquivos dependendo da extensão:

{% code overflow="wrap" %}

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

{% endcode %}

Ou use 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

Você também pode verificar as extensões suportadas por um aplicativo fazendo:

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" %} Aprenda e pratique AWS Hacking: Treinamento HackTricks AWS Red Team Expert (ARTE)
Aprenda e pratique GCP Hacking: Treinamento HackTricks GCP Red Team Expert (GRTE)

Suporte o HackTricks
{% endhint %}