보안정보

전문화된 보안 관련 자료, 보안 트렌드를 엿볼 수 있는
차세대 통합보안관리 기업 이글루코퍼레이션 보안정보입니다.

권한상승을 이용한 랜섬웨어 공격방식 : Malware using Privilege Escalation

2022.08.03

76,414

01. 랜섬웨어로 인한 사이버 공격 패러다임의 변화

블록체인 데이터 플랫폼 기업인 체이널리시스(Chainalysis)의 ‘2022년 암호화폐 범죄 보고서(2022 Crypto Crime Report)’에 따르면 2021년 랜섬웨어로 인한 피해금액은 6억 200만 달러로 나타났다. 콘티(Conti) 랜섬웨어는 최소 1억 8천만 달러를 갈취하며 콜로니얼 파이프라인(Colonial Pipeline)을 공격한 러시아 해킹그룹 다크사이드(DarkSide)를 제치고 랜섬웨어 범죄수익의 1위 자리를 차지했다. 올해 초인 2022년 1분기에 발생한 러시아의 우크라이나 침공사태에도 랜섬웨어 공격이 활용됨에 따라 랜섬웨어가 단순히 금전적 목적에 그치지 않고 국가간의 사이버 공격 도구로 활용될 수 있다는 점을 보여주고 있다.

[그림 1] Total cryptocurrency value received by ransomware addresses, 2016–2021(좌),
Top 10 ransomware strains by revenue, 2021(우) (출처 : The 2022 Crypto Crime Report, Chainalysis)

사이버 공격을 주도하는 공격주체(Attack Subject)와 공격대상(Attack Target)간의 공격양상을 변화시키는 게임체인저로 랜섬웨어가 두각을 나타냄에 따라 사이버 공격 패러다임이 요동치고 있다. 개인주도의 사이버 공격보다는 사이버 범죄 집단, 핵티비스트 등과 같이 국가주도의 사이버 공격(State-sponsored Attack)이 공격흐름을 주도 하고 있으며 러시아 APT그룹 Cozy Bear(APT29), 북한 APT그룹 Lazarus Group (APT38), 이란 APT그룹 Harming Kitten(APT35)등은 대표적인 국가주도형 APT공격그룹이라고 할 수 있다. 국가주도형 APT공격그룹들은 산업측면에서는 공공, 민간, 교육, 국방 등 정보탈취 및 정보유출, 시스템 파괴 등의 공격 목적에 부합할 수 있는 대상이라면 공격대상을 다양하게 확장할 뿐만 아니라 사이버환경(IT)를 넘어 물리적환경(ICS/OT)까지 공격하면서 하드웨어, 펌웨어, 소프트웨어 등 다양한 공격 지점을 활용하는 양상을 보이고 있기 때문에 공격 전략, 전술 및 과정(TTPs)을 통한 공격 매커니즘을 이해하는 것이 매우 중요하다.

국가주도형 사이버 공격은 SolaWinds, MS Exchange Server 등 거액을 노린 ‘빅 게임 헌팅(Big Game Hunting)’을 위한 방안으로 랜섬웨어 생태계(RaaS Ecosystem)를 활용하고 있다. 복잡한 암호화 알고리즘을 기반으로 활동하는 기존의 랜섬웨어가 공격범위를 확장하여 VPN, RDP등 내부 시스템 및 인프라로 접근할 수 있는 공격표면(Attack Surface)을 활용하고 있으며 Apache Stuts2, Log4Shell, Spring4Shell 등의 고위험 취약점을 활용해 공격의 영향도를 극대화시키고 있다. 결국 랜섬웨어 생태계를 통해 랜섬웨어의 생산, 유통, 운영, 관리 등 체계화되고 조직화된 환경을 사이버 공격의 초석으로 삼아 다양한 범죄행위를 포괄할 수 있는 구조로 발전되고 있다.

랜섬웨어의 초기 태동은 브라우저 리다이렉션 등의 공격으로 피해사실을 부풀려 몸값을 요구하는 스케어웨어(Scareware)에서 출발하여 드라이브 파일을 암호화하고 복호화의 대가로 금전을 요구하는 지금의 랜섬웨어로 발전되었다. 최근에는 범죄 수익을 극대화 하기 위해서 [그림 2]와 같이 서비스형 랜섬웨어(RaaS, Ransomware as a Service)생태계를 활용해 파일 암호화(Encryption)이외에도 데이터 유출(Data exfiltration), DDoS, 유출 데이터의 데이터 소유자와 직접적인 소통을 통한 불법적인 협상시도(Direct communication with customers and stakeholders)등 다중갈취(Multi-Extortion)형태로 발전되어 왔다.

[그림 2] Timeline showing ransomware’s evolution
(출처 : THE STATE OF RANSOMWARE 2020’s Catch-22, TrendMicro, February 03, 2021 및 LIFECYCLE OF RANSOMWARE INCIDENT, CERT NZ일부 재구성)

랜섬웨어가 암호화 기능 이외에도 정보유출 및 시스템 파괴 등 다양한 사이버 공격을 수행하기 위해서는 피해 시스템 접근에 그치는 것이 아니라 정보유출을 위해 정찰하고 내부 시스템 이동 및 권한상승 등의 기능이 추가로 수행되어야 하기 때문에 피해시스템에 체류하는 시간(Dwell Time)이 소요되게 된다. FireEye에 따르면 랜섬웨어 공격의 체류시간은 72.75일로 일반적인 사이버 공격의 체류시간인 56일에 비해 16.75일이 더 소요되는 것으로 나타났다. 바로 이와 같은 체류 시간의 차이가 랜섬웨어를 이용한 공격이 단순히 파일 암호화로 범죄 자금을 요구하는 형태를 벗어나 APT공격(APT-like)양상으로 변화되었음을 의미하는 수치라고 볼 수 있다.

랜섬웨어 생태계를 활용한 공격형태를 살펴보면 공격대상이 이미 설치되어 있는 도구 및 간단한 스크립트나 쉘코드를 통해 메모리에서 직접 실행하는 LotL(Living off the Land)공격 이외에도 CobaltStrike, Meterpreter, HackTools, Admin Tools 등의 다양한 오픈소스 및 상용 공격도구를 혼합해 사용한다는 점을 알 수 있다. 이처럼 사이버 공격이 사이버 범죄(Cybercrime)에서 APT형태의 공격(APT-like)로 발전함에 따라 C2(Command and Control), 측면이동(Lateral Movement), 권한상승(Privilege Escalation)등의 공격기법이 요구되게 된다. 이에 따라 이번 호에서는 랜섬웨어 생태계 확장에 따른 주요 공격기법 중 하나인 권한상승 공격의 활용사례를 분석해보고 권한상승 공격으로 인한 사이버 공격의 피해를 최소화 하기 위한 방안에 대해서 살펴보고자 한다.

02. 권한상승 공격과 랜섬웨어 연관관계 분석

권한상승과 랜섬웨어의 연관관계를 살펴보기에 앞서 권한상승의 의미에 대해서 보다 자세히 살펴보고자 한다. MITRE ATT&CK에서 정의하는 권한상승(Privilege Escalation)은 [그림 3]의 설명과 같이 ‘공격자가 시스템의 약점, 잘못된 구성 및 취약점을 이용하여 더 높은 수준의 권한(Permission)을 얻기 위한 기술로 OS기능이 상승된 컨텍스트(Context)에서 사용되어 지속(Persistence)을 목적으로 하는 전술(Tactics)의 기술요소와 유사하게 사용되는 것’을 의미한다.

[그림 3] Privilege Escalation 상세 설명 (출처 : MITRE ATT&CK Enterprise)

일반적으로 권한이라는 용어는 Permission과 Privilege가 복합적으로 사용되고 있으나 접근제어 및 접근통제(Access Control)관점에서 살펴보면 상이하다는 것을 알 수 있다. 사람, 프로그램, 프로세스 등 동적 행위자인 주체(Subject)와 파일, 데이터베이스, 컴퓨터 등 수동적인 접근 대상을 의미하는 객체(Object)사이에서 접근수준이나 액션(Action)에 따른 권한의 관점에서 Permission과 Privilege가 나뉘게 된다. 먼저 Permission의 경우 주체 별로 허용된 권한을 지정하는 것을 의미하며, Privilege의 경우 권한을 관리하는 설정 행위 등에 따라서 관리가 가능한 권한으로 주체와 객체에 모두 영향을 미치는 요소라고 할 수 있다. 따라서 우리가 분석하고자 하는 권한상승(Privilege Escalation)은 주체(Subject)와 객체(Object)에 모두 영향을 미칠 수 있는 권한설정과 관련된 모든 공격행위를 의미한다고 볼 수 있다.

