ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 리눅스 shadow 암호 해독 (보류)
    암호 2018. 12. 8. 14:32

    인터넷보안 수업에서 암호 해독 숙제가 나온 김에 한 번 정리해볼까 합니다.


    Shadow 구조

    일단 수업에서 받은 암호는 test:$6$dRf2Gldj$W4DfAK9vGyz9XCCJrsPOtR7tgf3q6lDH92kE2WKHNXZHfmu7dKFgo5M72jrL2hXJjxcdg596WsWPYYgGrmPZp1:17107:0:99999:7::: 와 같습니다. 그리고 길이가 5인 ASCII 문자로 구성되었다고 힌트도 주었습니다.


    간단히 shadow 구조를 살펴보면


    "test":  사용자 계정.

    "$6": 암호방식. $6은 SHA512를 나타냅니다.

    "$dRf2Gldj": salt. 

    "$W4DfAK9vGyz9XCCJrsPOtR7tgf3q6lDH92kE2WKHNXZHfmu7dKFgo5M72jrL2hXJjxcdg596WsWPYYgGrmPZp1": 암호

    "17107": 마지막 변경날짜

    "0": 패스워드가 변경되기 전 최소사용기간

    "99999": 패스워드가 변경되기 전 최대사용기간

    "7": 사용 만기일 전 경고 메세지를 띄우는 일 수.

    등등 입니다.


    그 중 지금 중요한 건 암호방식, salt, 암호 입니다.



    John

    인터넷에서 linux 암호 해독에 대해 찾아보니 john이라는 shadow 암호 해독 전문 프로그램이 있더군요.

    다행히 kali 운영체제에 john이 내장되어있어서 바로 사용할 수 있었습니다.


    john의 사용법은 간단합니다. 



    먼저 shadow, passwd 처럼 텍스트파일을 만들어 줍시다.




    그리고 "john 파일명"만으로도 해독이 진행됩니다.


    하지만 100% 완료가 되더라도 해독이 되지않은 암호들이 있을 겁니다.

    그 이유는 아무런 옵션을 추가하지 않는 "john 파일명" 명령은 john이 내장하고 있는 default word_list모드로 진행되기 때문입니다.




    그래서 만약 다른 word_list를 사용하고 싶다면 위에처럼 "--wordlist=wordlistname" 옵션을 넣어주시면 됩니다.

    참고로 위에 나오는 rockyou2.txt 파일은 인터넷에서 다운받은 100MB word_list인 rockyou.txt를 길이가 5인 word만 남게 수정한 파일입니다. 하지만 이번에도 해독에는 실패합니다.



    John-Incremental모드


    위에서는 word_list모드를 써보았는데요. 만약 무작위한 문자열을 쓰는 경우, wordlist만으로는 실패할 수 있습니다. 그래서 이를 보완하기 위해 john에서 Incremental 라는 모드도 있습니다. Incremental 모드 란 한마디로 얘기하자면 "brute force"입니다.







    /etc/john/john.conf를 보면 여러가지 Incremental모드가 있는 걸 확인할 수 있습니다. MinLen, MaxLen로 수정해서 패스워드의 길이 범위를 축소함으로 계산량을 대폭 줄일 수 있습니다.






    그 중 저는 ASCII 모드를 수정해서 써보겠습니다.






    하지만 위에 ETA, 즉 예상 완료시간을 보면 앞으로 몇개월을 진행해야한다는 걸 알 수 있습니다. 그래서 모든 ASCII문자를 공략하는 건 힘듦으로 소문자만 공략해보겠습니다.



    소문자를 공략하는 데에는 대략 5시간30분 정도 걸렸습니다. 하지만 아쉽게도 패스워드를 알아내지는 못했네요.


    나중에 같은 수업을 듣는 친구에게 물어봐서 내용을 보충해야겠습니다.



    출저:

    http://www.solutionsatexperts.com/password-cracking-with-john-the-ripper-on-linux/







    댓글

Designed by Tistory.