hacktricks/macos-hardening/macos-security-and-privilege-escalation/macos-protocols.md
2024-02-11 02:13:58 +00:00

9.5 KiB

Huduma na Itifaki za Mtandao za macOS

Jifunze kuhusu kuhack AWS kutoka sifuri hadi shujaa na htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)!

Njia nyingine za kusaidia HackTricks:

Huduma za Kupata Kijijini

Hizi ni huduma za kawaida za macOS ambazo unaweza kuzifikia kijijini.
Unaweza kuwezesha/kulemaza huduma hizi katika Mipangilio ya Mfumo --> Kushiriki

  • VNC, inayojulikana kama "Screen Sharing" (tcp:5900)
  • SSH, inayoitwa "Remote Login" (tcp:22)
  • Apple Remote Desktop (ARD), au "Remote Management" (tcp:3283, tcp:5900)
  • AppleEvent, inayojulikana kama "Remote Apple Event" (tcp:3031)

Angalia ikiwa yoyote imelemazwa kwa kukimbia:

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";

Pentesting ARD

Apple Remote Desktop (ARD) ni toleo lililoboreshwa la Virtual Network Computing (VNC) lililobinafsishwa kwa macOS, likitoa huduma za ziada. Kasoro inayojulikana katika ARD ni njia yake ya uwakiki kwa nenosiri la skrini ya udhibiti, ambayo hutumia tu herufi 8 za kwanza za nenosiri, ikifanya iwe rahisi kwa mashambulizi ya nguvu ya kijusi kwa kutumia zana kama Hydra au GoRedShell, kwani hakuna mipaka ya kiwango cha kawaida.

Mifano yenye kasoro inaweza kutambuliwa kwa kutumia script ya vnc-info ya nmap. Huduma zinazounga mkono VNC Authentication (2) ziko katika hatari kubwa ya mashambulizi ya nguvu ya kijusi kutokana na kukatwa kwa nenosiri la herufi 8.

Ili kuwezesha ARD kwa kazi mbalimbali za utawala kama kuongeza mamlaka, kupata ufikivu wa GUI, au ufuatiliaji wa mtumiaji, tumia amri ifuatayo:

sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -activate -configure -allowAccessFor -allUsers -privs -all -clientopts -setmenuextra -menuextra yes

ARD hutoa viwango mbalimbali vya udhibiti, ikiwa ni pamoja na uangalizi, udhibiti ulioshirikishwa, na udhibiti kamili, na vikao vinaendelea hata baada ya mabadiliko ya nenosiri la mtumiaji. Inaruhusu kutuma amri za Unix moja kwa moja, kuzitekeleza kama mizizi kwa watumiaji wa utawala. Uwezo wa kupanga kazi na utafutaji wa mbali wa Spotlight ni vipengele muhimu, vinavyorahisisha utafutaji wa faili nyeti kwa njia ya mbali na athari ndogo kwenye mashine kadhaa.

Itifaki ya Bonjour

Bonjour, teknolojia iliyoundwa na Apple, inaruhusu vifaa kwenye mtandao huo huo kugundua huduma zinazotolewa na kila mmoja. Inayojulikana pia kama Rendezvous, Zero Configuration, au Zeroconf, inawezesha kifaa kujiunga na mtandao wa TCP/IP, kuchagua anwani ya IP kiotomatiki, na kutangaza huduma zake kwa vifaa vingine kwenye mtandao.

Zero Configuration Networking, inayotolewa na Bonjour, inahakikisha kuwa vifaa vinaweza:

  • Kupata anwani ya IP kiotomatiki hata kama hakuna seva ya DHCP.
  • Kufanya tafsiri ya jina-kuwa-anwani bila kuhitaji seva ya DNS.
  • Kugundua huduma zilizopo kwenye mtandao.

Vifaa vinavyotumia Bonjour vitajitengea wenyewe anwani ya IP kutoka kwa safu ya 169.254/16 na kuhakikisha kuwa ni ya pekee kwenye mtandao. Macs inaingiza kuingia kwenye meza ya ujumbe kwa subnet hii, inayoweza kuthibitishwa kupitia netstat -rn | grep 169.

Kwa DNS, Bonjour hutumia Itifaki ya Multicast DNS (mDNS). mDNS inafanya kazi kupitia bandari 5353/UDP, ikitumia mambo ya kawaida ya DNS lakini ikilenga anwani ya multicast 224.0.0.251. Njia hii inahakikisha kuwa vifaa vyote vinavyosikiliza kwenye mtandao vinaweza kupokea na kujibu maswali, ikirahisisha sasisho la rekodi zao.

Baada ya kujiunga na mtandao, kila kifaa huchagua jina lake, kawaida likiishia na .local, ambalo linaweza kutokana na jina la mwenyeji au kuzalishwa kwa nasibu.

Ugunduzi wa huduma ndani ya mtandao unafanikishwa na Ugunduzi wa Huduma za DNS (DNS-SD). Kwa kutumia muundo wa rekodi za DNS SRV, DNS-SD hutumia rekodi za DNS PTR kuwezesha orodha ya huduma nyingi. Mteja anayetafuta huduma maalum atauliza rekodi ya PTR kwa <Huduma>.<Kikoa>, na kupokea orodha ya rekodi za PTR zilizoandaliwa kama <Kipengele>.<Huduma>.<Kikoa> ikiwa huduma inapatikana kutoka kwa watumishi wengi.

Zana ya dns-sd inaweza kutumika kwa ugunduzi na matangazo ya huduma za mtandao. Hapa kuna mifano ya matumizi yake:

Kutafuta Huduma za SSH

Kutafuta huduma za SSH kwenye mtandao, tumia amri ifuatayo:

dns-sd -B _ssh._tcp

Amri hii inaanzisha utafutaji wa huduma za _ssh._tcp na kutoa maelezo kama vile muda, bendera, kiolesura, kikoa, aina ya huduma, na jina la kesi.

Kutangaza Huduma ya HTTP

Ili kutangaza huduma ya HTTP, unaweza kutumia:

dns-sd -R "Index" _http._tcp . 80 path=/index.html

Amri hii inasajili huduma ya HTTP iliyoitwa "Index" kwenye bandari 80 na njia ya /index.html.

Kisha kutafuta huduma za HTTP kwenye mtandao:

dns-sd -B _http._tcp

Wakati huduma inapoanza, inatangaza upatikanaji wake kwa vifaa vyote kwenye mtandao wa eneo kwa kutuma habari kwa wote. Vifaa vinavyopendezwa na huduma hizi havitaji kutuma maombi bali tu kusikiliza matangazo haya.

Kwa kiolesura cha mtumiaji rafiki zaidi, programu ya Discovery - DNS-SD Browser inapatikana kwenye Duka la App la Apple inaweza kuonyesha huduma zinazotolewa kwenye mtandao wako wa ndani.

Kwa upande mwingine, hati za desturi zinaweza kuandikwa ili kuvinjari na kugundua huduma kwa kutumia maktaba ya python-zeroconf. Hati ya python-zeroconf inaonyesha jinsi ya kuunda kivinjari cha huduma kwa huduma za _http._tcp.local., kuchapisha huduma zilizoongezwa au kuondolewa:

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()

Kulemaza Bonjour

Ikiwa kuna wasiwasi kuhusu usalama au sababu nyingine za kulemaza Bonjour, inaweza kuzimwa kwa kutumia amri ifuatayo:

sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist

Marejeo

Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na htARTE (Mtaalam wa Timu Nyekundu ya AWS ya HackTricks)!

Njia nyingine za kusaidia HackTricks: