Web Browser Forensic/Firefox

Firefox Auto-Login

수분_ 2024. 7. 17. 13:33

INDEX

 

1. Introduce

2. How To Use Firefox Auto-Login

3. Gecko

4. Firefox Auto-Login

5. Reference


 

 

 

 

 

1. Introduce

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

 

더불어 Gecko 기반 브라우저에 대해서도 알아보려한다.

 

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

 

 

 

 

 


 

 

 

 

 

2. How To Use Firefox Auto-Login

간단하게 파이어폭스 자동로그인의 사용법을 알아보자.

 

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

 

거기서 저장할 수 있고

 

 

애플리케이션 메뉴 열기 - 비밀번호

 

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

 

 

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

 

 

우측 상단 메뉴 열기에서 .CSV파일로 비밀번호 내보내기와 가져오기가 가능하다.

 

 

또한 거부된 사이트는 

 

설정 - 개인 정보 및 보안 - 예외

 

에서 확인, 설정이 가능하다.

 

 

 

 

 


 

 

 

 

 

3. Gecko

 

Gecko 기반 브라우저

Gecko는 모질라(Mozilla) 재단에서 개발 및 관리하는 오픈소스 웹 브라우저 엔진이다.

 

해당 엔진을 사용하는 웹 브라우저로는 대표적으로 파이어폭스(Firefox), 썬더버드(Thunderbird), 아이스드래곤(IceDragon), 사이버폭스(Cyberfox) 등이 있다.

 

Chromium 이어 두 번째로 많이 사용되는 웹 브라우저 엔진이다.

 

 

 

Gecko 브라우저에서 저장된 계정 정보는 logins.json 파일에 암호화된 상태로 저장 된다.

 

Gecko 브라우저의 암호화 데이터 관리는 모질라에서 개발한 NSS 라이브러리의 PK11SDR_Encrypt / PK11SDR_Decrypt 함수를 이용한다.

 

해당 함수의 내부적인 동작 과정을 간단히 요약하면, key4.db 파일에서 Master Key, Salt 값을 추출하여, 3DES-CBC 연산에 의해 암/복호화되는 형태다.

 

 

 

인포스틸러는 Gecko 기반 브라우저가 사용하는 nss3.dll의 PK11SDR_Decrypt 함수를 동적으로 로드하고, logins.json에서 추출한 암호화된 계정 정보를 평문으로 복호화 할 수 있다.

 

 

 

Gecko 기반 복호화 과정

 

 

 

Gecko 기반 브라우저 관련 주요 파일 및 브라우저 정보 수집 SQL 쿼리 정보는 각각 아래의 표들 같다.

 

 

 

Gecko 기반 주요 파일 정보

 

Gecko 정보 수집 SQL 쿼리

 

 

 

Gecko 브라우저의 쿠키 정보는 cookies.sqlite, 히스토리는 places.sqlite DB 파일에 저장된다.

 

계정이외에는 별 다른 암호화 없이 평문으로 저장되어 있어 공격자가 쉽게 정보를 획득할 수 있다.

 

 

 

 

 


 

 

 

 

 

4. Firefox Auto-Login

파이어폭스에서 저장된 사용자 이름과 비밀번호의 경로를 알아보자.

 

여러 운영체제들 별로 다음과 같은 경로에 저장이 된다.

 

Windows : C:/Users/<PC 이름>/AppData/Roaming/Mozilla/Firefox/Profiles
Mac : ~/Library/Application Support/Firefox/Profiles
Linux : ~/.mozilla/firefox/Profiles

 

 

 

필자는 Window OS이므로 위의 경로를 따라 들어가면 다음과 같은 폴더들이 나온다.

 

Window PC에는 2개의 사용자 프로필이 표시된다.

 

그중에서도 아래에 .default-release폴더가 현재 필자가 사용하는 프로필이다.

 

 

 

또한 파이어폭스는 프로필 별로 Primary Password가 설정이 가능하다.

 

설정이 되어있다면 파이어폭스를 최초 실행할 때와 같이 설정된 기본적인 비밀번호를 요구할 경우가 있다.

 

허나 필자는 설정해 놓지 않았다.

 

 

각설하고 .default-release폴더에서 Logins.json 파일을 찾을 수 있는데 파일을 열어보면 저장된 자동로그인 데이터를 볼 수 있다.

 

{"nextId":6,"logins":[{"id":5,"hostname":"https://nid.naver.com","httpRealm":null,"formSubmitURL":"https://nid.naver.com","usernameField":"id","passwordField":"pw","encryptedUsername":"MDoEEPgAAAAAAAAAAAAAAAAAAAEwFAYIKoZIhvcNAwcECFiN6Ev22E6QBBBMTnqublzzX/Ts2aM28gEx","encryptedPassword":"MDoEEPgAAAAAAAAAAAAAAAAAAAEwFAYIKoZIhvcNAwcECLRDfEfcqoP/BBBjAbCk9bdjXvxK6kk7dTXf","guid":"{0ad0f394-110f-40a6-8453-7233a0e99b1e}","encType":1,"timeCreated":1721189645391,"timeLastUsed":1721189645391,"timePasswordChanged":1721189645391,"timesUsed":1,"syncCounter":1,"everSynced":false,"encryptedUnknownFields":"MDIEEPgAAAAAAAAAAAAAAAAAAAEwFAYIKoZIhvcNAwcECIsZ+IIXD0C+BAjakR+SzxTldA=="}],"potentiallyVulnerablePasswords":[],"dismissedBreachAlertsByLoginGUID":{},"version":3}

 

여기서 우리는 

 

  • 호스트 이름
  • 암호화된 사용자 이름
  • 암호화된 비밀번호

 

를 확인 할 수 있다.

 

다음 파이어폭스 포스팅에서 이것을 복호화 해볼 것이다.

 

 

 

이제 Network Security Services(NSS)를 찾아보자.

 

위에서 서술하였듯이 NSS 라이브러리의 함수를 이용하여 암호화하기 때문에 경로를 찾아보겠다.

다음 포스팅에서 복호화 할 때도 암호화 토큰이기에 필요하므로 잘 알아두자.

 

경로를 알기 전에 각 OS에 대한 NSS 라이브러리 이름을 서술하겠다.

 

Windows : nss3.dll
Mac : libnss3.dylib
Linux : libnss3.so

 

 

이제 경로를 찾아보면

 

 

C:\Program Files\Mozilla Firefox

 

위의 Firefox 경로내에서 검색을 통해 쉽게 찾을 수 있다.

 

 

 

 

 


 

 

 

 

 

5. Reference

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

https://www.soft2000.com/29226

 

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

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

www.soft2000.com

 

[How to decrypt Firefox passwords with Python?]

https://medium.com/geekculture/how-to-hack-firefox-passwords-with-python-a394abf18016

 

How to decrypt Firefox passwords with Python?

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

medium.com