권한상승 공격은 다시 수평적 권한상승(Horizontal privilege escalation)과 수직적 권한상승(Vertical privilege escalation)으로 분류될 수 있다. 동일 레벨의 다른 사용자의 기능이나 데이터에 접근하기 위해서 권한상승을 시도해 측면이동을 하는 경우를 수평적 권한상승이라고 볼 수 있으며, 다중권한(Multi-level Privilege)구조에서 가장 낮은 권한 계정에서 최상위 계정에 접근하기 위한 시도를 수직적 권한상승 공격이라고 할 수 있다. 따라서 본 문서에서 분석되는 권한상승은 상당수가 수직적 권한상승을 의미하게 된다.

글로벌 보안기업 SOPHOS에서 워너크라이(Wannacry), 갠드크랩(GrandCrab), 로커고가(LockerGoga), 소디노키비(Sodinokibi) 등 10개의 랜섬웨어 유형을 분석한 ‘How Ransomware Attacks’에 따르면 [그림 4]과 같이 15가지의 랜섬웨어의 행위 기반 별 특성(Behavior based Traits)으로 분류할 수 있다. △ 크립토웜(Cryptoworm), RaaS, 자동화된 공격자(Automated Active Adversary)로 랜섬웨어의 유형을 분류하는 랜섬웨어 범주(Dividing ransomware into categories), △ 암호화된 서명코드(Cryptographically signed code), △ 파일 암호화 시에 원본파일을 수정(Overwrite, In-place) 및 복사(Copy)여부를 식별하는 파일 암호화 유형(File Encryption)등과 같이 공격행위를 정리할 수 있다. 권한상승(Privilege escalation and lateral movement)을 유발하는 방식의 경우에는 Exploit과 Credentials의 2가지 유형이 사용되고 있다.

[그림 4] 주요 랜섬웨어 종류별 공격기법 분류 (출처 : How Ransomware Attacks, SOPHOS, November 2019)

권한상승에 사용된 공격벡터(Attack Vector)인 Exploit(Using Vulnerability)와 자격증명(Credential)을 활용하기 위해서는 공격벡터별 공격도구 및 공격기법에 대한 이해가 필요하다. 먼저 Exploit의 경우에는 일반적으로 인프라 구성 상에 취약점을 악용할 수 있는 프로토콜, 운영체제, 브라우저, 웹 어플리케이션 등이 공격대상으로 활용된다. CISA의 ‘Alert (AA22-117A) 2021 Top Routinely Exploited Vulnerabilities’에 따르면 2021년 가장 많이 15개의 취약점 목록에 ‘RCE’와 ‘Elevation of privilege’공격을 수행하는 Apache Log4j(CVE-2021-44228)와 Microsoft Exchange Server(ProxyShell, ProxyLogon), Microsoft Netlogon Remote Protocol(MS-NRPC)를 이용한 CVE-2020-1472취약점 등이 상위를 자치하였다.

Microsoft Threat Intelligence Center(MSTIC)의 ‘Guidance for preventing, detecting, and hunting for exploitation of the Log4j 2 vulnerability’에 따르면 2021년 가장 많이 사용된 취약점 목록이 이름을 올린 CVE-2021-44228가 VMware Horizon과 결합하여 NightSky랜섬웨어 배포에 활용되었으며, 중국 랜섬웨어 공격그룹인 DEV-0401역시 Confluence(CVE-2021-26084)와 Exchange Server(CVE-2021-34473) 취약점을 이용해 LockFile, AtomSilo 등의 랜섬웨어를 유포하였다고 밝혔다. 이처럼 랜섬웨어 공격그룹의 상당수는 위험도가 높은 취약점을 랜섬웨어 공격에 적극 활용한다는 점을 알 수 있다.

