본문 바로가기
System Hacking/해커스쿨 F.T.Z Training

해커스쿨 F.T.Z Training 6

by En_Geon 2020. 2. 3.

Training 6에서는 패스워드 파일 분석 방법을 배운다.

 

/etc/passwd

 

Training 4에서 /etc/passwd는 사용자들에 대한 간단한 정보가 있다고 배웠다.

패스워드 파일은 한 서버를 사용하는 사용자들이 어떤 아이디 어떤 암호를 이용하여 로그인하는지 어떤 그룹에 속해있는지 이름은 무엇인지 등등 사용자들의 모든 정보를 정장해 놓은 매우 중요한 파일이다. 

cat /etc/passwd를 입력하면 복잡하게 많이 나온다.

 

cat /etc/passwd 실행 결과 중 한 줄

 

위의 문자열은 7개의 필드로 나뉜다. 필드를 구분해주는 것은 ":" 이 문자를 통해 구분한다.

 

  의미
root 로그인 아이디
x 패스워드가 적혀있는 부분
0 컴퓨터의 숫자 판단
0 그룹
Admin 사용자의 이름
/root 로그인 성공 시 기본 위치 디렉터리
/bin/bash 첫 로그인 시 실행되게 할 프로그램

 

두 번째 필드 "x"

 

x 필드는 패스워드가 적혀있는 부분이다.

리눅스 5.0버전까지 이곳에 암호화된 문자열이 들어가 있었다. 다른 사람들이 암호화된 패스워드를 보아도 전혀 위험하지 않았지만, 해커들은 암호화된 문자열을 해독하는 프로그램 "크래커"를 만들어 암호화된 문자열을 복호화했다.

그 후에 리눅스 제작하는 사람들은 훨씬 복잡한 방법으로 패스워드를 암호화시켰지만 해커들이 또다시 복호화를 했고 리눅스 프로그래머들과 해커들의 암호화와 복호화를 반복하다가 두 번째 필드의 패스워드를 없애버리고 "x" 문자만 달랑 보여주는 방법을 택했다.

 

리눅스 프로그래머들은 사용자들의 패스워드만 모아서 새로운 파일을 만들었고 그것이 바로 "/etc/shadow"라는 파일이다. shadow 파일은 관리자 권한을 가진 사람이 아니면 볼 수조차 없도록 만들었다.

이 방법은 패스워드의 크랙을 피하는 가장 완벽한 방법으로 채택되어 리눅스 6.0 이후 지금까지 사용되고 있다.

만약 shadow 파일을 열어보려고 한다면 에러 메시지가 출력된다.

 

shadow 에러 출력

 

세 번째 필드 "0" 

 

사용자는 로그인할 때 root라는 이름을 사용한다. root는 인간들이 사용하기 쉬운 단어지만 컴퓨터는 영어보단 숫자를 더 좋아해서 숫자를 사용하여 사용자를 판단한다. 따라서 우리가 root로 로그인하면 컴퓨터는 패스워드 파일을 열어보고 "지금 들어오는 root는 0이란 사람이다."라고 생각한다.

 

네 번째 필드 "0"

 

네 번째 필드에도 0이란 숫자가 있는데 이것은 해당 사용자가 속해있는 그룹을 말한다.

그룹은 training 9에서 배운다.

 

즉, 세 번째 필드, 네 번째 필드를 정리하면 컴퓨터는 우리가 root로 로그인하면 패스워드 파일을 열어보고 "지금 들어오는 root는 0이란 사람이고 0이란 그룹에 속해있다."라고 판단한다.

'System Hacking > 해커스쿨 F.T.Z Training' 카테고리의 다른 글

해커스쿨 F.T.Z Training 8  (0) 2020.02.03
해커스쿨 F.T.Z Training 7  (0) 2020.02.03
해커스쿨 F.T.Z Training 5  (0) 2020.02.02
해커스쿨 F.T.Z Training 4  (0) 2020.02.02
해커스쿨 F.T.Z Training 3  (0) 2020.02.01

댓글