mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
76 lines
2.8 KiB
Markdown
76 lines
2.8 KiB
Markdown
# macOS File Extension & URL scheme app handlers
|
|
|
|
{{#include ../../banners/hacktricks-training.md}}
|
|
|
|
## LaunchServices Database
|
|
|
|
This is a database of all the installed applications in the macOS that can be queried to get information about each installed application such as URL schemes it support and MIME types.
|
|
|
|
It's possible to dump this datase with:
|
|
|
|
```
|
|
/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -dump
|
|
```
|
|
|
|
Or using the tool [**lsdtrip**](https://newosxbook.com/tools/lsdtrip.html).
|
|
|
|
**`/usr/libexec/lsd`** is the brain of the database. It provides **several XPC services** like `.lsd.installation`, `.lsd.open`, `.lsd.openurl`, and more. But it also **requires some entitlements** to applications to be able to use the exposed XPC functionalities, like `.launchservices.changedefaulthandler` or `.launchservices.changeurlschemehandler` to change default apps for mime types or url schemes and others.
|
|
|
|
**`/System/Library/CoreServices/launchservicesd`** claims the service `com.apple.coreservices.launchservicesd` and can be queried to get information about running applications. It can be queried with the system tool /**`usr/bin/lsappinfo`** or with [**lsdtrip**](https://newosxbook.com/tools/lsdtrip.html).
|
|
|
|
## File Extension & URL scheme app handlers
|
|
|
|
The following line can be useful to find the applications that can open files depending on the extension:
|
|
|
|
```bash
|
|
/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -dump | grep -E "path:|bindings:|name:"
|
|
```
|
|
|
|
Or use something like [**SwiftDefaultApps**](https://github.com/Lord-Kamina/SwiftDefaultApps):
|
|
|
|
```bash
|
|
./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
|
|
```
|
|
|
|
You can also check the extensions supported by an application doing:
|
|
|
|
```
|
|
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>
|
|
```
|
|
|
|
{{#include ../../banners/hacktricks-training.md}}
|
|
|
|
|
|
|