IT 그리고 정보보안/Knowledge base

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

plummmm 2021. 4. 13. 07:05
반응형

서비스 관리자 Services.exe 이다. Service Control Manager , SCM이라고도 불린다.

앞서 설명 했다시피 Winlogon에 의해 실행된다.

 

서비스의 시작, 중지

상태 정보를 서비스 관리 도구에 전달

등의 단순한 서비스 제어 기능을 한다.

 

서비스는 따로 로그온 과정 같은 것이 필요없고.. 윈도우가 부팅되면 자동으로 실행되는 프로세스들로 구성되어 있따.

물론 로그온 이후 서비스 시작, 중지가 가능하다.

 

HKLM\SYSTEM\CurrentControlSet\Services 에 드라이버들과 함께 정의 되어 있다.

그 중 일부는 svchost에 의지해서 실행한다.

 

Svchost는 DLL에서 실행되는 서비스에 대한 호스트 프로세스라고 말할 수 있다.

cmd창에서 "tasklist /svc" 를 입력하면 프로세스들을 통해 실행되는 서비스를 확인할 수 있다.

여기서 svchost들에 대한 서비스도 확인해보면 좋을듯..

 

아. sc 명령을 입력해도 서비스에 대한 목록을 확인할 수 있다.

 

svchost.exe 는 일단 다른 프로세스들과 다르게 굉장히 숫자가 많다. 

이 말은.. 다른 프로세스들은 여러개가 올라와 있으면 무척이나 의심스럽다.

예를들어 Winlogon.exe가 3~4개씩 올라와 있으면 뭔가 악성코드라고 의심을 할 만한데,

Svchost 는 원래 여러개이므로 여러개 있어도 전혀 의심스럽지가 않다.

 

악성 해커들은 이점을 이용해서 백도어 심는 과정에 svchost를 많이 이용한다. 이 부분은 나중에 자세히 다룸

 

그럼 이제 서비스 등록에서 실행까지의 과정을 한번 살펴보겠다

별거 없다. Advapi32.dll 의 CreateService를 호출해 SCM에 메세지를 보내고, 

SCM은 HKLM\SYSTEM\CurrentControlSet\Services 레지스트리에 키를 생성한다.

 

서비스 실행은 StartService 함수에 의해 실행된다.

 

다음은 서비스 계정에 대해 알아보자.

 

서비스들은 각자 사용하는 계정이 있다.

책에서는, 실무에서 가장 쉽게 햇갈리는 부분 중 하나라고...

각 서비스의 제대로된 계정 권한을 몰라서 관리자 권한 등 서비스에 과도하게 권한을 부여하여 서버 노출 등의

보안적인 문제들을 야기하는 경우가 많다고 한다.

 

서비스 계정은 총 3가지로 분류한다.

 

Local System > Local Service, Network Service

 

먼저 로컬 시스템 계정부터 보겠음

로컬 시스템은.. smss, csrss, lsass 등 시스템 프로세스를 실행하는 계정과 동일하다.

시스템 최고 권한으로, 로컬 시스템 전체를 조정할 수 있는 권한이다.

기본적으로 포함된 계정은 Everyone, Authenticated Users, Administrator 이다.

 

그 다음, 네트워크 서비스 계정이다.

컴퓨터 계정으로 네트워크 상의 다른 머신을 인증하려는 서비스가 사용되도록 고안된 계정이다.

프로세스를 실행할 수도 없고, 드라이버 로드도 할 수 없다.

 

마지막 로컬 서비스계정 이다.

익명 네트워크 접근만 할 수 있다는 점 빼고는 네트워크 서비스와 동일하다.

 

 

출처 : 리버싱 윈도우 - 로드북 

반응형