이번 정보보안산업기사 시험에 불붙어 합격한 컴붕이이다 ㅅㅂㅠㅠ

그래서 다시 공부할겸 해서 여기에 올려보려고 한번 써보는 글이다. 굉장히 전문적이고 그렇진 않으니 심심해서 온 사람들은 재미로 봐 줬으면 좋겠따.

먼저 실기 부터 볼거다 왜냐면 필기보단 실기가 더 오래 걸리더라... 솔직히 필기는 짐작해서 맞출수 있는데 실기는 그것도 안됨. 그래서 보안기사를 딸 생각이 있다면 실기 한번 봤다가 필기 보고 실기를 다시 공부하는 방법을 추천한다.

실기는 총 6파트로 볼 수 있는데 시스템 보안, 네트워크, 애플리케이션, 침해대응 사고 분석 및 대응, 정보보안 일반/관리 그리고 법규다. 기사는 법규까지 나오지만 산업기사는 법규는 빠지고 여기다가 리눅스 명령어를 욱여넣은 형태라고 보면 된다. 먼저 첫파트인 시스템 보안 중에 윈도우 보안 부터 한번 알아보자. 교재는 알OO 기반으로 보면서 작성해따 


 윈도우 기본 학습

윈도우 시스템의 인증 과정에 대해서 알아보자. 사용되는 주요 서비스는 LSA, SAM, SRM 등이 있다.

이것들에 대해 한번 알아보자

LSA(Local Security Authority) 서비스

LSA는 모든 계정의 로그인(로컬과 원격 로그인까지)에 대한 검증 및 시스템 자원에 대한 접근 권한을 검사한다. 윈도우의 계정에는 SID(Security ID)가 존재 하는데 이를 매칭시켜주며 SRM이 생성한 감사로그를 기록한다. 얘가 거의 윈도우 인증의 총괄을 담당한다고 보자.

LSA의 서브 시스템이 어떻게 동작하는지 알아보자. 먼저 로그인창에서 로그인프로세스가 실행되면 LSA 서브 시스템이 실행되는데 여기서 로컬 로그인이냐 원격 로그인이냐에 따라서 다르게 동작을 한다. 

로컬로 인증할 시에는 로그인 창에서 받은 인증 정보를 LSA에서 NTLM 모듈로 전송하고 NTLM 모듈에서는 SAM에게 넘겨 인증을 처리한다.


원격으로 로그인 할 시에는 NTLM 모듈에서 커버로스 프로토콜을 이용해 도메인 컨트롤러에 인증을 요청하고 도메인 컨트롤러의 LSA에서 인증 정보를 확인 후 사용자에게 접근 토큰을 부여하고 그 권한으로 프로세스를 실행한다.

 

SAM 파일은 로그인 정보를 가지고 있는 파일이므로 관리에 주의가 필요하다. 그렇다면 적절한 접근 통제 설정이 되지 않은 SAM 파일은 어떻게 되어있는지 알아보자

우선 준비물은 pwdump7 프로그램이 있어야 한다. 이것이 우리의 SAM 파일의 구조를 뚫어 줄 것이다.그리고 SAM과 SYSTEM 파일을 하나씩 복사해 오면 되는데 pwdump7의 copy기능을 사용해도 된다. 나는 수동으로 시동복구의 프롬프트를 이용해서 복사해왔다. 

ㅇㅇ굳

그리고 cmd를 관리자 권한으로 실행하여 pwdump7을 실행시켜보자 

pwdump7.exe –s <SAM 파일> <SYSTEM 파일> 해주면 다음과 같이 SAM 파일의 내용을 보여준다.

필드별로 나누어 보자면 사용자계정명:SID:LM 해쉬:NTLM 해쉬: : : 로 이루어져있다. 뒤에 비어있는 것들은 잘 모르겠당. LM은 비스타 이후로 사용하지 않는 부분이기에 우리가 봐야 할 부분은 4번째 필드의 NTLM 해쉬 부분을 보면 된다. 현재 내 계정의 비밀번호 해쉬 값이 저렇게 되어있다는건데 저걸 뚫는 방법은 간단하다. NTLM 해쉬의 값이 나올 때 까지 NTLM 해쉬 생성기에 싹다 집어 넣어 확인해 보는거다 ㅇㅇ