다음으로 살펴볼 공격벡터는 자격증명(Credential)이다. 자격증명은 인증(Authentication)을 하기 위한 인증자(Authenticator)가 접속대상의 접근자격 보유여부를 증명할 수 있는 수단을 의미하기 때문에 접속대상의 운영체제 환경 및 인증 플랫폼에 따라 영향을 받을 수 밖에 없다. 최근에는 Windows나 Linux의 관리자 계정 탈취 등에 그치는 것이 아니라 랜섬웨어 감염의 영향도를 높이기 위해 [그림 5]와 같이 Active Directory의 Domain Admin 자격증명을 탈취하는 공격형태가 빈번해지고 있다.

[그림 5] Active Directory를 이용한 랜섬웨어 유포 절차 (출처 : Ransomware Trends You Need to Know in 2021, Security Boulevard, February 11, 2021)

공격도구 측면에서도 [그림 6]과 같이 PsExec, PowerShell, WMI등 운영체제 환경에서 사용할 수 있는 LotL공격을 수행하거나 AV termination이나 Penetration Testing을 위한 목적으로 CobaltStrike, Meterpreter, PowerTool, PowerShell Empire, Mimikatz등의 도구가 주로 활용한다는 점을 염두하여 랜섬웨어 공격 대응전략 수립 시에 권한상승 등을 활용한 위험 시나리오를 고려하는 것이 필요하다.

[그림 6] Stages of a ransomware attack in 2020 (출처 : THE STATE OF RANSOMWARE 2020’s Catch-22, FireEye, February 03, 2021)

03. 권한상승 공격 유형별 아티팩트 분석

권한상승 공격 유형별 아티팩트 분석을 위해서 [표 1]과 같이 권한상승 공격유형을 △ Insecure Software, △ Insecure Service, △ Insecure Credentials(Account/Token)의 3가지로 분류하였다. 분류된 공격유형별로 ‘MITRE ATT&CK Matrix for Enterprise v11.2’에서 제시하고 있는 공격기법인 △ Abuse Elevation Control Mechanism(T1548), △ Access Token Manipulation(T1134), △ Boot or Logon Autostart Execution(T1547), △ Boot or Logon Initialization Scripts(T1037), △ Create or Modify System Process(T1543), △ Domain Policy Modification(T1484), △ Escape to Host(T1611), △ Event Triggered Execution(T1546), △ Exploitation for Privilege Escalation(T1068), △ Hijack Execution Flow(T1574), △ Process Injection(T1055), △ Scheduled Task/Job(T1053), △ Valid Accounts(T1078)의 13가지 기술을 매핑하여 [표 1]과 같이 공격유형을 정리하였다. [표 1]에서 분류한 공격유형별 공격방법을 살펴보면 인증을 위한 목적으로 사용하는 Credential이나 Account, Token등이 플랫폼의 영향을 받고 있으나 상당수는 운영체제의 영향을 받고 있다는 것을 알 수 있다. 이에 따라 Windows환경과 Linux/Unix환경에서의 권한상승을 활용하는 방법에 대해서 보다 상세하게 분석해보고자 한다.

[표 1] 권한상승 공격 유형별 공격방법 매핑표

1) Windows기반의 권한상승 방안

Windows환경의 권한상승 공격 매커니즘은 ‘Hunting for Privilege Escalation in Windows Environment’이라는 주제로 ‘Teymur Kheirkhabarov’가 발표한 [그림 7]을 토대로 설명해보고자 한다. Windows 환경에서 접근자인 주체(Subject)가 접근 대상인 객체(Object)에 접근하기 위해서는 사용자 정보 및 권한 정보가 있는 사용자 프로파일 정보를 포함하고 있는 AccessToken을 통해 접근허용정보(Permission)을 포함하고 있는 Security Descriptor에 접근을 시도하게 된다. 접근 시에는 SRM(Security Reference Monitor, Security Monitor)에서 접근제어에 대한 접근허용여부를 판단하고 반환하게 된다.

결과적으로 Windows환경에서 권한상승을 하기 위해서는 접근제어에 영향을 미치는 MIC(Mandatory Integrity Control, 필수무결성제어)와 DAC(Discretionary Access Control, 임의접근통제)에 대한 접근권한(Access grant)을 획득하는 것이 중요하다. MIC는 ACL(Access Control List)와 ACE(Access Control Entity)와 더불어 객체 접근을 제어하는 확장된 매커니즘으로 Integrity Level(IL)과 Integrity Polices의 구성요소를 가지고 있다. DAC는 접근 주체의 식별자에 기초하여 접근을 제한하는 방법으로 ACL등을 통해 객체소유자가 접근권한을 임의로 지정하는 방식을 의미한다.

[그림 7] Authorization and privilege escalation for Windows (출처 : Hunting for Privilege Escalation in Windows Environment, Teymur Kheirkhabarov)

Windows환경에서 저장되어 있는 Credential을 획득하는 방법은 [표 2]와 같이 여러 유형이 존재한다. 운영체제 무인설치(Unattended installations)환경에서 생성되는 다수의 xml 및 inf파일을 검색하여 BASE64나 AES로 암호화된 패스워드를 획득하거나, PowerSploit에서 제공하는 PowerShell Module를 이용하여 Credential을 획득할 수 있게 된다.

[표 2] Windows 한경에서 저장된 Credential 획득 방법 예시

[그림 6]의 권한상승 공격이 실제 공격에서 사용되는 경우에는 일반적으로 CobaltStrike, Meterpreter, PowerTool, PowerShell Empire, Mimikatz 등이 사용된다. Attacker(Kali, 192.168.63.129)에서 PowerShell Empire을 이용해 웹을 통해 Powershell 배치파일을 배포한 후 권한상승을 통해 Victim(Windows 10, 192.168.63.128)에 Mimikatz를 이용해 Credential을 획득하는 과정을 설명하고자 한다. 먼저 Attacker환경인 [그림 8]과 같이 BindIP는 192.168.63.129, Name은 http_igloo, Port는 777 로 설정한 후 [그림 9]와 같이 execute명령어로 실행해 준다.

[그림 8] Attacker환경에서 PowerShell Empire의 uselistener/http Options 설정
[그림 9] Attacker환경에서 PowerShell Empire의 uselistener/http실행

[그림 10]에서는 웹을 통해 배포할 배치파일 설정을 위해 OutFile을 /root/security.bat로 설정하고 Listener을 앞서 생성한 http_igloo로 설정한 후 실행해 준다.

[그림 10] Attacker환경에서 PowerShell Empire의 windows/launcher_bat 설정

[그림 11]과 같이 Attacker환경에서 security.bat파일에서는 base64로 인코딩 된 Powershell내용을 확인할 수 있다. 이후 Attacker환경에서 [그림 12]와 같이 HTTP서버를 구동 후 Victim환경에서 HTTP 서버의 URL인 http://192.168.63.129:8000으로 접속하면 앞서 생성한 security.bat파일을 확인할 수 있게 된다.

[그림 11] Attacker환경에서 확인한 security.bat 파일 일부
[그림 12] Attacker환경에서 HTTP서버 구동 및 발생된 웹로그

[그림 13]과 같이 security.bat파일을 Victim환경에서 다운로드 하면 [그림 14]와 같이 배치파일로 Powershell 공격구문을 실행할 수 있게 된다.

[그림 13] Victim환경에서 security.bat파일 다운로드 시도
[그림 14] Victim환경에 다운로드된 security.bat파일 일부

[그림 14]의 security.bat파일이 Victim환경에서 실행되면 Attacker환경에서 PID 2252로 Agent명 이 TH2YF7KC인 Agent가 http_igloo라는 Listener를 통해 생성되어 있는 것을 확인할 수 있다. 단 이때는 interact명령어를 이용하여 TH2YF7KC에 접근해보면 [그림 15]와 같이 ‘[!] Error: module needs to run in an elevated context’라는 메시지 출력되어 현재 생성된 Agent인 TH2YF7KC로는 권한문제로 인해 Mimikatz가 실행되지 않는 것을 확인할 수 있다.

[그림 15] Attacker환경에서 생성된 Agent 목록

