And Brain said,

윈도우 서버 권한 완벽 가이드 본문

IT/DevOps. Architecture

윈도우 서버 권한 완벽 가이드

The Man 2025. 3. 19. 14:36
반응형

1. 윈도우 권한 시스템 개요

윈도우의 권한 시스템은 리눅스처럼 단순한 rwx 모델이 아니라 ACL(Access Control List) 기반이므로 개념이 복잡할 수 있습니다. 따라서 하나씩 천천히 알아봅시다.

리눅스와 윈도우의 차이점

개념 리눅스 윈도우
기본 권한 모델 rwx (읽기, 쓰기, 실행) ACL 기반 (세부적인 권한 부여 가능)
사용자/그룹 관리 소유자, 그룹, 기타 사용자 각 사용자 및 그룹에 개별 권한 부여 가능
설정 명령어 chmod, chown, chgrp icacls, takeown, net user
실행 권한 chmod +x 설정 필요 실행 권한을 세부적으로 설정 가능

 

윈도우에서는 특정 사용자에게 ‘읽기 가능, 실행 불가, 삭제 가능’ 같은 매우 세밀한 권한을 부여할 수 있습니다.

ACL(Access Control List) 개념

ACL은 특정 파일이나 폴더에 대해 누가 무엇을 할 수 있는지 정의한 목록입니다. 예를 들어, C:\example.txt 파일을 보면:

icacls C:\example.txt

 

출력 예시:

C:\example.txt BUILTIN\Administrators:(F)
               Everyone:(RX)

 

(F) - Full Control: 전체 권한 (모든 작업 가능)
(RX) - Read & Execute: 읽기 + 실행 가능
(R) - Read: 읽기만 가능
(W) - Write: 쓰기만 가능
(D) - Delete: 삭제 가능
(I) - Inherit: 상위 폴더의 권한을 상속받음
(O) - Owner: 파일의 소유권을 가짐

 

즉, 위의 예시에서는 Everyone(모든 사용자)가 읽고 실행할 수 있지만 변경할 수는 없습니다.

SID(Security Identifier) 개념

SID는 윈도우에서 사용자와 그룹을 고유하게 식별하는 ID입니다. 예를 들어, whoami /user 명령어를 실행하면 다음과 같은 출력을 볼 수 있습니다:

whoami /user

 

출력 예시:

User Name       SID
-------------   ----------------------------------
PC\User       S-1-5-21-1234567890-123456789-1234

 

이 숫자(S-1-5-21...)는 윈도우가 해당 사용자를 내부적으로 식별하는 방식입니다. 파일 권한을 설정할 때 종종 이 SID를 사용합니다.


2. 파일 시스템 권한 (NTFS)

윈도우에서는 NTFS(파일 시스템)에서 권한을 관리합니다. NTFS 파일 권한은 폴더 및 파일 단위로 설정됩니다.

기본 권한 종류

권한 기호 설명
읽기 (R) 파일 내용을 읽을 수 있음
쓰기 (W) 파일을 수정할 수 있음
실행 (X) 프로그램을 실행할 수 있음
삭제 (D) 파일을 삭제할 수 있음
소유권 변경 (O) 파일의 소유자를 변경할 수 있음
권한 변경 (P) 파일의 접근 권한을 수정할 수 있음
상속 (I) 상위 폴더의 권한을 상속받음

고급 보안 설정

파일이나 폴더에서 우클릭 → 속성 → 보안 → 고급을 선택하면 ACL을 세부적으로 설정할 수 있습니다.

 

icacls와 takeown 명령어 활용

명령어를 사용하여 파일 및 폴더의 권한을 변경할 수도 있습니다.

 

icacls: ACL을 확인하고 수정하는 명령어

takeown: 파일의 소유권을 관리자 계정으로 변경하는 명령어

 

 

icacls C:\example.txt /grant User:F

 

(해당 파일을 특정 사용자에게 전체 권한 부여)

