hhkb.dev

BLOG

2025-12-26 / 레드팀풀체인 · 08

권한 상승

1. 권한 상승 개요

권한 상승은 현재 장악한 시스템이나 계정의 권한을 더 높은 수준으로 넓히는 과정이다. 예를 들어 System이나 Domain Admin 같은 권한을 노리는 단계다.

레드팀 관점에서는 이 단계가 무조건 필수는 아니다. 지금 권한만으로도 목표를 달성할 수 있다면, 굳이 탐지 위험을 감수하면서 더 높은 권한까지 갈 필요는 없다. 예를 들어 VPN Admin 권한만 있으면 되는데, 굳이 VPN 서버의 Root까지 갈 필요는 없다는 뜻이다.

2. 권한 상승의 종류

2.1. 로컬 권한 상승(Local PrivEsc)

로컬 권한 상승은 단일 호스트 안에서 권한을 높이는 경우를 말한다.

  • 유저 권한 상승: 일반 사용자 -> 로컬 관리자(Administrator)
  • 프로세스 MIC 상승: Medium Integrity -> High 또는 System Integrity
    • UAC Bypass: 관리자 권한 사용자가 UAC 팝업 없이 관리자 권한 프로세스를 실행하게 만드는 방식이다.
    • 목적: Mimikatz로 자격 증명을 덤프하거나 다른 프로세스에 인젝션하려면, 보통 High Integrity 이상 권한이 필요하다.

2.2. 도메인 권한 상승(Domain PrivEsc)

도메인 권한 상승은 Active Directory 환경에서 도메인 전체에 영향을 주는 권한을 확보하는 경우다.

  • 주요 기법: Kerberoasting, AS-REP Roasting, Unconstrained Delegation, ADCS
  • 목표: 더 많은 호스트에 접근하거나, Domain Admin 권한을 확보해 도메인 전체를 장악하는 것

3. 실습 시나리오: Kerberoasting 공격

Kerberos 프로토콜 특성을 이용해 서비스 계정(Service Account)의 비밀번호 해시를 가져와 크랙하는 공격이다.

3.1. 취약한 서비스 계정 식별(Recon)

  • SPN(Service Principal Name)이 설정된 사용자 계정만 Kerberoasting 대상이 된다.
  • BloodHound나 LDAP 쿼리로 SPN이 있는 계정을 찾는다.
  • 예시로는 SFMSSQLService 같은 MS-SQL 서비스 계정을 찾을 수 있고, 비밀번호가 비교적 최근에 설정된 흔적까지 같이 볼 수 있다.

3.2. 서비스 티켓(TGS) 요청(Request)

  • Rubeus 같은 C2 도구(BOF)로 TGS(Ticket Granting Service) 티켓을 요청한다.
  • 그러면 도메인 컨트롤러는 해당 서비스 계정의 비밀번호 해시로 암호화된 티켓을 반환한다.
# Sliver BOF를 이용한 커버로스팅(탐지 위험 낮음)
kerberoast --spn 'MSSQLSvc/sql01.us.rt.local:1433'

3.3. 해시 크래킹(Cracking)

  • 탈취한 티켓 해시는 Kali 같은 공격자 PC로 가져와 Hashcat으로 크랙한다.
  • 서비스 계정은 사람이 기억하기 쉬운 비밀번호를 쓰거나, 변경 주기가 긴 경우가 있어 크래킹 성공률이 높다.
# Hashcat 모드 13100(Kerberos 5 TGS-REP etype 23)
hashcat -m 13100 hash.txt rockyou.txt

예시 결과로 비밀번호 accessnsql을 얻을 수 있다.

3.4. 권한 확인 및 횡적 이동

  • 크랙한 비밀번호가 맞는지 NetExec 등으로 검증한다.
  • 해당 계정이 SQL01 서버의 로컬 관리자 권한을 갖는지 확인한다.
  • 이후 이 계정으로 SQL01 서버에 횡적 이동할 준비를 한다.