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

5 KiB

macOS Obsługa aplikacji plików i schematów URL

{% hint style="success" %} Dowiedz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Dowiedz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)

Wesprzyj HackTricks
{% endhint %}

Baza danych LaunchServices

Jest to baza danych wszystkich zainstalowanych aplikacji w systemie macOS, do których można zapytać o informacje dotyczące każdej zainstalowanej aplikacji, takie jak obsługiwane schematy URL i typy MIME.

Możliwe jest zrzucenie tej bazy danych za pomocą:

{% code overflow="wrap" %}

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

{% endcode %}

Lub używając narzędzia lsdtrip.

/usr/libexec/lsd jest mózgiem bazy danych. Zapewnia kilka usług XPC takich jak .lsd.installation, .lsd.open, .lsd.openurl i inne. Ale wymaga również uprawnień do aplikacji, aby móc korzystać z udostępnionych funkcji XPC, takich jak .launchservices.changedefaulthandler lub .launchservices.changeurlschemehandler do zmiany domyślnych aplikacji dla typów mime lub schematów URL i innych.

/System/Library/CoreServices/launchservicesd twierdzi usługę com.apple.coreservices.launchservicesd i można je zapytać, aby uzyskać informacje o uruchomionych aplikacjach. Można je zapytać za pomocą narzędzia systemowego /usr/bin/lsappinfo lub za pomocą lsdtrip.

Obsługa rozszerzeń plików i schematów URL aplikacji

Następująca linia może być przydatna do znalezienia aplikacji, które mogą otwierać pliki w zależności od rozszerzenia:

{% code overflow="wrap" %}

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

{% endcode %}

Albo użyj czegoś takiego jak 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

Możesz również sprawdzić obsługiwane rozszerzenia przez aplikację wykonując:

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" %} Ucz się i praktykuj Hacking AWS:HackTricks Szkolenie AWS Red Team Expert (ARTE)
Ucz się i praktykuj Hacking GCP: HackTricks Szkolenie GCP Red Team Expert (GRTE)

Wesprzyj HackTricks
{% endhint %}