Training 6에서는 패스워드 파일 분석 방법을 배운다.
/etc/passwd
Training 4에서 /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 파일을 열어보려고 한다면 에러 메시지가 출력된다.
세 번째 필드 "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 |
댓글