Web Browser Forensic/Chrome

Chrome Auto-Login

수분_ 2024. 7. 17. 07:27

INDEX

 

1. Introduce

2. How To Use Chrome Auto-Login

3. Chromium

4. Chrome Auto-Login

5. AES Cryptography & DPAPI

6. Reference


 

 

 

 

 

1. Introduce

본 포스팅에서는 크롬 자동로그인에 대한 전반적인 개념과 사용법 등을 알아보려한다.

 

이후 이어지는 포스팅에서 크롬 자동로그인을 분석하여 ID와 PW를 복호화하는 실습을 하려한다.

 

 

 

 

 


 

 

 

 

 

2. How To Use Chrome Auto-Login

간단하게 크롬 자동로그인의 사용법을 알아보자.

 

어떠한 사이트에 처음 로그인을 하면 우측 상단에 자동로그인을 저장 할 것이냐고 프롬프트가 뜬다. 거기서 저장할 수 있고

 

 

설정 - 자동 완성 및 비밀번호 - Google 비밀번호 관리자

로 들어가서 관련 설정을 할 수 있다.

 

 

비밀번호 탭에서 저장한 사이트의 수정 및 삭제가 가능하고

 

 

설정 탭에서 .CSV파일로 비밀번호 내보내기와 가져오기가 가능하다.

 

또한 거부된 사이트도 확인, 설정이 가능하다.

 

 

 

 

 


 

 

 

 

 

3. Chromium

 

Chromium 기반 브라우저

Chromium은 구글(Google)에서 개발 및 관리되는 오픈소스 웹 브라우저로, 현재 제일 많이 사용되고 있는 웹 브라우저 엔진이다.

 

대표적으로 크롬(Chrome), 엣지(Edge), 오페라(Opera) 등이Chromium 코드를 베이스로 개발되었다.

 

Chromium 기반 웹 브라우저는 사용자가 웹 서핑을 하면서 저장하는 계정(아이디, 패스워드) 정보, 쿠키(Cookie) 데이터, 카드 정보, 히스토리, 자동 완성(Autofill) 등을 로컬 시스템의 SQLite DB 파일에 저장하는 특징이 있다.

 

브라우저 내 저장 내용

 

 

SQLite DB 파일 내부의 일부 민감 데이터는 AES(Advanced Encryption Standard)에 의해 암호화된 상태로 관리된다.

 

Chromium의 암호화 데이터 관리는 로컬 시스템의 사용자만 해당 정보를 복호화 할 수 있도록 하며, AES 키를 DataProtection API에 의해 암호화된 DPAPI blob 형태로 보관한다.

 

해당 데이터는 Base64 인코딩된 상태로, (생략)...\User Data\Local State JSON 파일의 "os_crypt" : {“encrypted_key”} 위치에 저장되어 있다.

 

 

 

인포스틸러는 계정, 쿠키, 카드, 히스토리, 자동 완성 정보를 저장하고 있는 대상 DB 파일에 SQL 쿼리를 통해 필요한 데이터를 추출한다.

 

그리고, AES 키를 복호화하여 암호화된 데이터의 평문화된 정보를 수집할 수 있다.

 

 

Chromium에 저장되는 주요 데이터 파일

 

Chromium 정보 수집 SQL 쿼리

 

 

아울러, 비밀번호 외 모든 암호화된 필드값도 동일한 방법을 활용해 평문으로 복호화 할 수 있다.

 

복호화할 수 있는 정보는 ▲Cookies 테이블의 encrypted_value ▲Credit_Card 테이블 card_number_encrypted 필드 등이 있다.

 

 

 

 

 


 

 

 

 

 

4. Chrome Auto-Login

웹 브라우저는 사용자 편의를 위해 웹 사이트 방문 중 로그인 양식에 입력한 계정과 비밀번호를 보관하고, 재 방문 시 자동으로 입력해주는 기능을 제공한다.

 

Chromium 기반 웹 브라우저(Edge, Chrome)에서는 기본적으로 비밀번호 관리 기능이 활성화되어 있다.

 

Chrome의 비밀번호 저장 제안 팝업

 

 

 

로그인 시 입력된 정보는 브라우저의 비밀번호 관리 기능에 의해 Login Data 파일에 저장된다.

 

웹 브라우저 파일 경로
Chrome C:\Users\<사용자 이름>\AppData\Local\Google\Chrome\User Data\Default\Login Data
Edge C:\Users\<사용자 이름>\AppData\Local\MicrosoftEdge\User\Default\Login Data
Opera C:\Users\<사용자 이름>\AppData\Roaming\Opera Software\Opera Stable\Login Data
Whale C:\Users\<사용자 이름>\AppData\Local\Naver\Naver Whale\User Data\Default\Login Data

 

 

Login Data는 SQLite 데이터베이스 파일로, 계정 및 패스워드 정보는 logins 테이블에 저장된다.

 

