macOS Apps - Inspecting, debugging and Fuzzing

Erlernen Sie AWS-Hacking von Grund auf mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

WhiteIntel ist eine von Dark Web angetriebene Suchmaschine, die kostenlose Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder seine Kunden von Stealer-Malwaren kompromittiert wurden.

Das Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe aufgrund von informationsstehlender Malware zu bekämpfen.

Sie können ihre Website besuchen und ihren Motor kostenlos ausprobieren unter:


Statische Analyse

otool

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

objdump

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

Das Tool kann als Ersatz für codesign, otool und objdump verwendet werden und bietet einige zusätzliche Funktionen. Laden Sie es hier herunter oder installieren Sie es mit 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

Codesign kann in macOS gefunden werden, während ldid in iOS gefunden werden kann.

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

# Check if the app’s 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 ist ein nützliches Tool zum Inspektion von .pkg-Dateien (Installationsprogramme) und zum Anzeigen des Inhalts, bevor sie installiert werden. Diese Installationsprogramme enthalten preinstall- und postinstall-Bash-Skripte, die Malware-Autoren normalerweise missbrauchen, um die Malware dauerhaft zu machen.

hdiutil

Dieses Tool ermöglicht das Mounten von Apple-Disk-Images (.dmg-Dateien), um sie vor der Ausführung zu inspizieren:

hdiutil attach ~/Downloads/Firefox\ 58.0.2.dmg

Es wird in /Volumes eingehängt.

Objective-C

Metadaten

Bitte beachten Sie, dass Programme, die in Objective-C geschrieben sind, ihre Klassendeklarationen beibehalten, wenn sie in Mach-O-Binärdateien kompiliert werden. Zu diesen Klassendeklarationen gehören der Name und der Typ von:

  • Die Klasse

  • Die Klassenmethoden

  • Die Instanzvariablen der Klasse

Diese Informationen können mit class-dump abgerufen werden:

class-dump Kindle.app

Funktionsaufruf

Wenn eine Funktion in einem Binärprogramm aufgerufen wird, das Objective-C verwendet, wird anstelle des Aufrufs dieser Funktion der kompilierte Code objc_msgSend aufrufen. Dieser wird die endgültige Funktion aufrufen:

Die Parameter, die diese Funktion erwartet, sind:

  • Der erste Parameter (self) ist "ein Zeiger, der auf die Instanz der Klasse zeigt, die die Nachricht empfangen soll". Oder einfacher ausgedrückt, es handelt sich um das Objekt, auf dem die Methode aufgerufen wird. Wenn die Methode eine Klassenmethode ist, wird dies eine Instanz des Klassenobjekts (als Ganzes) sein, während für eine Instanzmethode self auf eine instanziierte Instanz der Klasse als Objekt verweisen wird.

  • Der zweite Parameter (op) ist "der Selektor der Methode, die die Nachricht verarbeitet". Noch einfacher ausgedrückt, handelt es sich einfach um den Namen der Methode.

  • Die verbleibenden Parameter sind alle Werte, die von der Methode benötigt werden (op).

Erfahren Sie, wie Sie diese Informationen einfach mit lldb in ARM64 erhalten können, auf dieser Seite:

pageIntroduction to ARM64v8

x64:

Argument

Register

(für) objc_msgSend

1. Argument

rdi

self: Objekt, auf dem die Methode aufgerufen wird

2. Argument

rsi

op: Name der Methode

3. Argument

rdx

1. Argument für die Methode

4. Argument

rcx

2. Argument für die Methode

5. Argument

r8

3. Argument für die Methode

6. Argument

r9

4. Argument für die Methode

7. und weitere Argumente

rsp+ (auf dem Stack)

5. und weitere Argumente für die Methode

Swift

Bei Swift-Binärdateien, da es eine Objective-C-Kompatibilität gibt, können manchmal Deklarationen mithilfe von class-dump extrahiert werden, aber nicht immer.

Mit den Befehlszeilen jtool -l oder otool -l ist es möglich, mehrere Abschnitte zu finden, die mit dem Präfix __swift5 beginnen:

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
[...]

