Password Cracking (John the Ripper)

estar987·2023년 9월 13일
0

Security

목록 보기
19/43
- 개요
    ● 일반적으로 많이 사용하는 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에서 명령어 입력

profile
System / Cloud / DevOps Engineer

0개의 댓글

관련 채용 정보