logins 테이블에는 계정 및 패스워드외에도 저장 시간, 로그인 사이트 URL, 접근 횟수가 저장된다.

 

사용자가 사이트에 대한 계정/패스워드 정보 저장을 거부한 경우에는 이를 기억하기 위해 blacklisted_by_user 필드가 1로 설정되고, username_value 와 password_value 필드는 계정 및 패스워드 없이 origin_url 정보만 logins 테이블에 기록된다.

 

Login Data의 logins Table

 

 

 

 

 


 

 

 

 

 

5. AES Cryptography & DPAPI

AES Cryptography

Chrome에서 암호를 암호화하고 해독하는 데 사용하는 대칭 키 알고리즘인 AES 암호화를 알아보려 한다.

 

AES는 암호화 키를 사용하고 복잡한 수학적 행 연산(예: 더하기, 빼기, 혼합 및 이동)을 수행하여 암호를 암호화한다.

 

보안을 향상시키기 위해 초기화 벡터(임의의 데이터 문자열)를 추가할 수 있으며, AES 암호화를 수행하기 위해 암호화 키와 초기화 벡터를 모두 찾아야 하므로 가해자가 암호를 해독하기가 더 어려워진다.

 

다음은 AES 암호화 메커니즘을 보여주는 블록 다이어그램이다.

 

 

AES 암호화 흐름도

 

 

 

AES 후 암호화된 키 는 로컬 상태 파일에 저장되고 암호화된 암호는 초기화 벡터와 연결되어 SQLite3 데이터베이스 에 암호문으로 저장된다.

 

암호화된 키 및 암호문 저장 위치

 

 

 

DPAPI

Data Protection Application Programming Interface (DPAPI) 는 Windows 2000및 이후 버전의 마이크로소프트 운영체제에서 기본 제공 구성 요소로 사용할 수 있는 간단한 암호화 애플리케이션 프로그래밍 인터페이스이다.

 

이론적으로 데이터 보호 API는 모든 종류의 데이터에 대한 대칭 암호화를 활성화할 수 있다.

 

DPAPI 내부 작동에 대한 자세한 분석은 2011년 Burszein et al.에 의해 발표되었다.

 

DPAPI를 사용하면 개발자가 사용자의 로그인 비밀에서 파생된 대칭 키를 사용하거나 시스템 암호화의 경우 시스템의 도메인 인증 비밀을 사용하여 키를 암호화할 수 있다.

 

DPAPI는 자체적으로 영구적인 데이터를 저장하지 않는다. 대신, 단순히 평문을 받아 암호문 반환한다.

 

그 반대의 경우도 마찬가지이다.

 

사용자의 RSA%APPDATA%\Microsoft\Protect\{SID} 키를 암호화하는 데 사용되는 DPAPI 키는 디렉토리 에 저장되며 , 여기서 {SID}는 해당 사용자의 보안 식별자이다.

 

DPAPI 키는 사용자의 개인 키를 보호하는 마스터 키와 동일한 파일에 저장된다.

 

일반적으로 64바이트의 임의 데이터이다.

 

 

 

 

 


 

 

 

 

 

6. Reference

[해커가 자동 로그인 기능을 좋아하는 이유]

https://www.soft2000.com/29226

 

해커가 자동 로그인 기능을 좋아하는 이유

최근 유행하는 악성코드를 논할 때 빠지지 않고 등장하는 것이 바로 ‘인포스틸러(InfoStealer)’다. 인포스틸러는 단어 그대로 사용자의 여러 정보들을 노린다. 특히, 웹사이트나 프로그램의 ‘자

www.soft2000.com

 

[웹 브라우저 자동 로그인 기능에 저장된 계정을 노리는 RedLine Stealer]

https://asec.ahnlab.com/ko/29579/

 

웹 브라우저 자동 로그인 기능에 저장된 계정을 노리는 RedLine Stealer - ASEC BLOG

안랩 ASEC 분석팀은 최근 한 기업의 내부 망 침해 사고 조사에서 기업 망 접근에 사용된 VPN 계정이 재택 근무 중인 한 직원의 개인 PC에서 유출된 것임을 확인했다. 피해가 발생한 기업에서는 재택

asec.ahnlab.com

 

[How to decrypt Chrome password with Python?]

https://ohyicong.medium.com/how-to-hack-chrome-password-with-python-1bedc167be3d

 

How to hack Chrome password with Python

Do you think it is safe to store your password in Chrome? The short answer is “no”. Any perpetrator that has access to your laptop is able…

ohyicong.medium.com

 

[DPAPI]

https://en.wikipedia.org/wiki/Data_Protection_API

 

Data Protection API - Wikipedia

From Wikipedia, the free encyclopedia Windows API for cryptography Data Protection Application Programming Interface (DPAPI) is a simple cryptographic application programming interface available as a built-in component in Windows 2000 and later versions of

en.wikipedia.org