Attacker환경에서 Victim의 Credential획득을 위한 권한상승에 앞서 TH2YF7KC인 Agent가 실행되고 있는 Victim환경을 살펴보면 [그림 16]과 같이 PID 2252로 Port 7777로 설정되어 192.168.63.129과 ESTABLISHED상태인 것을 확인할 수 있다. Victim환경에서 Attacker환경과 통신이 발생되는 경우 Victim환경의 ‘Security.evtx’에서는 로그인시 발생하는 Event ID인 4624, 4672가 로깅된 것을 확인할 수 있다.

[그림 16] Victim환경에서 PID 2252로 프로세스 실행내역
[그림 17] Victim환경에서 Security로그 내역

Victim환경에서 security.bat파일이 실행되면 ‘Security.evtx’파일 이외에도 ‘Windows PowerShell.evtx’파일에서 http_igloo Listener와 통신할 수 있는 Powershell코드가 실행되어 [그림 18]과 같이 security.bat파일의 내용을 확인할 수 있다.

[그림 18] Victim환경의 Windows PowerShell.evtx로그 내역

Attacker환경에서 Victim의 Credential을 획득하기 위해서는 [그림 15]에서 확인된 ‘[!] Error: module needs to run in an elevated context’라는 메시지의 권한문제를 해결해야 한다. 이를 위해서 [그림 19]와 같이 PowerShell Empire에서 제공하는 powershell/privesc/bypassuac을 이용하여 앞서 생성한 TH2YF7KC Agent와 http_igloo Listener를 설정하고 실행하게 되면, [그림 20]과 같이 권한이 상승된 새로운 Agent인 5G4EYST1*가 생성된 것을 확인할 수 있다. 권한상승된 Agent의 경우에는 *표시가 추가되어서 출력되게 된다.

[그림 19] Attacker환경에서 권한상승(powershell/privesc/bypassuac) 시도
[그림 20] Attacker환경에서 권한상승 후 Agent 목록

[그림 21]과 같이 권한상승된 5G4EYST1 Agent에 접속해서 Mimikatz를 실행하면 에러없이 정상적으로 Credential을 획득할 수 있는 것을 알 수 있다. [그림 22]와 같이 Victim환경에서 Security.evtx로그를 확인해보면 Mimikatz실행으로 인해 EventID 5379가 생성된 것을 확인할 수 있다.

[그림 21] Attacker환경에서 Mimikatz 실행 내역
[그림 22] Victim환경 Security.evtx로그 내역

[그림 8]부터 [그림 22]의 과정을 통해 PowerShell Empire을 이용해 Victim환경에서 권한상승으로 Credential 획득과정과 발생되는 아티팩트를 통해 공격징후를 분석하는 방안을 분석하였다. [그림 23]과 같이 Integrity Level(IL)이 Medium인 UTY3PS4Z Agent(PID 7132)와 Integrity Level(IL)이 High인 D235ZUCF Agent(PID 1604)의 권한차이로 인해 Credential탈취 이외에도 파일시스템 변조, 레지스트리 수정 등의 추가 공격을 통한 공격지속성을 확보할 수 있기 때문에 권한상승 공격 시에 발생하는 아티팩트들의 주기적인 모니터링이 필요하다.

[그림 23] 권한상승여부에 따른 프로세스 속성값 내역

2) Linux기반의 권한상승 방안

