본문 바로가기
CS & Reversing

[정보보안] etc/passwd, /etc/shadow에 대한 이해

by m_.9m 2022. 3. 5.

 

/etc/passwd

 

평소에 웹 해킹을 하면서 몇번 보던 파일이다. 

사용자의 계정가 담겨서 중요 파일에 속한다.

 

이기적 2022 기출문제에 헷갈리는 문제가 나왔다.

다음은 홍길동 계정(ID hong)에 대한 정보이다. 그 설명으로 잘못된 것은 무엇인가?

[계정정보 사진]

 

해당 문제의 해설은 다음과 같다.

" /etc/passwd에서 hong 계정은 /bin/false 로 설정되어 있어서 셀을 실행하지 않게 되어있다."

라는데 처음에 이게 도대체 뭔 소린지 구글링을 했다.

결국 이해한 건 /sbin/nologin 또는 /bin/false 설정 자체가 로그인을 할 수 없게 해놓은 쉘이기 때문에 계정 정보 파일을 열람한 사진 자체가 잘못되었다고 이야기 하는 것 같다. (관련 글을 찾아보고 이해를 해보려했지만 여기까지가 한계,,, 아닐 수도 있다.)

 

passwd 구성 요소

예시 사진 처럼 있을 떄 보는 법은 아래와 같다.

Account(계정명) : PW : UID : GID : Comment(사용자 이름 등) : 홈 디렉토리 경로 : 사용하는 쉘

x부분은 민감 정보를 암호화해 저장해 놓은 etc/shadow에 등록되어 있다.

root는 0이고 일반 사용자의 UID, UID는 500번대 이상의 숫자가 랜덤으로 부여된다.

 

 

/etc/shadow

 

암호화된 패스워드와 패스워드 설정 정책이 기재되어있다.

여기서 관리자 계정과 관리자 그룹만이 이 파일을 읽을 수 있으며 필드를 읽는 법은 다음과 같다.

Account : encrypted_pw : 마지막 변경 : 패스워드 최소 사용 기간 : 최대 사용 기간 : 경고 : 비활성화 : 만료일

 

[encrypted_pw]
$algorithm_id$salt$encrypted_password

 

$algorithm_id

암호학적 해시의 id로 1(MD5),2(BlowFish),5(SHA-256),6(SHA-512)가 있다.

$salt

각 해시에 첨가할 랜덤 값

$encrypted_password

위의 두가지 설정으로 패스워드를 암호화 한 값.