[ftz] level 8: break the world
08_리눅스 패스워드 파일 크랙
이 문제는 리눅스의 패스워드 파일 구조를 알아야 한다.
- 초기 리눅스에는 /etc/passwd 파일에 평문 형태로 패스워드 표기
- 현재는 모든 계정이 읽을 수 있는 /etc/passwd에 있는 패스워드 부분은 x로 가려짐
실제 암호화한 패스워드는 root 계정만 읽을 수 있는 권한이 부여된 /etc/shadow에 저장
>> 암호화 패스워드 훔침 = root 권한 획득했음
* 정리
- /etc/passwd: 계정의 사용환경과 권한에 대한 정보가 들어 있음
- /etc/shadow: 계정의 패스워드와 유효기간에 대한 정보가 들어 있음
* /etc/shadow
- 단방향 해시 알고리즘을 통해 암호화하여 저장
: 아무도 평문으로 복호화하지 못하게 하기 위함
* 단방향 해시 알고리즘을 사용한 패스워드의 원본을 어떻게 찾는가?
: 사전 대입법 OR Brute Force 기법 사용
- 실제로 이 두 크랙 방식 중 비교적 빠른 사전 대입법을 많이 사용
√ 문제 분석
* find -size 옵션
b : 블록단위 512kb
c : byte
k : kbyte
w : 2byte 워드
단위별로 하나씩 넣어서 파일이 있는지 찾아보았다.
byte 단위인 c를 붙여 넣어보았더니, 파일명이 의심스러운 found.txt를 발견하였다.
hint에서 제시하는 2700은 byte 단위임을 알 수 있었다.
이 파일은 /etc/shadow 파일과 형식이 같다는 것을 알 수 있다.
>> 이 파일을 크랙하면 level9의 PW를 얻을 수 있을 것!
유닉스 계열의 대표 패스워드 크랙 툴인 John the Ripper을 이용하여 크랙하였다.
: 로컬 패스워드 크랙용 툴
다운받은 후, cmd.exe 파일과 found.txt 내용을 복사한 level9pass.txt 파일을 run 폴더에 넣었다.
john 명령어를 쳐보니, crack된 password는 apple임을 알 수 있었다.
Level 9 Password = apple
* 원격 패스워드 크랙용 툴: hydra
GUI 툴: Brutus-AE2
쉬운 PW는 쉽게 크랙될 것이지만, 어렵게 만든 PW는 쉽게 크랙되지 않는다. (> Brute Force)
'write-up > pwnable' 카테고리의 다른 글
[ftz] level 10: interesting to hack! (0) | 2019.08.18 |
---|---|
[ftz] level 9: apple (0) | 2019.08.17 |
[ftz] level 7: come together (0) | 2019.08.14 |
[ftz] level 6: what the hell (0) | 2019.08.13 |
[ftz] level5: what is your name? (0) | 2019.08.12 |
댓글