macOS Red Teaming
Last updated
Last updated
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE) GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin
Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın. Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik istismarları kullanmak için 20'den fazla özel aracımızı kullanın, böylece sıkı çalışmanızı ikna edici raporlara dönüştürün.
JAMF Pro: jamf checkJSSConnection
Kandji
Yönetim platformuna erişmek için admin kimlik bilgilerini ele geçirmeyi başarırsanız, makinelerde kötü amaçlı yazılımınızı dağıtarak tüm bilgisayarları tehlikeye atabilirsiniz.
MacOS ortamlarında kırmızı takım çalışması için MDM'lerin nasıl çalıştığına dair bir anlayışa sahip olmak şiddetle tavsiye edilir:
macOS MDMBir MDM, profilleri yüklemek, sorgulamak veya kaldırmak, uygulamaları yüklemek, yerel admin hesapları oluşturmak, firmware şifresi ayarlamak, FileVault anahtarını değiştirmek için izne sahip olacaktır...
Kendi MDM'nizi çalıştırmak için CSR'nizin bir satıcı tarafından imzalanması gerekir, bunu https://mdmcert.download/ ile elde etmeyi deneyebilirsiniz. Apple cihazları için kendi MDM'nizi çalıştırmak için MicroMDM kullanabilirsiniz.
Ancak, kayıtlı bir cihazda bir uygulama yüklemek için, yine de bir geliştirici hesabı tarafından imzalanmış olması gerekir... ancak, MDM kaydı sırasında cihaz MDM'nin SSL sertifikasını güvenilir CA olarak ekler, böylece artık her şeyi imzalayabilirsiniz.
Cihazı bir MDM'ye kaydetmek için, mobileconfig
dosyasını root olarak yüklemeniz gerekir, bu bir pkg dosyası aracılığıyla teslim edilebilir (zip içinde sıkıştırabilir ve Safari'den indirildiğinde açılacaktır).
Mythic agent Orthrus bu tekniği kullanır.
JAMF, özel betikler (sistem yöneticisi tarafından geliştirilen betikler), yerel yükler (yerel hesap oluşturma, EFI şifresi ayarlama, dosya/proses izleme...) ve MDM (cihaz yapılandırmaları, cihaz sertifikaları...) çalıştırabilir.
https://<şirket-adı>.jamfcloud.com/enroll/
gibi bir sayfaya giderek kendi kendine kaydın etkin olup olmadığını kontrol edin. Eğer etkinse, erişim için kimlik bilgileri isteyebilir.
Bir şifre püskürtme saldırısı gerçekleştirmek için JamfSniper.py betiğini kullanabilirsiniz.
Ayrıca, uygun kimlik bilgilerini bulduktan sonra, diğer kullanıcı adlarını brute-force ile denemek için aşağıdaki formu kullanabilirsiniz:
jamf
ikili dosyası, keşif anında herkesle paylaşılan anahtar zincirini açma sırrını içeriyordu ve bu: jk23ucnq91jfu9aj
.
Ayrıca, jamf /Library/LaunchAgents/com.jamf.management.agent.plist içinde LaunchDaemon olarak kalır.
JSS (Jamf Software Server) URL'si jamf
tarafından kullanılacak olan /Library/Preferences/com.jamfsoftware.jamf.plist
içinde yer almaktadır.
Bu dosya temelde URL'yi içerir:
Yani, bir saldırgan, kurulduğunda bu dosyayı üzerine yazan kötü niyetli bir paket (pkg
) bırakabilir ve URL'yi bir Typhon ajanından bir Mythic C2 dinleyicisine ayarlayarak JAMF'i C2 olarak kötüye kullanabilir.
Bir cihaz ile JMF arasındaki ileşimi taklit etmek için şunlara ihtiyacınız var:
Cihazın UUID'si: ioreg -d2 -c IOPlatformExpertDevice | awk -F" '/IOPlatformUUID/{print $(NF-1)}'
Cihaz sertifikasını içeren JAMF anahtarı: /Library/Application\ Support/Jamf/JAMF.keychain
Bu bilgilerle, ç stolen Donanım UUID'si ile SIP devre dışı bırakılmış bir VM oluşturun, JAMF anahtarını bırakın, Jamf ajanını hook edin ve bilgilerini çalın.
Ayrıca, yöneticilerin Jamf aracılığıyla çalıştırmak isteyebileceği özel betikler için /Library/Application Support/Jamf/tmp/
konumunu izleyebilirsiniz, çünkü bunlar buraya yerleştirilir, çalıştırılır ve kaldırılır. Bu betikler kimlik bilgilerini içerebilir.
Ancak, kimlik bilgileri bu betiklere parametreler olarak geçebilir, bu nedenle ps aux | grep -i jamf
komutunu izlemelisiniz (root olmadan bile).
JamfExplorer.py betiği, yeni dosyaların eklenmesini ve yeni işlem argümanlarını dinleyebilir.
Ve ayrıca MacOS "özel" ağ protokolleri hakkında:
macOS Network Services & ProtocolsBazı durumlarda MacOS bilgisayarının bir AD'ye bağlı olduğunu göreceksiniz. Bu senaryoda, aktif dizini numaralandırmaya çalışmalısınız. Aşağıdaki sayfalarda bazı yardımlar bulabilirsiniz:
389, 636, 3268, 3269 - Pentesting LDAPActive Directory Methodology88tcp/udp - Pentesting KerberosSize yardımcı olabilecek bazı yerel MacOS araçları dscl
olabilir:
Ayrıca, AD'yi otomatik olarak listelemek ve kerberos ile oynamak için MacOS için hazırlanmış bazı araçlar vardır:
Machound: MacHound, MacOS ana bilgisayarlarında Active Directory ilişkilerini toplama ve alma imkanı sunan Bloodhound denetim aracının bir uzantısıdır.
Bifrost: Bifrost, macOS'taki Heimdal krb5 API'leri ile etkileşimde bulunmak için tasarlanmış bir Objective-C projesidir. Projenin amacı, hedefte başka bir çerçeve veya paket gerektirmeden yerel API'ler kullanarak macOS cihazlarında Kerberos etrafında daha iyi güvenlik testleri yapmaktır.
Orchard: Active Directory listeleme yapmak için JavaScript for Automation (JXA) aracı.
MacOS kullanıcılarının üç türü vardır:
Yerel Kullanıcılar — Yerel OpenDirectory hizmeti tarafından yönetilir, Active Directory ile herhangi bir bağlantıları yoktur.
Ağ Kullanıcıları — Kimlik doğrulamak için DC sunucusuna bağlantı gerektiren geçici Active Directory kullanıcılarıdır.
Mobil Kullanıcılar — Kimlik bilgileri ve dosyaları için yerel bir yedekleme olan Active Directory kullanıcılarıdır.
Kullanıcılar ve gruplar hakkında yerel bilgiler /var/db/dslocal/nodes/Default klasöründe saklanır. Örneğin, mark adlı kullanıcının bilgileri /var/db/dslocal/nodes/Default/users/mark.plist dosyasında ve admin grubunun bilgileri /var/db/dslocal/nodes/Default/groups/admin.plist dosyasında saklanır.
HasSession ve AdminTo kenarlarını kullanmanın yanı sıra, MacHound, Bloodhound veritabanına üç yeni kenar ekler:
CanSSH - ana makineye SSH bağlantısına izin verilen varlık
CanVNC - ana makineye VNC bağlantısına izin verilen varlık
CanAE - ana makinede AppleEvent betikleri çalıştırmaya izin verilen varlık
Daha fazla bilgi için https://its-a-feature.github.io/posts/2018/01/Active-Directory-Discovery-with-a-Mac/
Şifreleri elde etmek için:
Computer$
parolasına Sistem anahtar zincirinde erişmek mümkündür.
Belirli bir kullanıcı ve hizmet için bir TGT alın:
Bir kez TGT toplandıktan sonra, mevcut oturuma şu şekilde enjekte etmek mümkündür:
Elde edilen hizmet biletleri ile diğer bilgisayarlardaki paylaşımlara erişim sağlamaya çalışmak mümkündür:
Anahtarlık, bir istem oluşturulmadan erişildiğinde, bir kırmızı takım egzersizini ilerletmeye yardımcı olabilecek hassas bilgileri yüksek olasılıkla içerir:
macOS KeychainMacOS Kırmızı Takımı, genellikle MacOS'un birkaç harici platformla doğrudan entegre olması nedeniyle, normal bir Windows Kırmızı Takımından farklıdır. MacOS'un yaygın bir yapılandırması, OneLogin senkronize edilmiş kimlik bilgileri kullanarak bilgisayara erişmek ve OneLogin aracılığıyla birkaç harici hizmete (github, aws...) erişmektir.
Safari'de bir dosya indirildiğinde, eğer "güvenli" bir dosya ise, otomatik olarak açılacaktır. Örneğin, eğer bir zip indirirseniz, otomatik olarak açılacaktır:
Web uygulamalarınız, ağınız ve bulutunuz hakkında bir hacker perspektifi edinin
Gerçek iş etkisi olan kritik, istismar edilebilir güvenlik açıklarını bulun ve raporlayın. Saldırı yüzeyini haritalamak, ayrıcalıkları artırmanıza izin veren güvenlik sorunlarını bulmak ve temel kanıtları toplamak için otomatik istismarları kullanmak için 20'den fazla özel aracımızı kullanın, sıkı çalışmanızı ikna edici raporlara dönüştürün.
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE) GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)