해시 크래킹
식별하고 공격하기
해시 크래킹은(는) CoddyKit의 무료 Ethical Hacking Academy 강의입니다. 이것은 4개 중 4번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Ethical Hacking Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Ethical Hacking Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
해시를 크래킹하는 이유
침투 테스트를 수행하다 보면 데이터베이스, 구성 파일 또는 메모리 덤프에서 비밀번호 해시를 확보하는 경우가 많습니다. 해시를 크래킹하면 약한 비밀번호를 확인하고 실제 영향도를 고객에게 보여 줄 수 있습니다.
기억하십시오. 해싱은 단방향입니다. 해시를 직접 되돌릴 수는 없습니다. 대신 입력을 추측하고 각 추측값을 해싱한 다음 대상 해시와 비교합니다.
1단계: 해시 식별
크래킹하기 전에 어떤 알고리즘이 해시를 생성했는지 알아야 합니다. 길이와 형식에서 단서를 얻을 수 있습니다.
- 16진수 문자 32개이면 MD5일 가능성이 높습니다.
- 16진수 문자 40개이면 SHA-1일 가능성이 높습니다.
- 16진수 문자 64개이면 SHA-256일 가능성이 높습니다.
$2b$로 시작하면 bcrypt이고,$argon2로 시작하면 Argon2입니다.
식별 도구
도구를 사용하면 해시 식별을 자동화할 수 있으므로 직접 추측할 필요가 없습니다. hashid와 hash-identifier는 형식을 분석하고 가능성이 높은 알고리즘을 제안합니다.
출력 결과를 통해 크래킹 도구에 전달할 mode 번호를 정할 수 있습니다.
hashid '5f4dcc3b5aa765d61d8327deb882cf99'
# Suggests: MD5, MD4, NTLM ...사전 공격
사전(단어 목록) 공격은 목록의 모든 단어를 시도하면서 각각을 해싱하고 비교합니다. 빠르며 흔한 비밀번호를 선택하는 사용자가 매우 많다는 점을 공략할 수 있습니다.
유명한 rockyou.txt 단어 목록에는 유출된 실제 비밀번호가 수백만 개 들어 있으며, 대부분의 크래킹에서 기본 시작점으로 사용됩니다.
무차별 대입 공격
무차별 대입 공격은 가능한 모든 문자 조합을 시도합니다. 언젠가는 반드시 성공하지만 비용이 지수적으로 증가합니다.
마스크를 사용하여 범위를 제한할 수 있습니다. 예를 들어 소문자와 숫자로 이루어진 정확히 8개의 문자를 지정하는 방식입니다. 비밀번호 정책을 알고 있다면 마스크를 사용하여 집중적인 무차별 대입을 현실적으로 수행할 수 있습니다.
?l = lowercase ?u = uppercase ?d = digit ?s = symbol
# Mask ?u?l?l?l?l?d?d = Capital + 4 lower + 2 digits규칙 기반 공격
사람들은 기본 단어를 예측 가능한 방식으로 변형합니다. 예를 들어 'password'가 'Password1!'이 됩니다. 규칙 기반 공격은 각 단어 목록 항목에 대문자화, 연도 추가, 문자를 숫자로 바꾸기 등의 변환을 적용합니다.
이 방식은 완전한 무차별 대입의 비용 없이 현실적인 사람의 비밀번호를 찾아냅니다. best64 규칙 세트는 효율적인 시작점으로 널리 사용됩니다.
Hashcat
hashcat은 대표적인 GPU 가속 크래커입니다. 알고리즘마다 숫자로 된 모드 코드를 사용하며, 공격 모드 플래그도 사용합니다(-a 0은 사전 공격, -a 3은 무차별 대입).
GPU를 사용하면 MD5나 SHA처럼 빠른 해시를 CPU로 크래킹할 때보다 hashcat이 훨씬 빠르게 동작합니다.
hashcat -m 0 -a 0 hashes.txt rockyou.txt
# -m 0 = MD5, -a 0 = dictionary attackJohn the Ripper
John the Ripper는 또 다른 대표적인 크래커로, CPU 사용에 강하고 다양한 형식을 지원합니다. 해시 유형을 자동으로 감지하는 경우도 많습니다.
John에는 Linux의 /etc/passwd와 /etc/shadow를 크래킹 가능한 파일 하나로 결합하는 unshadow와 같은 유용한 보조 도구가 있습니다.
unshadow /etc/passwd /etc/shadow > combined.txt
john --wordlist=rockyou.txt combined.txt
john --show combined.txt솔트와 느린 해시가 강력한 이유
크래킹 속도는 알고리즘에 크게 좌우됩니다.
- GPU는 1초에 수십억 개의 MD5 추측값을 시도할 수 있습니다.
- bcrypt나 Argon2는 설계상 1초에 수천 개만 시도할 수 있습니다.
솔트는 각 해시를 별도로 크래킹하게 하여 레인보 테이블이라는 지름길도 없앱니다. 이것이 바로 방어자가 솔트를 적용한 느린 해시를 사용하는 이유입니다.
온라인 조회와 윤리
솔트가 없는 빠른 해시의 경우 CrackStation과 같은 온라인 데이터베이스에 미리 계산된 조회 결과가 저장되어 있어 흔한 해시를 즉시 크래킹할 수 있습니다.
윤리: 테스트 권한을 부여받은 해시만 크래킹하십시오. 허가 없이 실제 자격 증명을 크래킹하는 것은 불법입니다. 침투 테스트에서는 크래킹한 비밀번호를 약한 정책의 증거로 보고하고, 악의적으로 재사용해서는 안 됩니다.
소요 시간 추정
크래킹에 몇 시간을 투입하기 전에 가능성을 추정하십시오.
- 알고리즘 속도: MD5는 빠르게 크래킹되지만 bcrypt는 설계상 느립니다.
- 비밀번호 복잡도: 길이와 문자 집합이 늘어나면 키 공간이 폭발적으로 커집니다.
- 하드웨어: 강력한 GPU 장비는 노트북 CPU보다 압도적으로 빠릅니다.
긴 무작위 비밀번호에 솔트를 적용한 bcrypt를 크래킹하는 데 수 세기가 걸린다면, 무차별 대입 대신 다른 공격 경로로 전환하십시오.
빠른 확인
데이터베이스 덤프를 확보했습니다. 가장 현명한 첫 번째 조치를 결정해 보십시오.
요약
해시 크래킹 작업 흐름을 배웠습니다.
- hashid를 사용하여 길이와 형식으로 알고리즘을 식별합니다.
- 비용에 따라 공격을 단계적으로 진행합니다. 사전, 규칙, 마스크 무차별 대입 순서입니다.
- hashcat(GPU)과 John the Ripper(CPU, 자동 감지)를 사용합니다.
- 솔트와 느린 해시(bcrypt, Argon2)는 크래킹 속도를 크게 낮춥니다.
- 항상 허가된 범위 안에서 작업합니다.
이로써 해커를 위한 암호학 과정을 마쳤습니다. 다음 모듈은 익명성과 OPSEC입니다.
자주 묻는 질문
“해시 크래킹” 강의는 무료인가요?
네 — “해시 크래킹” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Ethical Hacking Academy 강의 전체를 잠금 해제할 수 있습니다. Ethical Hacking Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“해시 크래킹”에서 뭘 배우나요?
식별하고 공격하기 브라우저에서 직접 실행하는 실습 코드로 Ethical Hacking Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Ethical Hacking Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Ethical Hacking Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 4번째 강의입니다.
“해시 크래킹” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Ethical Hacking Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Ethical Hacking Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.