IT 그리고 정보보안/Knowledge base 227

윈도우 프로세스와 스레드 생성과 동작 원리

위 그림은 위 그림은 커널 동작 과정이다. 첫 과정인 프로세스와 스레드 관련 내용을 알아본다. 프로세스와 스레드는 작업을 처리하는 기본 단위들이다. 프로세스와 스레드의 관계에 대해 짚고 넘어가면, 우리가 실제로 하는 작업을 실행하는 것이 스레드이다. 작업의 주체라 이 말. 그리고 작업의 주체인 스레드를 위해 구성된 하나의 환경을 프로세스라고 보면 된다. 하나의 환경 즉, 프로세스에 작업의 주체인 스레드가 각자의 역할에 맞게 구성되어 있다.. 라고 정리하면 될것 같다. 우리가 윈도우에서 보는 프로세스는 하나의 응용 프로그램. 즉, 하나 이상인 스레드의 집합을 말한다. 이런 프로세스는 종류가 4가지가 있다. 1. 시스템 프로세스 커널에서만 실행되는 시스템 스레드들을 호스팅하는 프로세스로서, Ntoskrnl...

윈도우 ntdll.dll

Ntdll.dll은 사용자의 요청을 의도에 맞게 조정하여 커널 처리 요청으로 보내주는 것은 처음에 언급해서 다들 알고있을거라 생각한다. 각각의 요청들을 서브시스템이 수집하여 Ntdll.dll로 보내어 커널로 요청을 보내는 과정. 지금까지 포스팅하며 공부했던 내용의 큰 그림은 이것이다. 커널 모드 이용 권한이 필요한 시스템 명령들을 System Service API 즉, 네이티브 API라 한다. 서브시스템이 필요에 맞게 수집하고 구분지어놓은 명령들을 Ntdll.dll을 통해 진행된다. Ntdll.dll 처럼 통일된 인터페이스를 제공하여 자원 관리의 효율성을 증대시키기 위해서 고안된 구조이다. 그럼 커널 모드에 진입은 어떻게 하는 것일까. int 0x2e (혹은 Sysenter) 명령을 통해 커널모드로 진입..

윈도우 유저 세션 초기화 프로세스 (userinit.exe)

Userinit Logon Application 약자로, 유저 세션을 초기화하는 프로세스이다. 유저 로그인에 성공하면 로그온 스크립트를 실행하고 사용자 환경을 위한 초기화 작업 (그룹 보안 정책(GPO) 등을 적용) 이 끝나고 나면 Explore.exe 를 실행하고 자신은 종료된다. HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon 의 Userinit 값을 통해 확인할 수 있따. 그럼 처음에 언급한 로그온 스크립트는 어디서 실행할까. HKCU\Software\Policies\Microsoft\Windows\System\Scripts에 존재하는데, 설정이 안되어 있으면 존재하지 않는다. 설정은 Gpedit.msc에서 확인이 가능. 출처 : 리버싱 윈도..

윈도우 서비스 관리자 (services.exe)

서비스 관리자 Services.exe 이다. Service Control Manager , SCM이라고도 불린다. 앞서 설명 했다시피 Winlogon에 의해 실행된다. 서비스의 시작, 중지 상태 정보를 서비스 관리 도구에 전달 등의 단순한 서비스 제어 기능을 한다. 서비스는 따로 로그온 과정 같은 것이 필요없고.. 윈도우가 부팅되면 자동으로 실행되는 프로세스들로 구성되어 있따. 물론 로그온 이후 서비스 시작, 중지가 가능하다. HKLM\SYSTEM\CurrentControlSet\Services 에 드라이버들과 함께 정의 되어 있다. 그 중 일부는 svchost에 의지해서 실행한다. Svchost는 DLL에서 실행되는 서비스에 대한 호스트 프로세스라고 말할 수 있다. cmd창에서 "tasklist /sv..

윈도우 도메인, 엑티브 디렉토리

Lsass.exe 공부할 때, 도메인 로그인 부분은 넘어 갔었제. 이제 그 부분 공부를 좀 해보겠음. 리버싱 윈도우 책에는 언급하지 않았지만 정리 해두는 편이 나중에 나오는 부분에서 이해를 쉽게할 수 있따. 일단 도메인, Active Directory 개념을 알아야 한다. 먼저 도메인. 도메인은 공통된 데이터베이스 및 보안 정책을 공유하는 네트워크 PC의 그룹이다. 시스템 속성에 들어가서 작업 그룹을 확인하면 내가 속한 도메인이 무엇인지 알 수 있따. 각 도메인은 고유한 이름을 가지며, 접근할 때마다 로그인 정보를 입력해야한다. 다음.. Active Directory란?? LDAP(Lightweight Directory Access Protocol, 경량 디렉토리 엑세스 프로토콜) 서비스를 윈도우에 구현..

