<summary><strong>Sıfırdan kahraman olmak için AWS hackleme öğrenin</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Kırmızı Takım Uzmanı)</strong></a><strong>!</strong></summary>
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na göz atın (https://github.com/sponsors/carlospolop)!
* **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)** takip edin.**
Önceki kombinasyonlardan herhangi biriyle, bir saldırgan ayrıcalıklı keyfi yazma elde etmek için beklenen yola bir **sembolik/sabit bağ** enjekte edebilir.
Eğer bir **dizinde yalnızca root'un R+X erişimine sahip olduğu dosyalar varsa**, bu dosyalara **başka kimse erişemez**. Bu nedenle, bir kullanıcının okuyabileceği ancak bu **kısıtlama** nedeniyle okuyamayacağı bir dosyanın bu dizinden **başka bir dizine taşınmasına** izin veren bir zafiyet, bu dosyaları okumak için kötüye kullanılabilir.
Eğer ayrıcalıklı bir işlem, **daha düşük ayrıcalıklı bir kullanıcı tarafından kontrol edilebilecek bir dosyaya yazıyorsa**, veya daha önceden daha düşük ayrıcalıklı bir kullanıcı tarafından oluşturulmuşsa. Kullanıcı sadece bir Sembolik veya Sabit bağlantı aracılığıyla onu başka bir dosyaya **yönlendirebilir** ve ayrıcalıklı işlem o dosyaya yazacaktır.
**`.fileloc`** uzantılı dosyalar, diğer uygulamalara veya ikili dosyalara işaret edebilir, bu nedenle açıldıklarında uygulama/ikili dosya yürütülecektir.\
Eğer bir **işlemi yüksek ayrıcalıklarla bir dosya veya klasör açmaya** zorlayabilirseniz, **`crontab`**'ı kullanarak `/etc/sudoers.d` içindeki bir dosyayı**`EDITOR=exploit.py`** ile açabilir ve böylece `exploit.py`, `/etc/sudoers` içindeki dosyaya FD alacak ve bunu kötüye kullanabilecektir.
Bir **devfs** bağlaması**xattr**'ı desteklemez, daha fazla bilgi için [**CVE-2023-32364**](https://gergelykalman.com/CVE-2023-32364-a-macOS-sandbox-escape-by-mounting.html) bağlantısına bakın.
[**Kaynak kodunda**](https://opensource.apple.com/source/Libc/Libc-391/darwin/copyfile.c.auto.html) görülebileceği gibi, **`com.apple.acl.text`** adlı xattr içinde depolanan ACL metin temsili, sıkıştırılmış dosyada ACL olarak ayarlanacaktır. Dolayısıyla, bir uygulamayı diğer xattr'lerin yazılmasını engelleyen bir ACL ile AppleDouble dosya formatına sahip bir zip dosyasına sıkıştırırsanız... karantina xattr'ı uygulamaya ayarlanmaz:
Daha fazla bilgi için [**orijinal rapora**](https://www.microsoft.com/en-us/security/blog/2022/12/19/gatekeepers-achilles-heel-unearthing-a-macos-vulnerability/) bakın.
Bundles, **`_CodeSignature/CodeResources`** dosyasını içerir ki bu dosya **bündle** içindeki her **dosyanın karmasını** içerir. CodeResources'un karması ayrıca **yürütülebilir dosyaya gömülüdür**, bu yüzden onunla oynayamayız.
Bir kullanıcı, hatta bazı mevcut klasörlerin üstüne bile özel içerik oluşturarak özel bir dmg dosyasını bağlayabilir. Özel içeriğe sahip özel bir dmg paketi nasıl oluşturabileceğinizi aşağıda bulabilirsiniz:
Eğer betiğiniz bir **shell betiği** olarak yorumlanabilirse, her gün tetiklenecek olan **`/etc/periodic/daily/999.local`** shell betiğini üzerine yazabilirsiniz.
Keyfi bir **LaunchDaemon** yazın, örneğin **`/Library/LaunchDaemons/xyz.hacktricks.privesc.plist`** adında bir plist dosyası oluşturun ve keyfi bir betiği çalıştıran bir plist ekleyin:
Eğer **keyfi yazma** yetkiniz varsa, kendinize **sudo** ayrıcalıkları veren bir dosya oluşturabilirsiniz. Bu dosyayı**`/etc/sudoers.d/`** klasörü içine oluşturabilirsiniz.
**`/etc/paths`** dosyası, PATH ortam değişkenini dolduran ana yerlerden biridir. Üzerine yazmak için root olmanız gerekir, ancak bir **yetkili işlem** tarafından **tam yol olmadan komut** çalıştırılıyorsa, bu dosyayı değiştirerek onu **ele geçirebilirsiniz**.
Bu, benim tarafımdan yazılabilir olan ancak root'a ait bir dosya oluşturacaktır ([**buradan kod**](https://github.com/gergelykalman/brew-lpe-via-periodic/blob/main/brew\_lpe.sh)). Bu ayrıca bir ayrıcalık yükseltme olarak da çalışabilir.
**POSIX paylaşılan bellek**, POSIX uyumlu işletim sistemlerindeki işlemlerin ortak bir bellek alanına erişmesine olanak tanır, diğer işlemler arası iletişim yöntemlerine kıyasla daha hızlı iletişimi kolaylaştırır. Bu, `shm_open()` ile bir paylaşılan bellek nesnesi oluşturup veya açarak başlar, ardından `ftruncate()` ile boyutunu ayarlar ve `mmap()` kullanarak bu belleği işlemin adres alanına eşler. İşlemler daha sonra bu bellek alanından doğrudan okuma ve yazma yapabilir. Eşzamanlı erişimi yönetmek ve veri bozulmasını önlemek için genellikle mutexler veya semaforlar gibi senkronizasyon mekanizmaları kullanılır. Son olarak, işlemler paylaşılan belleği `munmap()` ve `close()` ile kapatır ve opsiyonel olarak bellek nesnesini `shm_unlink()` ile kaldırabilir. Bu sistem, birden fazla işlemin paylaşılan verilere hızlı bir şekilde erişmesi gereken ortamlarda etkili bir şekilde hızlı IPC için özellikle etkilidir.
<details>
<summary>Üretici Kod Örneği</summary>
```c
// gcc producer.c -o producer -lrt
#include <fcntl.h>
#include <sys/mman.h>
#include <sys/stat.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
int main() {
const char *name = "/my_shared_memory";
const int SIZE = 4096; // Size of the shared memory object
// Create the shared memory object
int shm_fd = shm_open(name, O_CREAT | O_RDWR, 0666);
**macOS korunan tanımlayıcılar**, macOS'ta tanıtılan bir güvenlik özelliğidir ve kullanıcı uygulamalarındaki **dosya tanımlayıcı işlemlerinin** güvenliğini ve güvenilirliğini artırmayı amaçlar. Bu korunan tanımlayıcılar, dosya tanımlayıcılarıyla belirli kısıtlamaları veya "korumaları" ilişkilendirmenin bir yolunu sağlar ve bu kısıtlamalar çekirdek tarafından uygulanır.
Bu özellik, özellikle **izin verilmeyen dosya erişimi** veya **yarış koşulları** gibi belirli güvenlik açıklarının önlenmesi için oldukça faydalıdır. Bu açıklıklar, örneğin bir iş parçacığının **başka bir savunmasız iş parçacığına erişim sağladığında** veya bir dosya tanımlayıcısının bir savunmasız çocuk işlem tarafından **devralındığında** meydana gelir. Bu işlevselliğe ilişkin bazı işlevler şunlardır:
*`guarded_open_np`: Bir koruma ile FD açar
*`guarded_close_np`: Kapatır
*`change_fdguard_np`: Bir tanımlayıcı üzerinde koruma bayraklarını değiştirir (koruma korumasını kaldırmak dahil)
<summary><strong>Sıfırdan kahraman olmak için AWS hackleme öğrenin</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* **Şirketinizi HackTricks'te reklamını görmek istiyorsanız** veya **HackTricks'i PDF olarak indirmek istiyorsanız** [**ABONELİK PLANLARI**]'na(https://github.com/sponsors/carlospolop) göz atın!
* [**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** bizi **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)** 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.