증분 모드로 MD5 해시 크래킹하기
이 단계에서는 John the Ripper 의 증분 모드를 사용하여 MD5 해시를 크래킹합니다. 증분 모드는 문자 집합 (예: 소문자, 숫자, 기호) 을 기반으로 문자 조합을 시도하는 강력한 무차별 대입 공격입니다. 워드리스트 공격이 실패했을 때 유용하며, 기존 단어에 의존하지 않습니다.
먼저, 이 크래킹 시도를 위해 새로 시작하도록 John 의 pot 파일을 지우겠습니다. John 은 크래킹된 비밀번호를 저장하므로, 크래킹 과정을 다시 보기 위해 이 작업이 중요합니다.
john --session=my_session --restore=NONE
이제 증분 모드를 사용하여 해시를 크래킹해 보겠습니다. 시연 목적으로, 크래킹 시간을 관리하기 위해 매우 작은 문자 집합과 짧은 최대 길이를 사용할 것입니다. 실제 시나리오에서는 증분 모드가 비밀번호의 복잡성과 길이에 따라 매우 오랜 시간이 걸릴 수 있습니다.
john --format=raw-md5 --incremental=alnum --max-len=8 ~/project/hashes.txt
여기서:
--incremental=alnum: John 에게 영숫자 문자 (a-z, A-Z, 0-9) 를 사용하도록 지시합니다. John 은 alnum, alpha, digits 등과 같은 미리 정의된 증분 모드를 가지고 있습니다.
--max-len=8: 최대 비밀번호 길이를 8 자로 제한합니다. 이 실습에서 크래킹 시간을 짧게 유지하는 데 중요합니다.
John the Ripper 는 조합을 생성하고 테스트하기 시작할 것입니다. 우리의 비밀번호 (password123, labex, secret) 는 alnum 문자 집합과 max-len=8 ( labex 및 secret의 경우) 내에 있으므로, John 은 결국 이를 크래킹할 것입니다. password123은 11 자이므로 max-len=8로는 크래킹되지 않습니다.
출력은 John 이 발견하는 대로 크래킹된 비밀번호를 보여줍니다.
Using default input encoding: UTF-8
Loaded 3 password hashes with no different salts (raw-md5 [MD5])
Will run 4 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
labex (a0b923820dcc509a86619210ed1572e4)
secret (5ebe2294ecd0e0f08eab7690d2a6ee69)
2g 0:00:00:00 DONE (2023-10-27 10:35) 100.0% (ETA: 00:00:00) 2.000g/s 10.00p/s 10.00c/s 10.00C/s labex secret
Session completed.
다시 john --show를 사용하여 크래킹된 비밀번호를 표시할 수 있습니다.
john --show ~/project/hashes.txt
출력:
a0b923820dcc509a86619210ed1572e4:labex
5ebe2294ecd0e0f08eab7690d2a6ee69:secret
2 password hashes cracked, 1 left
이번에는 password123이 --max-len=8 제한을 초과하는 길이 (11 자) 때문에 크래킹되지 않았음을 알 수 있습니다. 이는 증분 공격에 적절한 매개변수를 설정하는 것의 중요성을 강조합니다.