- 개요
● 일반적으로 많이 사용하는 Password Cracking 도구이다
● 대부분의 플랫폼(Unix, Linux, Windows)에서 사용 가능
● 오프라인 기반의 크래킹 도구이다
● John과 Johnny가 있는데 20.x 버전부터는 Johnny는 제외되었다
(별도로 설치)
● 문자, 숫자, 조합 등을 이용한 무차별 대입 공격을 통해 패스워드를
크래킹한다
- 시스템 환경 구성
● Kali(128)
● Win 10(129) - 윈도우 업데이트 하기
- 실습(kali)
● 테스트용 사용자 계정 3개 생성(비밀번호는 모두 다르게 만든다)
● 크래킹할 비밀번호가 저장된 shadow 파일 저장
● Encrypted Field
→ $y
: HashID(컴퓨터 암호화 기술)
→ $j9T
: Salt
→ $kaSzB4.b6hDJbM4i4oDM5.$DSRYc9Su1hmPwLHPLfii8/cmRdn3CCFT6xUWZgg15g5
: Hash Value
● 구조
→ Hash ID
: 인식자(Identifier)에 따른 구조 사용 형태에 따라 구분한다
: 해쉬 함수는 무결성을 제공하기 위한 해쉬 내용은 복호화가 불가능하다
: Identifier 구분
> 1인 경우
; Scheme (MD5-crypt)
; Hash 함수(MD5)
; Salt Length(64 bit)
> 2a인 경우
; Scheme (B-crypt)
; Hash 함수(Blowfish)
; Salt Length(64 bit)
> md5인 경우
; Scheme (Sun MD5)
; Hash 함수(MD5)
; Salt Length(64 bit)
> 5인 경우
; Scheme (SHA-crypt)
; Hash 함수(SHA-256)
; Salt Length(128 bit)
> 6인 경우
; Scheme (SHA-crypt)
; Hash 함수(SHA-512)
; Salt Length(128 bit)
→ Salt
: 비밀번호 크랙을 위한 해쉬의 속도를 빠르게 하기 위한 내용이다
: 해시된 패스워드를 크랙하기 위해서 Rainbow Table Attack을 사용해서
: 빠른 속도로 해쉬처리를 한다
: Salt 값을 모르면 Rainbow Table Attack을 할 수가 없다
→ Hash Value
: 암호화된 해시 값을 말한다
● Johnny(GUI 기반 크래킹 도구)
→ Johnny 설치
# apt install johnny
→ Johnny 실행(크래킹)
: 간단하게 테스트 하려면 해당 계정을 숫자로만 비밀번호를 지정한
후 한다
→ 1번 루트 , samadal 등 계정들만 선택 해서 공격한다
(시간이 매우 많이 걸린다)
→ 결과 화면(비밀번호가 나온다)
● John
→ Package 다운로드(www.openwall.com/john)
→ 다운로드 후
→ 압축 해제
# tar xvf john-1.9.0-jumbo-1.tar.xz
=========================================================
→ john에서 실행
$ sudo john /usr/share/john/password.lst
→ kali 콘솔에서 실행
# cp -p password.lst samadalpassword.lst
# pwd
/usr/share/john
$ sudo john /usr/share/john/password.lst
# unshadow
# unshadow /etc/passwd /etc/shadow > /tmp/cloud.txt
# cat /tmp/cloud.txt
# john /tmp/cloud.txt
# cd .john/
=========================================================
→ GitHub에서 password.txt 다운로드 후 적용
: 시간이 오래 걸리니까 위의 과정 대신 github에서
(https://github.com/duyet/bruteforce-database)
파일을 받아서 업로드 후에 작업한다
금방 사라지니까 ctrl + a 하고 메모장으로 password.txt로 만든다
그리고 최상위 경로에 업로드하고 # john password.txt 실행한다
: 위의 작업을 이미 했다면 .john/ 경로에 john.pot 과 john.rec를
삭제하고 받은 파일(password.txt)을 업로드하고
# john password.txt 실행하면 이런 화면이 나온다
- 실습(Win)
● win 10 가상환경에서 다운 받은 파일(john-1.9.0-jumbo-1-win64.zip)
옮기고 압축 풀기
● 폴더 안에
C:\Users\Administrator\Desktop\john-1.9.0-jumbo-1-win64\run
이 경로에 있는 (password.lst) 파일 열어서 수정
● compmgmt.msc 에서 관리자의 암호 설정 들어가고 암호로 아까 메모장
에서 입력한 P@ssw0rd입력
● cmd에서 명령어 입력