takeown /f C:\example.txt

 

(해당 파일의 소유권을 가져옴)


3. 사용자 및 그룹 관리

윈도우에서는 사용자 및 그룹을 관리하여 특정 계정에게만 권한을 부여할 수 있습니다.

whoami / net user / net localgroup

명령어 설명
whoami 현재 로그인된 사용자 확인
net user 등록된 사용자 계정 목록 확인
net localgroup 로컬 그룹 목록 및 해당 그룹에 속한 사용자 확인

 

 

관리자 권한과 표준 사용자 차이

계정 유형 설명
관리자 계정 모든 시스템 변경 가능
표준 사용자 제한된 작업만 가능, UAC 필요

 

UAC(User Account Control) 동작 원리

관리자 권한이 필요한 작업을 수행할 때 보안 경고 창을 표시하여 허가를 요구합니다.

runas /user:Administrator cmd

4. 레지스트리 권한

레지스트리는 윈도우의 중요한 설정을 관리하는 데이터베이스입니다. 특정 레지스트리 키에 대한 권한을 조정해야 할 수도 있습니다.

regedit에서 권한 변경하기

 

regedit 실행 (Win + R → regedit 입력)

특정 키 선택 → 우클릭 → 사용 권한

regini와 icacls 활용

레지스트리 ACL을 직접 변경하려면 regini를 사용할 수 있습니다.


5. 서비스 및 프로세스 권한

윈도우에서는 서비스프로세스도 권한을 가집니다. 특정 서비스의 권한을 조정하려면 sc 명령어를 사용합니다.

sc 명령어를 활용한 서비스 관리

실행 중인 서비스 목록 확인:

sc.exe query

 

특정 서비스 중지:

sc.exe stop "wuauserv"

 

tasklist / taskkill로 프로세스 권한 확인 및 조정

실행 중인 프로세스 확인:

tasklist /v

 

특정 프로세스 강제 종료:

taskkill /F /PID <PID>

6. 네트워크 공유 권한

네트워크를 통해 파일과 폴더를 공유할 때 윈도우에서는 접근 권한을 정밀하게 제어할 수 있습니다. 파일을 공유할 때 특정 사용자에게만 접근 권한을 부여하거나, 네트워크 드라이브를 설정하여 더욱 효율적으로 관리할 수도 있습니다.

네트워크 공유 개념

네트워크 공유를 설정할 때는 크게 두 가지 방식이 있습니다:

 

  1. 파일 탐색기에서 공유 설정 

    • 공유할 폴더를 우클릭 → "속성" → "공유" 탭 → "고급 공유"

    • "사용자 지정 권한"에서 특정 사용자에게만 접근 권한 부여 가능

    • 기본적으로 Everyone이 접근 가능하지만, 보안 강화를 위해 특정 사용자만 지정하는 것이 좋음

  2. 명령어를 활용한 공유 설정 (net share)

    • net share 명령어를 사용하면 공유 폴더를 직접 설정할 수 있음

    • 예제:

    net share MyShare=C:\SharedFolder /grant:User,F
    • MyShare라는 공유 폴더를 만들고 User에게 전체 권한(F: Full Control) 부여

  3. 네트워크 드라이브 연결 (net use)

    • 다른 컴퓨터의 공유 폴더를 내 PC의 드라이브처럼 연결 가능

    • 예제:

    net use Z: \\192.168.1.100\MyShare
    • IP 주소 192.168.1.100의 공유 폴더 MyShare를 Z 드라이브로 연결

    • 공유 연결 해제는 net use Z: /delete

  4. 네트워크 공유 권한 설정 (icacls)

    • icacls를 활용해 공유 폴더에 세부적인 접근 권한 설정 가능

    • 예제:

    icacls C:\SharedFolder /grant User:R
    • User에게 C:\SharedFolder 폴더의 읽기 권한 부여 (R: Read)


7. GPO(Group Policy)와 보안 정책

그룹 정책이란?

그룹 정책(GPO, Group Policy Object)은 윈도우 시스템의 보안과 동작을 제어하는 강력한 기능입니다. 개인 PC에서는 "로컬 그룹 정책"을 사용하고, 도메인 환경에서는 중앙에서 정책을 설정할 수 있습니다.

로컬 그룹 정책 (gpedit.msc)

  • 명령어 실행 방법: Win + R → gpedit.msc 입력

  • 설정 가능한 주요 항목:

    • 암호 정책 (최소 길이, 만료 기간 설정 등)

    • 계정 잠금 정책 (잘못된 로그인 시 계정 잠금 등)

    • UAC 설정 (관리자 승인 모드 활성화/비활성화)

로컬 보안 정책 (secpol.msc)

  • secpol.msc를 실행하면 보안과 관련된 정책을 설정할 수 있음

  • 예제: 특정 사용자만 원격 데스크톱 접속 가능하게 설정

    • 로컬 보안 정책 → 사용자 권한 할당 → 원격 데스크톱 사용자 지정

그룹 정책을 활용한 보안 강화

  • gpedit.msc에서 네트워크 공유 차단, 실행 파일 제한, 특정 프로그램 실행 허용/차단 등 다양한 보안 정책을 설정 가능

  • 예제: 특정 프로그램 차단

  • gpedit.msc → 사용자 구성 → 관리 템플릿 → 시스템 → 지정된 응용 프로그램만 실행 허용


8. Windows 권한 우회 및 보안 강화

권한 상승 기법과 보안 패치

권한 상승(Elevation)은 일반 사용자 계정이 관리자 권한을 탈취하는 기법을 의미합니다. 대표적인 권한 상승 기법은 다음과 같습니다:

 

  1. DLL 하이재킹: 실행 파일이 특정 DLL을 불러올 때, 악성 DLL을 삽입하여 권한 상승을 유도하는 방식

  2. 토큰 스틸링: 관리자 계정의 인증 토큰을 훔쳐서 권한을 상승시키는 방식

  3. NTFS 권한 조작: 중요한 시스템 파일의 권한을 변경하여 권한 상승을 시도하는 방식

runas 명령어와 PsExec 활용

  • runas를 활용하면 다른 계정의 권한으로 프로그램을 실행할 수 있음

  • 예제:

  • runas /user:Administrator cmd

  • PsExec는 SYSTEM 권한으로 프로그램을 실행하는 데 사용됨

  • psexec -s -i cmd.exe

AppLocker와 SRP(Software Restriction Policies)

  • 특정 프로그램 실행을 차단하려면 AppLocker나 SRP 설정 필요

  • 설정 방법:

  • gpedit.msc → 보안 설정 → 소프트웨어 제한 정책


9. 예제

특정 폴더/파일에 대한 권한 설정 스크립트

icacls C:\example /grant User:F

 

(사용자 User에게 C:\example 폴더의 전체 권한 부여)

 

사용자 계정 권한 변경 자동화

net localgroup Administrators User /add

 

(사용자 User를 관리자 그룹에 추가)

 

NTFS 권한 복사 및 백업 방법

robocopy C:\Source C:\Destination /COPYALL

 

(C:\Source 폴더의 NTFS 권한을 포함하여 C:\Destination으로 복사)


10. 끝으로

지금까지 윈도우 권한 시스템의 개념부터 파일 시스템(NTFS), 사용자 및 그룹 관리, 레지스트리, 서비스 및 프로세스, 네트워크 공유, 그룹 정책(GPO), 권한 상승 및 보안 강화까지 모두 다뤄봤습니다.

 

윈도우의 권한 시스템은 단순하지 않으며, 다양한 요소가 복합적으로 얽혀 있습니다. 하지만 핵심 개념과 명령어를 이해하고 활용하면 파일, 사용자, 네트워크, 프로세스를 정밀하게 제어할 수 있습니다.

반응형
Comments