10 KiB
macOS Ağ Hizmetleri ve Protokolleri
AWS hacklemeyi sıfırdan kahraman olmak için öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)!
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'na göz atın!
- Resmi PEASS & HackTricks ürünlerini edinin
- Özel NFT'lerden oluşan koleksiyonumuz The PEASS Family'yi keşfedin
- 💬 Discord grubuna veya telegram grubuna katılın veya Twitter 🐦 @carlospolopm'u takip edin.
- Hacking hilelerinizi HackTricks ve HackTricks Cloud github depolarına PR göndererek paylaşın.
Uzaktan Erişim Hizmetleri
Bunlar, uzaktan erişim için yaygın olarak kullanılan macOS hizmetleridir.
Bu hizmetleri Sistem Ayarları
--> Paylaşım
bölümünde etkinleştirebilir/devre dışı bırakabilirsiniz.
- VNC, "Ekran Paylaşımı" olarak bilinir (tcp:5900)
- SSH, "Uzak Oturum Açma" olarak adlandırılır (tcp:22)
- Apple Uzak Masaüstü (ARD) veya "Uzak Yönetim" (tcp:3283, tcp:5900)
- AppleEvent, "Uzak Apple Etkinliği" olarak bilinir (tcp:3031)
Etkin olan birini kontrol etmek için çalıştırın:
rmMgmt=$(netstat -na | grep LISTEN | grep tcp46 | grep "*.3283" | wc -l);
scrShrng=$(netstat -na | grep LISTEN | egrep 'tcp4|tcp6' | grep "*.5900" | wc -l);
flShrng=$(netstat -na | grep LISTEN | egrep 'tcp4|tcp6' | egrep "\*.88|\*.445|\*.548" | wc -l);
rLgn=$(netstat -na | grep LISTEN | egrep 'tcp4|tcp6' | grep "*.22" | wc -l);
rAE=$(netstat -na | grep LISTEN | egrep 'tcp4|tcp6' | grep "*.3031" | wc -l);
bmM=$(netstat -na | grep LISTEN | egrep 'tcp4|tcp6' | grep "*.4488" | wc -l);
printf "\nThe following services are OFF if '0', or ON otherwise:\nScreen Sharing: %s\nFile Sharing: %s\nRemote Login: %s\nRemote Mgmt: %s\nRemote Apple Events: %s\nBack to My Mac: %s\n\n" "$scrShrng" "$flShrng" "$rLgn" "$rmMgmt" "$rAE" "$bmM";
ARD Pentesting
Apple Remote Desktop (ARD), macOS için özel olarak tasarlanmış Virtual Network Computing (VNC) 'in geliştirilmiş bir versiyonudur ve ek özellikler sunar. ARD'deki dikkate değer bir güvenlik açığı, kontrol ekranı parolası için kullanılan kimlik doğrulama yöntemidir. Bu yöntem sadece parolanın ilk 8 karakterini kullanır ve bu da Hydra veya GoRedShell gibi araçlarla brute force saldırılarına karşı savunmasız hale getirir, çünkü varsayılan bir hız sınırlaması yoktur.
Zayıf noktalara sahip olan örnekler, nmap'in vnc-info
komutuyla tespit edilebilir. VNC Authentication (2)
'yi destekleyen hizmetler, 8 karakterlik parola kırpılması nedeniyle brute force saldırılarına özellikle savunmasızdır.
Ayrıcalık yükseltme, GUI erişimi veya kullanıcı izleme gibi çeşitli yönetimsel görevler için ARD'yi etkinleştirmek için aşağıdaki komutu kullanın:
sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -activate -configure -allowAccessFor -allUsers -privs -all -clientopts -setmenuextra -menuextra yes
ARD, Gözlem, Paylaşılan Kontrol ve Tam Kontrol gibi çok yönlü kontrol seviyeleri sağlar ve kullanıcı şifre değişikliklerinden sonra bile oturumlar devam eder. Unix komutlarını doğrudan göndermeye olanak tanır ve yönetici kullanıcılar için root olarak çalıştırır. Görev zamanlama ve Uzaktan Spotlight arama, hassas dosyaların birden fazla makinede uzaktan, düşük etkili aramalarını kolaylaştıran dikkate değer özelliklerdir.
Bonjour Protokolü
Bonjour, Apple tarafından tasarlanan bir teknoloji olan aynı ağdaki cihazların birbirlerinin sunulan hizmetlerini algılamasına olanak sağlar. Rendezvous, Zero Configuration veya Zeroconf olarak da bilinen Bonjour, bir cihazın bir TCP/IP ağına katılmasını, otomatik olarak bir IP adresi seçmesini ve hizmetlerini diğer ağ cihazlarına yayınlamasını sağlar.
Bonjour tarafından sağlanan Zero Configuration Networking, cihazların aşağıdaki işlemleri gerçekleştirmesini sağlar:
- Bir DHCP sunucusu olmadan bile otomatik olarak bir IP adresi almak.
- Bir DNS sunucusu gerektirmeden adı-adrese çeviri yapmak.
- Ağda mevcut olan hizmetleri keşfetmek.
Bonjour kullanan cihazlar, kendilerine 169.254/16 aralığından bir IP adresi atar ve bu adresin ağda benzersiz olduğunu doğrular. Mac'ler, bu alt ağ için bir yönlendirme tablosu girişi tutar ve netstat -rn | grep 169
komutuyla doğrulanabilir.
Bonjour, DNS için Multicast DNS (mDNS) protokolünü kullanır. mDNS, 5353/UDP bağlantı noktası üzerinden çalışır ve standart DNS sorgularını kullanır, ancak 224.0.0.251 çoklu yayın adresine yöneliktir. Bu yaklaşım, ağdaki tüm dinleyen cihazların sorguları almasını ve yanıtlamasını sağlar, böylece kayıtlarını güncellemeleri kolaylaşır.
Ağa katıldığında, her cihaz kendiliğinden bir isim seçer, genellikle .local ile biten bir isim olur ve bu isim, ana bilgisayar adından veya rastgele oluşturulmuş olabilir.
Ağ içindeki hizmet keşfi, DNS Service Discovery (DNS-SD) tarafından kolaylaştırılır. DNS SRV kayıtlarının formatını kullanan DNS-SD, birden fazla hizmetin listelenmesini sağlamak için DNS PTR kayıtlarını kullanır. Belirli bir hizmeti arayan bir istemci, <Hizmet>.<Alan>
için bir PTR kaydı isteyecek ve birden fazla sunucudan hizmet mevcutsa, <Örnek>.<Hizmet>.<Alan>
formatında bir PTR kayıt listesi alacaktır.
dns-sd yardımcı programı, ağ hizmetlerini keşfetmek ve reklam yapmak için kullanılabilir. İşte kullanım örneklerinden bazıları:
SSH Hizmetlerini Arama
Ağda SSH hizmetlerini aramak için aşağıdaki komut kullanılır:
dns-sd -B _ssh._tcp
Bu komut, _ssh._tcp hizmetlerini tarar ve zaman damgası, bayraklar, arayüz, alan adı, hizmet türü ve örnek adı gibi ayrıntıları çıktılar.
Bir HTTP Hizmeti Reklamı
Bir HTTP hizmeti reklamı yapmak için şunu kullanabilirsiniz:
dns-sd -R "Index" _http._tcp . 80 path=/index.html
Bu komut, /index.html
yolunda 80 numaralı bağlantı noktasında "Index" adında bir HTTP hizmeti kaydeder.
Ardından ağda HTTP hizmetlerini aramak için:
dns-sd -B _http._tcp
Bir hizmet başladığında, varlığını çoklu yayın yaparak alt ağdaki tüm cihazlara duyurur. Bu hizmetlere ilgi duyan cihazlar, istek göndermek yerine sadece bu duyuruları dinleyerek hizmetleri bulabilir.
Daha kullanıcı dostu bir arayüz için, Apple App Store'da bulunan Discovery - DNS-SD Browser uygulaması yerel ağınızda sunulan hizmetleri görselleştirebilir.
Alternatif olarak, python-zeroconf
kütüphanesini kullanarak hizmetleri taramak ve bulmak için özel betikler yazılabilir. python-zeroconf betiği, _http._tcp.local.
hizmetleri için bir hizmet tarayıcısı oluşturmayı ve eklenen veya kaldırılan hizmetleri yazdırmayı göstermektedir:
from zeroconf import ServiceBrowser, Zeroconf
class MyListener:
def remove_service(self, zeroconf, type, name):
print("Service %s removed" % (name,))
def add_service(self, zeroconf, type, name):
info = zeroconf.get_service_info(type, name)
print("Service %s added, service info: %s" % (name, info))
zeroconf = Zeroconf()
listener = MyListener()
browser = ServiceBrowser(zeroconf, "_http._tcp.local.", listener)
try:
input("Press enter to exit...\n\n")
finally:
zeroconf.close()
Bonjour Devre Dışı Bırakma
Eğer güvenlikle ilgili endişeler varsa veya Bonjour'u devre dışı bırakmak için başka nedenler varsa, aşağıdaki komut kullanılarak devre dışı bırakılabilir:
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
Referanslar
- The Mac Hacker's Handbook
- https://taomm.org/vol1/analysis.html
- https://lockboxx.blogspot.com/2019/07/macos-red-teaming-206-ard-apple-remote.html
AWS hackleme konusunda sıfırdan kahramana dönüşmek 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 PLANLARI'na göz atın!
- Resmi PEASS & HackTricks ürünlerini edinin
- Özel NFT'lerimizden oluşan koleksiyonumuz The PEASS Family'i keşfedin
- 💬 Discord grubuna veya telegram grubuna katılın veya Twitter 🐦 @carlospolopm'u takip edin.
- Hacking hilelerinizi HackTricks ve HackTricks Cloud github reposuna PR göndererek paylaşın.