본문 바로가기

Learning/└◆System Hacking

윈도우 SYSTEM 권한 획득 기법

 

윈도우의 계정과 권한 상승

 

주요 용어

도메인

도메인(domain)이란 문자로 표시한 인터넷 주소이다. 인터넷 주소는 원래 IP로 표시되었는데, 복잡한 숫자배열로 구성된 IP(특히 풀로 적을 경우 엄청 긴 IPv6)는 인간이 인식하기 어렵다는 단점이 있었다. 이에 IP와 대응되는 문자로 된 인터넷 주소를 만들었는데, 이것이 바로 도메인이다.
도메인은 .com, .net, .org와 같은 일반 최상위 도메인(gTLD)과 .kr, .cn, .jp와 같은 국가코드 최상위 도메인(ccTLD)이 있다.
도메인 등록기관은 미국 베리사인(VeriSign), 고대디(GoDaddy) 등이 있으며, 한국에는 가비아, 후이즈, 아사달, 아이네임즈 등이 있다. KISA WHOIS에서 도메인의 대략적인 정보를 볼 수 있다.

 

 

보안식별자

마이크로소프트 윈도 NT 계열의 운영 체제 환경에서 NT/2000 시스템의 네트워크 안의 사용자 그룹이나 사용자와 같은 주체를 식별할 목적으로, 로그온을 하는 동안 윈도 도메인 컨트롤러가 할당하는 고유 이름이다.

 

윈도우의 사용자와 리눅스의 사용자의 차이점

윈도우 사용자는 시스템 최고 권한을 가진 계정 SYSTEM, 관리자 권한의 계정 Administrator, 매우 제한적인 권한을 가진 계정 Guest가 있다. 리눅스/유닉스는 root라고 불리는 관리자와 일반 사용자 계정으로 분류된다.

 

윈도우의 계정과 권한 체계

[제어판] -> [컴퓨터 관리]의 [로컬 사용자 및 그룹]

 

Administrator, Guest 등 로컬사용자의 정보를 살펴 볼 수 있다.

 

윈도우 시스템에서 시스템을 해킹해서 권한을 획득하려면 시스템계정의 권한을 획득해야 한다.

시스템계정에 대한 권한을 획득하는 것 외에 로그인하거나 원격으로는 얻을 수 없기 때문이다.

 

Windows 기본 그룹

 

일반 사용자들이 불필요한 권한으로 작업하지 못하게 그룹이 나누어져 있다.

 

 

 

 

 

윈도우의 권한 상승

  • SetUID 와 같은 기능은 없지만 리눅스/유닉스와 근본적으로 동일
  • 윈도우의 권한 상승은 수행되는 상위의 프로세스 권한을 얻어 타는 것
  • 일반 권한의 사용자가 Administrator와 SYSTEM으로 실행되고 있는 프로세스의 권한을 빼앗는 것

로그인자체가 불가능하지만 다른 방법을 통해서 최고 관리자의 권한을 획득하는 것이 가능

 

Administarator 와 SYSTEM으로 실행되는 프로세스 확인

Ctrl + Art + Del 을 통해 Windows 작업 관리자 창을 띄어 [프로세스] 탭을 확인한다.

 

실행되어 있고 Administrator 계정으로 사용되고 있다.

 

 

윈도우의 권한 상승 실행 과정

수행되고 있는 프로세스의 권한을 빼앗는 방법

 

상위 권한으로 수행되고 있는

프로그램의 프로세스에 다른 작업 끼워 넣기

관리자 A와 일반 사용자 B가 있을 때,

정상적인 경우에 A가 A라는 프로그램을 실행하면
A'와 A"라는 프로그램상의 실행 절차를 거쳐 프로그램이 완료

정상적인 프로세스 실행 과정

 

여기에 일반 사용자 B가 A'를 B'로 바꿔 넣고
자신이 A를 실행하여 생성한 상위 권한 프로세스를 가로채는 것

프로세스 권한을 가로챈 경울 실행 과정

 

SYSTEM 권한 획득

윈도우의 계정 중 최고 권한

사용자가 아닌 운영체제가 자체 소유하는 권한

윈도우 사용자 해킹

  • 해킹을 통해 윈도우의 SYSTEM 권한 획득
  • 윈도우 XP의 작업 스케줄링 명령 at는
    SYSTEM 권한으로 실행되며
    이를 통해 SYSTEM 권한 획득 가능

윈도우는 리눅스처럼 SetUID 비트권한이 없기 때문에

해당 프로세스를 찾아서 그 프로세스에 자신이 원하는 다른 작업을 끼워 넣는 방식으로
상위 권한을 획득한다.

 

현재 사용되고 있는 시스템계정의 파일을 찾아야 한다.

 

먼저 cmd.exe 가 21:00에 실행되도록 작업

>at
>at 21:00 /interactive "cmd.exe"


명령 프롬포트를 통해서 작업 스케줄링을 실행한다.

정해진 시간(21:00)에 명령 창이 실행 된다.

 

명령창의 라벨을 확인해보면

일반적인 명령 창 라벨

>C:\WINDOWS\system32\cmd.exe

at를 통한 명령 창 라벨
>C:\WINDOWS\system32\svhost.exe

 

예약을 통해서 실행된 파일은 svhost라는 명령이 SYSTEM 권한을 통해 실행 된다.

 

svhost.exe

윈도우에서 SYSTEM 계정으로 실행되는 프로세스
at 명령으로 실행한 명령 창이 SYSTEM 권한을 가져온 것

SYSTEM 권한의 확장

Ctrl + Art + Del 을 통해 Windows 작업 관리자 창을 띄어 [프로세스] 탭을 확인한다.

explorer.exe 프로세스 종료한다.

 

이후 창의 모든 실행파일들이, 작업파일들이 닫히게 된다.

다만 at 명령으로 띄운 명령 창만 남게 된다.

이유는 현재 내 권한은 Administrator 권한이기 때문이다.

 

그리고 at 명령으로 띄운 명령 창에서 explorer.exe 를 실행하면

현재 윈도우의 권한이 SYSTEM으로 되어 있는데 Explorer을 실행하게 되면

시스템 권한을 다시 한 번 더 로그인한 경우와 똑같아진다.

 

 

'Learning > └◆System Hacking' 카테고리의 다른 글

리눅스/유닉스 SetUID를 이용한 해킹 기법  (1) 2017.02.18
[War Game] FTZ Level 17  (0) 2017.02.01
[War Game] FTZ Level 16  (0) 2017.02.01
[War Game] Lord Of BoF Level 1  (0) 2017.01.30