macOS Memory Dumping

Reading time: 3 minutes

tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Podržite HackTricks

Memory Artifacts

Swap Files

Swap datoteke, kao što je /private/var/vm/swapfile0, služe kao keš kada je fizička memorija puna. Kada više nema prostora u fizičkoj memoriji, njeni podaci se prebacuju u swap datoteku i zatim vraćaju u fizičku memoriju po potrebi. Mogu postojati više swap datoteka, sa imenima kao što su swapfile0, swapfile1, i tako dalje.

Hibernate Image

Datoteka koja se nalazi na /private/var/vm/sleepimage je ključna tokom hibernacije. Podaci iz memorije se čuvaju u ovoj datoteci kada OS X hibernira. Kada se računar probudi, sistem preuzima podatke iz memorije iz ove datoteke, omogućavajući korisniku da nastavi gde je stao.

Vredno je napomenuti da je na modernim MacOS sistemima ova datoteka obično enkriptovana iz bezbednosnih razloga, što otežava oporavak.

  • Da biste proverili da li je enkripcija omogućena za sleepimage, može se pokrenuti komanda sysctl vm.swapusage. Ovo će pokazati da li je datoteka enkriptovana.

Memory Pressure Logs

Još jedna važna datoteka vezana za memoriju u MacOS sistemima je log pritiska memorije. Ovi logovi se nalaze u /var/log i sadrže detaljne informacije o korišćenju memorije sistema i događajima pritiska. Mogu biti posebno korisni za dijagnostikovanje problema vezanih za memoriju ili razumevanje kako sistem upravlja memorijom tokom vremena.

Dumping memory with osxpmem

Da biste dumpovali memoriju na MacOS mašini, možete koristiti osxpmem.

Napomena: Sledeće instrukcije će raditi samo za Mac računare sa Intel arhitekturom. Ovaj alat je sada arhiviran i poslednje izdanje je bilo 2017. godine. Binarna datoteka preuzeta koristeći sledeće instrukcije cilja Intel čipove, jer Apple Silicon nije postojao 2017. godine. Možda će biti moguće kompajlirati binarnu datoteku za arm64 arhitekturu, ali to ćete morati da probate sami.

bash
#Dump raw format
sudo osxpmem.app/osxpmem --format raw -o /tmp/dump_mem

#Dump aff4 format
sudo osxpmem.app/osxpmem -o /tmp/dump_mem.aff4

Ako pronađete ovu grešku: osxpmem.app/MacPmem.kext failed to load - (libkern/kext) authentication failure (file ownership/permissions); check the system/kernel logs for errors or try kextutil(8) Možete je popraviti na sledeći način:

bash
sudo cp -r osxpmem.app/MacPmem.kext "/tmp/"
sudo kextutil "/tmp/MacPmem.kext"
#Allow the kext in "Security & Privacy --> General"
sudo osxpmem.app/osxpmem --format raw -o /tmp/dump_mem

Drugi problemi mogu biti rešeni dozvoljavanjem učitavanja kext-a u "Bezbednost i privatnost --> Opšte", samo dozvolite to.

Takođe možete koristiti ovaj oneliner za preuzimanje aplikacije, učitavanje kext-a i dumpovanje memorije:

bash
sudo su
cd /tmp; wget https://github.com/google/rekall/releases/download/v1.5.1/osxpmem-2.1.post4.zip; unzip osxpmem-2.1.post4.zip; chown -R root:wheel osxpmem.app/MacPmem.kext; kextload osxpmem.app/MacPmem.kext; osxpmem.app/osxpmem --format raw -o /tmp/dump_mem

tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Podržite HackTricks