
현대 Chromium 기반 및 Gecko 기반 브라우저(Chrome, Microsoft Edge, Firefox, Opera, Opera GX, Vivaldi)에서 리프레시 토큰(refresh tokens), 쿠키(cookies), 저장된 자격 증명(saved credentials), 신용카드(credit cards), 자동 완성 항목(autofill entries), 브라우징 기록(browsing history), 북마크(bookmarks)와 같은 브라우저 저장 데이터를 추출합니다.
최신 Chromium 기반 및 Gecko 기반 브라우저(Chrome, Microsoft Edge, Firefox, Opera, Opera GX, Vivaldi)에서 리프레시 토큰, 쿠키, 저장된 자격 증명, 신용카드, 자동 완성 항목, 방문 기록, 북마크와 같은 브라우저 저장 데이터를 추출합니다.
Malware Development Course Syllabus
Offensive Phishing Operations Course Syllabus
Ransomware Internals, Simulation and Detection Course Syllabus
이 프로젝트는 DumpChromeSecrets의 개선된 버전이며, 마찬가지로 두 가지 구성 요소로 이루어져 있습니다:
DumpBrowserSecrets.exe)헤드리스 Chromium 프로세스를 생성하고, Early Bird APC injection을 통해 DLL을 주입한 후 추출된 복호화 키를 수신합니다. 이 키는 App-Bound 키(Chrome, Brave, Microsoft Edge에서 추출) 또는 DPAPI 키(Opera, Opera GX, Vivaldi에서 사용)입니다. 필요한 키가 복구되면 이 실행 파일은 디스크에 있는 브라우저의 SQLite 데이터베이스와 JSON 파일을 파싱하고 자격 증명, 쿠키, 토큰 및 기타 브라우징 데이터 등 저장된 데이터를 복호화합니다.
또한 Chromium 기반이 아닌 브라우저(예: Firefox)를 대상으로 할 때, DumpBrowserSecrets.exe는 데이터 추출 및 복호화에 필요한 모든 단계를 처리합니다(DLL 주입 없이).
DllExtractChromiumSecrets.dll)Chromium 브라우저 내에서 실행되어 IElevator COM 인터페이스를 사용하여 App-Bound 암호화 키를 복호화합니다. IElevator COM 인터페이스를 활용하여 App-Bound 암호화 키를 복호화하고, 대상 브라우저의 Local State 파일에서 app_bound_encrypted_key 및 encrypted_key의 복호화된 값을 검색합니다. 이 값들은 모든 추출 작업을 수행하는 실행 파일로 반환됩니다.
[!NOTE] DumpChromeSecrets 프로젝트와 달리, 이 구현은 모든 브라우저 데이터 추출을
DumpBrowserSecrets.exe실행 파일에서 수행하며, DLL은 Chromium 기반 브라우저에서 암호화 키를 검색하는 것으로 제한됩니다.
다음은 제공되는 가장 주목할만한 기능 중 일부입니다:
NtCreateUserProcess를 통한 PPID 및 인자 스푸핑과 수동 CSRSS 등록.SQLoot), v1.1.1 이후 sqlite-amalgamation 대체.Usage: DumpBrowserSecrets.exe [options]
Extraction Options:
/b:<browser> Target Browser: Chrome, Edge, Brave, Opera, Operagx, Vivaldi, Firefox, All
Can Be Specified Multiple Times
/enc:<sig> Encrypt JSON Output With Signature (1-8 Bytes)
/spoof Enable Argument and PPID Spoofing When Retrieving ABE Keys
/e:<count> Max Extracted Entries Per Category (Default: 16, 'all' For No Limit)
Decryption Options:
/dec:<sig> Decrypt Mode With The Same Signature Used When Encrypting(1-8 Bytes)
/i <file> Input Encrypted Pack File (Required For Decryption)
/? Show This Help Message
Examples:
DumpBrowserSecrets.exe Extract 16 Entries From The Default Browser
DumpBrowserSecrets.exe /b:chrome /b:edge /spoof /e:100 Extract 100 Entries From Chrome And Edge With PPID Spoofing
DumpBrowserSecrets.exe /b:firefox /e:all /enc:SIG213 Extract All Entries From FireFox To Encrypted Pack
DumpBrowserSecrets.exe /b:all /e:all /enc:0xCAFEBABE Extract All Entries From All Browsers To Encrypted Pack
DumpBrowserSecrets.exe /dec:0xCAFEBABE /i EncPack-XXXXX.bin Decrypt Pack File To JSON Files
아래 표는 지원되는 각 브라우저의 정확한 데이터 위치, 형식 및 암호화 모델을 보여줍니다.
https://github.com/user-attachments/assets/4290d525-7d5f-4a65-8624-2f9fa752e186
| 데이터 종류 | 데이터베이스 경로 | 형식 | 암호화 |
|---|
| 쿠키 | %LOCALAPPDATA%\Google\Chrome\User Data\Default\Network\Cookies | SQLite | V20 |
| 로그인 | %LOCALAPPDATA%\Google\Chrome\User Data\Default\Login Data | SQLite | V20 |
| 신용카드 | %LOCALAPPDATA%\Google\Chrome\User Data\Default\Web Data | SQLite | V20 |
| 토큰 | %LOCALAPPDATA%\Google\Chrome\User Data\Default\Web Data | SQLite | V20 |
| 자동 완성 | %LOCALAPPDATA%\Google\Chrome\User Data\Default\Web Data | SQLite | 암호화되지 않음 |
| 방문 기록 | %LOCALAPPDATA%\Google\Chrome\User Data\Default\History | SQLite | 암호화되지 않음 |
| 북마크 | %LOCALAPPDATA%\Google\Chrome\User Data\Default\Bookmarks | JSON | 암호화되지 않음 |
| 데이터 종류 | 데이터베이스 경로 | 형식 | 암호화 |
|---|
| 쿠키 | %LOCALAPPDATA%\Microsoft\Edge\User Data\Default\Network\Cookies | SQLite | V20 |
| 로그인 | %LOCALAPPDATA%\Microsoft\Edge\User Data\Default\Login Data | SQLite | V20 |
| 신용카드 | %LOCALAPPDATA%\Microsoft\Edge\User Data\Default\Web Data | SQLite | V20 |
| 토큰 | %LOCALAPPDATA%\Microsoft\Edge\User Data\Default\Web Data | SQLite | X |
| 자동 완성 | %LOCALAPPDATA%\Microsoft\Edge\User Data\Default\Web Data | SQLite | 암호화되지 않음 |
| 방문 기록 | %LOCALAPPDATA%\Microsoft\Edge\User Data\Default\History | SQLite | 암호화되지 않음 |
| 북마크 | %LOCALAPPDATA%\Microsoft\Edge\User Data\Default\Bookmarks | JSON | 암호화되지 않음 |
| 데이터 종류 | 데이터베이스 경로 | 형식 | 암호화 |
|---|
| 쿠키 | %LOCALAPPDATA%\BraveSoftware\Brave-Browser\User Data\Default\Network\Cookies | SQLite | V20 |
| 로그인 | %LOCALAPPDATA%\BraveSoftware\Brave-Browser\User Data\Default\Login Data | SQLite | V20 |
| 신용카드 | %LOCALAPPDATA%\BraveSoftware\Brave-Browser\User Data\Default\Web Data | SQLite | V20 |
| 토큰 | %LOCALAPPDATA%\BraveSoftware\Brave-Browser\User Data\Default\Web Data | SQLite | X |
| 자동 완성 | %LOCALAPPDATA%\BraveSoftware\Brave-Browser\User Data\Default\Web Data | SQLite | 암호화되지 않음 |
| 방문 기록 | %LOCALAPPDATA%\BraveSoftware\Brave-Browser\User Data\Default\History | SQLite | 암호화되지 않음 |
| 북마크 | %LOCALAPPDATA%\BraveSoftware\Brave-Browser\User Data\Default\Bookmarks | JSON | 암호화되지 않음 |
| 데이터 종류 | 데이터베이스 경로 | 형식 | 암호화 |
|---|
| 쿠키 | %APPDATA%\Opera Software\Opera Stable\Default\Network\Cookies | SQLite | V10 |
| 로그인 | %APPDATA%\Opera Software\Opera Stable\Default\Login Data | SQLite | V10 |
| 신용카드 | %APPDATA%\Opera Software\Opera Stable\Default\Web Data | SQLite | V10 |
| 토큰 | %APPDATA%\Opera Software\Opera Stable\Default\Web Data | SQLite | V10 + Base64 |
| 자동 완성 | %APPDATA%\Opera Software\Opera Stable\Default\Web Data | SQLite | 암호화되지 않음 |
| 방문 기록 | %APPDATA%\Opera Software\Opera Stable\Default\History | SQLite | 암호화되지 않음 |
| 북마크 | %APPDATA%\Opera Software\Opera Stable\Default\Bookmarks | JSON | 암호화되지 않음 |
| 데이터 종류 | 데이터베이스 경로 | 형식 | 암호화 |
|---|
| 쿠키 | %APPDATA%\Opera Software\Opera GX Stable\Default\Network\Cookies | SQLite | V10 |
| 로그인 | %APPDATA%\Opera Software\Opera GX Stable\Default\Login Data | SQLite | V10 |
| 신용카드 | %APPDATA%\Opera Software\Opera GX Stable\Default\Web Data | SQLite | V10 |
| 토큰 | %APPDATA%\Opera Software\Opera GX Stable\Default\Web Data | SQLite | V10 + Base64 |
| 자동 완성 | %APPDATA%\Opera Software\Opera GX Stable\Default\Web Data | SQLite | 암호화되지 않음 |
| 방문 기록 | %APPDATA%\Opera Software\Opera GX Stable\Default\History | SQLite | 암호화되지 않음 |
| 북마크 | %APPDATA%\Opera Software\Opera GX Stable\Default\Bookmarks | JSON | 암호화되지 않음 |
| 데이터 종류 | 데이터베이스 경로 | 형식 | 암호화 |
|---|
| 쿠키 | %LOCALAPPDATA%\Vivaldi\User Data\Default\Network\Cookies | SQLite | V10 |
| 로그인 | %LOCALAPPDATA%\Vivaldi\User Data\Default\Login Data | SQLite | V10 |
| 신용카드 | %LOCALAPPDATA%\Vivaldi\User Data\Default\Web Data | SQLite | V10 |
| 토큰 | %LOCALAPPDATA%\Vivaldi\User Data\Default\Web Data | SQLite | X |
| 자동 완성 | %LOCALAPPDATA%\Vivaldi\User Data\Default\Web Data | SQLite | 암호화되지 않음 |
| 방문 기록 | %LOCALAPPDATA%\Vivaldi\User Data\Default\History | SQLite | 암호화되지 않음 |
| 북마크 | %LOCALAPPDATA%\Vivaldi\User Data\Default\Bookmarks | JSON | 암호화되지 않음 |
| 데이터 종류 | 파일/데이터베이스 경로 | 형식 | 암호화 |
|---|
| 쿠키 | %APPDATA%\Mozilla\Firefox\Profiles\<profile>\cookies.sqlite | SQLite | 암호화되지 않음 |
| 로그인 | %APPDATA%\Mozilla\Firefox\Profiles\<profile>\logins.json | JSON | AES‑256‑CBC 또는 3DES‑CBC |
| 토큰 | %APPDATA%\Mozilla\Firefox\Profiles\<profile>\signedInUser.json | JSON | 암호화되지 않음 |
| 자동 완성 | %APPDATA%\Mozilla\Firefox\Profiles\<profile>\formhistory.sqlite | SQLite | 암호화되지 않음 |
| 방문 기록 | %APPDATA%\Mozilla\Firefox\Profiles\<profile>\places.sqlite | SQLite | 암호화되지 않음 |
| 북마크 | %APPDATA%\Mozilla\Firefox\Profiles\<profile>\places.sqlite | SQLite | 암호화되지 않음 |