-
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-2566 : 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.c3. gcc -o [생성되는 실행파일] [C file] ex) gcc -o hack hack.c4. 실행파일을 실행합니다. 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 댓글