Sie können weitere Informationen über die in diesem Abschnitt gespeicherten Informationen in diesem Blog-Beitrag finden.

Darüber hinaus können Swift-Binärdateien Symbole enthalten (zum Beispiel müssen Bibliotheken Symbole speichern, damit ihre Funktionen aufgerufen werden können). Die Symbole enthalten normalerweise Informationen über den Funktionsnamen und die Attribute auf eine hässliche Weise, daher sind sie sehr nützlich, und es gibt "Demangler", die den ursprünglichen Namen erhalten können:

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

# Swift cli
swift demangle

Gepackte Binärdateien

  • Überprüfen Sie die hohe Entropie

  • Überprüfen Sie die Zeichenfolgen (gibt es fast keine verständliche Zeichenfolge, gepackt)

  • Der UPX-Packer für MacOS generiert einen Abschnitt namens "__XHDR"

Dynamische Analyse

Beachten Sie, dass zum Debuggen von Binärdateien SIP deaktiviert sein muss (csrutil disable oder csrutil enable --without debug) oder die Binärdateien in einen temporären Ordner kopiert werden müssen und die Signatur mit codesign --remove-signature <binary-path> entfernt werden muss oder das Debuggen der Binärdatei erlaubt ist (Sie können dieses Skript verwenden).

Beachten Sie, dass zum Instrumentieren von Systembinärdateien (wie cloudconfigurationd) auf macOS SIP deaktiviert sein muss (nur das Entfernen der Signatur funktioniert nicht).

Vereinheitlichte Protokolle

MacOS generiert viele Protokolle, die sehr nützlich sein können, wenn eine Anwendung ausgeführt wird, um zu verstehen, was sie tut.

Darüber hinaus gibt es einige Protokolle, die das Tag <private> enthalten, um einige benutzer- oder computeridentifizierbare Informationen zu verbergen. Es ist jedoch möglich, ein Zertifikat zu installieren, um diese Informationen offenzulegen. Befolgen Sie die Erklärungen von hier.

Hopper

Linkes Panel

Im linken Panel von Hopper können Sie die Symbole (Labels) der Binärdatei, die Liste der Prozeduren und Funktionen (Proc) und die Zeichenfolgen (Str) sehen. Dies sind nicht alle Zeichenfolgen, sondern diejenigen, die in verschiedenen Teilen der Mac-O-Datei definiert sind (wie cstring oder objc_methname).

Mittleres Panel

Im mittleren Panel sehen Sie den disassemblierten Code. Sie können ihn als rohen Disassemblierung, als Graph, als decompiliert und als binär anzeigen, indem Sie auf das entsprechende Symbol klicken:

Durch Rechtsklicken auf ein Codeobjekt können Sie Verweise auf/von diesem Objekt sehen oder sogar dessen Namen ändern (dies funktioniert nicht im dekompilierten Pseudocode):

Darüber hinaus können Sie im mittleren unteren Bereich Python-Befehle eingeben.

Rechtes Panel

Im rechten Panel können Sie interessante Informationen wie die Navigationshistorie (damit Sie wissen, wie Sie zur aktuellen Situation gekommen sind), den Aufrufgraphen, in dem Sie alle Funktionen sehen können, die diese Funktion aufrufen, und alle Funktionen, die diese Funktion aufruft, und Informationen zu lokalen Variablen sehen.

dtrace

Es ermöglicht Benutzern den Zugriff auf Anwendungen auf einer extrem niedrigen Ebene und bietet Benutzern die Möglichkeit, Programme zu verfolgen und sogar ihren Ausführungsfluss zu ändern. Dtrace verwendet Sonden, die im gesamten Kernel platziert sind und sich an Standorten wie dem Anfang und Ende von Systemaufrufen befinden.

DTrace verwendet die Funktion dtrace_probe_create, um eine Sonde für jeden Systemaufruf zu erstellen. Diese Sonden können im Einstiegs- und Ausstiegspunkt jedes Systemaufrufs ausgelöst werden. Die Interaktion mit DTrace erfolgt über /dev/dtrace, das nur für den Root-Benutzer verfügbar ist.

