Skip to main content

Dump macOS 1.8+ system user hashes

Project description

macdump

Dump macOS 1.8+ system user hashes to a hashcat-compatible format. Can work either directly on the target system to dump hashes of all users (root required) or offline on shadow hash data extracted from the system.

Installation

Use the package manager pip to install to a local machine:

pip install macdump

To get a standalone executable to be transferred to target systems, either download one from the release pages or build it with pyinstaller, as shown in the Makefile (make build-executable).

If Python is installed (it should be), you can also just copy the standalone version of the script. Find it in macdump.py

Usage

On target system

To run macdump directly on the target system, transfer either the standalone binary or the script macdump.py and run it as root. Obviously, this will only work on macOS. Output will be roughly as seen below.

Running the script (sudo python macdump.py) or the binary (sudo ./macdump):

 $ sudo python macdump.py
[+] Dumping hashes of all system users
[+] Dumping hash of testuser
[+] Authentication hint:  This is our default password
testuser:$ml$45871$f601fc65d033857cfc926ec2332058f791c1844f4e4fbb763568e063eafd742b$6eaf4c347e36648d471fe07fcf17b099d5f82ad050438d39dbad18a824b86d23165e69a881d699b0f3442658fe3ab77e9720e37386e6d05ef4f945b443f61b51427582447514b810e3be3dce5d70ea8ec215b2babeed0d92275ad662a04467134140a807c28178bb377503a50d4be1ba9d5944af88df04824a7075d1f9f116d5
[+] Put hashes into file 'hashes.txt', then crack with: hashcat -m 7100 --username hashes.txt -a 0 wordlist.txt

Offline

You can extract the shadow hash data on the target Mac, store it to a text file and use that as input for macdump. To get the data for user username, run:

sudo dscl . -read /Users/username dsAttrTypeNative:ShadowHashData > /tmp/shd.txt

Note: You may also just include all data by running sudo dscl . -read /Users/username > /tmp/shd.txt, which will output a lot of text. macdump finds what it needs.

Then get /tmp/shd.txt over to your machine and run:

 $ macdump --from-file /tmp/shd.txt
[+] Loading shadow hash data from /tmp/shd.txt
UNKNOWN_USER:$ml$45871$f601fc65d033857cfc926ec2332058f791c1844f4e4fbb763568e063eafd742b$6eaf4c347e36648d471fe07fcf17b099d5f82ad050438d39dbad18a824b86d23165e69a881d699b0f3442658fe3ab77e9720e37386e6d05ef4f945b443f61b51427582447514b810e3be3dce5d70ea8ec215b2babeed0d92275ad662a04467134140a807c28178bb377503a50d4be1ba9d5944af88df04824a7075d1f9f116d5
[+] Put hashes into file 'hashes.txt', then crack with: hashcat -m 7100 --username hashes.txt -a 0 wordlist.txt

Cracking

Hashes are printed in hashcat format including usernames. Store them inside a file hashes.txt, then run a command like the following:

 $ hashcat -m 7100 --username hashes.txt -a 0 wordlist.txt

hashcat (v6.2.5) starting

...

$ml$45871$f601fc65d033857cfc926ec2332058f791c1844f4e4fbb763568e063eafd742b$6eaf4c347e36648d471fe07fcf17b099d5f82ad050438d39dbad18a824b86d23165e69a881d699b0f3442658fe3ab77e9720e37
386e6d05ef4f945b443f61b51427582447514b810e3be3dce5d70ea8ec215b2babeed0d92275ad662a04467134140a807c28178bb377503a50d4be1ba9d5944af88df04824a7075d1f9f116d5:pass123

Session..........: hashcat
Status...........: Cracked
Hash.Mode........: 7100 (macOS v10.8+ (PBKDF2-SHA512))
...

Try this with the hash seen in the readme and a wordlist containing password pass123 to verify that your setup works.

Disclaimer

Macdump is for research and educational purposes only. Do not run this without consent on anybody's machine.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

macdump-1.0.1.tar.gz (7.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

macdump-1.0.1-py3-none-any.whl (7.0 kB view details)

Uploaded Python 3

File details

Details for the file macdump-1.0.1.tar.gz.

File metadata

  • Download URL: macdump-1.0.1.tar.gz
  • Upload date:
  • Size: 7.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.10.4

File hashes

Hashes for macdump-1.0.1.tar.gz
Algorithm Hash digest
SHA256 14ad3ca4df28e79fb7d933aa31271b45a47c2c6471df9e0b854005dbc3dcc4bd
MD5 948f3b5dadc1c431c1c023bbcec5d245
BLAKE2b-256 7993dd3d176656506c610c94fa40c32008e79256f566d2c0bc1617fa891e87a1

See more details on using hashes here.

File details

Details for the file macdump-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: macdump-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 7.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.10.4

File hashes

Hashes for macdump-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 56a0cb0210d8fb87a36f47b6819fb14c3724e46012db9845cb93b0c5bf906231
MD5 09b6bbfcb72937f8bdf85ba460d1b7a0
BLAKE2b-256 d45b29651e09c2b37e7b150f0596ae42f486f40db7e5392b89a2077a3f996410

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page