hacktricks/macos-hardening/macos-security-and-privilege-escalation/macos-security-protections
2024-11-12 12:22:29 +00:00
..
macos-fs-tricks Translated ['macos-hardening/macos-security-and-privilege-escalation/mac 2024-07-19 11:44:24 +00:00
macos-sandbox Translated ['macos-hardening/macos-security-and-privilege-escalation/mac 2024-09-25 23:56:58 +00:00
macos-tcc Translated ['macos-hardening/macos-security-and-privilege-escalation/mac 2024-07-19 11:44:24 +00:00
macos-amfi-applemobilefileintegrity.md Translated ['binary-exploitation/libc-heap/README.md', 'binary-exploitat 2024-09-23 23:32:16 +00:00
macos-authorizations-db-and-authd.md Translated ['binary-exploitation/format-strings/README.md', 'binary-expl 2024-11-12 12:22:29 +00:00
macos-code-signing.md Translated ['binary-exploitation/format-strings/README.md', 'binary-expl 2024-11-12 12:22:29 +00:00
macos-dangerous-entitlements.md Translated ['generic-methodologies-and-resources/basic-forensic-methodol 2024-07-19 10:16:39 +00:00
macos-gatekeeper.md Translated ['binary-exploitation/libc-heap/README.md', 'binary-exploitat 2024-09-23 23:32:16 +00:00
macos-launch-environment-constraints.md Translated ['macos-hardening/macos-security-and-privilege-escalation/mac 2024-07-19 16:29:24 +00:00
macos-macf-mandatory-access-control-framework.md Translated ['binary-exploitation/libc-heap/README.md', 'binary-exploitat 2024-09-23 23:32:16 +00:00
macos-macf.md Translated ['macos-hardening/macos-auto-start-locations.md', 'macos-hard 2024-09-21 18:25:13 +00:00
macos-sip.md Translated ['macos-hardening/macos-security-and-privilege-escalation/mac 2024-09-24 15:17:48 +00:00
README.md Translated ['macos-hardening/macos-security-and-privilege-escalation/mac 2024-09-25 23:56:58 +00:00

macOS Güvenlik Koruma Önlemleri

{% hint style="success" %} AWS Hacking öğrenin ve pratik yapın:HackTricks Eğitim AWS Kırmızı Ekip Uzmanı (ARTE)
GCP Hacking öğrenin ve pratik yapın: HackTricks Eğitim GCP Kırmızı Ekip Uzmanı (GRTE)

HackTricks'i Destekleyin
{% endhint %}

Gatekeeper

Gatekeeper genellikle Quarantine + Gatekeeper + XProtect kombinasyonunu ifade etmek için kullanılır; bu, kullanıcıların potansiyel olarak zararlı yazılımları çalıştırmalarını engellemeye çalışan 3 macOS güvenlik modülüdür.

Daha fazla bilgi için:

{% content-ref url="macos-gatekeeper.md" %} macos-gatekeeper.md {% endcontent-ref %}

Süreç Sınırlamaları

MACF

SIP - Sistem Bütünlüğü Koruması

{% content-ref url="macos-sip.md" %} macos-sip.md {% endcontent-ref %}

Sandbox

MacOS Sandbox, uygulamaların sandbox içinde yalnızca uygulamanın çalıştığı Sandbox profilinde belirtilen izin verilen eylemlerle sınırlı olmasını sağlar. Bu, uygulamanın yalnızca beklenen kaynaklara erişmesini sağlamaya yardımcı olur.

{% content-ref url="macos-sandbox/" %} macos-sandbox {% endcontent-ref %}

TCC - Şeffaflık, Onay ve Kontrol

TCC (Şeffaflık, Onay ve Kontrol) bir güvenlik çerçevesidir. Uygulamaların izinlerini yönetmek için tasarlanmıştır, özellikle de hassas özelliklere erişimlerini düzenleyerek. Bu, konum hizmetleri, kişiler, fotoğraflar, mikrofon, kamera, erişilebilirlik ve tam disk erişimi gibi unsurları içerir. TCC, uygulamaların bu özelliklere yalnızca açık kullanıcı onayı aldıktan sonra erişebileceğini garanti ederek, kişisel veriler üzerindeki gizliliği ve kontrolü artırır.

{% content-ref url="macos-tcc/" %} macos-tcc {% endcontent-ref %}

Başlatma/Ortam Kısıtlamaları ve Güven Kapsayıcı

macOS'taki başlatma kısıtlamaları, bir sürecin başlatılmasını düzenlemek için bir güvenlik özelliğidir; kimin bir süreci başlatabileceğini, nasıl ve nereden tanımlar. macOS Ventura'da tanıtılan bu özellikler, sistem ikili dosyalarını bir güven kapsayıcısı içinde kısıtlama kategorilerine ayırır. Her yürütülebilir ikili dosya, başlatma için belirli kurallara sahiptir; bunlar arasında kendisi, ebeveyn ve sorumlu kısıtlamaları bulunur. Üçüncü taraf uygulamalara Ortam Kısıtlamaları olarak genişletilen bu özellikler, süreç başlatma koşullarını yöneterek potansiyel sistem istismarlarını azaltmaya yardımcı olur.

{% content-ref url="macos-launch-environment-constraints.md" %} macos-launch-environment-constraints.md {% endcontent-ref %}

MRT - Kötü Amaçlı Yazılım Kaldırma Aracı

Kötü Amaçlı Yazılım Kaldırma Aracı (MRT), macOS'un güvenlik altyapısının bir parçasıdır. Adından da anlaşılacağı gibi, MRT'nin ana işlevi bilinen kötü amaçlı yazılımları enfekte olmuş sistemlerden kaldırmaktır.

Bir Mac'te kötü amaçlı yazılım tespit edildiğinde (ya XProtect ya da başka bir yöntemle), MRT otomatik olarak kötü amaçlı yazılımı kaldırmak için kullanılabilir. MRT, arka planda sessizce çalışır ve genellikle sistem güncellendiğinde veya yeni bir kötü amaçlı yazılım tanımı indirildiğinde çalışır (MRT'nin kötü amaçlı yazılımları tespit etme kurallarının ikili dosyanın içinde olduğu görünmektedir).

Hem XProtect hem de MRT, macOS'un güvenlik önlemlerinin bir parçası olmasına rağmen, farklı işlevler yerine getirir:

  • XProtect, önleyici bir araçtır. Dosyalar indirildiğinde (belirli uygulamalar aracılığıyla) kontrol eder ve bilinen kötü amaçlı yazılım türlerinden herhangi birini tespit ederse, dosyanın açılmasını engeller, böylece kötü amaçlı yazılımın sisteminizi enfekte etmesini önler.
  • MRT ise reaktif bir araçtır. Kötü amaçlı yazılım bir sistemde tespit edildikten sonra çalışır ve amacı, sistemin temizlenmesi için zararlı yazılımı kaldırmaktır.

MRT uygulaması /Library/Apple/System/Library/CoreServices/MRT.app konumundadır.

Arka Plan Görevleri Yönetimi

macOS, artık bir aracın kod yürütmesini sürdürmek için bilinen bir tekniği kullandığında her seferinde kullanıcıyı uyarır (örneğin Giriş Öğeleri, Daemon'lar...), böylece kullanıcı hangi yazılımın sürdüğünü daha iyi bilir.

Bu, /System/Library/PrivateFrameworks/BackgroundTaskManagement.framework/Versions/A/Resources/backgroundtaskmanagementd konumundaki bir daemon ile çalışır ve ajan /System/Library/PrivateFrameworks/BackgroundTaskManagement.framework/Support/BackgroundTaskManagementAgent.app konumundadır.

backgroundtaskmanagementd'nin bir şeyin kalıcı bir klasöre kurulu olduğunu bilme şekli, FSEvents alarak ve bunlar için bazı işleyiciler oluşturarak gerçekleşir.

Ayrıca, sıkça kalıcı olan bilinen uygulamaları içeren bir plist dosyası vardır; bu dosya Apple tarafından yönetilir ve /System/Library/PrivateFrameworks/BackgroundTaskManagement.framework/Versions/A/Resources/attributions.plist konumundadır.

[...]
"us.zoom.ZoomDaemon" => {
"AssociatedBundleIdentifiers" => [
0 => "us.zoom.xos"
]
"Attribution" => "Zoom"
"Program" => "/Library/PrivilegedHelperTools/us.zoom.ZoomDaemon"
"ProgramArguments" => [
0 => "/Library/PrivilegedHelperTools/us.zoom.ZoomDaemon"
]
"TeamIdentifier" => "BJ4HAAB9B3"
}
[...]

Enumeration

Apple cli aracını kullanarak tüm yapılandırılmış arka plan öğelerini listelemek mümkündür:

# The tool will always ask for the users password
sfltool dumpbtm

Ayrıca, bu bilgiyi DumpBTM ile listelemek de mümkündür.

# You need to grant the Terminal Full Disk Access for this to work
chmod +x dumpBTM
xattr -rc dumpBTM # Remove quarantine attr
./dumpBTM

Bu bilgi /private/var/db/com.apple.backgroundtaskmanagement/BackgroundItems-v4.btm içinde saklanmaktadır ve Terminal FDA gerektirir.

BTM ile Oynama

Yeni bir kalıcılık bulunduğunda ES_EVENT_TYPE_NOTIFY_BTM_LAUNCH_ITEM_ADD türünde bir olay meydana gelir. Bu nedenle, bu olayın gönderilmesini önlemenin veya ajanın kullanıcıyı uyarmasını engellemenin herhangi bir yolu, bir saldırgana BTM'yi bypass etmesine yardımcı olacaktır.

  • Veritabanını sıfırlama: Aşağıdaki komut veritabanını sıfırlayacaktır (temelden yeniden inşa edilmesi gerekir), ancak bir nedenle, bunu çalıştırdıktan sonra sistemi yeniden başlatana kadar yeni bir kalıcılık uyarısı yapılmayacaktır.
  • root gereklidir.
# Reset the database
sfltool resettbtm
  • Ajansı Durdur: Yeni tespitler bulunduğunda kullanıcının uyarılmaması için ajansa bir durdurma sinyali göndermek mümkündür.
# Get PID
pgrep BackgroundTaskManagementAgent
1011

# Stop it
kill -SIGSTOP 1011

# Check it's stopped (a T means it's stopped)
ps -o state 1011
T
  • Hata: Eğer kalıcılığı oluşturan süreç hemen ardından hızlıca mevcutsa, daemon hakkında bilgi almaya çalışacak, başarısız olacak ve yeni bir şeyin kalıcı olduğunu belirten olayı gönderemeyecek.

BTM hakkında daha fazla bilgi:

{% hint style="success" %} AWS Hacking öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks'i Destekleyin
{% endhint %}