hacktricks/macos-hardening/macos-security-and-privilege-escalation/macos-apps-inspecting-debugging-and-fuzzing
2024-04-19 06:29:56 +00:00
..
arm64-basic-assembly.md Translated ['macos-hardening/macos-security-and-privilege-escalation/mac 2024-04-19 06:29:56 +00:00
introduction-to-x64.md Translated ['macos-hardening/macos-security-and-privilege-escalation/mac 2024-04-19 06:29:56 +00:00
README.md Translated ['macos-hardening/macos-security-and-privilege-escalation/mac 2024-04-18 13:52:13 +00:00

Programu za macOS - Kuchunguza, kudebugi na Fuzzing

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

Njia nyingine za kusaidia HackTricks:

WhiteIntel

WhiteIntel ni injini ya utaftaji inayotumia dark-web ambayo inatoa huduma za bure kuchunguza ikiwa kampuni au wateja wake wameathiriwa na malware za wizi.

Lengo kuu la WhiteIntel ni kupambana na utekaji wa akaunti na mashambulio ya ransomware yanayotokana na malware za wizi wa habari.

Unaweza kutembelea tovuti yao na kujaribu injini yao bure kwa:

{% embed url="https://whiteintel.io" %}


Uchambuzi Stati

otool

otool -L /bin/ls #List dynamically linked libraries
otool -tv /bin/ps #Decompile application

objdump

{% code overflow="wrap" %}

objdump -m --dylibs-used /bin/ls #List dynamically linked libraries
objdump -m -h /bin/ls # Get headers information
objdump -m --syms /bin/ls # Check if the symbol table exists to get function names
objdump -m --full-contents /bin/ls # Dump every section
objdump -d /bin/ls # Dissasemble the binary
objdump --disassemble-symbols=_hello --x86-asm-syntax=intel toolsdemo #Disassemble a function using intel flavour

jtool2

Zana hii inaweza kutumika kama badala ya codesign, otool, na objdump, na hutoa baadhi ya vipengele vingine vya ziada. Pakua hapa au isakinishe kwa kutumia brew.

# Install
brew install --cask jtool2

jtool2 -l /bin/ls # Get commands (headers)
jtool2 -L /bin/ls # Get libraries
jtool2 -S /bin/ls # Get symbol info
jtool2 -d /bin/ls # Dump binary
jtool2 -D /bin/ls # Decompile binary

# Get signature information
ARCH=x86_64 jtool2 --sig /System/Applications/Automator.app/Contents/MacOS/Automator

# Get MIG information
jtool2 -d __DATA.__const myipc_server | grep MIG

Codesign / ldid

{% hint style="danger" %} Codesign inaweza kupatikana kwenye macOS wakati ldid inaweza kupatikana kwenye iOS {% endhint %}

# Get signer
codesign -vv -d /bin/ls 2>&1 | grep -E "Authority|TeamIdentifier"

# Check if the apps contents have been modified
codesign --verify --verbose /Applications/Safari.app

# Get entitlements from the binary
codesign -d --entitlements :- /System/Applications/Automator.app # Check the TCC perms

# Check if the signature is valid
spctl --assess --verbose /Applications/Safari.app

# Sign a binary
codesign -s <cert-name-keychain> toolsdemo

# Get signature info
ldid -h <binary>

# Get entitlements
ldid -e <binary>

# Change entilements
## /tmp/entl.xml is a XML file with the new entitlements to add
ldid -S/tmp/entl.xml <binary>

SuspiciousPackage

SuspiciousPackage ni chombo kinachofaa kuchunguza faili za .pkg (wakala) na kuona kilichomo ndani kabla ya kuiweka.
Wakala hawa wana skripti za bash za preinstall na postinstall ambazo waundaji wa programu hasidi kawaida hutumia vibaya kudumisha programu hasidi.

hdiutil

Chombo hiki kuruhusu kufunga picha za diski za Apple (.dmg) ili kuzichunguza kabla ya kuziendesha:

hdiutil attach ~/Downloads/Firefox\ 58.0.2.dmg

Itakuwa imemountiwa katika /Volumes

Objective-C

Metadata

{% hint style="danger" %} Tafadhali kumbuka kuwa programu zilizoandikwa kwa Objective-C huhifadhi matangazo yao ya darasa wakati inapohamishwa katika Mach-O binaries. Matangazo hayo ya darasa ni pamoja na jina na aina ya: {% endhint %}

  • Darasa
  • Njia za darasa
  • Vipengele vya kielezo cha darasa

Unaweza kupata habari hii kwa kutumia class-dump:

class-dump Kindle.app

Kuita Kazi

Wakati kazi inaitwa katika binary inayotumia objective-C, msimbo uliokompiliwa badala ya kuita kazi hiyo, itaita objc_msgSend. Ambayo itaita kazi ya mwisho:

Parameta ambazo kazi hii inatarajia ni:

  • Parameta ya kwanza (self) ni "kipekee kinachoelekeza kwa mfano wa darasa ambalo linapaswa kupokea ujumbe". Au kwa maneno rahisi, ni kitu ambacho mbinu inaitwa juu yake. Ikiwa mbinu ni mbinu ya darasa, hii itakuwa mfano wa kitu cha darasa (kwa ujumla), wakati kwa mbinu ya mfano, self itaelekeza kwa mfano uliofanywa wa darasa kama kitu.
  • Parameta ya pili, (op), ni "chaguo la mbinu inayoshughulikia ujumbe". Tena, kwa maneno rahisi, hii ni tu jina la mbinu.
  • Parameta zilizobaki ni thamani zozote zinazohitajika na mbinu (op).

Angalia jinsi ya kupata habari hii kwa urahisi na lldb katika ARM64 kwenye ukurasa huu:

{% content-ref url="arm64-basic-assembly.md" %} arm64-basic-assembly.md {% endcontent-ref %}

x64:

Hoja Kirejista (kwa) objc_msgSend
Hoja ya 1 rdi self: kitu ambacho mbinu inaitwa juu yake
Hoja ya 2 rsi op: jina la mbinu
Hoja ya 3 rdx Hoja ya 1 kwa mbinu
Hoja ya 4 rcx Hoja ya 2 kwa mbinu
Hoja ya 5 r8 Hoja ya 3 kwa mbinu
Hoja ya 6 r9 Hoja ya 4 kwa mbinu
Hoja ya 7+

rsp+
(kwenye steki)

Hoja ya 5+ kwa mbinu

Swift

Kwa binaries za Swift, kwa kuwa kuna utangamano wa Objective-C, mara nyingine unaweza kutoa maelezo kutumia class-dump lakini sio kila wakati.

Kwa kutumia amri za jtool -l au otool -l ni rahisi kupata sehemu kadhaa zinazoanza na kiambishi cha __swift5:

jtool2 -l /Applications/Stocks.app/Contents/MacOS/Stocks
LC 00: LC_SEGMENT_64              Mem: 0x000000000-0x100000000    __PAGEZERO
LC 01: LC_SEGMENT_64              Mem: 0x100000000-0x100028000    __TEXT
[...]
Mem: 0x100026630-0x100026d54        __TEXT.__swift5_typeref
Mem: 0x100026d60-0x100027061        __TEXT.__swift5_reflstr
Mem: 0x100027064-0x1000274cc        __TEXT.__swift5_fieldmd
Mem: 0x1000274cc-0x100027608        __TEXT.__swift5_capture
[...]

Unaweza kupata habari zaidi kuhusu habari zilizohifadhiwa katika sehemu hizi katika chapisho hili la blogi.

Zaidi ya hayo, Binaries za Swift zinaweza kuwa na alama (kwa mfano maktaba zinahitaji kuhifadhi alama ili kazi zake ziweze kuitwa). Alama kwa kawaida zina habari kuhusu jina la kazi na sifa kwa njia isiyovutia, hivyo ni muhimu sana na kuna "wachambuzi" ambao wanaweza kupata jina halisi:

# Ghidra plugin
https://github.com/ghidraninja/ghidra_scripts/blob/master/swift_demangler.py

# Swift cli
swift demangle

Binaries Zilizopakwa

  • Angalia kwa entropy kubwa
  • Angalia strings (kama hakuna string inayoeleweka, inaweza kuwa imepakwa)
  • Packer wa UPX kwa MacOS huzalisha sehemu inayoitwa "__XHDR"

Uchambuzi wa Kudumu

{% hint style="warning" %} Tafadhali kumbuka kwamba ili kuchunguza binaries, SIP inahitaji kuwa imelemazwa (csrutil disable au csrutil enable --without debug) au kuiga binaries kwa folda ya muda na kuondoa saini na codesign --remove-signature <njia-ya-binary> au kuruhusu uchunguzi wa binary (unaweza kutumia script hii) {% endhint %}

{% hint style="warning" %} Tafadhali kumbuka kwamba ili kuwezesha binaries za mfumo, (kama vile cloudconfigurationd) kwenye macOS, SIP lazima iwe imelemazwa (kuondoa tu saini haitafanya kazi). {% endhint %}

Logs Zilizounganishwa

MacOS huzalisha logs nyingi ambazo zinaweza kuwa na manufaa sana wakati wa kukimbia programu jaribio kuelewa inachofanya.

Zaidi ya hayo, kuna baadhi ya logs ambazo zitajumuisha lebo <private> kuficha baadhi ya habari inayoweza kutambulika ya mtumiaji au kompyuta. Hata hivyo, inawezekana kufunga cheti kufichua habari hii. Fuata maelezo kutoka hapa.

Hopper

Paneli ya Kushoto

Kwenye paneli ya kushoto ya hopper inawezekana kuona alama (Labels) za binary, orodha ya taratibu na kazi (Proc) na strings (Str). Hizi siyo strings zote lakini zile zilizofafanuliwa katika sehemu kadhaa za faili ya Mac-O (kama _cstring au objc_methname).

Paneli ya Kati

Kwenye paneli ya kati unaweza kuona msimbo uliopanguliwa. Na unaweza kuona kama msimbo wa kawaida, kama grafu, kama umepata na kama binary kwa kubofya kwenye ishara husika:

Kwa kubofya kulia kwenye kitu cha msimbo unaweza kuona marejeo kwa/kutoka kwa kitu hicho au hata kubadilisha jina lake (hii haifanyi kazi katika pseudocode iliyopatuliwa):

Zaidi ya hayo, kwenye chini ya kati unaweza kuandika amri za python.

Paneli ya Kulia

Kwenye paneli ya kulia unaweza kuona habari muhimu kama historia ya urambazaji (ili ujue jinsi ulivyofika kwenye hali ya sasa), grafu ya wito ambapo unaweza kuona kazi zote zinazopiga simu kazi hii na kazi zote ambazo kazi hii inapiga simu, na habari za variables za eneo.

dtrace

Inaruhusu watumiaji kupata ufikiaji wa programu kwa kiwango cha chini sana na hutoa njia kwa watumiaji kufuatilia programu na hata kubadilisha mtiririko wao wa utekelezaji. Dtrace hutumia probes ambazo zinawekwa kote katika kernel na ziko katika maeneo kama mwanzo na mwisho wa wito wa mfumo.

DTrace hutumia kazi ya dtrace_probe_create kuunda probe kwa kila wito wa mfumo. Probes hizi zinaweza kufyatuliwa katika kuingia na kutoka kwa kila wito wa mfumo. Mwingiliano na DTrace hufanyika kupitia /dev/dtrace ambayo inapatikana kwa mtumiaji wa mizizi pekee.

{% hint style="success" %} Ili kuwezesha Dtrace bila kulemaza kabisa ulinzi wa SIP unaweza kutekeleza kwenye hali ya kupona: csrutil enable --without dtrace

Unaweza pia kudtrace au kudtruss binaries ambazo umekusanya. {% endhint %}

Probes zilizopo za dtrace zinaweza kupatikana na:

dtrace -l | head
ID   PROVIDER            MODULE                          FUNCTION NAME
1     dtrace                                                     BEGIN
2     dtrace                                                     END
3     dtrace                                                     ERROR
43    profile                                                     profile-97
44    profile                                                     profile-199

Jina la kichunguzi linajumuisha sehemu nne: mtoa huduma, moduli, kazi, na jina (fbt:mach_kernel:ptrace:entry). Ikiwa haujataja sehemu fulani ya jina, Dtrace itatumia sehemu hiyo kama kichujio.

Ili kusanidi DTrace kuamsha vichunguzi na kufafanua hatua za kutekeleza wanapochomwa, tutahitaji kutumia lugha ya D.

Maelezo zaidi na mifano zaidi inaweza kupatikana katika https://illumos.org/books/dtrace/chp-intro.html

Mifano

Chapa man -k dtrace ili kuorodhesha skrini za DTrace zilizopo. Mfano: sudo dtruss -n binary

  • Katika mstari
#Count the number of syscalls of each running process
sudo dtrace -n 'syscall:::entry {@[execname] = count()}'
  • skript
syscall:::entry
/pid == $1/
{
}

#Log every syscall of a PID
sudo dtrace -s script.d 1234
syscall::open:entry
{
printf("%s(%s)", probefunc, copyinstr(arg0));
}
syscall::close:entry
{
printf("%s(%d)\n", probefunc, arg0);
}

#Log files opened and closed by a process
sudo dtrace -s b.d -c "cat /etc/hosts"
syscall:::entry
{
;
}
syscall:::return
{
printf("=%d\n", arg1);
}

#Log sys calls with values
sudo dtrace -s syscalls_info.d -c "cat /etc/hosts"

dtruss

dtruss -c ls #Get syscalls of ls
dtruss -c -p 1000 #get syscalls of PID 1000

ktrace

Unaweza kutumia hata wakati SIP imeamilishwa

ktrace trace -s -S -t c -c ls | grep "ls("

ProcessMonitor

ProcessMonitor ni chombo cha muhimu sana cha kuchunguza vitendo vinavyohusiana na mchakato ambavyo mchakato unafanya (kwa mfano, kufuatilia ni mchakato gani mpya mchakato unazounda).

SpriteTree

SpriteTree ni chombo cha kuchapisha mahusiano kati ya michakato.
Unahitaji kufuatilia mac yako na amri kama sudo eslogger fork exec rename create > cap.json (terminal inayozindua hii inahitaji FDA). Kisha unaweza kupakia json katika chombo hiki kuona mahusiano yote:

FileMonitor

FileMonitor inaruhusu kufuatilia matukio ya faili (kama vile uundaji, marekebisho, na kufutwa) ikitoa habari ya kina kuhusu matukio hayo.

Crescendo

Crescendo ni chombo cha GUI kinachofanana na watumiaji wa Windows wanaweza kufahamu kutoka kwa Procmon ya Microsoft Sysinternal. Chombo hiki kuruhusu kuanza na kuacha kurekodi aina mbalimbali za matukio, kuruhusu kuchuja matukio haya kwa makundi kama vile faili, mchakato, mtandao, n.k., na hutoa uwezo wa kuhifadhi matukio yaliyorekodiwa kwa muundo wa json.

Apple Instruments

Apple Instruments ni sehemu ya zana za Developer za Xcode - hutumika kufuatilia utendaji wa programu, kutambua uvujaji wa kumbukumbu na kufuatilia shughuli za mfumo wa faili.

fs_usage

Inaruhusu kufuatilia vitendo vinavyofanywa na michakato:

fs_usage -w -f filesys ls #This tracks filesystem actions of proccess names containing ls
fs_usage -w -f network curl #This tracks network actions

TaskExplorer

Taskexplorer ni muhimu kuona maktaba zinazotumiwa na binary, faili inazotumia, na muunganisho wa mtandao.
Pia huchunguza michakato ya binary dhidi ya virustotal na kuonyesha habari kuhusu binary.

PT_DENY_ATTACH

Katika chapisho hili la blogi unaweza kupata mfano jinsi ya kudebugi daemon inayotumia PT_DENY_ATTACH kuzuia kudebugi hata kama SIP ilikuwa imelemazwa.

lldb

lldb ni zana ya msingi kwa kudebugi binary za macOS.

lldb ./malware.bin
lldb -p 1122
lldb -n malware.bin
lldb -n malware.bin --waitfor

Unaweza kuweka intel flavour unapotumia lldb kwa kuunda faili iitwayo .lldbinit katika folda yako ya nyumbani na mstari ufuatao:

settings set target.x86-disassembly-flavor intel

{% hint style="warning" %} Ndani ya lldb, dumpisha mchakato kwa kutumia process save-core {% endhint %}

(lldb) AmriMaelezo
run (r)Kuanza utekelezaji, ambao utaendelea bila kikomo mpaka kivinjari kikome au mchakato ukome.
continue (c)Kuendelea na utekelezaji wa mchakato uliopo kwenye uchunguzi.
nexti (n / ni)Kutekeleza maagizo ijayo. Amri hii itaruka wito wa kazi.
stepi (s / si)Kutekeleza maagizo ijayo. Tofauti na amri ya nexti, amri hii itaingia kwenye wito wa kazi.
finish (f)Kutekeleza maagizo mengine kwenye kazi ya sasa ("frame") na kusimamisha.
control + cKusitisha utekelezaji. Ikiwa mchakato umekuwa ukitekelezwa (r) au kuendelea (c), hii itasababisha mchakato kusimama ...popote ulipo kwenye utekelezaji.
breakpoint (b)

b main #Wito wowote wa kazi unaoitwa main

b <binname>`main #Kazi kuu ya bin

b set -n main --shlib <lib_name> #Kazi kuu ya bin iliyotajwa

b -[NSDictionary objectForKey:]

b -a 0x0000000100004bd9

br l #Orodha ya vituo vya kuvunja

br e/dis <num> #Wezesha/lemaza kituo cha kuvunja

breakpoint delete <num>

help

help breakpoint #Pata msaada wa amri ya kuvunja

help memory write #Pata msaada wa kuandika kwenye kumbukumbu

reg

reg read

reg read $rax

reg read $rax --format <format>

reg write $rip 0x100035cc0

x/s <reg/memory address>Onyesha kumbukumbu kama mstari ulio na sifuri.
x/i <reg/memory address>Onyesha kumbukumbu kama maagizo ya mkusanyiko.
x/b <reg/memory address>Onyesha kumbukumbu kama baiti.
print object (po)

Hii itachapisha kitu kinachotajwa na paramu

po $raw

{

dnsChanger = {

"affiliate" = "";

"blacklist_dns" = ();

Tafadhali kumbuka kuwa APIs au njia za Objective-C za Apple kwa kawaida hurejesha vitu, na hivyo inapaswa kuonyeshwa kupitia amri ya "print object" (po). Ikiwa po haizalishi matokeo yanayofaa tumia x/b

memorykumbukumbu soma 0x000....
kumbukumbu soma $x0+0xf2a
kumbukumbu andika 0x100600000 -s 4 0x41414141 #Andika AAAA kwenye anwani hiyo
kumbukumbu andika -f s $rip+0x11f+7 "AAAA" #Andika AAAA kwenye anwani
disassembly

dis #Disas kazi ya sasa

dis -n <funcname> #Disas kazi

dis -n <funcname> -b <basename> #Disas kazi
dis -c 6 #Disas mistari 6
dis -c 0x100003764 -e 0x100003768 # Kutoka anwani moja hadi nyingine
dis -p -c 4 # Anza kwenye anwani ya sasa ya kuchambua

parrayparray 3 (char **)$x1 # Angalia safu ya 3 katika x1 reg

{% hint style="info" %} Unapoitisha objc_sendMsg function, rsi register inashikilia jina la njia kama mstari wa sifuri ("C"). Ili kuchapisha jina kupitia lldb fanya:

(lldb) x/s $rsi: 0x1000f1576: "startMiningWithPort:password:coreCount:slowMemory:currency:"

(lldb) print (char*)$rsi:
(char *) $1 = 0x00000001000f1576 "startMiningWithPort:password:coreCount:slowMemory:currency:"

(lldb) reg read $rsi: rsi = 0x00000001000f1576 "startMiningWithPort:password:coreCount:slowMemory:currency:" {% endhint %}

Uchambuzi wa Kuzuia-Dinamiki

Uchunguzi wa VM

  • Amri sysctl hw.model inarudisha "Mac" wakati mwenyeji ni MacOS lakini kitu tofauti wakati ni VM.
  • Kwa kucheza na thamani za hw.logicalcpu na hw.physicalcpu baadhi ya programu hasidi jaribu kugundua ikiwa ni VM.
  • Baadhi ya programu hasidi pia zinaweza kugundua ikiwa mashine ni ya VMware kulingana na anwani ya MAC (00:50:56).
  • Pia inawezekana kugundua ikiwa mchakato unachunguzwa na msimbo rahisi kama huu:
  • if(P_TRACED == (info.kp_proc.p_flag & P_TRACED)){ //mchakato unachunguzwa}
  • Inaweza pia kuita wito wa mfumo wa ptrace na bendera ya PT_DENY_ATTACH. Hii inazuia kivinjari kutokana kuambatisha na kufuatilia.
  • Unaweza kuangalia ikiwa sysctl au ptrace kazi inaingizwa (lakini programu hasidi inaweza kuipakia kwa dinamiki)
  • Kama ilivyobainishwa katika andiko hili, “Kushinda Mbinu za Kuzuia-Uchunguzi: toleo la macOS la ptrace” :
    Ujumbe Mchakato # ulitoka na hali = 45 (0x0000002d) kawaida ni ishara wazi kwamba lengo la uchunguzi linatumia PT_DENY_ATTACH

Fuzzing

ReportCrash

ReportCrash anaanisha michakato ya kusitisha na kuokoa ripoti ya kusitisha kwenye diski. Ripoti ya kusitisha ina taarifa ambazo zinaweza kusaidia mwandishi wa programu kutambua sababu ya kusitisha.
Kwa maombi na michakato mingine inayoendesha katika muktadha wa uzinduzi wa mtumiaji, ReportCrash inaendeshwa kama LaunchAgent na kuokoa ripoti za kusitisha kwenye ~/Library/Logs/DiagnosticReports/ ya mtumiaji
Kwa daemons, michakato mingine inayoendesha katika muktadha wa uzinduzi wa mfumo na michakato mingine yenye mamlaka, ReportCrash inaendeshwa kama LaunchDaemon na kuokoa ripoti za kusitisha kwenye /Library/Logs/DiagnosticReports ya mfumo

Ikiwa una wasiwasi kuhusu ripoti za kusitisha zikitumwa kwa Apple unaweza kuzizima. Vinginevyo, ripoti za kusitisha zinaweza kuwa na manufaa kutambua jinsi server ilivyosimama.

#To disable crash reporting:
launchctl unload -w /System/Library/LaunchAgents/com.apple.ReportCrash.plist
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.ReportCrash.Root.plist

#To re-enable crash reporting:
launchctl load -w /System/Library/LaunchAgents/com.apple.ReportCrash.plist
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.ReportCrash.Root.plist

Kulala

Wakati wa kufanya fuzzing kwenye MacOS ni muhimu kuzuia Mac kulala:

Kukatisha SSH

Ikiwa unafanya fuzzing kupitia uhusiano wa SSH ni muhimu kuhakikisha kikao hakitaisha. Kwa hivyo badilisha faili ya sshd_config na:

  • TCPKeepAlive Ndiyo
  • ClientAliveInterval 0
  • ClientAliveCountMax 0
sudo launchctl unload /System/Library/LaunchDaemons/ssh.plist
sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist

Wasindikaji wa Ndani

Angalia ukurasa ufuatao ili kujua jinsi unavyoweza kugundua ni programu ipi inayohusika na kushughulikia mpango au itifaki iliyotajwa:

{% content-ref url="../macos-file-extension-apps.md" %} macos-file-extension-apps.md {% endcontent-ref %}

Kuhesabu Michakato ya Mtandao

dtrace -n 'syscall::recv*:entry { printf("-> %s (pid=%d)", execname, pid); }' >> recv.log
#wait some time
sort -u recv.log > procs.txt
cat procs.txt

Au tumia netstat au lsof

Libgmalloc

{% code overflow="wrap" %}

lldb -o "target create `which some-binary`" -o "settings set target.env-vars DYLD_INSERT_LIBRARIES=/usr/lib/libgmalloc.dylib" -o "run arg1 arg2" -o "bt" -o "reg read" -o "dis -s \$pc-32 -c 24 -m -F intel" -o "quit"

Fuzzers

AFL++

Inafanya kazi kwa zana za CLI

Litefuzz

Inafanya kazi "inavyotakiwa" na zana za GUI za macOS. Tafadhali kumbuka kuwa baadhi ya programu za macOS zinahitaji mahitaji maalum kama majina ya faili ya kipekee, ugani sahihi, kusoma faili kutoka kwa sanduku (~/Library/Containers/com.apple.Safari/Data)...

Baadhi ya mifano:

# iBooks
litefuzz -l -c "/System/Applications/Books.app/Contents/MacOS/Books FUZZ" -i files/epub -o crashes/ibooks -t /Users/test/Library/Containers/com.apple.iBooksX/Data/tmp -x 10 -n 100000 -ez

# -l : Local
# -c : cmdline with FUZZ word (if not stdin is used)
# -i : input directory or file
# -o : Dir to output crashes
# -t : Dir to output runtime fuzzing artifacts
# -x : Tmeout for the run (default is 1)
# -n : Num of fuzzing iterations (default is 1)
# -e : enable second round fuzzing where any crashes found are reused as inputs
# -z : enable malloc debug helpers

# Font Book
litefuzz -l -c "/System/Applications/Font Book.app/Contents/MacOS/Font Book FUZZ" -i input/fonts -o crashes/font-book -x 2 -n 500000 -ez

# smbutil (using pcap capture)
litefuzz -lk -c "smbutil view smb://localhost:4455" -a tcp://localhost:4455 -i input/mac-smb-resp -p -n 100000 -z

# screensharingd (using pcap capture)
litefuzz -s -a tcp://localhost:5900 -i input/screenshared-session --reportcrash screensharingd -p -n 100000

{% endcode %}

Taarifa Zaidi Kuhusu Fuzzing MacOS

Marejeo

WhiteIntel

WhiteIntel ni injini ya utaftaji inayotumia dark-web ambayo inatoa huduma za bure kuchunguza ikiwa kampuni au wateja wake wameathiriwa na malware za kuiba.

Lengo kuu la WhiteIntel ni kupambana na utekaji wa akaunti na mashambulio ya ransomware yanayotokana na malware za kuiba taarifa.

Unaweza kutembelea tovuti yao na kujaribu injini yao bure hapa:

{% embed url="https://whiteintel.io" %}

Jifunze AWS hacking kutoka sifuri hadi shujaa na htARTE (HackTricks AWS Red Team Expert)!

Njia nyingine za kusaidia HackTricks: