[인프라와 웹의 위협기술]7. 윈도우의 권한상승 케이스 분석 - Fodhelper UAC Bypass

2025. 12. 18. 20:52·cs/sec
728x90

윈도우의 권한상승 케이스 분석 - Fodhelper UAC Bypass

학습 목표

  • Fodhelper UAC Bypass 공격을 통한 권한상승 기술에 대한 이해

(User Account Control, UAC)

주요 내용

  • Fodhelper 프로그램의 일반적인 동작과정
  • Fodhelper 프로그램이 권한을 상승하는 이유와 윈도우 운영체제의 권한상승 조건
  • Fodhelper UAC Bypass 증명을 위한 윈도우 쉘 실행 예시

주문형 기능(Features on Demand) 개요

  • 윈도우 주문형 기능(FoD, Features on Demand)은 사용자가 필요할 때 선택적으로 프로그램을 설치하거나 활성화할 수 있는 기능을 의미합니다.
  • 해당 기능을 사용하기 위해서는 Fodhhelper.exe(C:\\Windows\System32)바이너리를 실행해야 합니다.
  • Fodhelper.exe 파일은 최근 운영체제에는 기본 내장된 실행파일이며, Microsoft에 의해 디지털 서명되어 있습니다.

주문형 기능(Features on Demand)의 일반적인 동작 과정 요약

순서 구분 내용
1 사용자의 실행 요청 사용자가 FodHelper.exe 프로그램을 실행하거나 별도의 윈도우 구성요소에서 해당 프로그램을 실행합니다.
2 매니페스트 검사
(원도우의 로더)
윈도우는 실행파일(FodHelper.exe) 내에 있는 매니페스트 설정을 확인하여 "autoElevate=true", "requireAdministrator", "highestAvaulable" 등의 권한 상승 관련 속성을 확인합니다. 해당 속성은 실행파일이 운영체제에게 권한 상승을 요청한다는 의미입니다. 해당 내용이 확인되면 AppInfo 서비스에게 자격요건 검증을 요청합니다.
3 자격요건 검증
(윈도우의 AppInfo)
윈도우의 "AppInfo" 서비스가 권한 상승 요청을 처리합니다. 해당 서비스가 실행파일의 서명 및 무결성을 검증합니다. 해당 서비스는 자동권한 상승을 허용하기에 앞서 다음 요건이 만족되는지 확인합니다.
1. 실행파일의 디지털 서명이 MS가 서명한 것인지 확인
2.파일의 위치가 보호되고 있는 폴더인 C:\Windows\System32인지 확인
3.파일의 버전, 정품 여부 등을 확인
4.프로그램(FodHelper.exe)을 실행한 계정이 "Adminstrators" 그룹인지 확인
4 권한상승 처리
(윈도우의 AppInfo)
자격요건 검증을 모두 했다면 윈도우 "AppInfo" 서비스는 IL(Integrity Level)이 "High"로 설정되어있으며 관리자 수준의 토큰으로 설정된 신규 프로세스를 (FoldHelper.exe) 생성합니다.
5 레지스트리 참조
(FodHelper.exe)
권한 상승된 FodHelper.exe 프로세스는 "ms-settings:optionalfeatures" 프로토콜 스키마를 이용하여 윈도우 설정 앱(SystemSettings.exe)을 호출해야 합니다.
FodHelper.exe 프로그램은 별도로 GUI가 존재하지 않으며 윈도우 설정 앱을 통해 "Optional feature" 메뉴를 활성화 시키는 것입니다.
이때 해당 프로토콜 스키마와 연 결된 핸들러 으용프로그램 연결정보를 
6 윈도우 설정앱 실행
(SystemSetting.exe)
FodHelper.exe 프로그램에 의해 윈도우 설정 앱이 실행되면 사용자는 GUI가 존재하지 않으며 윈도우 설정 앱을 통해 "Optional features" 메뉴를 활성화 시키는 것입니다.
이때 해당 프로토콜 스키마와 연결된 핸들러 응용프로그램 연결정보를 레지스트리키를(HKEY_CLASSES_ROOT 혹은 HKCU\Software\Classes) 통해 확인하는데, 기본적으로는 설정되어 있지 않습니다.

Fodehelper.exe 실행파일의 매니패스트 설정에 있는 권한상승 내용

  • Fodhelper.exe 실행파일은 윈도우의 UAC에 의한 프롬프트 인터럽트 없이 자동권한 상승을 하기위해 실행파일 내부의 매니패스트 환경설정에 자동권한 상승을 위한 지시자들이 있습니다.
  • "autoElevate=true", "requireAdministrator" 설정은 관리자 수준으로 자동 권한상승을 하겠다는 의미입니다.
  • 물론 응용프로그램이 이렇게 요청한다해도 운영체제(정확히는 AppInfo 프로그램)가 자격을 검증합니다.

autoElevate=true 자동 권한 상승 속성

requireAdministrator 애플리케이션은 관리자 권한 을 사용하여 실행

FodHelper.exe 실행파일의 버전 및 서명 정보

  • FodHelper.exe 프로그램은 관리자 수준의 자동권한 상승을 위한 요건들을 모두 갖추고 있습니다.
  • 핵심적인 4가지
    • 1. 실행파일의 디지털  서명이 MS가 서명한 것인지 확인
    • 2.파일의 위치가 보호되고 있는 폴더인 C:\Windows\System32 인지 확인
    • 3. 파일의 버전, 정품 여부 등을 확인
    • 4.프로그램(FodHelper.exe)을 실행한 계정이 "Administraotrs" 그룹인지 확인
  • FodHelper.exe 파일은 다음과 같이 "Microsoft Corporation"에 의해 서명되었음을 알 수 있습니다.

권한 상승 자격증명을 수행하는 AppInfo(Application Information) 서비스

  • AppInfo 서비스는 동작중인 응용프로그램을 관리자 수준으로 권한 상승 시킬 때 사용되는 서비스이며 "svchost.exe" 프로세스에 의해 구현됩니다.(권한 상승 자격증명을 수행하는 주체)
  • 해당 프로세스는 로컬 윈도우 시스템의 최상위 Integrity Level인 "system" 수준으로 동작합니다.
  • FodHelper.exe 프로그램의 Integrity Level을 "system" 보다 더 낮은 "high" 수준으로 설정하여 실행할 수 있는 자격이 있는 프로세스입니다.

FodHelper.exe 프로그램의 자동권한 상승요건 중 하나인 "Administrators"그룹

  • Fodhelper.exe 프로그램을 실행하는 계정이 Administrators 그룹에 포함되어 있지 않다면 자동권한상승에 실패하게 되며 권한 상승 확인을 위한 대화상자 GUI(어두워 지면서 권한상승 확인요청을 하는 체크박스 활성화)가 보여지게 됩니다.
  • 대화상자가 보여지는 조건은 운영체제의 UAC설정 등급에 따라 달라질 수 있으며 기본등급으로 설정되었고 권한상승 요건을 만족한다면 대화상자를 보지 않을 것입니다.
  • 참고로 권한상승 확인을 위한 대화상자 GUI는 consent.exe 프로세스가 담당하며 AppInfo 서비스에 의해서 실행됩니다.

Fodhelper.exe 프로그램이 사용하는 URL 스키마와 참조하는 레지스트리의 키

  • 윈도우 운영체제는 특정 확장자, URI 스키마 등을 처리할 때 실행될 핸들러(응용 프로그램, 라이브러리 등)를 레지스트리 내에 지정할 수 있습니다. 해당 레지스트리 경로는 다음과 같습니다.
    • 1.HKEY_CLASSES_ROOT
    • 2.HKCU\Software\Classes
  • 해당 레지스트리 키는 잘 알려진 EXE, DLL, PDF, ZIP, JAR 등의 확장자를 처리하는 응용프로그램 정보가 존재하며 "ms-settings:", "ms-windows-store", "file"//", "http://" 등과 같은 URL 스키마들을 처리하기 위한 핸들러도 등록되어 있습니다.
  • PDF문서를 탐색기에 실행했을 때 특정 응용프로그램이 문서를 로딩하는 이유도 위의 키에 해당 확장자에 핸들러(응용프로그램)가 등록되어 있기 때문입니다.
  • Fodhelper.exe 프로그램은 윈도우 설정 앱을 호출하기 위해 "ms-settings:"형태의 URI스키마를 사용하는데 이때도 위의 레지스트리 키를 참조합니다.(기본적으로 해당 레지스트리 키는 존재하지 않습니다.)

권한이 상승된 명령 쉘 실행 예

  • 윈도우 설정 앱 프로그램을 호출할 때 사용되는 "ms-settings:" URL 스키마의 핸들러를(예시에서는 cmd.exe) 레지스트리에 등록한 후 fodhelper.exe 프로그램을 실행시키는 스크립트를 실행해 보았습니다.
  • IL(Integrity Level)이 High(관리자) 수준으로 실행되는 윈도우 쉘이 실행되었습니다.

강의 요약

  • 윈도우 운영체제는 사용자가 필요할 경우 운영체제의 빌트인 프로그램들을 설치하거나 제거할 수 있도록 하는 FoD(Features on Demand) 기능을 제공하며 해당 기능은 FodHelper.exe 프로그램이 담당합니다.
  • FodHelper.exe 프로그램은 기능의 특성상(프로그램 설치 및 제거) 권한 상승된 상태로 동작하며 리눅스 SetUID/SetGID 기능이 가진 목적과 유사하다고 볼 수 있습니다.
  • FodHelper.exe 프로그램은 실행하는 과정에서 레지스트리의 특정 키에 등록된 명령어를 참조하여 실행하는데 만약 공격자가 악성코드를 해당 레지스트리 키에 등록할 수 있는 권한을 가지게 되면 권한 상승된 악성코드가 실행될 수 있습니다.

출처: KISA 정보보호제품군 실습 훈련 기초2

728x90
반응형

'cs > sec' 카테고리의 다른 글

[인프라와 웹의 위협기술]22. LFI와 RFI 개요  (0) 2025.12.19
웹 서비스 해킹을 위한 버프스위트 활용 가이드  (1) 2025.12.19
[인프라와 웹의 위협기술]6. 포트 포워딩을 이용한 피버팅 환경 구성  (0) 2025.12.16
[인프라와 웹의 위협기술]5. 전송계층 프로토콜 기반 포트 스캐닝 실습 - 메타스플로잇 모듈 활용  (0) 2025.12.16
[인프라와 웹의 위협기술]4. ARP 기반 라이브 호스트 스캐닝 실습 - 파워쉘 스크립트 활용  (1) 2025.12.11
'cs/sec' 카테고리의 다른 글
  • [인프라와 웹의 위협기술]22. LFI와 RFI 개요
  • 웹 서비스 해킹을 위한 버프스위트 활용 가이드
  • [인프라와 웹의 위협기술]6. 포트 포워딩을 이용한 피버팅 환경 구성
  • [인프라와 웹의 위협기술]5. 전송계층 프로토콜 기반 포트 스캐닝 실습 - 메타스플로잇 모듈 활용
lakedata
lakedata
lakedata 님의 블로그 입니다.
  • lakedata
    lakedata 님의 블로그
    lakedata
  • 전체
    오늘
    어제
    • 분류 전체보기 (188)
      • cs (82)
        • dev (28)
        • sec (29)
        • ops (25)
      • 자격증 (32)
        • 정보처리기사 (20)
        • 정보보안기사 (1)
        • aws dva (6)
        • aws dop (2)
      • IT서적 (27)
        • 클린아키텍처 (10)
        • 객체지향의사실과오해 (7)
        • 오브젝트 (10)
      • 코테 (42)
        • 알고리즘 (20)
        • 백준 (13)
        • 프로그래머스 (7)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • github
  • 공지사항

  • 인기 글

  • 태그

    Java
    Security
    알고리즘
    AWS
    docker
    CS
    SQL
    Spring
  • 최근 댓글

  • 최근 글

  • 반응형
    250x250
  • hELLO· Designed By정상우.v4.10.3
lakedata
[인프라와 웹의 위협기술]7. 윈도우의 권한상승 케이스 분석 - Fodhelper UAC Bypass
상단으로

티스토리툴바