LSA सीक्रेट¶
ये क्या हैं¶
Local Security Authority (LSA) SECURITY hive में secrets रखता है। इनमें
autologon password, उन accounts के passwords जिनके रूप में services चलती हैं, computer account का domain
password, DPAPI system keys, और वह key शामिल है जिससे cached domain logons encrypt किए जाते हैं। यह
cached domain logons भी रखता है, ताकि domain उपयोगकर्ता domain controller के बिना sign in कर सकें।
parse-registry lsa-secrets सूचीबद्ध करता है कि सिस्टम कौन-से secrets रखता है और वे कब सेट किए गए, और यह
कितने cached logons रखता और उपयोग करता है। यह केवल नाम और समय पढ़ता है: कुछ भी decrypt नहीं किया जाता, और
किसी secret के bytes न पढ़े जाते हैं न लिखे जाते हैं। Juntei साक्ष्य पढ़ता है; यह credentials extract नहीं करता।
सर्वोत्तम निष्कर्ष: सिस्टम में इस नाम का एक secret था, जो
इस समय सेट किया गया। किसी service का secret (_SC_<service>) का अर्थ है कि LSA उस account का password संग्रहीत करता है
जिसके रूप में वह service चलती है।
स्थान¶
C:\Windows\System32\config\SECURITY
Policy\Secrets\<name>\CurrVal the current value (encrypted)
Policy\Secrets\<name>\OldVal the previous value
Policy\Secrets\<name>\CupdTime when the current value was set (FILETIME)
Policy\Secrets\<name>\OupdTime when the previous value was set
Cache\NL$1 … NL$n cached domain logons, one slot each
Cache\NL$Control how many slots Windows keeps
| नाम | प्रकार | यह क्या है |
|---|---|---|
DefaultPassword |
autologon |
वह password जिससे Winlogon अपने-आप sign in करता है। |
_SC_<service> |
service_account |
उस account का password जिसके रूप में <service> चलती है। |
$MACHINE.ACC |
machine_account |
Computer account का उसके domain में password। |
DPAPI_SYSTEM |
dpapi_system |
सिस्टम की DPAPI keys। |
NL$KM |
cached_logon_key |
वह key जिससे cached logons encrypt किए जाते हैं। |
L$_SQSA_<SID> |
security_questions |
किसी local account के security questions (Windows 10 और बाद के)। |
RasDialParams!<SID>#n, L$_Ras… |
ras_credentials |
Dial-up और VPN credentials। |
L$…, G$…, M$… |
local, global, machine |
अन्य private data, उस prefix के अनुसार जो LsaStorePrivateData उसे देता है। |
SECURITY को उसके transaction logs के साथ, और सिस्टम का SYSTEM hive एकत्र करें, जो host का
नाम बताता है।
विश्लेषक के लिए सावधानियाँ¶
- नाम और समय, values नहीं। किसी value में data है या नहीं, यह उसके आकार से पता चलता है। उसका content पढ़ा नहीं जाता।
DefaultPasswordका अर्थ autologon नहीं है। यह secret अधिकांश सिस्टमों पर मौजूद होता है, उन पर भी जो कभी अपने-आप sign in नहीं करते।SOFTWAREकाMicrosoft\Windows NT\CurrentVersion\Winlogon(AutoAdminLogon,DefaultUserName) बताता है कि autologon configure है या नहीं। हाल काCurrentSetUTCएक ऐसा बदलाव है जिसकी व्याख्या की जानी चाहिए।- Service secrets:
_SC_<service>तब दिखाई देता है जब कोई service password वाले account के रूप में चलने के लिए सेट की जाती है। इसकी तुलनाparse-registry services(ObjectName) से करें, और ऐसी services खोजें जो हाल ही में install की गईं या अज्ञात हैं। Service के चले जाने के बाद भी secret बना रह सकता है। - समय:
CurrentSetUTCऔरOldSetUTCवे समय हैं जब Windows ने वर्तमान और पिछली values सेट कीं।$MACHINE.ACCpassword default रूप से हर 30 दिन में बदलता है, इसलिए उसके समय बदलते रहते हैं।KeyLastWrittenUTCऔरCurrVal/OldValkey के समय इस बारे में हैं कि secret आख़िरी बार कब बदला। - Cached logons: कोई slot तब उपयोग में होता है जब उसका record किसी उपयोगकर्ता का नाम देता है। Record का header
encrypted नहीं होता; केवल उसकी user name length पढ़ी जाती है।
CachedLogonsKeptNL$Controlका count है, जोCachedLogonsCount(default रूप से 10) का अनुसरण करता है। उपयोग में slots का अर्थ है कि domain उपयोगकर्ताओं ने interactive रूप से sign in किया, और उनके credentials hive से offline crack किए जा सकते हैं। उपयोगकर्ताओं के नाम encrypted होते हैं और decode नहीं किए जाते। केवल पूर्ण header और सुसंगत user-name length वाले सत्यापित binary records को ही उपयोग में गिना जाता है। यदिProblemsक्षतिग्रस्त slots report करता है, तो in-use count केवल सत्यापित slots को कवर करता है; क्षतिग्रस्त slots को खाली न समझें।
Juntei से parse करें¶
Usage: juntei parse-registry lsa-secrets <INPUT> [OPTIONS]
Input:
-d, --directory <DIR> Recursively find SECURITY hives
-f, --file <FILE> Parse one SECURITY hive
--log1/--log2 Supply transaction logs explicitly
--no-logs Do not replay logs
Output:
-o, --output <FILE> Save records
-t, --output-type <TYPE> csv, json, or jsonl
juntei parse-registry lsa-secrets -d collection/ -o lsa-secrets.csv
juntei parse-registry lsa-secrets -f SECURITY -t jsonl | jq 'select(.Kind == "service_account")'
हर hive के लिए, summary हर secret को उसके प्रकार और सेट किए जाने के समय के साथ सूचीबद्ध करती है। फिर यह उन services के नाम बताती है जिनके account passwords LSA संग्रहीत करता है, और उपयोग में cached logon slots गिनती है।
आउटपुट fields¶
| फ़ील्ड | व्याख्या |
|---|---|
Host, SourcePath |
Host (सिस्टम के SYSTEM hive से), और SECURITY hive। |
Secret, Kind |
Secret का नाम, और यह क्या है (ऊपर की table देखें); cached logons के record के लिए Cache और cached_logons। |
ServiceName, UserSID |
वह service जिसके लिए _SC_ secret है, और उपयोगकर्ता का SID जो नाम से मिलता है (L$_SQSA_, RasDialParams)। |
CurrentSetUTC, OldSetUTC |
CupdTime और OupdTime: वर्तमान और पिछली values कब सेट की गईं। |
HasCurrentValue, HasOldValue |
क्या CurrVal और OldVal में data है। |
CurrentValueLastWrittenUTC, OldValueLastWrittenUTC, KeyLastWrittenUTC |
CurrVal, OldVal और secret keys के last writes। |
CachedLogons, CachedLogonsInUse, CachedLogonsKept |
Cached logons का record: slots, उपयोग में slots, और NL$Control का count। |
TransactionLogStatus, LogsApplied |
Registry recovery का संदर्भ। |
Problems |
विकृत या सीमा से बाहर के समय (केवल समय metadata दिखाया जाता है), क्षतिग्रस्त cache headers, ग़लत cache value types, और ऐसी keys जो पढ़ी नहीं जा सकतीं। |
जाँच की रणनीति¶
- अज्ञात या हाल ही में install की गई services के
_SC_secrets खोजें, और उन्हेंparse-registry servicesऔर event 7045 (एक service install की गई) से मिलाएँ। DefaultPasswordके समय की तुलनाWinlogonकी autologon settings से करें।- Domain सदस्यों पर, उपयोग में cached logon slots, और
Cacheआख़िरी बार कब लिखा गया, यह नोट करें। - Secrets के समय की तुलना timeline से करें: intrusion की अवधि में सेट किया गया secret किसी नए service account, autologon या machine account बदलाव को चिह्नित कर सकता है।