.. | ||
macos-mdm | ||
macos-keychain.md | ||
README.md |
macOS Red Teaming
AWS hacklemeyi sıfırdan kahramana öğrenin htARTE (HackTricks AWS Red Team Expert) ile!
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'na göz atın!
- Resmi PEASS & HackTricks ürünlerini edinin
- PEASS Ailesi'ni keşfedin, özel NFT'lerimiz koleksiyonumuz
- Katılın 💬 Discord grubuna veya telegram grubuna veya bizi Twitter 🐦 @carlospolopm'da takip edin.
- Hacking püf noktalarınızı paylaşarak PR'lar göndererek HackTricks ve HackTricks Cloud github depolarına katkıda bulunun.
MDM'leri Kötüye Kullanma
- JAMF Pro:
jamf checkJSSConnection
- Kandji
Yönetim platformuna erişmek için yönetici kimlik bilgilerini ele geçirirseniz, kötü amaçlı yazılımınızı makinelerde dağıtarak tüm bilgisayarları potansiyel olarak tehlikeye atabilirsiniz.
MacOS ortamlarında kırmızı takım faaliyetleri için MDM'lerin nasıl çalıştığını anlamak son derece önerilir:
{% content-ref url="macos-mdm/" %} macos-mdm {% endcontent-ref %}
MDM'yi C2 Olarak Kullanma
Bir MDM, profilleri yüklemeye, sorgulamaya veya kaldırmaya, uygulamaları yüklemeye, yerel yönetici hesapları oluşturmaya, firmware şifresi belirlemeye, FileVault anahtarını değiştirmeye izin verecektir...
Kendi MDM'nizi çalıştırmak için https://mdmcert.download/ adresinden bir satıcı tarafından imzalanan CSR'nızı almanız gerekmektedir. Apple cihazları için kendi MDM'nizi çalıştırmak için MicroMDM kullanabilirsiniz.
Ancak, bir uygulamayı kayıtlı bir cihaza yüklemek için hala bir geliştirici hesabı tarafından imzalanmış olması gerekmektedir... ancak, MDM kaydı sırasında cihaz, MDM'nin SSL sertifikasını güvenilir bir CA olarak ekler, böylece artık herhangi bir şeyi imzalayabilirsiniz.
Cihazı bir MDM'ye kaydetmek için, kök olarak bir mobileconfig
dosyası yüklemeniz gerekmektedir, bu dosya bir pkg dosyası aracılığıyla teslim edilebilir (zip içinde sıkıştırabilir ve safari'den indirildiğinde açılabilir).
Mythic ajanı Orthrus bu tekniği kullanır.
JAMF PRO'yu Kötüye Kullanma
JAMF, özel betikler (sistem yöneticisi tarafından geliştirilen betikler), yerel yükler (yerel hesap oluşturma, EFI şifresi belirleme, dosya/işlem izleme...) ve MDM (cihaz yapılandırmaları, cihaz sertifikaları...) çalıştırabilir.
JAMF otomatik kayıt
Öz-kayıt etkinleştirilmiş bir sayfaya gitmek için https://<şirket-adı>.jamfcloud.com/enroll/
gibi bir sayfaya gidin. Eğer etkinleştirilmişse erişmek için kimlik bilgileri isteyebilir.
JamfSniper.py betiğini kullanarak bir şifre püskürtme saldırısı gerçekleştirebilirsiniz.
Ayrıca, uygun kimlik bilgileri bulduktan sonra diğer kullanıcı adlarını kaba kuvvet saldırısı yapabilirsiniz:
JAMF cihaz Kimlik Doğrulama
![](/Mirrors/hacktricks/media/commit/a8fd87ce4111d09fb01d55b2e66da7721355fd64/.gitbook/assets/image%20%282%29%20%281%29%20%281%29%20%281%29%20%281%29%20%281%29%20%281%29%20%281%29%20%281%29%20%281%29%20%281%29%20%281%29%20%281%29%20%281%29%20%281%29.png)
jamf
ikili dosyası, keşif zamanında herkesle paylaşılan anahtarı açmak için gizliydi ve o zamanlar: jk23ucnq91jfu9aj
idi.
Ayrıca, jamf /Library/LaunchAgents/com.jamf.management.agent.plist
konumunda bir LaunchDaemon olarak kalıcıdır.
JAMF Cihaz Devralma
jamf
'ın kullanacağı JSS (Jamf Yazılım Sunucusu) URL'si, /Library/Preferences/com.jamfsoftware.jamf.plist
konumundadır.
Bu dosya temelde URL'yi içerir:
{% code overflow="wrap" %}
plutil -convert xml1 -o - /Library/Preferences/com.jamfsoftware.jamf.plist
[...]
<key>is_virtual_machine</key>
<false/>
<key>jss_url</key>
<string>https://halbornasd.jamfcloud.com/</string>
<key>last_management_framework_change_id</key>
<integer>4</integer>
[...]
Böylece, bir saldırgan, bu dosyayı üzerine yazacak şekilde ayarlanmış kötü amaçlı bir paket (pkg
) bırakabilir ve yüklendiğinde URL'yi bir Typhon ajanından Mythic C2 dinleyicisine ayarlayarak artık JAMF'ı C2 olarak kötüye kullanabilir.
# After changing the URL you could wait for it to be reloaded or execute:
sudo jamf policy -id 0
# TODO: There is an ID, maybe it's possible to have the real jamf connection and another one to the C2
{% endcode %}
JAMF Taklit
Cihaz ve JMF arasındaki iletişimi taklit etmek için şunlara ihtiyacınız vardır:
- Cihazın UUID'si:
ioreg -d2 -c IOPlatformExpertDevice | awk -F" '/IOPlatformUUID/{print $(NF-1)}'
- Cihaz sertifikasını içeren JAMF anahtar zinciri:
/Library/Application\ Support/Jamf/JAMF.keychain
Bu bilgilerle, çalınan Donanım UUID'si ile ve SIP devre dışı bırakılmış bir VM oluşturun, JAMF anahtar zincirini bırakın, Jamf ajansını kancala ve bilgilerini çalın.
Sırların Çalınması
![](/Mirrors/hacktricks/media/commit/a8fd87ce4111d09fb01d55b2e66da7721355fd64/.gitbook/assets/image%20%2811%29.png)
a
Ayrıca, yöneticilerin Jamf aracılığıyla yürütmek isteyebileceği özel betikleri izlemek için /Library/Application Support/Jamf/tmp/
konumunu izleyebilirsiniz çünkü bunlar buraya yerleştirilir, yürütülür ve kaldırılır. Bu betikler kimlik bilgilerini içerebilir.
Ancak, kimlik bilgileri bu betiklere parametreler olarak iletilmiş olabilir, bu nedenle ps aux | grep -i jamf
'yi (root olmadan bile) izlemeniz gerekebilir.
JamfExplorer.py betiği, eklenen yeni dosyaları ve yeni işlem argümanlarını dinleyebilir.
macOS Uzak Erişim
Ve ayrıca MacOS "özel" ağ protokolleri hakkında:
{% content-ref url="../macos-security-and-privilege-escalation/macos-protocols.md" %} macos-protocols.md {% endcontent-ref %}
Active Directory
Bazı durumlarda MacOS bilgisayarının bir AD'ye bağlı olduğunu göreceksiniz. Bu senaryoda, genellikle yaptığınız gibi aktif dizini numaralandırmaya çalışmalısınız. Aşağıdaki sayfalarda yardım bulabilirsiniz:
{% content-ref url="../../network-services-pentesting/pentesting-ldap.md" %} pentesting-ldap.md {% endcontent-ref %}
{% content-ref url="../../windows-hardening/active-directory-methodology/" %} active-directory-methodology {% endcontent-ref %}
{% content-ref url="../../network-services-pentesting/pentesting-kerberos-88/" %} pentesting-kerberos-88 {% endcontent-ref %}
Size yardımcı olabilecek bazı yerel MacOS araçları da dscl
'dir:
dscl "/Active Directory/[Domain]/All Domains" ls /
Ayrıca, MacOS için AD'yi otomatik olarak numaralandırmak ve kerberos ile oynamak için bazı araçlar hazırlanmıştır:
- Machound: MacHound, MacOS ana bilgisayarlarında Active Directory ilişkilerini toplamak ve almak için Bloodhound denetim aracına bir uzantıdır.
- Bifrost: Bifrost, macOS'ta Heimdal krb5 API'leri ile etkileşim sağlamak üzere tasarlanmış bir Objective-C projesidir. Projenin amacı, hedef üzerinde herhangi bir diğer çerçeve veya paket gerektirmeksizin macOS cihazlarında Kerberos etrafında daha iyi güvenlik testleri yapılmasını sağlamaktır.
- Orchard: JavaScript for Automation (JXA) aracı, Active Directory numaralandırması yapmak için kullanılır.
Alan Bilgileri
echo show com.apple.opendirectoryd.ActiveDirectory | scutil
Kullanıcılar
MacOS kullanıcılarının üç türü şunlardır:
- Yerel Kullanıcılar — Yerel OpenDirectory hizmeti tarafından yönetilen, Active Directory ile herhangi bir şekilde bağlantılı olmayan kullanıcılar.
- Ağ Kullanıcıları — Geçici Active Directory kullanıcıları, kimlik doğrulamak için DC sunucusuna bağlantı gerektirir.
- Mobil Kullanıcılar — Kimlik ve dosyaları için yerel bir yedekleme olan Active Directory kullanıcıları.
Kullanıcılar ve gruplarla ilgili yerel bilgiler, /var/db/dslocal/nodes/Default klasöründe saklanır.
Örneğin, mark adlı kullanıcıyla ilgili bilgiler /var/db/dslocal/nodes/Default/users/mark.plist dosyasında saklanır ve admin grubuyla ilgili bilgiler /var/db/dslocal/nodes/Default/groups/admin.plist dosyasında bulunur.
HasSession ve AdminTo kenarlarını kullanmanın yanı sıra, MacHound Bloodhound veritabanına üç yeni kenar ekler:
- CanSSH - ana bilgisayara SSH yapmaya izin verilen varlık
- CanVNC - ana bilgisayara VNC yapmaya izin verilen varlık
- CanAE - ana bilgisayarda AppleEvent komut dosyalarını çalıştırmaya izin verilen varlık
#User enumeration
dscl . ls /Users
dscl . read /Users/[username]
dscl "/Active Directory/TEST/All Domains" ls /Users
dscl "/Active Directory/TEST/All Domains" read /Users/[username]
dscacheutil -q user
#Computer enumeration
dscl "/Active Directory/TEST/All Domains" ls /Computers
dscl "/Active Directory/TEST/All Domains" read "/Computers/[compname]$"
#Group enumeration
dscl . ls /Groups
dscl . read "/Groups/[groupname]"
dscl "/Active Directory/TEST/All Domains" ls /Groups
dscl "/Active Directory/TEST/All Domains" read "/Groups/[groupname]"
#Domain Information
dsconfigad -show
Daha fazla bilgi için https://its-a-feature.github.io/posts/2018/01/Active-Directory-Discovery-with-a-Mac/ adresine bakabilirsiniz.
Anahtarlık Erişimi
Anahtarlık büyük olasılıkla hassas bilgiler içerir ve eğer bir uyarı oluşturmadan erişilirse kırmızı takım egzersizine devam etmede yardımcı olabilir:
{% content-ref url="macos-keychain.md" %} macos-keychain.md {% endcontent-ref %}
Harici Hizmetler
MacOS Kırmızı Takımı, genellikle MacOS'un doğrudan birkaç harici platformla entegre olduğu normal Windows Kırmızı Takımdan farklıdır. MacOS'un yaygın bir yapılandırması, OneLogin senkronize kimlik bilgileri kullanarak bilgisayara erişim sağlamak ve OneLogin aracılığıyla birkaç harici hizmete erişmek (github, aws gibi).
Çeşitli Kırmızı Takım teknikleri
Safari
Safari'de bir dosya indirildiğinde, eğer "güvenli" bir dosya ise otomatik olarak açılacaktır. Örneğin, bir zip dosyası indirirseniz, otomatik olarak açılacaktır:
![](/Mirrors/hacktricks/media/commit/a8fd87ce4111d09fb01d55b2e66da7721355fd64/.gitbook/assets/image%20%2812%29%20%283%29.png)
Referanslar
- https://www.youtube.com/watch?v=IiMladUbL6E
- https://medium.com/xm-cyber/introducing-machound-a-solution-to-macos-active-directory-based-attacks-2a425f0a22b6
- https://gist.github.com/its-a-feature/1a34f597fb30985a2742bb16116e74e0
- Come to the Dark Side, We Have Apples: Turning macOS Management Evil
- OBTS v3.0: "An Attackers Perspective on Jamf Configurations" - Luke Roberts / Calum Hall