ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Password Cracking in Linux
    끄적끄적 2019. 2. 23. 11:54





    티스토리로 옮기면서 이제까지 직접 작성했던 게시물들을 옮겨왔다 ㅎㅎ



    ※ 모든 실습은 가상환경에서 진행한다. (CentOS 7)








     Password Cracking 을 하기 위한 정보 수집 


    Password 정보는 Linux 에서 /etc/shadow 파일에 남아있다.





    /etc/shadow 각각의 필드들을 분석해보자


    Username : Password : Last password change : Minimum : Maximum : Warn : Inactive : Expire 


    주목해야할 필드는 Password 필드이다.
    위 그림에서 host1 의 경우 $6$DK/.Dwqn$fSHxPD.gilDBdUFf/.... 부분이 Password 정보를 담고있다.









     Password Field 분석 



    자세히 보면 모두 다음과 같은 구조를 가진다는 것을 알 수 있다.


    $ A $ B $ C

    첫번째 $ 와 두번째 $ 사이에 존재하는 값(A)은 암호화 알고리즘 정보를 내포하고 있다.
    두번째 $ 와 세번째 $ 사이에 존재하는 값(B)은 Salt 값이다. 
    세번째 $ 부터 마지막 까지 존재하는 값(C)은 Hash 값이다.








    A는 Encrypt (암호화) 된 알고리즘 정보를 담고 있다.


    1 : MD5

    5 : SHA-256
    6 : SHA-512    등등 .. (더 많다.)



    B는 Salt Value 이다.


    소금이 여러 음식에 들어가 음식 맛을 바꾸 듯, Salt Value 또한 원래의 Password 와 결합하여 새로운 값(C)을 생성한다.






    C는 Hash Value 입니다.


    암호화된 값을 의미한다. 

    Hash 의 개념!!(추후 포스팅)







     핵심함수들.. 


    1. <crypt.h> 의 crypt 함수를 활용한다.


    $ A $ B $ C = crypt ( password, $ A $ B $ );


    crypt 함수는 두 개의 인자를 가진다. password 는 Plain Text 이며, 또 하나의 인자는 Encrypt 할 알고리즘을 명시한 뒤, Salt 값을 넣어준다. 그렇게 되면 Password Field (C) 가 반환된다.




    2. strtok 함수를 활용한다.


    strtok 함수는 문자열을 특정한 문자로 분리할 때 사용하는 함수이다. 필드를 분리하거나 password 필드를 분리하는데 사용된다. 물론 이외의 파일 입출력에 대한 기본적인 코딩이 뒷받침되어야한다.














    Linux 에서 C언어 코드를 실행파일로 만들기



    1. yum -y install gcc 로 gcc 를 설치한다.
    2. 에디터를 사용해서 c 파일을 작성한다.          ex) vi hack.c      
    3. gcc -o [생성되는 실행파일] [C file]             ex) gcc -o hack hack.c
    4. 실행파일을 실행합니다.                              ex) ./hack


    ※ 주의사항 (crypt 함수 사용시)
     gcc -o [] [] 뒤에 꼭 -lcrypt 를 붙여야한다.



    간단하게 Dictionary Attack 을 기반으로 작성해보자 ~~





    실행결과는 다음과 같았다. 












    '끄적끄적' 카테고리의 다른 글

    결국 포맷...  (0) 2019.02.27
    CrackUs 삽질의 시작.. 2 Days  (0) 2019.02.25
    WarGame, CrackUs 제작 시작!!  (0) 2019.02.23
    나도몰래 우연히봄  (0) 2019.02.06
    다짐!!  (0) 2019.02.05

    댓글

Designed by Tistory.