john is the first program that pops into the mind when looking at cracking passwords.
Basic Usage¶
john hashfile --wordlist=/path/to/word/list.txt
- Specify Format
john hashfile --wordlist=/path/to/word/list.txt --format=HASHTYPE
ssh2john¶
ssh2john (requires python2) is python script included within the john package to extract the passphrase hash from an encrypted private key into a hash format john can understand.
python2 /path/to/ssh2john.py private_key > hash-out
Then run john against the hash-out file.
zip2john¶
zip2john is a python script to extract that the password hash from a zip file into a format john can understand.
/path/to/zip2john out.zip > hash-out
Then run john against the hash-out file.
*2John¶
The 2 above are the most common in CTF's but john also includes the following scripts.
1password2john.py axcrypt2john.py diskcryptor2john.py hccapx2john.py krb2john.py mozilla2john.py pgpdisk2john.py sspr2john.py
adxcsouf2john.py bestcrypt2john.py dmg2john.py htdigest2john.py kwallet2john.py multibit2john.py pgpsda2john.py staroffice2john.py
aem2john.py bitcoin2john.py DPAPImk2john.py ibmiscanner2john.py lastpass2john.py neo2john.py pgpwde2john.py strip2john.py
aix2john.py bitshares2john.py ecryptfs2john.py ikescan2john.py libreoffice2john.py netscreen.py prosody2john.py telegram2john.py
andotp2john.py bitwarden2john.py ejabberd2john.py iwork2john.py lotus2john.py office2john.py pse2john.py tezos2john.py
androidbackup2john.py bks2john.py electrum2john.py kdcdump2john.py luks2john.py openbsd_softraid2john.py ps_token2john.py truecrypt2john.py
androidfde2john.py blockchain2john.py encfs2john.py keychain2john.py mac2john-alt.py openssl2john.py pwsafe2john.py vmx2john.py
ansible2john.py ccache2john.py enpass2john.py keyring2john.py mac2john.py padlock2john.py radius2john.py
apex2john.py cracf2john.py ethereum2john.py keystore2john.py mcafee_epo2john.py pcap2john.py signal2john.py
applenotes2john.py dashlane2john.py filezilla2john.py kirbi2john.py monero2john.py pem2john.py sipdump2john.py
aruba2john.py deepsound2john.py geli2john.py known_hosts2john.py money2john.py pfx2john.py ssh2john.py
Formats¶
descrypt, bsdicrypt, md5crypt, md5crypt-long, bcrypt, scrypt, LM, AFS,
tripcode, AndroidBackup, adxcrypt, agilekeychain, aix-ssha1, aix-ssha256,
aix-ssha512, andOTP, ansible, argon2, as400-des, as400-ssha1, asa-md5,
AxCrypt, AzureAD, BestCrypt, bfegg, Bitcoin, BitLocker, bitshares, Bitwarden,
BKS, Blackberry-ES10, WoWSRP, Blockchain, chap, Clipperz, cloudkeychain,
dynamic_n, cq, CRC32, sha1crypt, sha256crypt, sha512crypt, Citrix_NS10,
dahua, dashlane, diskcryptor, Django, django-scrypt, dmd5, dmg, dominosec,
dominosec8, DPAPImk, dragonfly3-32, dragonfly3-64, dragonfly4-32,
dragonfly4-64, Drupal7, eCryptfs, eigrp, electrum, EncFS, enpass, EPI,
EPiServer, ethereum, fde, Fortigate256, Fortigate, FormSpring, FVDE, geli,
gost, gpg, HAVAL-128-4, HAVAL-256-3, hdaa, hMailServer, hsrp, IKE, ipb2,
itunes-backup, iwork, KeePass, keychain, keyring, keystore, known_hosts,
krb4, krb5, krb5asrep, krb5pa-sha1, krb5tgs, krb5-17, krb5-18, krb5-3,
kwallet, lp, lpcli, leet, lotus5, lotus85, LUKS, MD2, mdc2, MediaWiki,
monero, money, MongoDB, scram, Mozilla, mscash, mscash2, MSCHAPv2,
mschapv2-naive, krb5pa-md5, mssql, mssql05, mssql12, multibit, mysqlna,
mysql-sha1, mysql, net-ah, nethalflm, netlm, netlmv2, net-md5, netntlmv2,
netntlm, netntlm-naive, net-sha1, nk, notes, md5ns, nsec3, NT, o10glogon,
o3logon, o5logon, ODF, Office, oldoffice, OpenBSD-SoftRAID, openssl-enc,
oracle, oracle11, Oracle12C, osc, ospf, Padlock, Palshop, Panama,
PBKDF2-HMAC-MD4, PBKDF2-HMAC-MD5, PBKDF2-HMAC-SHA1, PBKDF2-HMAC-SHA256,
PBKDF2-HMAC-SHA512, PDF, PEM, pfx, pgpdisk, pgpsda, pgpwde, phpass, PHPS,
PHPS2, pix-md5, PKZIP, po, postgres, PST, PuTTY, pwsafe, qnx, RACF,
RACF-KDFAES, radius, RAdmin, RAKP, rar, RAR5, Raw-SHA512, Raw-Blake2,
Raw-Keccak, Raw-Keccak-256, Raw-MD4, Raw-MD5, Raw-MD5u, Raw-SHA1,
Raw-SHA1-AxCrypt, Raw-SHA1-Linkedin, Raw-SHA224, Raw-SHA256, Raw-SHA3,
Raw-SHA384, ripemd-128, ripemd-160, rsvp, Siemens-S7, Salted-SHA1, SSHA512,
sapb, sapg, saph, sappse, securezip, 7z, Signal, SIP, skein-256, skein-512,
skey, SL3, Snefru-128, Snefru-256, LastPass, SNMP, solarwinds, SSH, sspr,
Stribog-256, Stribog-512, STRIP, SunMD5, SybaseASE, Sybase-PROP, tacacs-plus,
tcp-md5, telegram, tezos, Tiger, tc_aes_xts, tc_ripemd160, tc_ripemd160boot,
tc_sha512, tc_whirlpool, vdi, OpenVMS, vmx, VNC, vtp, wbb3, whirlpool,
whirlpool0, whirlpool1, wpapsk, wpapsk-pmk, xmpp-scram, xsha, xsha512, ZIP,
ZipMonster, plaintext, has-160, HMAC-MD5, HMAC-SHA1, HMAC-SHA224,
HMAC-SHA256, HMAC-SHA384, HMAC-SHA512, dummy, crypt
Git Install¶
Sometimes the version of john installed as part of teh Operating System may be broked or not be compiled with all the required options. We can install john from Github to work around this
git clone https://github.com/openwall/john.git
cd john/src
./configure
make && sudo make install
This will build john under john/run/ where you can run binary or python scripts from without impacting the version already installed.