윈도우 LSA Security Policy Database

이번에는 LSA Security Policy DB에 대해 알아본다. 앞전에 보여줬던 NT 보안 요소들 간의 관계도이다. 동그라미친 Security Policy DB를 보자. 이름 그대로 "보안 정책을 저장하는 저장소"이다. 로컬 시스템의 보안 정책, 계정 정보를 HKEY_LOCAL_MACHINE 의 SAM과 SECURITY에 저장한다. 요 안에 저장된 목록들은 아래와 같음. 1. 로그인 방식 2. 도메인 리스트 3. 시스템 접근 권한 4. 보안 감사 수행 5, 캐시된 도메인 로그온과 윈도우 계정 로그온 정보 저장 ( 중요한 기밀이므로 시스템 계정으로만 접근 가능.) 5번을 보면 접근이 불가능하다. 당연한거 겠지?? 중요한 기밀 정보이기때문에. 하지만 또 확인 하는 방법이 있지.. Psexec 를 사용하면..

윈도우 LSA, SRM

Local Security Authority Subsystem Service의 약자로 LSA라고도 부른다. 단어 그대로 보안관리자이다. %Systemroot%\System32\Lsass.exe 에서 실행되는 프로세스로, 시스템 보안정책, 사용자 인증, 이벤트 로그에 보안 감사 메세지 전달 등 윈도우 전반적인 보안 관련 작업을 처리하는 프로세스이다. 서비스 관리는 %Systemroot%\System32\Lsasrv.dll 에서 구현된다. LSA 관련 설정은 아래 그림에 보이는 경로에서 설정함. LSA 기능 중 사용자 인증 과정은 Winlogon에서 로드한 자격 증명 제공자로 부터 LsaLogonUser API를 통해 사용자 이름 과 패스워드 등 로그온 정보를 LSA가 받게된다. 그리고 이 내용이 네트워크 ..

Windbg 명령어 정리

[ WinDbg 명령어 요약 ] - Debugger Commands : 일반적인 디버거 명령 A (Assemble), U (Unassemble) BL (Breakpoint List), BC (Breakpoint clear) BD (Breakpoint Disable), BE (Breakpoint Enable) BA (Break on Access) BP, BU (Set Breakpoint) // BU : (unresolved - bp유지) D, DA, DB, DW, DD (Display Memory) Dds (Display words and Symbols) DL (Display Linked List) LIST_ENTRY or SINGLE_LIST_ ... DS, Ds (Display String) DT (D..

윈도우 로그인 관리자 (Winlogon.exe)

이번에는 윈도우 로그인 관리자인 Winlogon.exe 에 대해 공부해보겠음. 오늘 배울 과정에 대한 그림 설명을 잠시 하자면, 윈도우 비스타 이전 : Winlogon.exe가 Lsass.exe와 Services.exe 를 실행시킴. 윈도우 비스타 이후 : Winlogon.exe와 Wininit.exe가 함께 실행되고, Wininit.exe가 Lsass.exe와 Services.exe를 실행시킨다. Lsass.exe ( Local Security Authority Subsystem Service )는 부팅시 보안 인증을 담당하고 LSA 라고도 부른다. Services.exe ( Service Control Manager )는 서비스를 관리하고, SCM 이라고도 부른다. Winlogon 은 또한 유저 로그..

윈도우 클라이언트-서버 런타임 서브시스템 (csrss.exe)

이번에 할 내용은 Csrss.exe 이다. Smss.exe가 로드하는 3개의 서브시스템 중 하나. Client - Server Runtime SubSystem 의 약자다이다. ss가 약자면 다 서브시스템인 모양이다. 윈도우 서브시스템 이라고도 불리며, 프로세스와 스레드를 관리하는 역할을 한다. 이것도 네이티브 어플리케이션이다. Csrss는 실행시에 Basesrv.dll, Winsrv.dll, Csrsrv.dll을 로드하여 콘솔 윈도우 처리, 프로세스와 스레드 생성과 삭제, 16비트 가상 DOS머신 프로세스를 위한 기능 일부 및 SxS(Side by Side)를 지원한다. Basesrv.dll : BaseServerApiDispatchTable Winsrv.dll : ConsoleServerDispatch..

반응형