Unix & Windows 인증 구조

i2sec/System hacking 2014. 4. 27. 15:30

1.unix 인증구조


1)Passwd 파일 구조

root : x : 0 : 0 : root : /root : /bin/bash

(1)   (2) (3) (4)  (5)    (6)      (7)


(1) Login name : 사용자 계정 의미

(2) Password : 사용자 암호가 들어갈 자리이나 /etc/shadow 파일에 저장

(3) User ID : 사용자 ID 즉, UID를 의미하고 root의 경우 0이 된다

(4) User Group ID : 사용자가 속한 그룹 ID 즉, GID를 의미하고 root 그룹의 경우 0이 된다

(5) Comment : 사용자으 ㅣ코멘트 정보를 적는 곳

(6) Home Directory : 사용자의 홈 디렉토리를 지정하는 곳

(7) Shell : 사용자가 기본으로 사용할 쉘 종류 지정


2)Shadow 파일 구조

root:$1$T/4NE$Gs/5lTpDNNAAPkN9iBdU11:16157:0:99999:7:  :   :

(1) (2)      (3) (4) (5) (6)(7)(8) (9)


(1) Login name : 사용자 계정

(2) Encrypted : 패스워드를 암호화시킨 값

  *'$' 구분자 역할을 하며 3부분으로 나뉜다.

   '1' : 암호화 방식을 나타내는 부분으로 1은 MD5를 의미한다.

   '$T/4NE' : Salt값으로 패스워드와 조합하여 해시값을 생성할 때 사용된다.

   'Gs/5lTpDNNAAPkN9iBdU11' : 해시값. 실제 비밀번호가 암호화된 부분이다.


(3) Last Changed : 1970년 1월 1일부터 패스워드가 수정된 날짜의 일수를 계산

(4) Minimum : 패스워드가 변경되기 전 최소사용기간(일수)

(5) Maximum : 패스워드 변경 전 최대 사용기간(일수)

(6) Warn : 패스워드 사용 만기일 전에 경고 메시지를 제공하는 일수

(7) Inactive : 로그인 접속 차단 일 수

(8) Expire : 로그인 사용을 금지하는 일수 (월/일/연도)

(9) Reserved : 사용하지 않음


*(3)~(9)은 거의 볼 일 없다 중요한 것은 (2)!!!


*해시값 만들기

 [root@localhost ~]# openssl passwd -1 -salt T/4NE(salt 값 입력)

 Password:                                        (원하는 패스워드 입력)

 $1$T/4NE$pT/ALNPWEcNks/yfrCKkC0                  (패스워드 + salt 값을 통해 생성된 해시값)



3)암호화 : 특정키를 이용해서 평문을 암호문으로 변경하는 것을 말한다. 치환기법

         암호문을 보고 평문을 찾아낼수있다.


4)해시 : 데이터를 자르고 치환하거나 위치를 바꾸는 등의 방법을 사용해 결과를 만들어낸 값을 해시값이라 한다.  

       확률이 낮으나 해시값이 언제든지 똑같이 나올수 있음.

       해시값은 복호화가 불가능하다.


5)존더리퍼(J.T.R)

Unix나 Linux의 패스워드를 검사하여 취약한 패스워드를 보여주는 툴이다.

Linux 패스워드 진단용으로 많이 사용되고 있다.

-------------------사용방법----------------------

john the ripper (존더리퍼) - password cracking tool

-------------------------------------------------

wget http://www.openwall.com/john/g/john-1.7.8.tar.gz(다운로드)

tar zxvf john-1.7.8.tar.gz(압출풀기)

cd john-1.7.8

cd src

-------------------------------------------------

make(시작)

make clean SYSTEM(현재 리눅스 서버 시스템이 무엇인지 검사)

make clean generic(조사가 끝나고 그것에 맞게 설정)

-------------------------------------------------

cd ../run

./john --test (벤츠마킹)

./john /etc/shadow (비밀번호 해독)

-------------------------------------------------

<실행 결과>


이렇게 간단하거나 사전적 단어로 설정된 비밀번호가 노출된다.

그러나 간단한 비밀번호라도 조금만 길어지니깐 찾질 못했다. 별로 효율성이 높은 툴은 아닌것 같다.


2.Windows 인증구조



<프로세스 설명>

winlogon(winlogon.exe): 윈도우 로그인 프로세스의 한부분이다.

GINA (msGINA.dll): Winlogon 내에서 msGINA.dll을 로딩시켜 사용자가 입력한 계정과 암호를 LSA에게 전달

lsa(lsass.exe): 전달받은 계정과 암호를 검증하기위해 NTLM모듈을 로딩하고 계정을 검증

                      SRM이 작성한 감사로그를 기록하는 역할수행.

SAM (sercurity accounts manager) : 사용자 계정 정보(암호화된 해시값)가 저장. ( 리눅스에 etc/shadow와 같은역할 ,                                                     중요하므로 복사본존재)

SRM (security reference monitor) : 사용자에게 고유의 SID를 부여한다. 

                                                  SID에 준하는 권한을 부여함

SID위치: HKEY_LOCAL_MACHINEWSOFTWARE \ Microsot \ Windows NT \ CurrentVersion \ ProileList


<동작원리>

1. 사용자가 ID/PW를 입력한다.

2.GINA에서 입력받은 ID/PW를 LSA에게 전달한다.

3.LSA가 내부에서 NTLM을 실행 시켜 검증을 시작한다.

4.NTLM이 SAM에 저장된 기존의 사용자 정보와 동일한지 비교

5.비교결과가 맞다면 SRM에서 사용자에게 교유 SID 부여

6.부여된 SID가 사용자에게 전달되면서 실행권한을 획득


<윈도우의 인증방식>

1.LM : 윈도에서 가장 약한(가장 최초) 인증 밥법이다. 윈도우 95,98,ME 버전에서 사용되었다.

2.NTLM 버전 1 : LM보다는 안전하지만 취약점이 발견되어 짧게 적용되었다.

3.NTLM 버전 2 : 현재 대부분의 시스템에 적용되고 있다.



'i2sec > System hacking' 카테고리의 다른 글

백도어 탐지  (0) 2014.04.27
백도어(Backdoor)  (0) 2014.04.27
SetUID  (0) 2014.04.27
패스워드 크래킹  (0) 2014.04.23
Windows 단축키 및 주요 프로세스  (0) 2014.04.21