सिस्टम जानकारी¶
यह क्या है¶
किसी system के चार machine hives वह सब बताते हैं जो किसी विश्लेषक को उसकी timeline पढ़ने से पहले चाहिए:
- उसके नाम (NetBIOS, DNS host name, DNS domain) और वह domain या workgroup जिसमें वह है;
- उसका Windows संस्करण, build और update revision, और Windows कब install या अंतिम बार upgrade हुआ;
- उसका time zone, जो बताता है कि system ने कौन-से local times रखे;
- वह अंतिम बार कब साफ़ तरीके से shut down हुआ;
- उसका processor architecture और code pages;
- अंतिम बार sign in करने वाला उपयोगकर्ता, और sign in कर चुके हर उपयोगकर्ता के profiles;
- उसके SIDs: computer का (स्थानीय accounts इसी के साथ एक RID होते हैं) और उसके domain का;
- वे Windows संस्करण जिनसे इसे upgrade किया गया था।
parse-registry system-info प्रत्येक system के लिए एक record लिखता है जिसमें ये सब होते हैं।
सर्वोत्तम निष्कर्ष: configuration वैसा जैसा वह hives के संग्रह (या अंतिम write) के समय था। Key times बताते हैं कि उसके भाग अंतिम बार कब बदले।
स्थान¶
C:\Windows\System32\config\SYSTEM (the control set Windows used last: Select\Current)
ControlSet00N\Control\ComputerName\ComputerName ComputerName
ControlSet00N\Services\Tcpip\Parameters Hostname, Domain
ControlSet00N\Control\TimeZoneInformation TimeZoneKeyName, Bias, ActiveTimeBias, …
ControlSet00N\Control\Windows ShutdownTime
ControlSet00N\Control\Session Manager\Environment PROCESSOR_ARCHITECTURE
ControlSet00N\Control\Nls\CodePage ACP, OEMCP
Setup\Source OS (Updated on M/D/YYYY HH:MM:SS) the version before each upgrade
C:\Windows\System32\config\SOFTWARE
Microsoft\Windows NT\CurrentVersion ProductName, EditionID, DisplayVersion,
CurrentBuild, UBR, InstallDate, InstallTime, …
Microsoft\Windows NT\CurrentVersion\ProfileList one key per profile (SID)
Microsoft\Windows\CurrentVersion\Authentication\LogonUI LastLoggedOnUser, …
C:\Windows\System32\config\SAM
SAM\Domains\Account V: the computer's SID at its end
C:\Windows\System32\config\SECURITY
Policy\PolAcDmN, PolAcDmS the computer's name and SID
Policy\PolPrDmN, PolPrDmS its domain (or workgroup) and the domain's SID
Policy\PolDnDDN, PolDnTrN, PolDnDmG the domain's and forest's DNS names, GUID
Policy\PolMachineAccountS the computer account's SID in the domain
चारों hives को उनके transaction logs के साथ संग्रहित करें। इनमें से कोई भी अकेला hive वही देता है जो उसमें है।
विश्लेषक के लिए सावधानियाँ¶
- Registry times UTC में होते हैं; time zone बाकी सब के लिए है। Key times, FILETIMEs और अधिकांश
event times UTC में होते हैं। Text logs, कुछ application logs, और नामों या strings में लिखी तिथियाँ
(जैसे
Source OS (Updated on …)) local हो सकती हैं।Biaslocal standard time से UTC तक के minutes है (UTC = local + Bias)।UtcOffsetऔरDaylightUtcOffsetदोनों offsets देते हैं, औरTimeZoneDescriptionबताता है कि daylight time कब शुरू और समाप्त होता है। - Time zone बदल सकता है।
TimeZoneLastWrittenUTCkey का अंतिम write है। WindowsActiveTimeBias(उस समय लागू offset) को update करते समय key को स्वयं भी फिर से लिखता है, इसलिए हाल का समय यह सिद्ध नहीं करता कि किसी ने zone बदला। Event logs से तुलना करें: Security 4616 (system time बदला) और System log केMicrosoft-Windows-Kernel-Generalevents। StandardStartऔरDaylightStartkernel केTIME_FIELDSहैं,SYSTEMTIMEनहीं। Weekday उनका अंतिम field है, तीसरा नहीं (जैसाSOFTWAREमें zone कीTZIvalue में होता है)। US zones में दोनों layouts एक जैसे पढ़े जाते हैं, क्योंकि weekday रविवार (0) है। Juntei इन्हेंTIME_FIELDSके रूप में decode करता है: एक सार्वजनिक Easter Island system (पहला शनिवार 22:00 बजे) यह अंतर दिखाता है। Month का 0 होने का अर्थ है कोई daylight saving time नहीं।- Windows 11 "Windows 10" कहता है। Windows 11 पर
ProductNameमेंWindows 10 …ही रहता है। Builds 22000 और बाद के Windows 11 हैं, और summary यही बताता है। Windows 8.1, 10 और 11 परCurrentVersion6.3होता है;Versionउपलब्ध होने परCurrentMajorVersionNumber(10) का उपयोग करता है। InstallDatefeature upgrades के साथ बदलता है। किसी नए release पर in-place upgrade (उदाहरण के लिए 1809 से 21H2) इसे reset कर देता है। प्रत्येक upgrade द्वारा बदला गया release, अपने स्वयं केInstallDateके साथ,PreviousVersions(Setup\Source OS) में होता है। इनमें से सबसे पुरानाInstallDateमूल installation के सबसे निकट है। किसीSource OSkey के नाम में दी गई तिथि उसका time zone नहीं बताती।ShutdownTimeअंतिम साफ़ shutdown है। Crash या बिजली जाने पर यह update नहीं होता। इसकी तुलना event logs (6006, 6008, 1074) और hives के अंतिम writes के समय से करें।LastLoggedOnUsersign-in screen का अंतिम उपयोगकर्ता है, हर logon नहीं। Remote Desktop,runas, services और scheduled tasks सभी इसे सेट नहीं करते।LogonUiLastWrittenUTCलगभग वह समय है जब इसे अंतिम बार सेट किया गया था।- Profiles:
ProfileListहर उस उपयोगकर्ता (और service) को सूचीबद्ध करता है जिसका system पर कभी profile रहा है, जिसमें हटाए गए accounts भी उनका profile हटाए जाने तक शामिल हैं। Windows 10 और बाद के संस्करणLocalProfileLoadTimeऔरLocalProfileUnloadTimeलिखते हैं: लगभग अंतिम sign-in और sign-out। - SIDs: स्थानीय accounts
MachineSid-<RID>होते हैं, domain accountsDomainSid-<RID>।MachineSidSAMसे आता है (अन्यथाSECURITYकेPolAcDmSसे)। दोनों मेल खाने चाहिए; जब वे मेल नहीं खाते, तोProblemsयह बताता है, जैसा अलग-अलग systems के hives के साथ होता। Workgroup मेंDomainSidखाली होता है। - एक directory, एक system।
-dके साथ, एक directory के hives एक ही system के माने जाते हैं।RegBackप्रतियाँ और उसी प्रकार का दूसरा hive (SYSTEM.old) अपने अलग records होते हैं।-fके साथ, दिए गए hives एक system के माने जाते हैं, और अन्य hives उनके बगल में खोजे जाते हैं। - Control sets: केवल वह control set पढ़ा जाता है जिसे Windows ने अंतिम बार उपयोग किया था।
parse-registry readअन्य दिखाता है।
Juntei से parse करें¶
Usage: juntei parse-registry system-info <INPUT> [OPTIONS]
Input:
-d, --directory <DIR> Recursively find SYSTEM, SOFTWARE, SAM and SECURITY hives
-f, --file <FILE> A hive of one system; repeat for each
--no-logs Do not replay logs
Output:
-o, --output <FILE> Save records
-t, --output-type <TYPE> csv, json, or jsonl
juntei parse-registry system-info -d collection/ -o system-info.csv
juntei parse-registry system-info -f SYSTEM -f SOFTWARE -t jsonl \
| jq '{Host, TimeZoneDescription, ProductName, Build, LastShutdown}'
Summary प्रत्येक system के लिए देता है: उसका Windows संस्करण, वह कब install हुआ, शब्दों में उसका time zone,
key के अंतिम write के समय लागू offset, उसका अंतिम shutdown, उसका domain या
workgroup, sign in करने वाला अंतिम उपयोगकर्ता, उसका SID, उसके कितने profiles हैं, और वे संस्करण जिनसे इसे
upgrade किया गया था। auto-parse भी मिले systems को सूचीबद्ध करते समय प्रत्येक system का time zone print करता है।
आउटपुट fields¶
| Field | व्याख्या |
|---|---|
Host, SourcePath, SoftwarePath, SamPath, SecurityPath |
Host, और पढ़े गए hives (SourcePath SYSTEM hive है, अन्यथा पढ़ा गया पहला hive)। |
CompName, Hostname, Domain |
NetBIOS नाम (SYSTEM, अन्यथा SECURITY का PolAcDmN), DNS host name और DNS domain (Tcpip\Parameters)। |
PrimaryDomain, DNS-Domain |
वह domain जिससे computer joined है, या उसका workgroup (PolPrDmN), और domain का DNS नाम (PolDnDDN)। |
ProductName, Edition, DisplayVersion, Version, Build, Ubr, ServicePack, InstallationType |
CurrentVersion: लिखा गया product name, EditionID, DisplayVersion (अन्यथा ReleaseId), major और minor version (अन्यथा CurrentVersion), build, update build revision, CSDVersion, और Client, Server या Server Core। |
InstallDateUTC, InstallTimeUTC |
InstallDate (second तक) और InstallTime (100 ns तक, Windows 10 और बाद के): installation या अंतिम feature upgrade। |
RegisteredOwner, RegisteredOrganization, SystemRoot |
जैसा लिखा गया। |
TimeZone, TimeZoneDescription |
TimeZoneKeyName (अन्यथा StandardName), और शब्दों में zone, उसके offsets और daylight saving तिथियों के साथ। |
UTC-Offset, DaylightUTC-Offset |
UTC से local standard time का offset, और daylight time का (daylight saving time न होने पर खाली)। |
BiasMinutes, ActiveBiasMinutes, StandardBiasMinutes, DaylightBiasMinutes |
Bias, ActiveTimeBias (key लिखे जाते समय लागू), StandardBias, DaylightBias। |
StandardName, DaylightName |
जैसा लिखा गया, अक्सर एक resource reference (@tzres.dll,-112)। |
StandardStart, DaylightStart |
Standard और daylight time कब शुरू होते हैं, शब्दों में (first Sunday of November, 02:00)। |
DynamicDaylightTimeDisabled, RealTimeIsUniversal |
Dynamic daylight saving time बंद है; hardware clock UTC रखती है। |
TimeZoneLastWrittenUTC |
Time zone key का अंतिम write। |
LastShutdownUTC |
ShutdownTime: अंतिम साफ़ shutdown। |
CurrentControlSet, ProcessorArchitecture, AnsiCodePage, OemCodePage |
पढ़ा गया control set, PROCESSOR_ARCHITECTURE, ACP और OEMCP। |
LastLoggedOnUser, LastLoggedOnSamUser, LastLoggedOnUserSID, LastLoggedOnDisplayName, LogonUiLastWrittenUTC |
Sign-in screen का अंतिम उपयोगकर्ता, और उसकी key का अंतिम write। |
MachineSID, DomainSID, MachineAccountSID |
Computer का SID, उसके domain का SID (PolPrDmS) और domain में computer account का SID (PolMachineAccountS)। |
CompNameLastWrittenUTC, PrimaryDomainLastWrittenUTC, VersionLastWrittenUTC |
लगभग कब computer का अंतिम बार नामकरण हुआ, अंतिम बार किसी domain या workgroup से join हुआ, और अंतिम बार update हुआ (CurrentVersion की key)। |
PreviousVersions |
प्रत्येक Source OS key: संस्करण, उसकी install तिथि, और key के नाम में दी गई तिथि (JSON: प्रत्येक के लिए एक object)। |
Profiles |
प्रत्येक profile: SID, folder, key time, अंतिम load और unload (JSON: प्रत्येक के लिए एक object)। |
TransactionLogStatus, LogsApplied |
चारों hives पर registry recovery का संदर्भ। |
Problems |
गलत type या size की values (उनके bytes रखे जाते हैं), और ऐसे SAM और SECURITY जिनके computer SIDs भिन्न हों। |
जाँच की रणनीति¶
- पहले time zone पढ़ें:
UtcOffset, daylight saving तिथियाँ, और क्या zone हाल ही में बदला गया था, नोट करें। Local-time logs को इसी से convert करें। - संस्करण, build और install तिथि नोट करें। Upgrades के लिए
PreviousVersionsजाँचें, और install तिथि की तुलना सबसे पुराने file system और event log times से करें। LastShutdownUTCनोट करें: उसके बाद की गतिविधि, बिना किसी नए shutdown time के, crash, बिजली जाने या live collection का संकेत देती है।- अन्य स्थानों (BAM,
ProfileList, event logs) के SIDs में स्थानीय और domain accounts में भेद करने के लिएMachineSidऔरDomainSidका उपयोग करें, और अंतिम sign-ins के लिए profiles के load और unload times का। - Renames और domain joins के लिए computer और domain नामों को event logs से, और
CompNameLastWrittenUTCतथाPrimaryDomainLastWrittenUTCसे correlate करें।