Linux환경의 권한상승 공격을 하기 위해서는 윈도우 환경과 마찬가지로 높은 권한의 Credential탈취가 중요하다. 권한상승 공격에 사용되는 방법은 패스워드가 포함되어 있는 파일탈취, SUID/Setuid 설정, Wildcard 사용, 쓰기 가능 상태의 파일로 설정, 취약점을 이용한 방법 등이 있다. 일반적으로 사용하는 방법들은 스크립트를 이용하여 권한상승이 가능한 요인들이 존재하는지 확인하고 공격하는 방식이다. [그림 24]의 ‘LinPEAS - Linux Privilege Escalation Awesome Script (https://github.com/ carlospolop/PEASS-ng/releases/latest/download/linpeas.sh)’이나 [그림 25]의 ‘LinuxSmartEnumeration - Linux enumeration tools for pentesting and CTFs
(https://raw.githubusercontent.com/diego-treitos/linux-smart-enumeration/master/lse.sh)’, [그림 26]의 ‘SUDO_KILLER(https://github.com/TH3xACE/SUDO_KILLER)’등을 통해 위험한 바이너리, 취약한 버전의 SUDO, 패스워드가 포함된 파일 및 /etc/security/opasswd등을 통한 자격증명 수집, 쓰기가능기능 존재여부, SUID, Wildcard 등을 점검할 수 있게 된다. 자동화된 도구 사용 시에 권한상승이 가능한 취약점의 CVE목록도 함께 매핑해주기 때문에 권한상승 공격 시에 용이하다.

[그림 24] LinPEAS - Linux Privilege Escalation Awesome Script 구동 결과
[그림 25] LinuxSmartEnumeration - Linux enumeration tools for pentesting and CTFs 구동 결과
[그림 26] SUDO-KILLER 실행 화면

[그림 26]은 ‘SUDO-KILLER’에서 권한상승 공격 취약점이 존재하는 테스트 환경인 ‘SUDO_KILLER_DEMO’에서 SUDO취약점을 통한 권한상승 가능 목록을 확인한 결과다. 다양한 권한상승 공격 방법이 열거되었지만 [그림 27]은 운영체제의 취약점을 이용한 권한상승 방법이 도출된 결과로 sudoedit을 사용하면 와일드카드(*)를 사용해 전체 경로가 정의된 파일의 심볼릭 링크 공격이 가능한 로컬 권한상승 취약점인 CVE-2015-5602를 ‘SUDO_KILLER’에서 제공하는 Exploit목록을 이용해 공격하여 관리자 권한을 획득한 결과를 보여주고 있다.

[그림 27] SUDO-KILLER 내 Exploit을 통한 CVE-2015-5602 PoC 실행 결과

이처럼 운영체제 환경에 따라 권한상승을 유발하여 관리자 권한을 획득하게 되면 랜섬웨어 등 사이버 공격 시에 공격의 영향도가 높아질 수 있게 된다. Linux환경에서는 SUID, 공유객체, 바이너리 심볼릭 링크, 환경변수 등 정상 관리자권한의 파일로 위장하여 권한상승승을 수행하기 때문에 부적절한 권한이 부여된 파일의 존재여부를 ‘find / -perm –u=s –type f 2>/dev/null’ 및 ‘find / -type f -perm -04000 -ls 2>/dev/null’등을 통해 주기적으로 점검해야 한다.

3) 취약점을 이용한 권한상승 방안

권한상승 공격을 보다 손쉽게 사용하기 위해서는 운영체제의 취약점을 이용한 로컬 권한상승(Local Privilege Escalation)방식이 많이 쓰인다. 운영체제 별로 권한상승이 발생하는 주요 트리거를 살펴보면 Windows환경의 경우에는 주로 Ring0인 커널영역이 사용되었으며, Linux/Unix환경의 경우에도 유사하게 Linux커널 및 관리자권한(root)이 부여되는 SUID, 와일드카드(*)등이 권한상승 취약점에 주로 사용되었다. 운영체제의 권한상승 취약점은 보안패치 이외에는 운영체제 환경에서 별도의 완화 방안이 없는 경우가 상당수이기 때문에 취약점 발견 시에 권한상승 가능여부를 통해 취약점 보안패치 우선순위를 부여하는 것이 필요하다.

[표 3] 운영체제별 Local Privilege Escalation 취약점 목록

04. 권한상승 공격기반의 랜섬웨어 공격 대응방안

지금까지 랜섬웨어의 공격방식이 다중갈취(Multi-Extortion)기반의 APT공격(APT-like)양상으로 변화될 수 있는 공격 기법 중 하나인 권한상승공격에 대해 살펴보았다. 권한상승 공격에 활용되는 2가지 요인은 △ 운영체제 기반 요소를 이용한 권한상승 공격과 △ 취약점을 이용한 권한상승 공격으로 분류할 수 있다. 운영체제에서 제공하는 기능 들을 이용하여 권한상승 공격에 사용하기 위해서는 운영체제 별 점검항목들을 선별할 필요가 있다.

이를 위해 앞서 [그림 24]에서 소개한 PEASS-ng(Privilege Escalation Awesome Scripts SUITE new generation)에서 제시하는 체크리스트 기반으로 점검해볼 수 있다. Windows환경에서 점검해야 하는 △ System Info, △ Logging/AV Enumeration, △ Network, △ Running Processes, △ Services, △ Applications, △ DLL Hijacking, △ Windows Credentials, △ File and Registry(Credentials), △ Leaked Handlers, △ Pipe Client Impersonation의 11가지 항목과 Linux환경에서 점검해야 하는 △ System Info, △ Drives, △ Installed Software, △ Processes, △ Scheduled/Cron jobs, △ Services, △ Timers, △ Sockets, △ D-Bus, △ Network, △ Users, △ Writable PATH, △ SUDO and SUID commands, △ Capabilities, △ ACLs, △ Open Shell sessions, △ SSH, △ Interesting Files, △ Writable Files, △ Other tricks의 20가지 항목을 참고하여 권한상승 공격에 활용한 공격 아티팩트를 확보하고 분석에 활용해야 한다.

다음으로는 권한상승을 유발하는 운영체제 취약점의 보안 조치다. [그림 28]은 취약점 발생과 소멸을 도식화한 Vulnerability LifeCycle로 최초 취약점이 발견된 시점(Vulnerability Discovery)까지는 위험도가 낮지만 Exploit 생성 시점부터 보안패치 발표 이전시점까지 공개된 취약점의 Exploit을 통한 무기화(Weaponization)가 가능한 시점이 가장 높은 위험도를 보이게 된다. 해당 시점을 기준으로 취약점으로 인한 공격 영향도 모니터링하는 관점이 인바운드(In-Bound)에서 아웃바운드(Out-Bound)로 전환됨에 따라 내부정보 탈취 및 리버스커넥션 등을 주의 깊게 살펴봐야 한다. 취약점을 조치하는 관점에서도 이러한 Exploit은 중요한 요소라고 할 수 있다. 운영체제의 보안패치는 운영체제 내에서 구동되고 있는 다수의 어플리케이션에도 영향을 미치기 때문에 취약점 자체의 CVSS등을 기준으로 보안업데이트 우선순위를 산정할 수도 있겠지만 더 중요한 것인 Exploit 공개여부에 따른 취약점 보안패치를 결정하는 것이 보다 현실적인 대안이라고 할 수 있다.

[그림 28] Vulnerability Lifecycle(출처 : STATE OF VULNERABILITIES 2018/2019, ENISA, January 14, 2019)

05. 참고자료

1) The 2022 Crypto Crime Report, Chainalysis (February 2022)
https://go.chainalysis.com/rs/503-FAP-074/images/Crypto-Crime-Report-2022.pdf
2) THE STATE OF RANSOMWARE, 2020’s Catch-22, TrendMicro (February 03, 2021)
https://www.trendmicro.com/vinfo/nl/security/news/cybercrime-and-digital-threats/the-state-of-ransomware-2020-s-catch-22
3) How ransomware happens and how to stop it, CERT NZ
https://www.cert.govt.nz/it-specialists/guides/how-ransomware-happens-and-how-to-stop-it/
4) How Ransomware Attacks, SOPHOS (November 2019)
https://www.sophos.com/en-us/medialibrary/PDFs/technical-papers/sophoslabs-ransomware-behavior-report.pdf
5) Windows Privilege Escalation – An Approach For Penetration Testers, SEC Consult, 18.04.2019
https://sec-consult.com/blog/detail/windows-privilege-escalation-an-approach-for-penetration-testers/
6) Hunting for Privilege Escalation in Windows Environment, Teymur Kheirkhabarov
https://2018.offzone.moscow/speakers/teymur-heirhabarov/
7) PayloadsAllTheThings
https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/Methodology%20and%20Resources
8) Checklist - Local Windows Privilege Escalation
https://book.hacktricks.xyz/windows-hardening/checklist-windows-privilege-escalation
9) Checklist - Linux Privilege Escalation
https://book.hacktricks.xyz/linux-hardening/linux-privilege-escalation-checklist