Um Dtrace zu aktivieren, ohne den SIP-Schutz vollständig zu deaktivieren, können Sie im Wiederherstellungsmodus ausführen: csrutil enable --without dtrace

Sie können auch dtrace oder dtruss Binärdateien ausführen, die Sie kompiliert haben.

Die verfügbaren Sonden von dtrace können mit erhalten werden:

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

Der Sondenname besteht aus vier Teilen: dem Anbieter, dem Modul, der Funktion und dem Namen (fbt:mach_kernel:ptrace:entry). Wenn Sie einen Teil des Namens nicht angeben, wird Dtrace diesen Teil als Platzhalter verwenden.

Um DTrace zu konfigurieren, um Sonden zu aktivieren und anzugeben, welche Aktionen ausgeführt werden sollen, wenn sie ausgelöst werden, müssen wir die D-Sprache verwenden.

Eine ausführlichere Erklärung und weitere Beispiele finden Sie unter https://illumos.org/books/dtrace/chp-intro.html

Beispiele

Führen Sie man -k dtrace aus, um die verfügbaren DTrace-Skripte aufzulisten. Beispiel: sudo dtruss -n binary

  • In Zeile

#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

Sie können dieses sogar mit SIP aktiviert verwenden

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

ProcessMonitor

ProcessMonitor ist ein sehr nützliches Tool, um die prozessbezogenen Aktionen zu überprüfen, die ein Prozess ausführt (zum Beispiel, um zu überwachen, welche neuen Prozesse ein Prozess erstellt).

SpriteTree

SpriteTree ist ein Tool, das die Beziehungen zwischen Prozessen darstellt. Sie müssen Ihren Mac mit einem Befehl wie sudo eslogger fork exec rename create > cap.json überwachen (das Terminal, das dies startet, erfordert FDA). Anschließend können Sie das JSON in diesem Tool laden, um alle Beziehungen anzuzeigen:

FileMonitor

FileMonitor ermöglicht das Überwachen von Dateiereignissen (wie Erstellung, Änderungen und Löschungen) und liefert detaillierte Informationen zu solchen Ereignissen.

Crescendo

Crescendo ist ein GUI-Tool mit dem Look and Feel, das Windows-Benutzer möglicherweise von Microsoft Sysinternals Procmon kennen. Dieses Tool ermöglicht das Starten und Stoppen der Aufzeichnung verschiedener Ereignistypen, das Filtern dieser Ereignisse nach Kategorien wie Datei, Prozess, Netzwerk usw. und bietet die Funktionalität, die aufgezeichneten Ereignisse im JSON-Format zu speichern.

Apple Instruments

Apple Instruments sind Teil der Xcode-Entwicklertools und werden zur Überwachung der Anwendungsleistung, Identifizierung von Speicherlecks und Verfolgung von Dateisystemaktivitäten verwendet.

fs_usage

Ermöglicht das Verfolgen von Aktionen, die von Prozessen ausgeführt werden:

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 ist nützlich, um die Bibliotheken, die von einem Binärprogramm verwendet werden, die Dateien, die es verwendet, und die Netzwerk-Verbindungen zu sehen. Es überprüft auch die Binärprozesse gegen virustotal und zeigt Informationen über das Binärprogramm an.

PT_DENY_ATTACH

In diesem Blog-Beitrag finden Sie ein Beispiel dafür, wie man ein laufendes Daemonprogramm debuggt, das PT_DENY_ATTACH verwendet, um das Debuggen zu verhindern, selbst wenn SIP deaktiviert ist.

lldb

lldb ist das Standardwerkzeug für das Debuggen von macOS-Binärdateien.

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

Sie können das Intel-Flavour festlegen, wenn Sie lldb verwenden, indem Sie eine Datei namens .lldbinit in Ihrem Home-Verzeichnis mit der folgenden Zeile erstellen:

settings set target.x86-disassembly-flavor intel

Innerhalb von lldb einen Prozess mit process save-core dumpen

