====== Hashcat (소프트웨어) ====== Hashcat(해시캣)은 파일의 암호화를 해제하기 위한 무작위 대입(사전, 마스킹 포함) 기반 전문가용 소프트웨어이다. 아래 알고리즘의 해제를 지원한다. ===== 암호 해제 과정(Microsoft Excel 기준) ====== ==== 해제 전 준비 ==== [[https://www.python.org/downloads/|Python]]을 먼저 설치하여야 한다. 현재 기준으로 파이선 최신버전은 [[https://www.python.org/downloads/release/python-396/|3.9.6]]이며 윈도우즈 설치 파일은 [[https://www.python.org/ftp/python/3.9.6/python-3.9.6-amd64.exe|여기]]서 다운로드할 수 있다. ==== 해제 과정 ==== - [[https://github.com/openwall/john|John The Ripper]]를 [[https://github.com/openwall/john/archive/refs/heads/bleeding-jumbo.zip|다운로드]]한다. - 압축을 푼다. - 명령 프롬프트(cmd) 창을 열고 pushd 명령으로 압축을 푼 폴더 위치로 이동한다. **pushd [압축을 푼 폴더 경로]** - 해당 명령을 실행하면 패스워드를 풀 수 있는 해시를 확인할 수 있다. **python office2john.py example.xlsx (엑셀 파일 경로)** ===== 지원 소프트웨어 ==== * MD4 * MD5 * SHA1 * SHA2-224 * SHA2-256 * SHA2-384 * SHA2-512 * SHA3-224 * SHA3-256 * SHA3-384 * SHA3-512 * RIPEMD-160 * BLAKE2b-512 * GOST R 34.11-2012 (Streebog) 256-bit, big-endian * GOST R 34.11-2012 (Streebog) 512-bit, big-endian * GOST R 34.11-94 * Half MD5 * Keccak-224 * Keccak-256 * Keccak-384 * Keccak-512 * Whirlpool * SipHash * md5(utf16le($pass)) * sha1(utf16le($pass)) * sha256(utf16le($pass)) * sha384(utf16le($pass)) * sha512(utf16le($pass)) * md5($pass.$salt) * md5($salt.$pass) * md5($salt.$pass.$salt) * md5($salt.md5($pass)) * md5($salt.md5($pass.$salt)) * md5($salt.md5($salt.$pass)) * md5($salt.sha1($salt.$pass)) * md5($salt.utf16le($pass)) * md5(md5($pass)) * md5(md5($pass).md5($salt)) * md5(md5(md5($pass))) * md5(sha1($pass)) * md5(sha1($pass).md5($pass).sha1($pass)) * md5(sha1($salt).md5($pass)) * md5(strtoupper(md5($pass))) * md5(utf16le($pass).$salt) * sha1($pass.$salt) * sha1($salt.$pass) * sha1($salt.$pass.$salt) * sha1($salt.sha1($pass)) * sha1($salt.sha1($pass.$salt)) * sha1($salt.utf16le($pass)) * sha1($salt1.$pass.$salt2) * sha1(CX) * sha1(md5($pass)) * sha1(md5($pass).$salt) * sha1(md5($pass.$salt)) * sha1(md5(md5($pass))) * sha1(sha1($pass)) * sha1(sha1($pass).$salt) * sha1(sha1($salt.$pass.$salt)) * sha1(utf16le($pass).$salt) * sha256($pass.$salt) * sha256($salt.$pass) * sha256($salt.$pass.$salt) * sha256($salt.sha256($pass)) * sha256($salt.utf16le($pass)) * sha256(md5($pass)) * sha256(sha256($pass).$salt) * sha256(sha256_bin($pass)) * sha256(utf16le($pass).$salt) * sha384($pass.$salt) * sha384($salt.$pass) * sha384($salt.utf16le($pass)) * sha384(utf16le($pass).$salt) * sha512($pass.$salt) * sha512($salt.$pass) * sha512($salt.utf16le($pass)) * sha512(utf16le($pass).$salt) * HMAC-MD5 (key = $pass) * HMAC-MD5 (key = $salt) * HMAC-SHA1 (key = $pass) * HMAC-SHA1 (key = $salt) * HMAC-SHA256 (key = $pass) * HMAC-SHA256 (key = $salt) * HMAC-SHA512 (key = $pass) * HMAC-SHA512 (key = $salt) * HMAC-Streebog-256 (key = $pass), big-endian * HMAC-Streebog-256 (key = $salt), big-endian * HMAC-Streebog-512 (key = $pass), big-endian * HMAC-Streebog-512 (key = $salt), big-endian * CRC32 * Java Object hashCode() * MurmurHash * 3DES * DES * AES-128-ECB NOKDF * AES-192-ECB NOKDF * AES-256-ECB NOKDF * ChaCha20 * Linux Kernel Crypto API (2.4) * Skip32 * PBKDF2-HMAC-MD5 * PBKDF2-HMAC-SHA1 * PBKDF2-HMAC-SHA256 * PBKDF2-HMAC-SHA512 * scrypt * phpass * TACACS+ * SIP digest authentication (MD5) * IKE-PSK MD5 * IKE-PSK SHA1 * WPA-EAPOL-PBKDF2 * WPA-EAPOL-PMK * WPA-PBKDF2-PMKID+EAPOL * WPA-PMK-PMKID+EAPOL * WPA-PMKID-PBKDF2 * WPA-PMKID-PMK * IPMI2 RAKP HMAC-SHA1 * CRAM-MD5 * JWT (JSON Web Token)