Netwrix 1Secure는 데이터와 아이덴티티 전반에 걸쳐 통합된 가시성을 제공합니다 - 14일간 무료로 전체 액세스가 가능합니다.무료 평가판 시작

사이버 보안 용어집공격 카탈로그

Pass-the-Cookie 공격으로 MFA 우회하기

Pass-the-Cookie 공격으로 MFA 우회하기

다단계 인증(멀티팩터 인증, MFA)은 온프레미스와 클라우드 보안 모두를 강화하는 좋은 방법입니다. MFA를 적용하면 사용자가 로그인할 때 사용자 ID와 비밀번호뿐만 아니라 휴대폰으로 전송된 코드와 같은 추가 인증 요소를 함께 제공해야 합니다. 이러한 절차는 탈취된 사용자 자격 증명을 가진 공격자가 로그인하지 못하게 함으로써 공격 표면을 줄여줍니다.

하지만 MFA는 사이버보안의 만능 해결책은 아닙니다. 특히 공격자는 Pass-the-Cookie 공격을 사용해 브라우저 쿠키를 활용함으로써 MFA를 우회하고 클라우드 서비스에 접근할 수 있습니다. 이 글에서는 이 공격이 어떻게 작동하는지, 그리고 이에 대응하기 위한 모범 보안 사례를 살펴보겠습니다.

브라우저 쿠키를 사용하면 웹 애플리케이션이 사용자 인증 정보를 저장할 수 있어, 사용자는 웹사이트에서 새 페이지로 이동할 때마다 사용자 이름과 비밀번호를 입력하지 않고도 계속 로그인 상태를 유지할 수 있습니다. (이는 Kerberos 또는 NTLM 인증과 유사한데, 사용자 시스템에 아티팩트가 로컬로 저장되고 향후 인증에 사용됩니다.)

MFA가 활성화되어 있으면, 사용자는 모바일 기기에서 푸시 알림을 수락하는 것처럼 추가적인 신원 증명을 제공해야 합니다. 사용자가 MFA를 통과하면 브라우저 쿠키가 생성되어 웹 세션을 위해 저장됩니다.

쿠키는 사용자 경험을 간편하게 해주지만, 명백한 취약점도 함께 가지고 있습니다. 누군가가 올바른 브라우저 쿠키를 추출할 수 있다면, 다른 시스템의 완전히 별도인 웹 브라우저 세션에서 다른 사용자로 인증을 받을 수 있습니다. 즉, 쿠키를 사용해 MFA를 통한 인증을 우회할 수 있다는 뜻입니다. (이는 Pass the Hash attack 의 Active Directory 에서의 경우와 유사합니다.)

공격자가 브라우저 쿠키를 추출하는 방법.

Google Chrome 브라우저의 예를 들어, 공격자가 쿠키를 추출하는 방법을 살펴보겠습니다. Chrome은 SQLite 데이터베이스의 다음 위치에 쿠키를 저장합니다:

      %localappdata%GoogleChromeUser DataDefaultCookies

The cookies for a given user are encrypted using keys tied to that user via the Microsoft Data Protection API (DPAPI). To access the cookie database and decrypt the cookies, an adversary can use the following mimikatz command:

dpapi::chrome /in:"%localappdata%GoogleChromeUser DataDefaultCookies" /unprotect

Alternatively, they could execute the following from the command line:

mimikatz.exe privilege::debug log "dpapi::chrome /in:%localappdata%googlechromeUSERDA~1defaultcookies /unprotect" exit
      

이 두 옵션 중 하나를 사용하면 브라우저 쿠키가 제공됩니다.

a screen shot of a command line program that says ' privilege ' on it

이제 실제 상황에서 Pass-the-Cookie 공격이 어떻게 작동하는지 살펴보겠습니다.

사용자 Tobias가 IT 관리자라고 가정해 보겠습니다. Tobias가 정기적으로 사용하는 웹 애플리케이션 중 하나는 Microsoft Azure 관리 포털입니다. MFA가 활성화되어 있으므로, Tobias가 Azure에 로그인할 때는 아래와 같이 모바일 기기의 인증기 앱에서 생성된 코드를 제공해야 합니다.

a microsoft azure login page asking for a code

그렇다면 아무도 그의 iPhone을 훔치지 않는 한, 그의 Azure 자격 증명은 안전하겠죠? 생각보다 그렇지 않습니다. Tobias가 피싱 이메일을 클릭했거나 다른 수단으로 시스템이 침해당해, 이제 공격자가 Tobias의 사용자 컨텍스트 내에서 코드를 실행할 수 있게 되었다고 가정해 봅시다. Tobias는 노트북에서 관리자가 아니므로 피해는 제한될 것 같죠?

볼까요.

1단계. 쿠키를 추출합니다.

앞에서 살펴봤듯이, Tobias의 브라우저 쿠키를 얻기 위해 해야 할 일은 Tobias로 실행하는 상태에서 다음 명령을 실행하는 것입니다:

      mimikatz.exe privilege::debug log "dpapi::chrome /in:%localappdata%googlechromeUSERDA~1defaultcookies /unprotect" exit
      

이 경우에는 ESTSAUTH, ESTSAUTHPERSISTENT, ESTSAUTHLIGHT를 포함한 Azure 인증 쿠키에 관심을 둡니다. 최근에 Tobias가 Azure에서 활발히 활동했기 때문에 이러한 쿠키는 손쉽게 가져갈 수 있습니다:

