# 해시는 단방향 방식으로 원래의 평문(암호)를 알아 낼수 없는 구조다.
# 따라서 해시값과 같은 문자열(암호)이 무엇인이 무작위대입(bruteforce)으로 모든 경우를 따져봐야 한다.
# hashcat 툴로 해시값의 원래 평문을 찾을 수 있다.
# hashcat(cpu 사용), oclhashcat(gpu 까지 사용해 더 빠르다) 두 종류가 있다.
# hashcat 다운로드(opensource, 윈도우, 리눅스 지원)
http://hashcat.net/hashcat
# hashcat 테스트
# http://onlinemd5.com 에서 md5 sha256 등의 해시값을 생성
# plain text : s#oft
# md5 : A02340AFF7F347EBA3CB87EDF20B84A6
# md5 값을 파일(hash.txt)로 저장
# 윈도우의 경우(hashcat-cli64.exe)
# hashcat --help 참고
# -m 해시 타입 0 (MD5)
# -a 공격 모드 3 (Brute-force)
# ?a 숫자인지 문자인지 모를경우 ?a로 추측길이만큼 반복
hashcat -m 0 -a 3 hash.txt ?a?a?a?a?a?a?a
# s : 현재 진행 상태, 예상시간(Estimated) 을 볼 수 있다.
# r : 계속 진행
# q : 끝내기
# 암호를 찾게 되면 start,stop 시간을 찍고 hashcat.pot 에 해시값:plaintext 를 기록한다.
cat hashcat.pot
a02340aff7f347eba3cb87edf20b84a6:s#oft
# 윈도우 암호 찾기
# 윈도우의 경우 사용자 암호 저장 파일은 다음과 같다.
# 윈도우가 부팅되었다면 수정이나 복사가 제한되어 있다.
# C:\Windows\System32\config\sam
1. kali 리눅스로 usb 부팅 후 윈도우 하드 마운트
2. kali linux -> password attack -> offline attack -> oph crack 선택
3. load -> encrypted sam -> 마운트 디렉토리\windows\system32\config 열기
4. 화면에 표시된 NT Hash 값을 텍스트 파일로 저장하고 hashcat 으로 암호풀기
# 윈도우의 경우 사용자 암호 저장 파일은 다음과 같다.
# 윈도우가 부팅되었다면 수정이나 복사가 제한되어 있다.
# C:\Windows\System32\config\sam
1. kali 리눅스로 usb 부팅 후 윈도우 하드 마운트
2. kali linux -> password attack -> offline attack -> oph crack 선택
3. load -> encrypted sam -> 마운트 디렉토리\windows\system32\config 열기
4. 화면에 표시된 NT Hash 값을 텍스트 파일로 저장하고 hashcat 으로 암호풀기