어디서 넣냐고?

 

https://www.xhcode.com/ko/ntlm-hash-generator.html

에서 나는 확인해 보았다. 이걸로 내가 설정한 비번이 1234 라는 걸 알 수 있다.


SAM 파일의 구조와 뚫는 방법에 대해서 대충 알아보았다. 이렇게 적절한 접근제어가 이루어지지 않으면 털릴 수 있다는 것을 알았으니 접근 통제하는 방법을 알아보자. 사실 윈도우에 파일 자체에 접근 제어를 하는 방법은 그냥 ‘파일 → 속성 → 보안’ 에 들어가서 불필요한 사용자가 권한을 가지고 있는지 확인하고 제거하는 것이다. 보통 Administrators 나 System 그룹 외 의 사용자의 접근을 제한하는게 좋다.

 

이번엔 윈도우의 고유 식별 번호인 SID에 대해서 알아보자. 각 사용자 또는 그룹마다 부여되는 번호이며 윈도우에서는 로그인 수행시 접근 토큰을 생성하는데 프로그램 실행 시 발생하는 모든 프로세스에 사용자의 접근 토큰의 사본을 할당시켜 사용한다. 이걸로 접근자가 적절한 권한이 있는지 또는 그런 그룹에 속해 있는지 확인하고 보안 감사도 하고 여러 가지 한다. 아까 SAM 파일을 뜯었을 때 두 번째 필드가 SID라고 했는데 저 방법 말고도 SID를 확인 하는 방법이 있다.

실행 → wmic → useraccount list brief를 쳐서 실행하면

요로코롬 계정명과 SID가 나온다. Admin 이란 계정의 SID를 한번 살펴보자

SID 가 S-1-5-21-2467015081-2396443170-3605760089-1000 이라고 되어있다. 

앞의 ‘S-1’은 윈도우를 의미하며 ‘-5-21’ 은 스탠드 언론 또는 도메인 컨트롤러 시스템 이란 의미라는데 앞의 ‘-5’는 식별자 권한 값, 뒤의 ‘-21’부분은 로컬인지 도메인인지 알려주는 부분이라고도 하더라 뒤의 ‘-2467015081-2396443170-3605760089’는 고유 식별자로 동일한 컴퓨터에 윈도우를 다시 설치해도 동일한 값이 나오지 않는다 카더라. 마지막 ‘-1000’은 사용자 식별자로 500은 관리자, 501은 게스트, 1000이상은 일반 사용자 라는 의미이다.


이번에는 윈도우의 인증 구조에 대해서 알아보자. 윈도우의 인증 구조는 단순히 비번만 슥 넣고 끝이 아니라 랜덤한 난수 값을 전달하여 송신지까지 확인하는 CHAP(Challenge Handshake Authenticate Protocol)과 비슷한 방식을 사용한다고 생각하면 좋다. 

대충 이따구로 작동한다고 생각하면된다.

인증 암호 알고리즘에 대해서 알아보자. 윈도우에서 사용하는 알고리즘은 3가지가 있다.

1) LM(Lan Manager) 해시 : 윈도우 xp, 2000에서 사용하는 기본 알고리즘, 비스타 이후 폐지

2) NTLM 해시 : LM 에다가 MD4 해시를 추가한 형태

3) NTLMv2 해시 : 비스타 이후의 기본 인증 프로토콜로 현재까지 복잡도가 충분해 크래킹이 힘들다.

윈도우 로컬 보안 정책에 보안 옵션에 보면 LAN Manager 인증 수준을 정할 수 있는데 권장 수준은 NTLMv2 응답만 보내기 로 설정을 하는 것을 권장한다. 

다음은 윈도우 서버 취약점에 대해서 알아보겠다.

이상한 내용이 있을 수도 있는데 알려주시는 분들은 감사합니다.