a screenshot of a web page that says login.microsoftonline.com

2단계. 쿠키를 전달합니다.

Tobias의 사용자 ID나 비밀번호를 모르고 그의 모바일 기기에 접근할 수도 없으니 Tobias로 Azure 같은 웹 앱에 로그인할 수 없다고 생각할 수 있습니다.

하지만 그의 쿠키를 이미 가지고 있으므로, 다른 세션으로 쿠키를 전달하기만 하면 Tobias의 계정을 탈취할 수 있습니다. 이건 아주 간단합니다. 다른 서버에서 Chrome을 열고 “Inspect(검사)” 인터페이스를 사용해 쿠키를 삽입하기만 하면 됩니다.

2.1. 먼저 탈취한 세션을 확인합니다.

a computer screen with a sign in with github button

2.2. 다음으로 Application > Cookies로 이동합니다. 보시다시피 현재 쿠키에는 ESTSAUTH 또는 ESTSAUTHPERSISTENT가 포함되어 있지 않습니다.”:

Image

2.3. ESTSAUTH 또는 ESTSAUTHPERSISTENT 쿠키를 추가합니다. (ESTSAUTHPERSISTENT를 사용할 수 있다면, “Stay Signed In” 옵션에서 생성되기 때문에 그것을 사용하는 것이 좋습니다.)

a screenshot of a web page showing a list of logins

2.4. 페이지를 새로고침하니 이제 Tobias로 Azure에 로그인했습니다. — MFA가 필요하지 않습니다!

Image

위험을 완화하는 방법

Pass-the-Cookie 공격은 몇 가지 이유로 심각한 위협입니다. 첫째, Pass-the-Cookie 공격은 관리자 권한을 필요로 하지 않습니다. 모든 사용자는 작업 PC에서 자신에게 특권 권한이 있는지와 관계없이, 자신의 브라우저 쿠키를 읽고 해독할 수 있습니다. 둘째, 공격자는 손상된 계정의 사용자 ID나 비밀번호를 알 필요가 없으므로 최소한의 정보로도 이 공격이 가능합니다. 셋째, 브라우저를 닫은 뒤에도 Pass-the Cookie 공격을 완료할 수 있었습니다.

쿠키 도난 위험을 최소화하는 한 가지 방법은 사용자의 쿠키를 더 자주 삭제하는 것입니다. 하지만 이렇게 하면 사용자가 사이트를 탐색할 때마다 매번 재인증을 해야 하므로 사용자에게 불편을 초래하고, 쿠키를 잃지 않기 위해 브라우저를 절대 닫지 않으려는 상황이 발생할 수 있습니다.

더 나은 전략은 인증 모니터링과 이러한 위협 탐지 제품을 도입하는 것입니다. Netwrix Threat Manager 는 예상과 다른 방식으로 사용되고 있는 계정을 신속하게 감지하므로 악성 활동을 빠르게 차단할 수 있습니다.

FAQ

공유하기

Entra ID 애플리케이션 권한 악용—작동 방식과 방어 전략

AdminSDHolder 수정 — 작동 방식과 방어 전략

AS-REP Roasting 공격 — 작동 방식과 방어 전략

Hafnium 공격—작동 방식과 방어 전략

DCSync 공격 해설: Active Directory 보안에 대한 위협

패스-더-해시(PtH) 공격 이해하기

Golden Ticket 공격이란? 작동 방식, 탐지 및 대응(예방)

gMSA 악용 공격과 Golden gMSA 공격 설명

DCShadow 공격 – 작동 방식, 실제 사례 및 방어 전략

ChatGPT 프롬프트 인젝션: 위험 이해, 사례 및 예방

NTDS.dit 추출 공격 이해하기

Kerberoasting 공격 – 작동 원리와 방어 전략

패스-더-티켓(Pass-the-Ticket) 공격 설명: 위험, 예시 및 방어 전략

비밀번호 스프레이 공격 이해하기

평문 비밀번호 추출(Plaintext Password Extraction) 이해하기: 위험, 예시 및 예방

Zerologon 취약점 설명: 위험, 악용 방법 및 대응 방안

랜섬웨어 공격에 대한 완전한 가이드

Skeleton Key 공격: 작동 원리와 탐지 방법

Lateral Movement: 그것이 무엇인지, 작동 방식, 그리고 예방 방법

중간자(MITM) 공격: 무엇인지, 그리고 어떻게 예방할 수 있는가

Silver Ticket 공격

4가지 서비스 계정 공격과 이를 방어하는 방법

공격자에게 PowerShell이 특히 인기 있는 이유는 무엇일까요?

업무에 악성코드 공격이 영향을 미치지 않도록 예방하는 방법

PowerUpSQL로 SQL Server 침해하기

마우스재킹 공격이란 무엇이며, 이에 대응하는 방법

Security Support Provider(SSP)를 사용한 자격 증명 탈취

레인보우 테이블 공격: 작동 방식과 방어 방법

비밀번호 공격에 대한 종합적 이해와 이를 막는 방법

LDAP Reconnaissance

Credential Stuffing이란 무엇인가요?

Golden SAML 공격을 위한 완전한 가이드