Users who have (inadvisedly) enabled automatic login often forget the password. It is merely encoded with an XOR cipher and stored in /etc/kcpassword.
A number of sites suggest this Ruby one-liner to recover it:
sudo ruby -e'key=[125,137,82,35,210,188,221,234,163,185,31];IO.read("/etc/kcpassword").bytes.each_with_index{|b,i|break if key.include?(b);print [b^key[i%key.size]].pack("U*")}'
However, only the first four characters were returned in my limited testing.
Joaquin Moreno Garijo's Python script, kcpass.py, did the trick (see update below):
curl -O https://raw.githubusercontent.com/jjarava/mac-osx-forensics/master/kcpass.py
chmod +x kcpass.py
# ./kcpass.py $(xxd -p /path/to/kcpassword)
Kcpasswd: 0x09e03c5ab3ccad998dd66d1a89b165ae7e8912b851f8f0ff. Magic Xor: 0x7d895223d2bcddeaa3b91f. Used Magic Xor: 0x7d895223d2bcddeaa3b91f7d895223d2bcddeaa3b91f7d895223d2bcddeaa3b91f. The password is: "tinyapps.org".
See also:
kcpass.py:
Had to tweak kcpass.py slightly to make it compatible with Python 3, resolving "SyntaxError: Missing parentheses in call to 'print'. Did you mean print(...)?", etc.:
Clément Caumes' decode-kcpassword offers another approach to decoding the stored macOS user auto-login password in Python 3:
/mac | Sep 07, 2017