(lldb) Befehl

Beschreibung

run (r)

Startet die Ausführung, die fortgesetzt wird, bis ein Breakpoint erreicht wird oder der Prozess beendet wird.

continue (c)

Führt die Ausführung des debuggten Prozesses fort.

nexti (n / ni)

Führt die nächste Anweisung aus. Dieser Befehl überspringt Funktionsaufrufe.

stepi (s / si)

Führt die nächste Anweisung aus. Im Gegensatz zum Befehl nexti wird dieser Befehl Funktionsaufrufe durchlaufen.

finish (f)

Führt den Rest der Anweisungen in der aktuellen Funktion ("frame") aus und hält an.

Strg + C

Unterbricht die Ausführung. Wenn der Prozess ausgeführt (r) oder fortgesetzt (c) wurde, wird der Prozess anhalten ... wo er sich gerade befindet.

breakpoint (b)

b main #Irgendeine Funktion namens main

b <binname>`main #Hauptfunktion der Binärdatei

b set -n main --shlib <lib_name> #Hauptfunktion der angegebenen Binärdatei

b -[NSDictionary objectForKey:]

b -a 0x0000000100004bd9

br l #Breakpoint-Liste

br e/dis <num> #Breakpoint aktivieren/deaktivieren

breakpoint delete <num>

Hilfe

Hilfe breakpoint #Hilfe zum Befehl breakpoint erhalten

Hilfe memory write #Hilfe zum Schreiben in den Speicher erhalten

reg

reg read

reg read $rax

reg read $rax --format <format>

reg write $rip 0x100035cc0

x/s <reg/memory address>

Zeigt den Speicher als nullterminierten String an.

x/i <reg/memory address>

Zeigt den Speicher als Assembler-Anweisung an.

x/b <reg/memory address>

Zeigt den Speicher als Byte an.

print object (po)

Dies druckt das Objekt, auf das der Parameter verweist

po $raw

{

dnsChanger = {

"affiliate" = "";

"blacklist_dns" = ();

Beachten Sie, dass die meisten Objective-C-APIs oder Methoden von Apple Objekte zurückgeben und daher über den Befehl "print object" (po) angezeigt werden sollten. Wenn po keine sinnvolle Ausgabe liefert, verwenden Sie x/b

memory

memory read 0x000.... memory read $x0+0xf2a memory write 0x100600000 -s 4 0x41414141 #Schreibt AAAA an diese Adresse memory write -f s $rip+0x11f+7 "AAAA" #Schreibt AAAA in die Adresse

disassembly

dis #Disassembliert die aktuelle Funktion

dis -n <funcname> #Disassembliert die Funktion

dis -n <funcname> -b <basename> #Disassembliert die Funktion dis -c 6 #Disassembliert 6 Zeilen dis -c 0x100003764 -e 0x100003768 # Von einer Adresse bis zur anderen dis -p -c 4 # Beginnt in der aktuellen Adresse mit dem Disassemblieren

parray

parray 3 (char **)$x1 # Überprüft ein Array mit 3 Komponenten im Register x1

Beim Aufruf der Funktion objc_sendMsg enthält das Register rsi den Methodennamen als nullterminierten ("C")-String. Um den Namen über lldb auszugeben, tun Sie folgendes:

(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:"

Anti-Dynamische Analyse

VM-Erkennung

  • Der Befehl sysctl hw.model gibt "Mac" zurück, wenn der Host ein MacOS ist, aber etwas anderes, wenn es sich um eine VM handelt.

  • Durch Spielen mit den Werten von hw.logicalcpu und hw.physicalcpu versuchen einige Malwares zu erkennen, ob es sich um eine VM handelt.

  • Einige Malwares können auch erkennen, ob die Maschine auf VMware basiert, basierend auf der MAC-Adresse (00:50:56).

  • Es ist auch möglich festzustellen, ob ein Prozess debuggt wird, mit einem einfachen Code wie:

  • if(P_TRACED == (info.kp_proc.p_flag & P_TRACED)){ //Prozess wird debuggt }

  • Es kann auch der ptrace-Systemaufruf mit dem Flag PT_DENY_ATTACH aufgerufen werden. Dies verhindert, dass ein Debugger angehängt und verfolgt wird.

  • Sie können überprüfen, ob die Funktion sysctl oder ptrace importiert wird (aber die Malware könnte sie dynamisch importieren)

  • Wie in diesem Artikel erwähnt, "Defeating Anti-Debug Techniques: macOS ptrace variants": "Die Meldung Prozess # wurde mit Status = 45 (0x0000002d) beendet, ist in der Regel ein deutliches Zeichen dafür, dass das Debug-Ziel PT_DENY_ATTACH verwendet"

Fuzzing

ReportCrash analysiert abstürzende Prozesse und speichert einen Absturzbericht auf der Festplatte. Ein Absturzbericht enthält Informationen, die einem Entwickler helfen können, die Ursache eines Absturzes zu diagnostizieren. Für Anwendungen und andere Prozesse, die im Kontext des benutzerbezogenen launchd ausgeführt werden, wird ReportCrash als LaunchAgent ausgeführt und speichert Absturzberichte im Verzeichnis des Benutzers ~/Library/Logs/DiagnosticReports/. Für Daemons, andere Prozesse, die im Kontext des systemweiten launchd ausgeführt werden, und andere privilegierte Prozesse wird ReportCrash als LaunchDaemon ausgeführt und speichert Absturzberichte im Verzeichnis des Systems /Library/Logs/DiagnosticReports

Wenn Sie sich Sorgen machen, dass Absturzberichte an Apple gesendet werden, können Sie sie deaktivieren. Andernfalls können Absturzberichte nützlich sein, um herauszufinden, wie ein Server abgestürzt ist.

#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

Schlaf

Beim Fuzzing in einem MacOS ist es wichtig, zu verhindern, dass der Mac schläft:

SSH-Verbindung trennen

Wenn Sie über eine SSH-Verbindung fuzzing, ist es wichtig sicherzustellen, dass die Sitzung nicht abläuft. Ändern Sie daher die sshd_config-Datei wie folgt:

  • TCPKeepAlive Yes

  • ClientAliveInterval 0

  • ClientAliveCountMax 0

sudo launchctl unload /System/Library/LaunchDaemons/ssh.plist
sudo launchctl load -w /System/Library/LaunchDaemons/ssh.plist

Interne Handler

Überprüfen Sie die folgende Seite, um herauszufinden, wie Sie herausfinden können, welche App für das Behandeln des angegebenen Schemas oder Protokolls verantwortlich ist:

pagemacOS File Extension & URL scheme app handlers

Netzwerkprozesse aufzählen

Es ist interessant, Prozesse zu finden, die Netzwerkdaten verwalten:

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

Oder verwenden Sie netstat oder lsof

Libgmalloc

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"

Fuzzer

Funktioniert für CLI-Tools

Es funktioniert "einfach so" mit macOS GUI-Tools. Beachten Sie, dass einige macOS-Apps spezifische Anforderungen haben, wie z.B. eindeutige Dateinamen, die richtige Erweiterung, die Notwendigkeit, die Dateien aus dem Sandbox-Bereich zu lesen (~/Library/Containers/com.apple.Safari/Data)...

Einige Beispiele:

# 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

Weitere Informationen zu Fuzzing auf MacOS

Referenzen

WhiteIntel ist eine von Dark Web angetriebene Suchmaschine, die kostenlose Funktionen bietet, um zu überprüfen, ob ein Unternehmen oder seine Kunden von Stealer-Malware kompromittiert wurden.

Das Hauptziel von WhiteIntel ist es, Kontoübernahmen und Ransomware-Angriffe aufgrund von informationsstehlender Malware zu bekämpfen.

Sie können ihre Website besuchen und ihre Engine kostenlos ausprobieren unter:

Erlernen Sie AWS-Hacking von Grund auf mit htARTE (HackTricks AWS Red Team Expert)!

Andere Möglichkeiten, HackTricks zu unterstützen:

Last updated